From 6400760fcb18674135fed431dcc1fc2b6cd2e733 Mon Sep 17 00:00:00 2001 From: Thomas Durieux <5577568+tdurieux@users.noreply.github.com> Date: Sat, 14 Nov 2026 12:51:32 +0000 Subject: [PATCH] feat(admin): track email delivery attempts --- README.md | 9 +++ public/asset-manifest.json | 4 +- public/css/all.min.css | 2 +- public/css/style.css | 15 ++++ public/partials/admin/billing.htm | 1 + public/partials/admin/conferences.htm | 1 + public/partials/admin/emails.htm | 48 ++++++++++++ public/partials/admin/errors.htm | 1 + public/partials/admin/overview.htm | 1 + public/partials/admin/queues.htm | 1 + public/partials/admin/repositories.htm | 1 + public/partials/admin/user.htm | 1 + public/partials/admin/users.htm | 1 + public/script/admin.js | 32 ++++++++ public/script/routes.js | 1 + public/script/templates.js | 2 + public/script/vendor.min.js | 78 ++++++++++---------- scripts/dev-mock.js | 12 +++ src/core/email-history.ts | 60 +++++++++++++++ src/core/owner-notifications.ts | 4 +- src/core/repository-expiration-email.ts | 4 +- src/server/routes/admin-emails.ts | 42 +++++++++++ src/server/routes/admin.ts | 2 + test/email-history.test.js | 97 +++++++++++++++++++++++++ 24 files changed, 376 insertions(+), 44 deletions(-) create mode 100644 public/partials/admin/emails.htm create mode 100644 src/core/email-history.ts create mode 100644 src/server/routes/admin-emails.ts create mode 100644 test/email-history.test.js diff --git a/README.md b/README.md index d8ce00a..c2cb3af 100644 --- a/README.md +++ b/README.md @@ -150,6 +150,15 @@ expiration date gets one delivery attempt across workers. Failed or ambiguous deliveries retain the guard to prevent duplicate emails and are logged without email addresses. Existing expired repositories are not scanned for notifications. +Administrators can inspect email attempts at `/admin/emails`, filtered by type +and provider outcome. Tracking covers new expiration and GitHub access emails; +older sends are not backfilled. History stores the recipient address, resource +identity, timestamps, and HTTP status in MongoDB, without message bodies or API +keys. Accepted means the provider accepted the message, not confirmed inbox +delivery. Unknown outcomes and interrupted sends remain visible for investigation. +Audit storage failures are logged and do not stop delivery, so history can be +incomplete during a database outage. + Registration saves a verified GitHub email address, preferring the primary address. OAuth requests `user:email`; GitHub App sign-in uses the read-only email permission described in the setup guide. Later sign-ins also fill missing addresses. Saved diff --git a/public/asset-manifest.json b/public/asset-manifest.json index 33274a4..ba5f694 100644 --- a/public/asset-manifest.json +++ b/public/asset-manifest.json @@ -1,8 +1,8 @@ { "core.min.js": "core.d23af1c652.min.js", - "vendor.min.js": "vendor.023a865c47.min.js", + "vendor.min.js": "vendor.39128d76c0.min.js", "mermaid.min.js": "mermaid.a7356d5ed1.min.js", - "all.min.css": "all.d641dcb5c8.min.css", + "all.min.css": "all.8ecfe3893c.min.css", "markdown.min.js": "markdown.6c8dfb7b1d.min.js", "pdf.min.js": "pdf.4d9cc6ff49.min.js", "notebook.min.js": "notebook.c3144c18ae.min.js", diff --git a/public/css/all.min.css b/public/css/all.min.css index 2a692cc..d92c786 100644 --- a/public/css/all.min.css +++ b/public/css/all.min.css @@ -10,4 +10,4 @@ @container explorer-file (max-width: 700px) { .reviewer-preview .file-card-head .file-card-meta, .reviewer-preview .file-card-head .symbols { display: none !important; } } -.reviewer-preview .rp-main{min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.reviewer-preview .rp-document{flex:1 1 auto;min-height:0;min-width:0;overflow:auto;scrollbar-width:thin;position:relative}.reviewer-preview button.rp-count{background:0 0;border:0;padding:0;font:inherit;cursor:pointer;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px}.reviewer-preview button.rp-count:hover{text-decoration-color:currentColor}@media (max-width:767px){.reviewer-preview .file-card-head .rp-preserved-tag{display:none}}.billing-page{--bl-subscription:#008C7E;--bl-repository:#D0652A;--bl-conference:#6250D6}.dark-mode .billing-page{--bl-subscription:#16A091;--bl-repository:#D95926;--bl-conference:#9085E9}.billing-page .bl-subscription{background:var(--bl-subscription)!important}.billing-page .bl-repository{background:var(--bl-repository)!important}.billing-page .bl-conference{background:var(--bl-conference)!important}.billing-page .bl-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;margin:4px 0 0}.billing-page .bl-basis{margin:0;font-size:12px;color:var(--ink-muted)}.billing-page .bl-message{display:flex;align-items:center;gap:8px;margin:14px 0 0;padding:10px 14px;border:1px solid var(--border-color);border-radius:var(--radius-control,8px);font-size:13px;color:var(--color);background:var(--paper-card)}.billing-page .bl-message .ui-icon{width:16px;height:16px;flex:none;color:var(--ink-muted)}.billing-page .bl-message.ov-performance-warning{border-color:color-mix(in srgb,var(--status-progress) 45%,var(--border-color));background:color-mix(in srgb,var(--status-progress) 8%,var(--paper-card))}.billing-page .bl-message.ov-performance-warning .ui-icon{color:var(--status-progress)}.billing-page .bl-message .btn{margin-left:auto}.overview-page .bl-kpi-row{grid-template-columns:repeat(6,minmax(0,1fr));margin:16px 0 16px}.overview-page .bl-kpi-row .ov-kpi-card{min-width:0;padding:16px 18px}.overview-page .bl-kpi-row .ov-kpi-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.overview-page .bl-kpi-row .ov-kpi-sub{white-space:normal;overflow-wrap:anywhere;line-height:1.4}.overview-page .bl-kpi-row .ov-kpi-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.overview-page .bl-kpi-row .bl-muted-value{color:var(--ink-muted);font-size:20px;line-height:28px}.overview-page .bl-kpi-row.is-loading .ov-kpi-card{opacity:.6}.billing-page .bl-skeleton-value{display:block;width:50%;height:28px;margin:4px 0;border-radius:6px}@media (max-width:1279px){.overview-page .bl-kpi-row{grid-template-columns:repeat(3,minmax(0,1fr))!important}}@media (max-width:767px){.overview-page .bl-kpi-row{grid-template-columns:repeat(2,minmax(0,1fr))!important}}.billing-page .bl-health{display:flex;align-items:center;flex-wrap:wrap;gap:6px 20px;padding:10px 16px;margin:0 0 16px;border:1px solid var(--border-color);border-radius:var(--radius-control,8px);background:var(--paper-card);font-size:13px;font-variant-numeric:tabular-nums}.billing-page .bl-health-title{display:inline-flex;align-items:center;gap:8px;font-weight:600}.billing-page .bl-health-title .ov-svc-dot{width:8px;height:8px;margin:0;border-radius:50%}.billing-page .bl-dot-bad{background:var(--st-bad,#b42318)}.billing-page .bl-health-item .k{color:var(--ink-muted);margin-right:2px}.billing-page .bl-health-item.is-bad{color:var(--st-bad,#b42318);font-weight:600}.billing-page .bl-health-item.is-warn{color:#946519;font-weight:600}.dark-mode .billing-page .bl-health-item.is-warn{color:var(--status-progress)}.dark-mode .billing-page .bl-health-item.is-bad{color:#f08a82}.billing-page .bl-health-error{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.billing-page .bl-health-error code{font-size:12px;color:inherit;background:var(--paper-bg-alt);padding:1px 5px;border-radius:4px}.billing-page .bl-chart-card{margin-bottom:16px}.billing-page .bl-swatch{display:inline-block;width:8px;height:8px;border-radius:2px;flex:none}.billing-page .bl-bars{position:relative;gap:3px}.billing-page .bl-bars.is-dense{gap:1px}.billing-page .bl-col{min-width:0}.billing-page .bl-stack{display:flex;flex-direction:column-reverse;width:100%;gap:1px;border-radius:2px 2px 0 0;overflow:hidden}.billing-page .bl-stack>i{display:block;min-height:2px;flex-basis:0}.billing-page .bl-col:hover .bl-stack{filter:brightness(1.08)}.billing-page .bl-col.is-zero .bl-stack{height:1px!important;background:var(--border-color)}.billing-page .bl-empty{margin:8px 0 4px;padding:32px 0;text-align:center;color:var(--ink-muted)}.billing-page .bl-plans{margin-bottom:24px}.billing-page .ov-metrics-table thead th.bl-group{text-align:center;border-bottom:1px solid var(--border-color)}.billing-page .ov-metrics-table tfoot td,.billing-page .ov-metrics-table tfoot th{border-top:1px solid var(--border-color);border-bottom:0;font-weight:600;background:var(--paper-bg-alt)}.billing-page .ov-metrics-table tbody tr:last-child>*{border-bottom:0}.billing-page .bl-plan-name{font-weight:500;text-align:left}.billing-page .bl-plan-cell .bl-swatch,.billing-page .bl-plan-name .bl-swatch{margin-right:8px;vertical-align:1px}.billing-page .bl-link{padding:0;border:0;background:0 0;font:inherit;color:var(--link-color);cursor:pointer;text-align:left}.billing-page .bl-link:hover{text-decoration:underline}.billing-page .bl-idle .bl-link,.billing-page .bl-idle td{color:var(--ink-faint)}.billing-page .ov-muted{color:var(--ink-faint)}.billing-page .bl-note{margin:10px 0 0}.billing-page .bl-grants{margin:8px 0 24px;scroll-margin-top:16px}.billing-page .bl-section-head{margin:0 0 8px}.billing-page .bl-section-head h2{margin:0}.billing-page .bl-grant-scroll{margin-top:12px}.billing-page .bl-grant-table th[scope=row]{font-weight:500;text-align:left;max-width:200px;overflow:hidden;text-overflow:ellipsis}.billing-page .bl-grant-table td,.billing-page .bl-grant-table th{padding:9px 12px}.billing-page .bl-grant-table th[scope=row] a,.billing-page .bl-scope a{color:var(--link-color)}.billing-page .bl-grant-table .sortable{display:inline-flex;align-items:center;gap:4px;padding:0;border:0;background:0 0;font:inherit;color:inherit;cursor:pointer}.billing-page .bl-grant-table .sortable.active{color:var(--color)}.billing-page .bl-state{display:inline-flex;align-items:center;gap:6px}.billing-page .bl-state .status-dot{margin:0}.billing-page .bl-plan-cell{white-space:nowrap}.billing-page .bl-flag{display:inline-block;padding:1px 8px;border-radius:999px;font-size:12px;background:color-mix(in srgb,var(--status-progress) 14%,transparent);color:#7a5212}.dark-mode .billing-page .bl-flag{color:var(--status-progress)}.billing-page .bl-flag.is-bad{background:color-mix(in srgb,var(--st-bad,#b42318) 12%,transparent);color:#a1251b}.dark-mode .billing-page .bl-flag.is-bad{color:#f08a82}.billing-page .bl-scope a{display:inline-flex;align-items:center;gap:6px;max-width:200px;min-width:0}.billing-page .bl-scope a>span{overflow:hidden;text-overflow:ellipsis}.billing-page .bl-scope .ui-icon{width:14px;height:14px;flex:none;color:var(--ink-muted)}.billing-page .bl-page{font-family:var(--font-mono);font-size:12px;color:var(--ink-muted)}.billing-page .bl-alert{display:flex;align-items:center;gap:8px;margin:8px 0}.billing-page .bl-alert .btn{margin-left:auto}.billing-page .bl-pager{justify-content:space-between;border-bottom:none;margin-top:8px}.billing-page .paper-table-empty{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:12px}@media (max-width:767px){.billing-page .bl-health{gap:4px 14px}.billing-page .bl-health-title{flex-basis:100%}.billing-page .bl-toolbar .seg-filter{max-width:100%;overflow-x:auto}}.breadcrumb .redact-slot,.files .tree-name .redact-slot{position:relative;top:-.15em}.dark-mode .markdown-body :is(p,li,td,th,blockquote,dd) mark.redact-chip,.markdown-body :is(p,li,td,th,blockquote,dd) mark.redact-chip{vertical-align:.04em!important} \ No newline at end of file +.reviewer-preview .rp-main{min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.reviewer-preview .rp-document{flex:1 1 auto;min-height:0;min-width:0;overflow:auto;scrollbar-width:thin;position:relative}.reviewer-preview button.rp-count{background:0 0;border:0;padding:0;font:inherit;cursor:pointer;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px}.reviewer-preview button.rp-count:hover{text-decoration-color:currentColor}@media (max-width:767px){.reviewer-preview .file-card-head .rp-preserved-tag{display:none}}.billing-page{--bl-subscription:#008C7E;--bl-repository:#D0652A;--bl-conference:#6250D6}.dark-mode .billing-page{--bl-subscription:#16A091;--bl-repository:#D95926;--bl-conference:#9085E9}.billing-page .bl-subscription{background:var(--bl-subscription)!important}.billing-page .bl-repository{background:var(--bl-repository)!important}.billing-page .bl-conference{background:var(--bl-conference)!important}.billing-page .bl-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;margin:4px 0 0}.billing-page .bl-basis{margin:0;font-size:12px;color:var(--ink-muted)}.billing-page .bl-message{display:flex;align-items:center;gap:8px;margin:14px 0 0;padding:10px 14px;border:1px solid var(--border-color);border-radius:var(--radius-control,8px);font-size:13px;color:var(--color);background:var(--paper-card)}.billing-page .bl-message .ui-icon{width:16px;height:16px;flex:none;color:var(--ink-muted)}.billing-page .bl-message.ov-performance-warning{border-color:color-mix(in srgb,var(--status-progress) 45%,var(--border-color));background:color-mix(in srgb,var(--status-progress) 8%,var(--paper-card))}.billing-page .bl-message.ov-performance-warning .ui-icon{color:var(--status-progress)}.billing-page .bl-message .btn{margin-left:auto}.overview-page .bl-kpi-row{grid-template-columns:repeat(6,minmax(0,1fr));margin:16px 0 16px}.overview-page .bl-kpi-row .ov-kpi-card{min-width:0;padding:16px 18px}.overview-page .bl-kpi-row .ov-kpi-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.overview-page .bl-kpi-row .ov-kpi-sub{white-space:normal;overflow-wrap:anywhere;line-height:1.4}.overview-page .bl-kpi-row .ov-kpi-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.overview-page .bl-kpi-row .bl-muted-value{color:var(--ink-muted);font-size:20px;line-height:28px}.overview-page .bl-kpi-row.is-loading .ov-kpi-card{opacity:.6}.billing-page .bl-skeleton-value{display:block;width:50%;height:28px;margin:4px 0;border-radius:6px}@media (max-width:1279px){.overview-page .bl-kpi-row{grid-template-columns:repeat(3,minmax(0,1fr))!important}}@media (max-width:767px){.overview-page .bl-kpi-row{grid-template-columns:repeat(2,minmax(0,1fr))!important}}.billing-page .bl-health{display:flex;align-items:center;flex-wrap:wrap;gap:6px 20px;padding:10px 16px;margin:0 0 16px;border:1px solid var(--border-color);border-radius:var(--radius-control,8px);background:var(--paper-card);font-size:13px;font-variant-numeric:tabular-nums}.billing-page .bl-health-title{display:inline-flex;align-items:center;gap:8px;font-weight:600}.billing-page .bl-health-title .ov-svc-dot{width:8px;height:8px;margin:0;border-radius:50%}.billing-page .bl-dot-bad{background:var(--st-bad,#b42318)}.billing-page .bl-health-item .k{color:var(--ink-muted);margin-right:2px}.billing-page .bl-health-item.is-bad{color:var(--st-bad,#b42318);font-weight:600}.billing-page .bl-health-item.is-warn{color:#946519;font-weight:600}.dark-mode .billing-page .bl-health-item.is-warn{color:var(--status-progress)}.dark-mode .billing-page .bl-health-item.is-bad{color:#f08a82}.billing-page .bl-health-error{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.billing-page .bl-health-error code{font-size:12px;color:inherit;background:var(--paper-bg-alt);padding:1px 5px;border-radius:4px}.billing-page .bl-chart-card{margin-bottom:16px}.billing-page .bl-swatch{display:inline-block;width:8px;height:8px;border-radius:2px;flex:none}.billing-page .bl-bars{position:relative;gap:3px}.billing-page .bl-bars.is-dense{gap:1px}.billing-page .bl-col{min-width:0}.billing-page .bl-stack{display:flex;flex-direction:column-reverse;width:100%;gap:1px;border-radius:2px 2px 0 0;overflow:hidden}.billing-page .bl-stack>i{display:block;min-height:2px;flex-basis:0}.billing-page .bl-col:hover .bl-stack{filter:brightness(1.08)}.billing-page .bl-col.is-zero .bl-stack{height:1px!important;background:var(--border-color)}.billing-page .bl-empty{margin:8px 0 4px;padding:32px 0;text-align:center;color:var(--ink-muted)}.billing-page .bl-plans{margin-bottom:24px}.billing-page .ov-metrics-table thead th.bl-group{text-align:center;border-bottom:1px solid var(--border-color)}.billing-page .ov-metrics-table tfoot td,.billing-page .ov-metrics-table tfoot th{border-top:1px solid var(--border-color);border-bottom:0;font-weight:600;background:var(--paper-bg-alt)}.billing-page .ov-metrics-table tbody tr:last-child>*{border-bottom:0}.billing-page .bl-plan-name{font-weight:500;text-align:left}.billing-page .bl-plan-cell .bl-swatch,.billing-page .bl-plan-name .bl-swatch{margin-right:8px;vertical-align:1px}.billing-page .bl-link{padding:0;border:0;background:0 0;font:inherit;color:var(--link-color);cursor:pointer;text-align:left}.billing-page .bl-link:hover{text-decoration:underline}.billing-page .bl-idle .bl-link,.billing-page .bl-idle td{color:var(--ink-faint)}.billing-page .ov-muted{color:var(--ink-faint)}.billing-page .bl-note{margin:10px 0 0}.billing-page .bl-grants{margin:8px 0 24px;scroll-margin-top:16px}.billing-page .bl-section-head{margin:0 0 8px}.billing-page .bl-section-head h2{margin:0}.billing-page .bl-grant-scroll{margin-top:12px}.billing-page .bl-grant-table th[scope=row]{font-weight:500;text-align:left;max-width:200px;overflow:hidden;text-overflow:ellipsis}.billing-page .bl-grant-table td,.billing-page .bl-grant-table th{padding:9px 12px}.billing-page .bl-grant-table th[scope=row] a,.billing-page .bl-scope a{color:var(--link-color)}.billing-page .bl-grant-table .sortable{display:inline-flex;align-items:center;gap:4px;padding:0;border:0;background:0 0;font:inherit;color:inherit;cursor:pointer}.billing-page .bl-grant-table .sortable.active{color:var(--color)}.billing-page .bl-state{display:inline-flex;align-items:center;gap:6px}.billing-page .bl-state .status-dot{margin:0}.billing-page .bl-plan-cell{white-space:nowrap}.billing-page .bl-flag{display:inline-block;padding:1px 8px;border-radius:999px;font-size:12px;background:color-mix(in srgb,var(--status-progress) 14%,transparent);color:#7a5212}.dark-mode .billing-page .bl-flag{color:var(--status-progress)}.billing-page .bl-flag.is-bad{background:color-mix(in srgb,var(--st-bad,#b42318) 12%,transparent);color:#a1251b}.dark-mode .billing-page .bl-flag.is-bad{color:#f08a82}.billing-page .bl-scope a{display:inline-flex;align-items:center;gap:6px;max-width:200px;min-width:0}.billing-page .bl-scope a>span{overflow:hidden;text-overflow:ellipsis}.billing-page .bl-scope .ui-icon{width:14px;height:14px;flex:none;color:var(--ink-muted)}.billing-page .bl-page{font-family:var(--font-mono);font-size:12px;color:var(--ink-muted)}.billing-page .bl-alert{display:flex;align-items:center;gap:8px;margin:8px 0}.billing-page .bl-alert .btn{margin-left:auto}.billing-page .bl-pager{justify-content:space-between;border-bottom:none;margin-top:8px}.billing-page .paper-table-empty{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:12px}@media (max-width:767px){.billing-page .bl-health{gap:4px 14px}.billing-page .bl-health-title{flex-basis:100%}.billing-page .bl-toolbar .seg-filter{max-width:100%;overflow-x:auto}}.breadcrumb .redact-slot,.files .tree-name .redact-slot{position:relative;top:-.15em}.dark-mode .markdown-body :is(p,li,td,th,blockquote,dd) mark.redact-chip,.markdown-body :is(p,li,td,th,blockquote,dd) mark.redact-chip{vertical-align:.04em!important}.email-help{max-width:75ch;margin:1.5rem 0;color:var(--ink-muted)}.email-toolbar{display:flex;flex-wrap:wrap;align-items:end;gap:1rem;margin-bottom:1.5rem}.email-toolbar label{margin-bottom:0;display:grid;gap:.4rem;font-weight:600}.email-toolbar select{min-width:11rem;max-width:100%}.email-table-wrap{overflow-x:auto}.email-table{width:100%;min-width:720px}.email-table td,.email-table th{padding:.85rem 1rem;text-align:left;vertical-align:top}.email-recipient{overflow-wrap:anywhere;max-width:22rem}.email-detail{display:block;color:var(--ink-muted);overflow-wrap:anywhere;margin-top:.25rem}.email-outcome{font-weight:600}.email-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;align-items:center;margin-top:1rem}.email-table td:last-child .email-detail{white-space:nowrap} \ No newline at end of file diff --git a/public/css/style.css b/public/css/style.css index 67fe091..22ec57b 100644 --- a/public/css/style.css +++ b/public/css/style.css @@ -14328,3 +14328,18 @@ body.dark-mode .reviewer-preview .rp-preserved-tag { background: rgba(251, 191, .files .tree-name .redact-slot, .breadcrumb .redact-slot { position: relative; top: -.15em; } /* Text: the slot centers on the line's letters, level with parentheses and punctuation. */ .markdown-body :is(p, li, td, th, blockquote, dd) mark.redact-chip, .dark-mode .markdown-body :is(p, li, td, th, blockquote, dd) mark.redact-chip { vertical-align: .04em !important; } + +/* Email delivery history uses the existing admin table and form controls. */ +.email-help { max-width: 75ch; margin: 1.5rem 0; color: var(--ink-muted); } +.email-toolbar { display: flex; flex-wrap: wrap; align-items: end; gap: 1rem; margin-bottom: 1.5rem; } +.email-toolbar label { margin-bottom: 0; display: grid; gap: .4rem; font-weight: 600; } +.email-toolbar select { min-width: 11rem; max-width: 100%; } +.email-table-wrap { overflow-x: auto; } +.email-table { width: 100%; min-width: 720px; } +.email-table th, .email-table td { padding: .85rem 1rem; text-align: left; vertical-align: top; } +.email-recipient { overflow-wrap: anywhere; max-width: 22rem; } +.email-detail { display: block; color: var(--ink-muted); overflow-wrap: anywhere; margin-top: .25rem; } +.email-outcome { font-weight: 600; } +.email-footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; align-items: center; margin-top: 1rem; } + +.email-table td:last-child .email-detail { white-space: nowrap; } diff --git a/public/partials/admin/billing.htm b/public/partials/admin/billing.htm index 5160438..97ba49a 100644 --- a/public/partials/admin/billing.htm +++ b/public/partials/admin/billing.htm @@ -13,6 +13,7 @@ Conferences Billing Queues + Emails Errors diff --git a/public/partials/admin/conferences.htm b/public/partials/admin/conferences.htm index 5ec49b3..bcc9343 100644 --- a/public/partials/admin/conferences.htm +++ b/public/partials/admin/conferences.htm @@ -9,6 +9,7 @@ Conferences Billing Queues + Emails Errors diff --git a/public/partials/admin/emails.htm b/public/partials/admin/emails.htm new file mode 100644 index 0000000..9a6aaff --- /dev/null +++ b/public/partials/admin/emails.htm @@ -0,0 +1,48 @@ +
+
+
Admin  /  Emails
+

Emails

+
+ + +

Email attempts recorded since tracking was enabled. Accepted means Resend accepted the message, not that it reached the inbox. Pending and unknown outcomes may need checking in Resend.

+
+ + + +
+ +

Loading email history…

+

No email attempts match these filters.

+
+ + + + + + + + + + + +
+ +
diff --git a/public/partials/admin/errors.htm b/public/partials/admin/errors.htm index a56a47a..f00504d 100644 --- a/public/partials/admin/errors.htm +++ b/public/partials/admin/errors.htm @@ -16,6 +16,7 @@ Conferences Billing Queues + Emails Errors diff --git a/public/partials/admin/overview.htm b/public/partials/admin/overview.htm index d297b81..2303999 100644 --- a/public/partials/admin/overview.htm +++ b/public/partials/admin/overview.htm @@ -15,6 +15,7 @@ Conferences Billing Queues + Emails Errors diff --git a/public/partials/admin/queues.htm b/public/partials/admin/queues.htm index 5a5f6d5..281b249 100644 --- a/public/partials/admin/queues.htm +++ b/public/partials/admin/queues.htm @@ -16,6 +16,7 @@ Conferences Billing Queues + Emails Errors diff --git a/public/partials/admin/repositories.htm b/public/partials/admin/repositories.htm index 7781c74..f09e193 100644 --- a/public/partials/admin/repositories.htm +++ b/public/partials/admin/repositories.htm @@ -9,6 +9,7 @@ Conferences Billing Queues + Emails Errors diff --git a/public/partials/admin/user.htm b/public/partials/admin/user.htm index 99c4b96..27ce5e0 100644 --- a/public/partials/admin/user.htm +++ b/public/partials/admin/user.htm @@ -9,6 +9,7 @@ Conferences Billing Queues + Emails Errors diff --git a/public/partials/admin/users.htm b/public/partials/admin/users.htm index bd4e784..37c7a01 100644 --- a/public/partials/admin/users.htm +++ b/public/partials/admin/users.htm @@ -9,6 +9,7 @@ Conferences Billing Queues + Emails Errors diff --git a/public/script/admin.js b/public/script/admin.js index a7bde8c..426fc24 100644 --- a/public/script/admin.js +++ b/public/script/admin.js @@ -2429,3 +2429,35 @@ export const billingAdminController = function (state, http, location) { recomputeChips(); }, true); }; + +export const emailsAdminController = function (state, http, location) { + if (state.user == null) { location.url("/"); return; } + state.emailRows = []; + state.emailState = ""; + state.emailKind = ""; + state.emailLoading = false; + state.emailError = ""; + state.emailNextCursor = null; + state.emailStatusLabel = (value) => ({ sending: "Outcome pending", accepted: "Accepted", rejected: "Rejected", unknown: "Unknown outcome" }[value] || value); + state.emailKindLabel = (value) => value === "repository-expiration" ? "Repository expiration" : "GitHub access"; + state.emailTime = (value) => value ? new Date(value).toLocaleString() : "Not recorded"; + let generation = 0; + state.loadEmails = async (more = false) => { + const current = ++generation; + state.emailLoading = true; + state.emailError = ""; + if (!more) { state.emailRows = []; state.emailNextCursor = null; } + try { + const response = await http.get("/api/admin/emails", { params: { + state: state.emailState || undefined, kind: state.emailKind || undefined, + before: more ? state.emailNextCursor : undefined, + } }); + if (current !== generation) return; + state.emailRows = more ? state.emailRows.concat(response.data.entries) : response.data.entries; + state.emailNextCursor = response.data.nextCursor; + } catch { + if (current === generation) state.emailError = "Could not load email history. Try again."; + } finally { if (current === generation) state.emailLoading = false; } + }; + state.loadEmails(); +}; diff --git a/public/script/routes.js b/public/script/routes.js index 42d8d2b..1086c9d 100644 --- a/public/script/routes.js +++ b/public/script/routes.js @@ -29,6 +29,7 @@ export const pageRoutes = [ {path: "/admin/users", template: "partials/admin/users.htm", title: "Admin · Users – Anonymous GitHub", preserveExplorer: false, setup: (state, services) => admin.usersAdminController(state, services.http, services.location)}, {path: "/admin/users/:username", template: "partials/admin/user.htm", title: "Admin · User details – Anonymous GitHub", preserveExplorer: false, setup: (state, services) => admin.userAdminController(state, services.http, services.location, services.params)}, {path: "/admin/conferences", template: "partials/admin/conferences.htm", title: "Admin · Conferences – Anonymous GitHub", preserveExplorer: false, setup: (state, services) => admin.conferencesAdminController(state, services.http, services.location)}, +{path: "/admin/emails", template: "partials/admin/emails.htm", title: "Admin · Emails – Anonymous GitHub", preserveExplorer: false, setup: (state, services) => admin.emailsAdminController(state, services.http, services.location)}, {path: "/admin/billing", template: "partials/admin/billing.htm", title: "Admin · Billing – Anonymous GitHub", preserveExplorer: false, setup: (state, services) => admin.billingAdminController(state, services.http, services.location)}, {path: "/admin/queues", template: "partials/admin/queues.htm", title: "Admin · Queues – Anonymous GitHub", preserveExplorer: false, setup: (state, services) => admin.queuesAdminController(state, services.http, services.location, services.interval, services.timeout)}, {path: "/admin/errors", template: "partials/admin/errors.htm", title: "Admin · Errors – Anonymous GitHub", preserveExplorer: false, setup: (state, services) => admin.errorsAdminController(state, services.http, services.location, services.interval)}, diff --git a/public/script/templates.js b/public/script/templates.js index 60154f2..dae970d 100644 --- a/public/script/templates.js +++ b/public/script/templates.js @@ -1,3 +1,4 @@ +import { render as adminEmailsTemplate } from "../partials/admin/emails.htm"; import { render as reviewConsentTemplate } from "../partials/reviewConsent.htm"; import { render as connectionsTemplate } from "../partials/connections.htm"; import { render as signinTemplate } from "../partials/signin.htm"; @@ -35,6 +36,7 @@ export const templates = { "partials/signin.htm": signinTemplate, "partials/404.htm": template0, "partials/admin/billing.htm": adminBillingTemplate, + "partials/admin/emails.htm": adminEmailsTemplate, "partials/admin/conferences.htm": template1, "partials/admin/errors.htm": template2, "partials/admin/overview.htm": template3, diff --git a/public/script/vendor.min.js b/public/script/vendor.min.js index efacbce..ca8d2f6 100644 --- a/public/script/vendor.min.js +++ b/public/script/vendor.min.js @@ -1,52 +1,52 @@ -"use strict";(()=>{var el=Object.defineProperty;var tl=e=>{throw TypeError(e)};var nf=(e,t,s)=>t in e?el(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s;var sf=(e,t)=>{for(var s in t)el(e,s,{get:t[s],enumerable:!0})};var xe=(e,t,s)=>nf(e,typeof t!="symbol"?t+"":t,s),mr=(e,t,s)=>t.has(e)||tl("Cannot "+s);var re=(e,t,s)=>(mr(e,t,"read from private field"),s?s.call(e):t.get(e)),qe=(e,t,s)=>t.has(e)?tl("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,s),Le=(e,t,s,i)=>(mr(e,t,"write to private field"),i?i.call(e,s):t.set(e,s),s),_e=(e,t,s)=>(mr(e,t,"access private method"),s);var nl=(e,t,s,i)=>({set _(o){Le(e,t,o,s)},get _(){return re(e,t,i)}});var ge=["abap","abc","actionscript","ada","alda","apache_conf","apex","applescript","aql","asciidoc","asl","assembly_x86","autohotkey","batchfile","c9search","c_cpp","cirru","clojure","cobol","coffee","coldfusion","crystal","csharp","csound_document","csound_orchestra","csound_score","csp","css","curly","d","dart","diff","django","dockerfile","dot","drools","edifact","eiffel","ejs","elixir","elm","erlang","forth","fortran","fsharp","fsl","ftl","gcode","gherkin","gitignore","glsl","gobstones","golang","graphqlschema","groovy","haml","handlebars","haskell","haskell_cabal","haxe","hjson","html","html_elixir","html_ruby","ini","io","jack","jade","java","javascript","json","json5","jsoniq","jsp","jssm","jsx","julia","kotlin","latex","less","liquid","lisp","livescript","logiql","logtalk","lsl","lua","luapage","lucene","makefile","markdown","mask","matlab","maze","mediawiki","mel","mixal","mushcode","mysql","nginx","nim","nix","nsis","nunjucks","objectivec","ocaml","pascal","perl","perl6","pgsql","php","php_laravel_blade","pig","plain_text","powershell","praat","prisma","prolog","properties","protobuf","puppet","python","qml","r","razor","rdoc","red","redshift","rhtml","rst","ruby","rust","sass","scad","scala","scheme","scss","sh","sjs","slim","smarty","snippets","soy_template","space","sparql","sql","sqlserver","stylus","svg","swift","tcl","terraform","tex","text","textile","toml","tsx","turtle","twig","typescript","vala","vbscript","velocity","verilog","vhdl","visualforce","wollok","xml","xquery","yaml","zeek"];var ve={markdown:"/script/markdown.6c8dfb7b1d.min.js",notebook:"/script/notebook.c3144c18ae.min.js",org:"/script/org.f61f262915.min.js",editor:"/script/editor.4f142d3adc.min.js",pdf:"/script/pdf.4d9cc6ff49.min.js"};function sl(e){let t=e.location.hash.slice(1);if(e.history.replaceState(null,"","/review-link"),t.length>2048)return null;let s=new URLSearchParams(t);if([...s.keys()].length!==3||[...s.keys()].some(d=>!["clientId","intentId","token"].includes(d)))return null;let i=s.get("clientId"),o=s.get("intentId"),r=s.get("token");return!/^[a-f0-9]{32}$/.test(i||"")||!/^[a-f0-9]{32}$/.test(o||"")||!/^[a-f0-9]{64}$/.test(r||"")?null:{contract:"4open.artifacts/1",clientId:i,intentId:o,token:r}}function ol(e,t){let{http:s,promises:i,window:o}=t,r=t.takeReviewHandoff(),d=r?{clientId:r.clientId,intentId:r.intentId}:null,p,u,y,m,b,h=!0,w,R=i.defer(),S=()=>[...o.crypto.getRandomValues(new Uint8Array(16))].map(V=>V.toString(16).padStart(2,"0")).join("");Object.assign(e,{repositoryId:"",handoffEnabled:!1,busy:!1,preview:null,acceptAccess:!1,acceptRetention:!1,uncertain:!1,saved:!1,expired:!1,error:r?"":"Open a new artifact link from your submission. This link is missing or invalid."});let N=()=>h&&e.user?.username===b;function v(){h=!1,r=p=u=void 0,R.resolve(),o.clearTimeout(w)}e.on("dispose",v),e.on("routeLeave",v),e.watch(()=>e.user?.username,V=>{!b&&V?b=V:b&&V!==b&&(v(),e.preview=null,e.repositoryId="",e.busy=!1,e.saved=!1,e.handoffEnabled=!1,e.error="Your account changed. Open a new artifact link from your submission.")});let E=()=>({timeout:R.promise,headers:{"Content-Type":"application/json","X-Review-CSRF":u}}),M=V=>V?.status===404?"Artifact linking is not available on this server.":V?.status===401?"Sign in, then open a new artifact link from your submission.":V?.status===403?"This account cannot approve this repository or this link.":"The request could not be completed. You can retry from this page.";e.loadPreview=async()=>{if(!h||!r||e.busy||e.uncertain||e.saved||!e.user?.username)return;b=e.user.username;let V=e.repositoryId.trim();if(!/^[A-Za-z0-9_-]{3,128}$/.test(V)){e.error="Enter the anonymous repository ID from its URL.";return}e.busy=!0,e.error="",e.preview=null,p=void 0,e.acceptAccess=e.acceptRetention=!1,e.expired=!1,o.clearTimeout(w),m||(m=S());try{let _=(await s.get("/api/review-consent/csrf",{timeout:R.promise})).data;if(!N())return;if(u=_.csrf,e.handoffEnabled=_.handoffEnabled===!0,!/^[a-f0-9]{64}$/.test(u||""))throw new Error("invalid_csrf");let G=(await s.post("/api/review-consent/preview",{repositoryId:V,intent:{...r,requestId:m}},E())).data;if(!N())return;if(!G||typeof G.ticket!="string"||!G.ticket||G.ticket.length>8192||typeof G.repositoryName!="string"||!["restricted-review","anonymous-link"].includes(G.policy?.access)||!Number.isSafeInteger(G.policy.version)||!Number.isFinite(Date.parse(G.policy.retainUntil))||!Number.isFinite(Date.parse(G.expiresAt))||Date.parse(G.expiresAt)<=Date.now()||Date.parse(G.expiresAt)>Date.now()+6e5)throw new Error("invalid_preview");p=G.ticket,y=S(),e.preview={repositoryName:G.repositoryName,policy:{...G.policy},expiresAt:G.expiresAt},w=o.setTimeout(()=>{h&&(e.expired=!0)},Math.max(0,Date.parse(G.expiresAt)-Date.now()))}catch(_){N()&&(e.error=M(_))}finally{N()&&(e.busy=!1)}},e.confirmConsent=async()=>{if(!(!N()||e.busy||e.saved||!p||!e.acceptAccess||!e.acceptRetention)){if(Date.parse(e.preview.expiresAt)<=Date.now()){e.expired=!0;return}e.busy=!0,e.error="";try{let V=(await s.post("/api/review-consent/confirm",{ticket:p,requestId:y,acceptAccess:!0,acceptRetention:!0},E())).data;if(!N())return;if(V?.requestId!==y||!Number.isFinite(Date.parse(V.confirmedAt)))throw new Error("invalid_receipt");e.saved=!0,e.uncertain=!1,r=void 0,e.handoffEnabled||(p=void 0)}catch{N()&&(e.uncertain=!0,e.error="The confirmation was not verified. Retry with the same approval, or return to your submission to check its status.")}finally{N()&&(e.busy=!1)}}},e.continueReview=async()=>{if(!N()||e.busy||!e.saved||!e.handoffEnabled||!p||!d)return;e.busy=!0,e.error="";let V,_=()=>{V?.remove(),o.removeEventListener("securitypolicyviolation",G)},G=te=>{te.violatedDirective?.startsWith("form-action")&&(_(),N()&&(e.busy=!1,e.error="The return address was blocked. Return to your submission to check the artifact status."))};try{let te=(await s.post("/api/review-consent/handoff",{ticket:p},E())).data;if(!N())return;let X=te?.completion,O=new URL(te?.callbackUrl);if(!X||Object.keys(X).sort().join(",")!=="clientId,code,contract,expiresAt,intentId"||X.contract!=="4open.artifacts/1"||X.clientId!==d.clientId||X.intentId!==d.intentId||!/^[a-f0-9]{64}$/.test(X.code||"")||!Number.isFinite(Date.parse(X.expiresAt))||Date.parse(X.expiresAt)<=Date.now()||Date.parse(X.expiresAt)>Date.now()+3e5||O.protocol!=="https:"||O.href!==te.callbackUrl||O.username||O.password||te.callbackUrl.includes("?")||te.callbackUrl.includes("#"))throw new Error("invalid_handoff");V=o.document.createElement("form"),V.method="POST",V.action=O.href;let U=o.document.createElement("input");U.type="hidden",U.name="completion",U.value=JSON.stringify(X),V.appendChild(U),o.document.body.appendChild(V),o.addEventListener("securitypolicyviolation",G),e.on("dispose",_),V.submit()}catch{_(),N()&&(e.busy=!1,e.error="The return to review could not be prepared. Retry from this page, or return to your submission to check its status.")}}}var ti=new Map,af=ve;function Jn(e){if(!ti.has(e)){let t=document.createElement("script");t.src=af[e];let s=new Promise((i,o)=>{t.onload=i,t.onerror=()=>{ti.delete(e),t.remove(),o(new Error(`Unable to load ${e}. Please retry.`))}});ti.set(e,s),document.head.appendChild(t)}return ti.get(e)}async function ni(){await Jn("editor"),ace.config.set("basePath","/script/external/ace/")}function Ns(e){let t=Object.create(null);for(let s of e.split(","))t[s]=1;return s=>s in t}var Ze={},In=[],Tt=()=>{},vr=()=>!1,Rs=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Ps=e=>e.startsWith("onUpdate:"),ct=Object.assign,eo=(e,t)=>{let s=e.indexOf(t);s>-1&&e.splice(s,1)},lf=Object.prototype.hasOwnProperty,je=(e,t)=>lf.call(e,t),Ne=Array.isArray,yn=e=>to(e)==="[object Map]",Yt=e=>to(e)==="[object Set]",il=e=>to(e)==="[object Date]";var Te=e=>typeof e=="function",it=e=>typeof e=="string",_t=e=>typeof e=="symbol",Ye=e=>e!==null&&typeof e=="object",yr=e=>(Ye(e)||Te(e))&&Te(e.then)&&Te(e.catch),dl=Object.prototype.toString,to=e=>dl.call(e),br=e=>to(e).slice(8,-1),si=e=>to(e)==="[object Object]",oi=e=>it(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,As=Ns(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted");var ii=e=>{let t=Object.create(null);return(s=>t[s]||(t[s]=e(s)))},df=/-\w/g,ht=ii(e=>e.replace(df,t=>t.slice(1).toUpperCase())),uf=/\B([A-Z])/g,sn=ii(e=>e.replace(uf,"-$1").toLowerCase()),Qn=ii(e=>e.charAt(0).toUpperCase()+e.slice(1)),no=ii(e=>e?`on${Qn(e)}`:""),zt=(e,t)=>!Object.is(e,t),Ds=(e,...t)=>{for(let s=0;s{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:i,value:s})},Ts=e=>{let t=parseFloat(e);return isNaN(t)?e:t};var rl,so=()=>rl||(rl=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Ie(e){if(Ne(e)){let t={};for(let s=0;ss.startsWith("/*")?"":s).split(cf).forEach(s=>{if(s){let i=s.split(pf);i.length>1&&(t[i[0].trim()]=i[1].trim())}}),t}function P(e){let t="";if(it(e))t=e;else if(Ne(e))for(let s=0;sXt(s,t))}var pl=e=>!!(e&&e.__v_isRef===!0),c=e=>it(e)?e:e==null?"":Ne(e)||Ye(e)&&(e.toString===dl||!Te(e.toString))?pl(e)?c(e.value):JSON.stringify(e,fl,2):String(e),fl=(e,t)=>pl(t)?fl(e,t.value):yn(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((s,[i,o],r)=>(s[gr(i,r)+" =>"]=o,s),{})}:Yt(t)?{[`Set(${t.size})`]:[...t.values()].map(s=>gr(s))}:_t(t)?gr(t):Ye(t)&&!Ne(t)&&!si(t)?String(t):t,gr=(e,t="")=>{var s;return _t(e)?`Symbol(${(s=e.description)!=null?s:t})`:e};function yf(e,...t){console.warn(`[Vue warn] ${e}`,...t)}var mt,ao=class{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&mt&&(mt.active?(this.parent=mt,this.index=(mt.scopes||(mt.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,s;if(this.scopes){let i=this.scopes.slice();for(t=0,s=i.length;t0&&--this._on===0){if(mt===this)mt=this.prevScope;else{let t=mt;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let s,i;for(s=0,i=this.effects.length;s0)return;if(ro){let t=ro;for(ro=void 0;t;){let s=t.next;t.next=void 0,t.flags&=-9,t=s}}let e;for(;io;){let t=io;for(io=void 0;t;){let s=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(i){e||(e=i)}t=s}}if(e)throw e}function wl(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function kl(e){let t,s=e.depsTail,i=s;for(;i;){let o=i.prevDep;i.version===-1?(i===s&&(s=o),Mr(i),bf(i)):t=i,i.dep.activeLink=i.prevActiveLink,i.prevActiveLink=void 0,i=o}e.deps=t,e.depsTail=s}function Er(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Cl(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Cl(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===lo)||(e.globalVersion=lo,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Er(e))))return;e.flags|=2;let t=e.dep,s=nt,i=Jt;nt=e,Jt=!0;try{wl(e);let o=e.fn(e._value);(t.version===0||zt(o,e._value))&&(e.flags|=128,e._value=o,t.version++)}catch(o){throw t.version++,o}finally{nt=s,Jt=i,kl(e),e.flags&=-3}}function Mr(e,t=!1){let{dep:s,prevSub:i,nextSub:o}=e;if(i&&(i.nextSub=o,e.prevSub=void 0),o&&(o.prevSub=i,e.nextSub=void 0),s.subs===e&&(s.subs=i,!i&&s.computed)){s.computed.flags&=-5;for(let r=s.computed.deps;r;r=r.nextDep)Mr(r,!0)}!t&&!--s.sc&&s.map&&s.map.delete(s.key)}function bf(e){let{prevDep:t,nextDep:s}=e;t&&(t.nextDep=s,e.prevDep=void 0),s&&(s.prevDep=t,e.nextDep=void 0)}var Jt=!0,El=[];function Qt(){El.push(Jt),Jt=!1}function Zt(){let e=El.pop();Jt=e===void 0?!0:e}function hl(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let s=nt;nt=void 0;try{t()}finally{nt=s}}}var lo=0,Sr=class{constructor(t,s){this.sub=t,this.dep=s,this.version=s.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}},uo=class{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!nt||!Jt||nt===this.computed)return;let s=this.activeLink;if(s===void 0||s.sub!==nt)s=this.activeLink=new Sr(nt,this),nt.deps?(s.prevDep=nt.depsTail,nt.depsTail.nextDep=s,nt.depsTail=s):nt.deps=nt.depsTail=s,Sl(s);else if(s.version===-1&&(s.version=this.version,s.nextDep)){let i=s.nextDep;i.prevDep=s.prevDep,s.prevDep&&(s.prevDep.nextDep=i),s.prevDep=nt.depsTail,s.nextDep=void 0,nt.depsTail.nextDep=s,nt.depsTail=s,nt.deps===s&&(nt.deps=i)}return s}trigger(t){this.version++,lo++,this.notify(t)}notify(t){Or();try{for(let s=this.subs;s;s=s.prevSub)s.sub.notify()&&s.sub.dep.notify()}finally{Ir()}}};function Sl(e){if(e.dep.sc++,e.sub.flags&4){let t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let i=t.deps;i;i=i.nextDep)Sl(i)}let s=e.dep.subs;s!==e&&(e.prevSub=s,s&&(s.nextSub=e)),e.dep.subs=e}}var Nr=new WeakMap,xn=Symbol(""),Rr=Symbol(""),co=Symbol("");function Et(e,t,s){if(Jt&&nt){let i=Nr.get(e);i||Nr.set(e,i=new Map);let o=i.get(s);o||(i.set(s,o=new uo),o.map=i,o.key=s),o.track()}}function rn(e,t,s,i,o,r){let d=Nr.get(e);if(!d){lo++;return}let p=u=>{u&&u.trigger()};if(Or(),t==="clear")d.forEach(p);else{let u=Ne(e),y=u&&oi(s);if(u&&s==="length"){let m=Number(i);d.forEach((b,h)=>{(h==="length"||h===co||!_t(h)&&h>=m)&&p(b)})}else switch((s!==void 0||d.has(void 0))&&p(d.get(s)),y&&p(d.get(co)),t){case"add":u?y&&p(d.get("length")):(p(d.get(xn)),yn(e)&&p(d.get(Rr)));break;case"delete":u||(p(d.get(xn)),yn(e)&&p(d.get(Rr)));break;case"set":yn(e)&&p(d.get(xn));break}}Ir()}function Os(e){let t=We(e);return t===e||(Et(t,"iterate",co),Ot(e))?t:Ht(e)?ln(e)?t.map(s=>wn($t(s))):t.map(wn):t.map($t)}function po(e){return Et(e=We(e),"iterate",co),e}function on(e,t){return Ht(e)?wn(ln(e)?$t(t):t):$t(t)}var wf={__proto__:null,[Symbol.iterator](){return kr(this,Symbol.iterator,e=>on(this,e))},concat(...e){return Os(this).concat(...e.map(t=>Ne(t)?Os(t):t))},entries(){return kr(this,"entries",e=>(e[1]=on(this,e[1]),e))},every(e,t){return bn(this,"every",e,t,void 0,arguments)},filter(e,t){return bn(this,"filter",e,t,s=>s.map(i=>on(this,i)),arguments)},find(e,t){return bn(this,"find",e,t,s=>on(this,s),arguments)},findIndex(e,t){return bn(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return bn(this,"findLast",e,t,s=>on(this,s),arguments)},findLastIndex(e,t){return bn(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return bn(this,"forEach",e,t,void 0,arguments)},includes(...e){return Cr(this,"includes",e)},indexOf(...e){return Cr(this,"indexOf",e)},join(e){return Os(this).join(e)},lastIndexOf(...e){return Cr(this,"lastIndexOf",e)},map(e,t){return bn(this,"map",e,t,void 0,arguments)},pop(){return oo(this,"pop")},push(...e){return oo(this,"push",e)},reduce(e,...t){return gl(this,"reduce",e,t)},reduceRight(e,...t){return gl(this,"reduceRight",e,t)},shift(){return oo(this,"shift")},some(e,t){return bn(this,"some",e,t,void 0,arguments)},splice(...e){return oo(this,"splice",e)},toReversed(){return Os(this).toReversed()},toSorted(e){return Os(this).toSorted(e)},toSpliced(...e){return Os(this).toSpliced(...e)},unshift(...e){return oo(this,"unshift",e)},values(){return kr(this,"values",e=>on(this,e))}};function kr(e,t,s){let i=po(e),o=i[t],r=o.call(i);if(i!==e&&!Ot(e)){if(r[Symbol.toStringTag]==="Array Iterator"){let d=Object.create(Object.getPrototypeOf(r));return d.next=()=>ml(r.next(),s),o!==Nl[t]&&Object.defineProperties(d,{return:{get(){let p=r.return;return typeof p=="function"?p.bind(r):p}},throw:{get(){let p=r.throw;return typeof p=="function"?p.bind(r):p}}}),d}r._next=r.next,r.next=()=>ml(r._next(),s)}return r}function ml(e,t){return e.done||(e.value=t(e.value)),e}var Nl=Array.prototype;function bn(e,t,s,i,o,r){let d=po(e),p=d!==e&&!Ot(e),u=d[t];if(u!==Nl[t]){let b=u.apply(e,r);return p?$t(b):b}let y=s;d!==e&&(p?y=function(b,h){return s.call(this,on(e,b),h,e)}:s.length>2&&(y=function(b,h){return s.call(this,b,h,e)}));let m=u.call(d,y,i);return p&&o?o(m):m}function gl(e,t,s,i){let o=po(e),r=o!==e&&!Ot(e),d=s,p=!1;o!==e&&(r?(p=i.length===0,d=function(y,m,b){return p&&(p=!1,y=on(e,y)),s.call(this,y,on(e,m),b,e)}):s.length>3&&(d=function(y,m,b){return s.call(this,y,m,b,e)}));let u=o[t](d,...i);return p?on(e,u):u}function Cr(e,t,s){let i=We(e);Et(i,"iterate",co);let o=i[t](...s);return(o===-1||o===!1)&&ho(s[0])?(s[0]=We(s[0]),i[t](...s)):o}function oo(e,t,s=[]){Qt(),Or();let i=We(e)[t].apply(e,s);return Ir(),Zt(),i}var kf=Ns("__proto__,__v_isRef,__isVue"),Rl=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(_t));function Cf(e){_t(e)||(e=String(e));let t=We(this);return Et(t,"has",e),t.hasOwnProperty(e)}var pi=class{constructor(t=!1,s=!1){this._isReadonly=t,this._isShallow=s}get(t,s,i){if(s==="__v_skip")return t.__v_skip;let o=this._isReadonly,r=this._isShallow;if(s==="__v_isReactive")return!o;if(s==="__v_isReadonly")return o;if(s==="__v_isShallow")return r;if(s==="__v_raw")return i===(o?r?Of:Dl:r?Al:Pl).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(i)?t:void 0;let d=Ne(t);if(!o){let u;if(d&&(u=wf[s]))return u;if(s==="hasOwnProperty")return Cf}let p=Reflect.get(t,s,wt(t)?t:i);if((_t(s)?Rl.has(s):kf(s))||(o||Et(t,"get",s),r))return p;if(wt(p)){let u=d&&oi(s)?p:p.value;return o&&Ye(u)?hi(u):u}return Ye(p)?o?hi(p):st(p):p}},fi=class extends pi{constructor(t=!1){super(!1,t)}set(t,s,i,o){let r=t[s],d=Ne(t)&&oi(s);if(!this._isShallow){let y=Ht(r);if(!Ot(i)&&!Ht(i)&&(r=We(r),i=We(i)),!d&&wt(r)&&!wt(i))return y||(r.value=i),!0}let p=d?Number(s)e,di=e=>Reflect.getPrototypeOf(e);function Rf(e,t,s){return function(...i){let o=this.__v_raw,r=We(o),d=yn(r),p=e==="entries"||e===Symbol.iterator&&d,u=e==="keys"&&d,y=o[e](...i),m=s?Ar:t?wn:$t;return!t&&Et(r,"iterate",u?Rr:xn),ct(Object.create(y),{next(){let{value:b,done:h}=y.next();return h?{value:b,done:h}:{value:p?[m(b[0]),m(b[1])]:m(b),done:h}}})}}function ui(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Pf(e,t){let s={get(o){let r=this.__v_raw,d=We(r),p=We(o);e||(zt(o,p)&&Et(d,"get",o),Et(d,"get",p));let{has:u}=di(d),y=t?Ar:e?wn:$t;if(u.call(d,o))return y(r.get(o));if(u.call(d,p))return y(r.get(p));r!==d&&r.get(o)},get size(){let o=this.__v_raw;return!e&&Et(We(o),"iterate",xn),o.size},has(o){let r=this.__v_raw,d=We(r),p=We(o);return e||(zt(o,p)&&Et(d,"has",o),Et(d,"has",p)),o===p?r.has(o):r.has(o)||r.has(p)},forEach(o,r){let d=this,p=d.__v_raw,u=We(p),y=t?Ar:e?wn:$t;return!e&&Et(u,"iterate",xn),p.forEach((m,b)=>o.call(r,y(m),y(b),d))}};return ct(s,e?{add:ui("add"),set:ui("set"),delete:ui("delete"),clear:ui("clear")}:{add(o){let r=We(this),d=di(r),p=We(o),u=!t&&!Ot(o)&&!Ht(o)?p:o;return d.has.call(r,u)||zt(o,u)&&d.has.call(r,o)||zt(p,u)&&d.has.call(r,p)||(r.add(u),rn(r,"add",u,u)),this},set(o,r){!t&&!Ot(r)&&!Ht(r)&&(r=We(r));let d=We(this),{has:p,get:u}=di(d),y=p.call(d,o);y||(o=We(o),y=p.call(d,o));let m=u.call(d,o);return d.set(o,r),y?zt(r,m)&&rn(d,"set",o,r,m):rn(d,"add",o,r),this},delete(o){let r=We(this),{has:d,get:p}=di(r),u=d.call(r,o);u||(o=We(o),u=d.call(r,o));let y=p?p.call(r,o):void 0,m=r.delete(o);return u&&rn(r,"delete",o,void 0,y),m},clear(){let o=We(this),r=o.size!==0,d=void 0,p=o.clear();return r&&rn(o,"clear",void 0,void 0,d),p}}),["keys","values","entries",Symbol.iterator].forEach(o=>{s[o]=Rf(o,e,t)}),s}function Vr(e,t){let s=Pf(e,t);return(i,o,r)=>o==="__v_isReactive"?!e:o==="__v_isReadonly"?e:o==="__v_isShallow"?t:o==="__v_raw"?i:Reflect.get(je(s,o)&&o in i?s:i,o,r)}var Af={get:Vr(!1,!1)},Df={get:Vr(!1,!0)},Tf={get:Vr(!0,!1)};var Pl=new WeakMap,Al=new WeakMap,Dl=new WeakMap,Of=new WeakMap;function If(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function st(e){return Ht(e)?e:qr(e,!1,Ef,Af,Pl)}function fo(e){return qr(e,!1,Nf,Df,Al)}function hi(e){return qr(e,!0,Sf,Tf,Dl)}function qr(e,t,s,i,o){if(!Ye(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;let r=o.get(e);if(r)return r;let d=If(br(e));if(d===0)return e;let p=new Proxy(e,d===2?i:s);return o.set(e,p),p}function ln(e){return Ht(e)?ln(e.__v_raw):!!(e&&e.__v_isReactive)}function Ht(e){return!!(e&&e.__v_isReadonly)}function Ot(e){return!!(e&&e.__v_isShallow)}function ho(e){return e?!!e.__v_raw:!1}function We(e){let t=e&&e.__v_raw;return t?We(t):e}function dn(e){return!je(e,"__v_skip")&&Object.isExtensible(e)&&ri(e,"__v_skip",!0),e}var $t=e=>Ye(e)?st(e):e,wn=e=>Ye(e)?hi(e):e;function wt(e){return e?e.__v_isRef===!0:!1}function St(e){return Tl(e,!1)}function gi(e){return Tl(e,!0)}function Tl(e,t){return wt(e)?e:new Dr(e,t)}var Dr=class{constructor(t,s){this.dep=new uo,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=s?t:We(t),this._value=s?t:$t(t),this.__v_isShallow=s}get value(){return this.dep.track(),this._value}set value(t){let s=this._rawValue,i=this.__v_isShallow||Ot(t)||Ht(t);t=i?t:We(t),zt(t,s)&&(this._rawValue=t,this._value=i?t:$t(t),this.dep.trigger())}};function kn(e){return wt(e)?e.value:e}var Mf={get:(e,t,s)=>t==="__v_raw"?e:kn(Reflect.get(e,t,s)),set:(e,t,s,i)=>{let o=e[t];return wt(o)&&!wt(s)?(o.value=s,!0):Reflect.set(e,t,s,i)}};function vi(e){return ln(e)?e:new Proxy(e,Mf)}var Tr=class{constructor(t,s,i){this.fn=t,this.setter=s,this._value=void 0,this.dep=new uo(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=lo-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!s,this.isSSR=i}notify(){if(this.flags|=16,!(this.flags&8)&&nt!==this)return bl(this,!0),!0}get value(){let t=this.dep.track();return Cl(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}};function Ol(e,t,s=!1){let i,o;return Te(e)?i=e:(i=e.get,o=e.set),new Tr(i,o,s)}var ci={},mi=new WeakMap,Zn;function Il(e,t=!1,s=Zn){if(s){let i=mi.get(s);i||mi.set(s,i=[]),i.push(e)}}function Ml(e,t,s=Ze){let{immediate:i,deep:o,once:r,scheduler:d,augmentJob:p,call:u}=s,y=_=>{(s.onWarn||yf)("Invalid watch source: ",_,"A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.")},m=_=>o?_:Ot(_)||o===!1||o===0?an(_,1):an(_),b,h,w,R,S=!1,N=!1;if(wt(e)?(h=()=>e.value,S=Ot(e)):ln(e)?(h=()=>m(e),S=!0):Ne(e)?(N=!0,S=e.some(_=>ln(_)||Ot(_)),h=()=>e.map(_=>{if(wt(_))return _.value;if(ln(_))return m(_);if(Te(_))return u?u(_,2):_()})):Te(e)?t?h=u?()=>u(e,2):e:h=()=>{if(w){Qt();try{w()}finally{Zt()}}let _=Zn;Zn=b;try{return u?u(e,3,[R]):e(R)}finally{Zn=_}}:h=Tt,t&&o){let _=h,G=o===!0?1/0:o;h=()=>an(_(),G)}let v=vl(),E=()=>{b.stop(),v&&v.active&&eo(v.effects,b)};if(r&&t){let _=t;t=(...G)=>{try{return _(...G)}finally{E()}}}let M=N?new Array(e.length).fill(ci):ci,V=_=>{if(!(!(b.flags&1)||!b.dirty&&!_))if(t){let G=b.run();if(_||o||S||(N?G.some((te,X)=>zt(te,M[X])):zt(G,M))){let te=Zn;Qt();try{w&&w(),Zn=b;let X=[G,M===ci?void 0:N&&M[0]===ci?[]:M,R];M=G,u?u(t,3,X):t(...X)}finally{Zn=te,Zt()}}}else b.run()};return p&&p(V),b=new Is(h),b.scheduler=d?()=>d(V,!1):V,R=_=>Il(_,!1,b),w=b.onStop=()=>{let _=mi.get(b);if(_){if(u)u(_,4);else for(let G of _)G();mi.delete(b)}},t?i?V(!0):M=b.run():d?d(V.bind(null,!0),!0):b.run(),E.pause=b.pause.bind(b),E.resume=b.resume.bind(b),E.stop=E,E}function an(e,t=1/0,s){if(t<=0||!Ye(e)||e.__v_skip||(s=s||new Map,(s.get(e)||0)>=t))return e;if(s.set(e,t),t--,wt(e))an(e.value,t,s);else if(Ne(e))for(let i=0;i{an(i,t,s)});else if(si(e)){for(let i in e)an(e[i],t,s);for(let i of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,i)&&an(e[i],t,s)}return e}function Ro(e,t,s,i){try{return i?e(...i):e()}catch(o){Po(o,t,s)}}function jt(e,t,s,i){if(Te(e)){let o=Ro(e,t,s,i);return o&&yr(o)&&o.catch(r=>{Po(r,t,s)}),o}if(Ne(e)){let o=[];for(let r=0;r>>1,o=At[i],r=ko(o);r=ko(s)?At.push(e):At.splice(Lf(t),0,e),e.flags|=1,Jl()}}function Jl(){wi||(wi=Xl.then(ed))}function Ql(e){if(!Ne(e))Mn&&e.id===-1?Mn.splice(Ms+1,0,e):e.flags&1||(cn.push(e),e.flags|=1);else for(let t=0;t=t))continue;At.splice(i,1),i=e?i-1:xt,o.flags&4&&(o.flags&=-2),o(),o.flags&4||(o.flags&=-2)}}}function xl(e,t,s=0){if(cn.length){let i=cn,o=0;if(t){i=[];for(let d=0;dko(d)-ko(p));if(cn.length=o,Mn){for(let d=0;de.id==null?e.flags&2?-1:1/0:e.id;function ed(e){let t=Tt;try{for(xt=0;xt{i._d&&Si(-1);let r=ki(t),d=ss.length,p;try{p=e(...o)}finally{for(let u=ss.length;u>d;u--)Td();ki(r),i._d&&Si(1)}return p};return i._n=!0,i._c=!0,i._d=!0,i}function D(e,t){if(Lt===null)return e;let s=Ii(Lt),i=e.dirs||(e.dirs=[]);for(let o=0;o1)return s&&Te(t)?t.call(i&&i.proxy):t}}var Bf=Symbol.for("v-scx"),zf=()=>{{let e=Mt(Bf);return e}};function dt(e,t,s){return nd(e,t,s)}function nd(e,t,s=Ze){let{immediate:i,deep:o,flush:r,once:d}=s,p=ct({},s),u=t&&i||!t&&r!=="post",y;if(_s){if(r==="sync"){let w=zf();y=w.__watcherHandles||(w.__watcherHandles=[])}else if(!u){let w=()=>{};return w.stop=Tt,w.resume=Tt,w.pause=Tt,w}}let m=Nt;p.call=(w,R,S)=>jt(w,m,R,S);let b=!1;r==="post"?p.scheduler=w=>{w.i=m,It(w,m&&m.suspense)}:r!=="sync"&&(b=!0,p.scheduler=(w,R)=>{R?w():Kr(w)}),p.augmentJob=w=>{t&&(w.flags|=4),b&&(w.flags|=2,m&&(w.id=m.uid,w.i=m))};let h=Ml(e,t,p);return _s&&(y?y.push(h):u&&h()),h}function Hf(e,t,s){let i=this.proxy,o=it(e)?e.includes(".")?sd(i,e):()=>i[e]:e.bind(i,i),r;Te(t)?r=t:(r=t.handler,s=t);let d=To(this),p=nd(o,r.bind(i),s);return d(),p}function sd(e,t){let s=t.split(".");return()=>{let i=e;for(let o=0;oe.__isTeleport;var $r=Symbol("_leaveCb");function Gf(e){let t=e[0];if(e.length>1){let s=!1;for(let i of e)if(i.type!==en){t=i,s=!0;break}}return t}function od(e){if(!Ai(e))return Pi(e.type)&&e.children?Gf(e.children):e;if(e.component)return e.component.subTree;let{shapeFlag:t,children:s}=e;if(s){if(t&16)return s[0];if(t&32&&Te(s.default))return s.default()}}function Co(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;let s=e.component.subTree;Co(Pi(s.type)&&od(s)||s,t)}else if(e.shapeFlag&128)e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback);else if(e.transition=t,e.type===q&&Ne(e.children)){let s=gd(e.children,!1);s&&Co(s,t)}}function Br(e){if(e.component)return Br(e.component.subTree);if(e.type===q){let t=Ne(e.children)&&gd(e.children,!1);return t?Br(t):void 0}if(e.type!==en)return e}function Ao(e,t){return Te(e)?ct({name:e.name},t,{setup:e}):e}function Yr(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function Vl(e,t){let s;return!!((s=Object.getOwnPropertyDescriptor(e,t))&&!s.configurable)}var Ci=new WeakMap;function vo(e,t,s,i,o=!1){if(Ne(e)){e.forEach((S,N)=>vo(S,t&&(Ne(t)?t[N]:t),s,i,o));return}if(yo(i)&&!o){i.shapeFlag&512&&i.type.__asyncResolved&&i.component.subTree.component&&vo(e,t,s,i.component.subTree);return}let r=i.shapeFlag&4?Ii(i.component):i.el,d=o?null:r,{i:p,r:u}=e,y=t&&t.r,m=p.refs===Ze?p.refs={}:p.refs,b=p.setupState,h=We(b),w=b===Ze?vr:S=>Vl(m,S)?!1:je(h,S),R=(S,N)=>!(N&&Vl(m,N));if(y!=null&&y!==u){if(ql(t),it(y))m[y]=null,w(y)&&(b[y]=null);else if(wt(y)){let S=t;R(y,S.k)&&(y.value=null),S.k&&(m[S.k]=null)}}if(Te(u))Ro(u,p,12,[d,m]);else{let S=it(u),N=wt(u);if(S||N){let v=()=>{if(e.f){let E=S?w(u)?b[u]:m[u]:R(u)||!e.k?u.value:m[e.k];if(o)Ne(E)&&eo(E,r);else if(Ne(E))E.includes(r)||E.push(r);else if(S)m[u]=[r],w(u)&&(b[u]=m[u]);else{let M=[r];R(u,e.k)&&(u.value=M),e.k&&(m[e.k]=M)}}else S?(m[u]=d,w(u)&&(b[u]=d)):N&&(R(u,e.k)&&(u.value=d),e.k&&(m[e.k]=d))};if(d){let E=()=>{v(),Ci.delete(e)};E.id=-1,Ci.set(e,E),It(E,s)}else ql(e),v()}}}function ql(e){let t=Ci.get(e);t&&(t.flags|=8,Ci.delete(e))}var _l=e=>e.nodeType===8;var NQ=so().requestIdleCallback||(e=>setTimeout(e,1)),RQ=so().cancelIdleCallback||(e=>clearTimeout(e));function Wf(e,t){if(_l(e)&&e.data==="["){let s=1,i=e.nextSibling;for(;i;){if(i.nodeType===1){if(t(i)===!1)break}else if(_l(i))if(i.data==="]"){if(--s===0)break}else i.data==="["&&s++;i=i.nextSibling}}else t(e)}var yo=e=>!!e.type.__asyncLoader;function id(e){Te(e)&&(e={loader:e});let{loader:t,loadingComponent:s,errorComponent:i,delay:o=200,hydrate:r,timeout:d,suspensible:p=!0,onError:u}=e,y=null,m,b=0,h=()=>(b++,y=null,w()),w=()=>{let R;return y||(R=y=t().catch(S=>{if(S=S instanceof Error?S:new Error(String(S)),u)return new Promise((N,v)=>{u(S,()=>N(h()),()=>v(S),b+1)});throw S}).then(S=>R!==y&&y?y:(S&&(S.__esModule||S[Symbol.toStringTag]==="Module")&&(S=S.default),m=S,S)))};return Ao({name:"AsyncComponentWrapper",__asyncLoader:w,__asyncHydrate(R,S,N){let v=R.isConnected,E=!1;(S.bu||(S.bu=[])).push(()=>E=!0);let M=()=>{E||!R.parentNode||v&&!R.isConnected||N()},V=r?()=>{let _=r(M,G=>Wf(R,G));_&&(S.bum||(S.bum=[])).push(_)}:M;m?V():w().then(()=>!S.isUnmounted&&V())},get __asyncResolved(){return m},setup(){let R=Nt;if(Yr(R),m)return()=>yi(m,R);let S=_=>{y=null,Po(_,R,13,!i)};if(p&&R.suspense||_s)return w().then(_=>()=>yi(_,R)).catch(_=>(S(_),()=>i?Oe(i,{error:_}):null));let N=St(!1),v=St(),E=St(!!o),M,V;return Do(()=>{M!=null&&clearTimeout(M),V!=null&&clearTimeout(V)}),o&&(V=setTimeout(()=>{R.isUnmounted||(E.value=!1)},o)),d!=null&&(M=setTimeout(()=>{if(!R.isUnmounted&&!N.value&&!v.value){let _=new Error(`Async component timed out after ${d}ms.`);S(_),v.value=_}},d)),w().then(()=>{R.isUnmounted||(N.value=!0,R.parent&&Ai(R.parent.vnode)&&R.parent.update())}).catch(_=>{if(R.isUnmounted){y=null;return}S(_),v.value=_}),()=>{if(N.value&&m)return yi(m,R);if(v.value&&i)return Oe(i,{error:v.value});if(s&&!E.value)return yi(s,R)}}})}function yi(e,t){let{ref:s,props:i,children:o,ce:r}=t.vnode,d=Oe(e,i,o);return d.ref=s,d.ce=r,delete t.vnode.ce,d}var Ai=e=>e.type.__isKeepAlive;function rd(e,t){ld(e,"a",t)}function ad(e,t){ld(e,"da",t)}function ld(e,t,s=Nt){let i=e.__wdc||(e.__wdc=()=>{let o=s;for(;o;){if(o.isDeactivated)return;o=o.parent}return e()});if(Di(t,i,s),s){let o=s.parent;for(;o&&o.parent;)Ai(o.parent.vnode)&&Kf(i,t,s,o),o=o.parent}}function Kf(e,t,s,i){let o=Di(t,e,i,!0);Do(()=>{eo(i[t],o)},s)}function Di(e,t,s=Nt,i=!1){if(s){let o=s[e]||(s[e]=[]),r=t.__weh||(t.__weh=(...d)=>{Qt();let p=To(s),u=jt(t,s,e,d);return p(),Zt(),u});return i?o.unshift(r):o.push(r),r}}var En=e=>(t,s=Nt)=>{(!_s||e==="sp")&&Di(e,(...i)=>t(...i),s)},Yf=En("bm"),fn=En("m"),dd=En("bu"),ud=En("u"),is=En("bum"),Do=En("um"),Xf=En("sp"),Jf=En("rtg"),Qf=En("rtc");function Zf(e,t=Nt){Di("ec",e,t)}var cd="components",xf="directives";function Xe(e,t){return pd(cd,e,!0,t)||e}var eh=Symbol.for("v-ndc");function Ae(e){return pd(xf,e)}function pd(e,t,s=!0,i=!1){let o=Lt||Nt;if(o){let r=o.type;if(e===cd){let p=$h(r,!1);if(p&&(p===t||p===ht(t)||p===Qn(ht(t))))return r}let d=$l(o[e]||r[e],t)||$l(o.appContext[e],t);return!d&&i?r:d}}function $l(e,t){return e&&(e[t]||e[ht(t)]||e[Qn(ht(t))])}function x(e,t,s,i){let o,r=s&&s[i],d=Ne(e);if(d||it(e)){let p=d&&ln(e),u=!1,y=!1;p&&(u=!Ot(e),y=Ht(e),e=po(e)),o=new Array(e.length);for(let m=0,b=e.length;mt(p,u,void 0,r&&r[u]));else{let p=Object.keys(e);o=new Array(p.length);for(let u=0,y=p.length;ue?Vd(e)?Ii(e):zr(e.parent):null;var bo=ct(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>zr(e.parent),$root:e=>zr(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Xr(e),$forceUpdate:e=>e.f||(e.f=()=>{Kr(e.update)}),$nextTick:e=>e.n||(e.n=tt.bind(e.proxy)),$watch:e=>Hf.bind(e)});var Lr=(e,t)=>e!==Ze&&!e.__isScriptSetup&&je(e,t),th={get({_:e},t){if(t==="__v_skip")return!0;let{ctx:s,setupState:i,data:o,props:r,accessCache:d,type:p,appContext:u}=e;if(t[0]!=="$"){let h=d[t];if(h!==void 0)switch(h){case 1:return i[t];case 2:return o[t];case 4:return s[t];case 3:return r[t]}else{if(Lr(i,t))return d[t]=1,i[t];if(o!==Ze&&je(o,t))return d[t]=2,o[t];if(je(r,t))return d[t]=3,r[t];if(s!==Ze&&je(s,t))return d[t]=4,s[t];Hr&&(d[t]=0)}}let y=bo[t],m,b;if(y)return t==="$attrs"&&Et(e.attrs,"get",""),y(e);if((m=p.__cssModules)&&(m=m[t]))return m;if(s!==Ze&&je(s,t))return d[t]=4,s[t];if(b=u.config.globalProperties,je(b,t))return b[t]},set({_:e},t,s){let{data:i,setupState:o,ctx:r}=e;return Lr(o,t)?(o[t]=s,!0):i!==Ze&&je(i,t)?(i[t]=s,!0):je(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(r[t]=s,!0)},has({_:{data:e,setupState:t,accessCache:s,ctx:i,appContext:o,props:r,type:d}},p){let u;return!!(s[p]||e!==Ze&&p[0]!=="$"&&je(e,p)||Lr(t,p)||je(r,p)||je(i,p)||je(bo,p)||je(o.config.globalProperties,p)||(u=d.__cssModules)&&u[p])},defineProperty(e,t,s){return s.get!=null?e._.accessCache[t]=0:je(s,"value")&&this.set(e,t,s.value,null),Reflect.defineProperty(e,t,s)}};function Ll(e){return Ne(e)?e.reduce((t,s)=>(t[s]=null,t),{}):e}var Hr=!0;function nh(e){let t=Xr(e),s=e.proxy,i=e.ctx;Hr=!1,t.beforeCreate&&Fl(t.beforeCreate,e,"bc");let{data:o,computed:r,methods:d,watch:p,provide:u,inject:y,created:m,beforeMount:b,mounted:h,beforeUpdate:w,updated:R,activated:S,deactivated:N,beforeDestroy:v,beforeUnmount:E,destroyed:M,unmounted:V,render:_,renderTracked:G,renderTriggered:te,errorCaptured:X,serverPrefetch:O,expose:U,inheritAttrs:C,components:L,directives:z,filters:K}=t;if(y&&sh(y,i,null),d)for(let Y in d){let he=d[Y];Te(he)&&(i[Y]=he.bind(s))}if(o){let Y=o.call(s,s);Ye(Y)&&(e.data=st(Y))}if(Hr=!0,r)for(let Y in r){let he=r[Y],Se=Te(he)?he.bind(s,s):Te(he.get)?he.get.bind(s,s):Tt,Ue=!Te(he)&&Te(he.set)?he.set.bind(s):Tt,Be=Rt({get:Se,set:Ue});Object.defineProperty(i,Y,{enumerable:!0,configurable:!0,get:()=>Be.value,set:Qe=>Be.value=Qe})}if(p)for(let Y in p)fd(p[Y],i,s,Y);if(u){let Y=Te(u)?u.call(s):u;Reflect.ownKeys(Y).forEach(he=>{os(he,Y[he])})}m&&Fl(m,e,"c");function se(Y,he){Ne(he)?he.forEach(Se=>Y(Se.bind(s))):he&&Y(he.bind(s))}if(se(Yf,b),se(fn,h),se(dd,w),se(ud,R),se(rd,S),se(ad,N),se(Zf,X),se(Qf,G),se(Jf,te),se(is,E),se(Do,V),se(Xf,O),Ne(U))if(U.length){let Y=e.exposed||(e.exposed={});U.forEach(he=>{Object.defineProperty(Y,he,{get:()=>s[he],set:Se=>s[he]=Se,enumerable:!0})})}else e.exposed||(e.exposed={});_&&e.render===Tt&&(e.render=_),C!=null&&(e.inheritAttrs=C),L&&(e.components=L),z&&(e.directives=z),O&&Yr(e)}function sh(e,t,s=Tt){Ne(e)&&(e=jr(e));for(let i in e){let o=e[i],r;Ye(o)?"default"in o?r=Mt(o.from||i,o.default,!0):r=Mt(o.from||i):r=Mt(o),wt(r)?Object.defineProperty(t,i,{enumerable:!0,configurable:!0,get:()=>r.value,set:d=>r.value=d}):t[i]=r}}function Fl(e,t,s){jt(Ne(e)?e.map(i=>i.bind(t.proxy)):e.bind(t.proxy),t,s)}function fd(e,t,s,i){let o=i.includes(".")?sd(s,i):()=>s[i];if(it(e)){let r=t[e];Te(r)&&dt(o,r)}else if(Te(e))dt(o,e.bind(s));else if(Ye(e))if(Ne(e))e.forEach(r=>fd(r,t,s,i));else{let r=Te(e.handler)?e.handler.bind(s):t[e.handler];Te(r)&&dt(o,r,e)}}function Xr(e){let t=e.type,{mixins:s,extends:i}=t,{mixins:o,optionsCache:r,config:{optionMergeStrategies:d}}=e.appContext,p=r.get(t),u;return p?u=p:!o.length&&!s&&!i?u=t:(u={},o.length&&o.forEach(y=>Ei(u,y,d,!0)),Ei(u,t,d)),Ye(t)&&r.set(t,u),u}function Ei(e,t,s,i=!1){let{mixins:o,extends:r}=t;r&&Ei(e,r,s,!0),o&&o.forEach(d=>Ei(e,d,s,!0));for(let d in t)if(!(i&&d==="expose")){let p=oh[d]||s&&s[d];e[d]=p?p(e[d],t[d]):t[d]}return e}var oh={data:Ul,props:Bl,emits:Bl,methods:go,computed:go,beforeCreate:Pt,created:Pt,beforeMount:Pt,mounted:Pt,beforeUpdate:Pt,updated:Pt,beforeDestroy:Pt,beforeUnmount:Pt,destroyed:Pt,unmounted:Pt,activated:Pt,deactivated:Pt,errorCaptured:Pt,serverPrefetch:Pt,components:go,directives:go,watch:rh,provide:Ul,inject:ih};function Ul(e,t){return t?e?function(){return ct(Te(e)?e.call(this,this):e,Te(t)?t.call(this,this):t)}:t:e}function ih(e,t){return go(jr(e),jr(t))}function jr(e){if(Ne(e)){let t={};for(let s=0;st==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${ht(t)}Modifiers`]||e[`${sn(t)}Modifiers`];function uh(e,t,...s){if(e.isUnmounted)return;let i=e.vnode.props||Ze,o=s,r=t.startsWith("update:"),d=r&&dh(i,t.slice(7));d&&(d.trim&&(o=s.map(m=>it(m)?m.trim():m)),d.number&&(o=o.map(Ts)));let p,u=i[p=no(t)]||i[p=no(ht(t))];!u&&r&&(u=i[p=no(sn(t))]),u&&jt(u,e,6,o);let y=i[p+"Once"];if(y){if(!e.emitted)e.emitted={};else if(e.emitted[p])return;e.emitted[p]=!0,jt(y,e,6,o)}}var ch=new WeakMap;function md(e,t,s=!1){let i=s?ch:t.emitsCache,o=i.get(e);if(o!==void 0)return o;let r=e.emits,d={},p=!1;if(!Te(e)){let u=y=>{let m=md(y,t,!0);m&&(p=!0,ct(d,m))};!s&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}return!r&&!p?(Ye(e)&&i.set(e,null),null):(Ne(r)?r.forEach(u=>d[u]=null):ct(d,r),Ye(e)&&i.set(e,d),d)}function Ti(e,t){return!e||!Rs(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),je(e,t[0].toLowerCase()+t.slice(1))||je(e,sn(t))||je(e,t))}function Fr(e){let{type:t,vnode:s,proxy:i,withProxy:o,propsOptions:[r],slots:d,attrs:p,emit:u,render:y,renderCache:m,props:b,data:h,setupState:w,ctx:R,inheritAttrs:S}=e,N=ki(e),v,E;try{if(s.shapeFlag&4){let _=o||i,G=_;v=pn(y.call(G,_,m,b,w,h,R)),E=p}else{let _=t;v=pn(_.length>1?_(b,{attrs:p,slots:d,emit:u}):_(b,null)),E=t.props?p:ph(p)}}catch(_){ss.length=0,Po(_,e,1),v=Oe(en)}let M=v,V;if(E&&S!==!1){let _=Object.keys(E),{shapeFlag:G}=M;_.length&&G&7&&(r&&_.some(Ps)&&(E=fh(E,r)),M=qs(M,E,!1,!0))}if(s.dirs&&(M=qs(M,null,!1,!0),M.dirs=M.dirs?M.dirs.concat(s.dirs):s.dirs),s.transition){let _=Pi(M.type)&&od(M)||M;Co(_,s.transition)}return v=M,ki(N),v}function gd(e,t=!0){let s;for(let i=0;i{let t;for(let s in e)(s==="class"||s==="style"||Rs(s))&&((t||(t={}))[s]=e[s]);return t},fh=(e,t)=>{let s={};for(let i in e)(!Ps(i)||!(i.slice(9)in t))&&(s[i]=e[i]);return s};function hh(e,t,s){let{props:i,children:o,component:r}=e,{props:d,children:p,patchFlag:u}=t,y=r.emitsOptions;if(t.dirs||t.transition)return!0;if(s&&u>=0){if(u&1024)return!0;if(u&16)return i?zl(i,d,y):!!d;if(u&8){let m=t.dynamicProps;for(let b=0;bObject.create(yd),wd=e=>Object.getPrototypeOf(e)===yd;function gh(e,t,s,i=!1){let o={},r=bd();e.propsDefaults=Object.create(null),kd(e,t,o,r);for(let d in e.propsOptions[0])d in o||(o[d]=void 0);s?e.props=i?o:fo(o):e.type.props?e.props=o:e.props=r,e.attrs=r}function vh(e,t,s,i){let{props:o,attrs:r,vnode:{patchFlag:d}}=e,p=We(o),[u]=e.propsOptions,y=!1;if((i||d>0)&&!(d&16)){if(d&8){let m=e.vnode.dynamicProps;for(let b=0;b{u=!0;let[h,w]=Cd(b,t,!0);ct(d,h),w&&p.push(...w)};!s&&t.mixins.length&&t.mixins.forEach(m),e.extends&&m(e.extends),e.mixins&&e.mixins.forEach(m)}if(!r&&!u)return Ye(e)&&i.set(e,In),In;if(Ne(r))for(let m=0;me==="_"||e==="_ctx"||e==="$stable",Qr=e=>Ne(e)?e.map(pn):[pn(e)],bh=(e,t,s)=>{if(t._n)return t;let i=Uf((...o)=>Qr(t(...o)),s);return i._c=!1,i},Ed=(e,t,s)=>{let i=e._ctx;for(let o in e){if(Jr(o))continue;let r=e[o];if(Te(r))t[o]=bh(o,r,i);else if(r!=null){let d=Qr(r);t[o]=()=>d}}},Sd=(e,t)=>{let s=Qr(t);e.slots.default=()=>s},Nd=(e,t,s)=>{for(let i in t)(s||!Jr(i))&&(e[i]=t[i])},wh=(e,t,s)=>{let i=e.slots=bd();if(e.vnode.shapeFlag&32){let o=t._;o?(Nd(i,t,s),s&&ri(i,"_",o,!0)):Ed(t,i)}else t&&Sd(e,t)},kh=(e,t,s)=>{let{vnode:i,slots:o}=e,r=!0,d=Ze;if(i.shapeFlag&32){let p=t._;p?s&&p===1?r=!1:Nd(o,t,s):(r=!t.$stable,Ed(t,o)),d=t}else t&&(Sd(e,t),d={default:1});if(r)for(let p in o)!Jr(p)&&d[p]==null&&delete o[p]};function Ch(){let e=[]}var It=Rh;function Rd(e){return Eh(e)}function Eh(e,t){Ch();let s=so();s.__VUE__=!0;let{insert:i,remove:o,patchProp:r,createElement:d,createText:p,createComment:u,setText:y,setElementText:m,parentNode:b,nextSibling:h,setScopeId:w=Tt,insertStaticContent:R}=e,S=(A,T,F,J=null,H=null,Z=null,le=void 0,ne=null,oe=!!T.dynamicChildren)=>{if(A===T)return;A&&!mo(A,T)&&(J=fe(A),He(A,H,Z,!0),A=null),T.patchFlag===-2&&(oe=!1,T.dynamicChildren=null),T.dynamicChildren&&A&&A.dynamicChildren&&A.dynamicChildren.hasOnce&&(T.dynamicChildren===In&&(T.dynamicChildren=[]),T.dynamicChildren.hasOnce=!0);let{type:ee,ref:ke,shapeFlag:pe}=T;switch(ee){case Oi:N(A,T,F,J);break;case en:v(A,T,F,J);break;case wo:A==null&&E(T,F,J,le);break;case q:z(A,T,F,J,H,Z,le,ne,oe);break;default:pe&1?G(A,T,F,J,H,Z,le,ne,oe):pe&6?K(A,T,F,J,H,Z,le,ne,oe):(pe&64||pe&128)&&ee.process(A,T,F,J,H,Z,le,ne,oe,ce)}ke!=null&&H?vo(ke,A&&A.ref,Z,T||A,!T):ke==null&&A&&A.ref!=null&&vo(A.ref,null,Z,A,!0)},N=(A,T,F,J)=>{if(A==null)i(T.el=p(T.children),F,J);else{let H=T.el=A.el;T.children!==A.children&&y(H,T.children)}},v=(A,T,F,J)=>{A==null?i(T.el=u(T.children||""),F,J):T.el=A.el},E=(A,T,F,J)=>{[A.el,A.anchor]=R(A.children,T,F,J,A.el,A.anchor)},M=(A,T,F,J)=>{if(T.children!==A.children){let H=h(A.anchor);_(A),[T.el,T.anchor]=R(T.children,F,H,J)}else T.el=A.el,T.anchor=A.anchor},V=({el:A,anchor:T},F,J)=>{let H;for(;A&&A!==T;)H=h(A),i(A,F,J),A=H;i(T,F,J)},_=({el:A,anchor:T})=>{let F;for(;A&&A!==T;)F=h(A),o(A),A=F;o(T)},G=(A,T,F,J,H,Z,le,ne,oe)=>{if(T.type==="svg"?le="svg":T.type==="math"&&(le="mathml"),A==null)te(T,F,J,H,Z,le,ne,oe);else{let ee=A.el&&A.el._isVueCE?A.el:null;try{ee&&ee._beginPatch(),U(A,T,H,Z,le,ne,oe)}finally{ee&&ee._endPatch()}}},te=(A,T,F,J,H,Z,le,ne)=>{let oe,ee,{props:ke,shapeFlag:pe,transition:Ce,dirs:Pe}=A;if(oe=A.el=d(A.type,Z,ke&&ke.is,ke),pe&8?m(oe,A.children):pe&16&&O(A.children,oe,null,J,H,Ur(A,Z),le,ne),Pe&&ts(A,null,J,"created"),X(oe,A,A.scopeId,le,J),ke){for(let Ge in ke)Ge!=="value"&&!As(Ge)&&r(oe,Ge,null,ke[Ge],Z,J);"value"in ke&&r(oe,"value",null,ke.value,Z),(ee=ke.onVnodeBeforeMount)&&un(ee,J,A)}Pe&&ts(A,null,J,"beforeMount");let Ve=Sh(H,Ce);Ve&&Ce.beforeEnter(oe),i(oe,T,F),((ee=ke&&ke.onVnodeMounted)||Ve||Pe)&&It(()=>{let ze;ee&&un(ee,J,A),Ve&&Ce.enter(oe),Pe&&ts(A,null,J,"mounted")},H)},X=(A,T,F,J,H)=>{if(F&&w(A,F),J)for(let Z=0;Z{for(let ee=oe;ee{let ne=T.el=A.el,{patchFlag:oe,dynamicChildren:ee,dirs:ke}=T;oe|=A.patchFlag&16;let pe=A.props||Ze,Ce=T.props||Ze,Pe;if(F&&ns(F,!1),(Pe=Ce.onVnodeBeforeUpdate)&&un(Pe,F,T,A),ke&&ts(T,A,F,"beforeUpdate"),F&&ns(F,!0),ee&&(!A.dynamicChildren||A.dynamicChildren.length!==ee.length)&&(oe=0,le=!1,ee=null),(pe.innerHTML&&Ce.innerHTML==null||pe.textContent&&Ce.textContent==null)&&m(ne,""),ee?C(A.dynamicChildren,ee,ne,F,J,Ur(T,H),Z):le||Se(A,T,ne,null,F,J,Ur(T,H),Z,!1),oe>0){if(oe&16)L(ne,pe,Ce,F,H);else if(oe&2&&pe.class!==Ce.class&&r(ne,"class",null,Ce.class,H),oe&4&&r(ne,"style",pe.style,Ce.style,H),oe&8){let Ve=T.dynamicProps;for(let Ge=0;Ge{Pe&&un(Pe,F,T,A),ke&&ts(T,A,F,"updated")},J)},C=(A,T,F,J,H,Z,le)=>{for(let ne=0;ne{if(T!==F){if(T!==Ze)for(let Z in T)!As(Z)&&!(Z in F)&&r(A,Z,T[Z],null,H,J);for(let Z in F){if(As(Z))continue;let le=F[Z],ne=T[Z];le!==ne&&Z!=="value"&&r(A,Z,ne,le,H,J)}"value"in F&&r(A,"value",T.value,F.value,H)}},z=(A,T,F,J,H,Z,le,ne,oe)=>{let ee=T.el=A?A.el:p(""),ke=T.anchor=A?A.anchor:p(""),{patchFlag:pe,dynamicChildren:Ce,slotScopeIds:Pe}=T;Pe&&(ne=ne?ne.concat(Pe):Pe),A==null?(i(ee,F,J),i(ke,F,J),O(T.children||[],F,ke,H,Z,le,ne,oe)):pe>0&&pe&64&&Ce&&A.dynamicChildren&&A.dynamicChildren.length===Ce.length?(C(A.dynamicChildren,Ce,F,H,Z,le,ne),(T.key!=null||H&&T===H.subTree)&&Pd(A,T,!0)):Se(A,T,F,ke,H,Z,le,ne,oe)},K=(A,T,F,J,H,Z,le,ne,oe)=>{T.slotScopeIds=ne,A==null?T.shapeFlag&512?H.ctx.activate(T,F,J,le,oe):ie(T,F,J,H,Z,le,oe):se(A,T,oe)},ie=(A,T,F,J,H,Z,le)=>{let ne=A.component=Ih(A,J,H);if(Ai(A)&&(ne.ctx.renderer=ce),Mh(ne,!1,le),ne.asyncDep){if(H&&H.registerDep(ne,Y,le,Z),!A.el){let oe=ne.subTree=Oe(en);v(null,oe,T,F),A.placeholder=oe.el}}else Y(ne,A,T,F,H,Z,le)},se=(A,T,F)=>{let J=T.component=A.component;if(hh(A,T,F))if(J.asyncDep&&!J.asyncResolved){T.el=A.el,T.placeholder=A.placeholder,he(J,T,F);return}else J.next=T,J.update();else T.el=A.el,T.placeholder=A.placeholder,J.vnode=T},Y=(A,T,F,J,H,Z,le)=>{let ne=()=>{if(A.isMounted){let{next:pe,bu:Ce,u:Pe,parent:Ve,vnode:Ge}=A;{let rt=Ad(A);if(rt){pe&&(pe.el=Ge.el,he(A,pe,le)),rt.asyncDep.then(()=>{It(()=>{A.isUnmounted||ee()},H)});return}}let ze=pe,we;ns(A,!1),pe?(pe.el=Ge.el,he(A,pe,le)):pe=Ge,Ce&&Ds(Ce),(we=pe.props&&pe.props.onVnodeBeforeUpdate)&&un(we,Ve,pe,Ge),ns(A,!0);let be=Fr(A),ot=A.subTree;A.subTree=be,S(ot,be,b(ot.el),fe(ot),A,H,Z),pe.el=be.el,ze===null&&mh(A,be.el),Pe&&It(Pe,H),(we=pe.props&&pe.props.onVnodeUpdated)&&It(()=>un(we,Ve,pe,Ge),H)}else{let pe,{el:Ce,props:Pe}=T,{bm:Ve,m:Ge,parent:ze,root:we,type:be}=A,ot=yo(T);if(ns(A,!1),Ve&&Ds(Ve),!ot&&(pe=Pe&&Pe.onVnodeBeforeMount)&&un(pe,ze,T),ns(A,!0),Ce&&Me){let rt=()=>{A.subTree=Fr(A),Me(Ce,A.subTree,A,H,null)};ot&&be.__asyncHydrate?be.__asyncHydrate(Ce,A,rt):rt()}else{we.ce&&we.ce._hasShadowRoot()&&we.ce._injectChildStyle(be,A.parent?A.parent.type:void 0);let rt=A.subTree=Fr(A);S(null,rt,F,J,A,H,Z),T.el=rt.el}if(Ge&&It(Ge,H),!ot&&(pe=Pe&&Pe.onVnodeMounted)){let rt=T;It(()=>un(pe,ze,rt),H)}(T.shapeFlag&256||ze&&yo(ze.vnode)&&ze.vnode.shapeFlag&256)&&A.a&&It(A.a,H),A.isMounted=!0,T=F=J=null}};A.scope.on();let oe=A.effect=new Is(ne);A.scope.off();let ee=A.update=oe.run.bind(oe),ke=A.job=oe.runIfDirty.bind(oe);ke.i=A,ke.id=A.uid,oe.scheduler=()=>Kr(ke),ns(A,!0),ee()},he=(A,T,F)=>{T.component=A;let J=A.vnode.props;A.vnode=T,A.next=null,vh(A,T.props,J,F),kh(A,T.children,F),Qt(),Zl(A),Zt()},Se=(A,T,F,J,H,Z,le,ne,oe=!1)=>{let ee=A&&A.children,ke=A?A.shapeFlag:0,pe=T.children,{patchFlag:Ce,shapeFlag:Pe}=T;if(Ce>0){if(Ce&128){Be(ee,pe,F,J,H,Z,le,ne,oe);return}else if(Ce&256){Ue(ee,pe,F,J,H,Z,le,ne,oe);return}}Pe&8?(ke&16&&W(ee,H,Z),pe!==ee&&m(F,pe)):ke&16?Pe&16?Be(ee,pe,F,J,H,Z,le,ne,oe):W(ee,H,Z,!0):(ke&8&&m(F,""),Pe&16&&O(pe,F,J,H,Z,le,ne,oe))},Ue=(A,T,F,J,H,Z,le,ne,oe)=>{A=A||In,T=T||In;let ee=A.length,ke=T.length,pe=Math.min(ee,ke),Ce;for(Ce=0;Ceke?W(A,H,Z,!0,!1,pe):O(T,F,J,H,Z,le,ne,oe,pe)},Be=(A,T,F,J,H,Z,le,ne,oe)=>{let ee=0,ke=T.length,pe=A.length-1,Ce=ke-1;for(;ee<=pe&&ee<=Ce;){let Pe=A[ee],Ve=T[ee]=oe?Cn(T[ee]):pn(T[ee]);if(mo(Pe,Ve))S(Pe,Ve,F,null,H,Z,le,ne,oe);else break;ee++}for(;ee<=pe&&ee<=Ce;){let Pe=A[pe],Ve=T[Ce]=oe?Cn(T[Ce]):pn(T[Ce]);if(mo(Pe,Ve))S(Pe,Ve,F,null,H,Z,le,ne,oe);else break;pe--,Ce--}if(ee>pe){if(ee<=Ce){let Pe=Ce+1,Ve=PeCe)for(;ee<=pe;)He(A[ee],H,Z,!0),ee++;else{let Pe=ee,Ve=ee,Ge=new Map;for(ee=Ve;ee<=Ce;ee++){let lt=T[ee]=oe?Cn(T[ee]):pn(T[ee]);lt.key!=null&&Ge.set(lt.key,ee)}let ze,we=0,be=Ce-Ve+1,ot=!1,rt=0,yt=new Array(be);for(ee=0;ee=be){He(lt,H,Z,!0);continue}let ft;if(lt.key!=null)ft=Ge.get(lt.key);else for(ze=Ve;ze<=Ce;ze++)if(yt[ze-Ve]===0&&mo(lt,T[ze])){ft=ze;break}ft===void 0?He(lt,H,Z,!0):(yt[ft-Ve]=ee+1,ft>=rt?rt=ft:ot=!0,S(lt,T[ft],F,null,H,Z,le,ne,oe),we++)}let at=ot?Nh(yt):In;for(ze=at.length-1,ee=be-1;ee>=0;ee--){let lt=Ve+ee,ft=T[lt],Vt=T[lt+1],Yn=lt+1{let{el:Z,type:le,transition:ne,children:oe,shapeFlag:ee}=A;if(ee&6){Qe(A.component.subTree,T,F,J);return}if(ee&128){A.suspense.move(T,F,J);return}if(ee&64){le.move(A,T,F,ce);return}if(le===q){i(Z,T,F);for(let pe=0;pene.enter(Z),H));else{let{leave:pe,delayLeave:Ce,afterLeave:Pe}=ne,Ve=()=>{A.ctx.isUnmounted?o(Z):i(Z,T,F)},Ge=()=>{let ze=Z._isLeaving||!!Z[$r];Z._isLeaving&&Z[$r](!0),ne.persisted&&!ze?Ve():pe(Z,()=>{Ve(),Pe&&Pe()})};Ce?Ce(Z,Ve,Ge):Ge()}else i(Z,T,F)},He=(A,T,F,J=!1,H=!1)=>{let{type:Z,props:le,ref:ne,children:oe,dynamicChildren:ee,shapeFlag:ke,patchFlag:pe,dirs:Ce,cacheIndex:Pe,memo:Ve}=A;if((pe===-2||ee&&ee.hasOnce)&&(H=!1),ne!=null&&(Qt(),vo(ne,null,F,A,!0),Zt()),Pe!=null&&(!A.ctx||A.ctx===T)&&(T.renderCache[Pe]=void 0),ke&256){T.ctx.deactivate(A);return}let Ge=ke&1&&Ce,ze=!yo(A),we;if(ze&&(we=le&&le.onVnodeBeforeUnmount)&&un(we,T,A),ke&6)Fe(A.component,F,J);else{if(ke&128){A.suspense.unmount(F,J);return}Ge&&ts(A,null,T,"beforeUnmount"),ke&64?A.type.remove(A,T,F,ce,J):ee&&!ee.hasOnce&&(Z!==q||pe>0&&pe&64)?W(ee,T,F,!1,!0):(Z===q&&pe&384||!H&&ke&16)&&W(oe,T,F),J&&et(A)}let be=Ve!=null&&Pe==null;(ze&&(we=le&&le.onVnodeUnmounted)||Ge||be)&&It(()=>{we&&un(we,T,A),Ge&&ts(A,null,T,"unmounted"),be&&(A.el=null)},F)},et=A=>{let{type:T,el:F,anchor:J,transition:H}=A,Z=T===q;if(Z&&!H){Re(F,J);return}if(T===wo){_(A),H&&!H.persisted&&H.afterLeave&&H.afterLeave();return}let le=Z?Br(A):A,ne=()=>{Z?b(F)&&Re(F,J):o(F),H&&!H.persisted&&H.afterLeave&&H.afterLeave()};if(le&&le.shapeFlag&1&&H&&!H.persisted){let{leave:oe,delayLeave:ee}=H,ke=le.el,pe=()=>oe(ke,ne);ee?ee(ke,ne,pe):pe()}else ne()},Re=(A,T)=>{let F;for(;A!==T;)F=h(A),o(A),A=F;o(T)},Fe=(A,T,F)=>{let{bum:J,scope:H,job:Z,subTree:le,um:ne,m:oe,a:ee}=A;jl(oe),jl(ee),J&&Ds(J),H.stop(),Z?(Z.flags|=8,He(le,A,T,F)):A.vnode.el&&le&&(le.transition=A.vnode.transition,He(le,A,T,F)),ne&&It(ne,T),It(()=>{A.isUnmounted=!0},T)},W=(A,T,F,J=!1,H=!1,Z=0)=>{for(let le=Z;le{if(A.shapeFlag&6)return fe(A.component.subTree);if(A.shapeFlag&128)return A.suspense.next();let T=h(A.anchor||A.el),F=T&&T[jf];return F?h(F):T},de=(A,T,F)=>{let J=A&&T._vnode?void 0:A&&A.component?A.component.uid:Oh();Ff(()=>{A==null?T._vnode&&He(T._vnode,null,null,!0):S(T._vnode||null,A,T,null,null,null,F),T._vnode=A},J)},ce={p:S,um:He,m:Qe,r:et,mt:ie,mc:O,pc:Se,pbc:C,n:fe,o:e},me,Me;return t&&([me,Me]=t(ce)),{render:de,hydrate:me,createApp:lh(de,me)}}function Ur({type:e,props:t},s){return s==="svg"&&e==="foreignObject"||s==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:s}function ns({effect:e,job:t},s){s?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Sh(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Pd(e,t,s=!1){let i=e.children,o=t.children;if(Ne(i)&&Ne(o))for(let r=0;r>1,e[s[p]]0&&(t[i]=s[r-1]),s[r]=i)}}for(r=s.length,d=s[r-1];r-- >0;)s[r]=d,d=t[d];return s}function Ad(e){let t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Ad(t)}function jl(e){if(e)for(let t=0;te.__isSuspense;function Rh(e,t){t&&t.pendingBranch?Ne(e)?t.effects.push(...e):t.effects.push(e):Ql(e)}var q=Symbol.for("v-fgt"),Oi=Symbol.for("v-txt"),en=Symbol.for("v-cmt"),wo=Symbol.for("v-stc"),ss=[],Ft=null;function a(e=!1){ss.push(Ft=e?null:[])}function Td(){ss.pop(),Ft=ss[ss.length-1]||null}var Eo=1;function Si(e,t=!1){Eo+=e,e<0&&Ft&&t&&(Ft.hasOnce=!0)}function Od(e){return e.dynamicChildren=Eo>0?Ft||In:null,Td(),Eo>0&&Ft&&Ft.push(e),e}function l(e,t,s,i,o,r){return Od(n(e,t,s,i,o,r,!0))}function Gt(e,t,s,i,o){return Od(Oe(e,t,s,i,o,!0))}function So(e){return e?e.__v_isVNode===!0:!1}function mo(e,t){return e.type===t.type&&e.key===t.key}var Id=({key:e})=>e??null,bi=({ref:e,ref_key:t,ref_for:s})=>(typeof e=="number"&&(e=""+e),e!=null?it(e)||wt(e)||Te(e)?{i:Lt,r:e,k:t,f:!!s}:e:null);function n(e,t=null,s=null,i=0,o=null,r=e===q?0:1,d=!1,p=!1){let u={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Id(t),ref:t&&bi(t),scopeId:td,slotScopeIds:null,children:s,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:r,patchFlag:i,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:Lt};return p?(Ni(u,s),r&128&&e.normalize(u)):s&&(u.shapeFlag|=it(s)?8:16),Eo>0&&!d&&Ft&&(u.patchFlag>0||r&6)&&u.patchFlag!==32&&Ft.push(u),u}var Oe=Ph;function Ph(e,t=null,s=null,i=0,o=null,r=!1){if((!e||e===eh)&&(e=en),So(e)){let p=qs(e,t,!0);return s&&Ni(p,s),Eo>0&&!r&&Ft&&(p.shapeFlag&6?Ft[Ft.indexOf(e)]=p:Ft.push(p)),p.patchFlag=-2,p}if(Lh(e)&&(e=e.__vccOpts),t){t=Ah(t);let{class:p,style:u}=t;p&&!it(p)&&(t.class=P(p)),Ye(u)&&(ho(u)&&!Ne(u)&&(u=ct({},u)),t.style=Ie(u))}let d=it(e)?1:Dd(e)?128:Pi(e)?64:Ye(e)?4:Te(e)?2:0;return n(e,t,s,i,o,d,r,!0)}function Ah(e){return e?ho(e)||wd(e)?ct({},e):e:null}function qs(e,t,s=!1,i=!1){let{props:o,ref:r,patchFlag:d,children:p,transition:u}=e,y=t?Dh(o||{},t):o,m={__v_isVNode:!0,__v_skip:!0,type:e.type,props:y,key:y&&Id(y),ref:t&&t.ref?s&&r?Ne(r)?r.concat(bi(t)):[r,bi(t)]:bi(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:p,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==q?d===-1?16:d|16:d,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:u,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&qs(e.ssContent),ssFallback:e.ssFallback&&qs(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce,cacheIndex:e.cacheIndex};return u&&i&&Co(m,u.clone(m)),m}function g(e=" ",t=0){return Oe(Oi,null,e,t)}function Ee(e,t){let s=Oe(wo,null,e);return s.staticCount=t,s}function f(e="",t=!1){return t?(a(),Gt(en,null,e)):Oe(en,null,e)}function pn(e){return e==null||typeof e=="boolean"?Oe(en):Ne(e)?Oe(q,null,e.slice()):So(e)?Cn(e):Oe(Oi,null,String(e))}function Cn(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:qs(e)}function Ni(e,t){let s=0,{shapeFlag:i}=e;if(t==null)t=null;else if(Ne(t))s=16;else if(typeof t=="object")if(i&65){let o=t.default;o&&(o._c&&(o._d=!1),Ni(e,o()),o._c&&(o._d=!0));return}else{s=32;let o=t._;!o&&!wd(t)?t._ctx=Lt:o===3&&Lt&&(Lt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(Te(t)){if(i&65){Ni(e,{default:t});return}t={default:t,_ctx:Lt},s=32}else t=String(t),i&64?(s=16,t=[g(t)]):s=8;e.children=t,e.shapeFlag|=s}function Dh(...e){let t={};for(let s=0;sNt||Lt,Ri,No;{let e=so(),t=(s,i)=>{let o;return(o=e[s])||(o=e[s]=[]),o.push(i),r=>{o.length>1?o.forEach(d=>d(r)):o[0](r)}};Ri=t("__VUE_INSTANCE_SETTERS__",s=>Nt=s),No=t("__VUE_SSR_SETTERS__",s=>_s=s)}var To=e=>{let t=Nt;return Ri(e),e.scope.on(),()=>{e.scope.off(),Ri(t)}},Gl=()=>{Nt&&Nt.scope.off(),Ri(null)};function Vd(e){return e.vnode.shapeFlag&4}var _s=!1;function Mh(e,t=!1,s=!1){t&&No(t);let{props:i,children:o}=e.vnode,r=Vd(e);gh(e,i,r,t),wh(e,o,s||t);let d=r?Vh(e,t):void 0;return t&&No(!1),d}function Vh(e,t){let s=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,th);let{setup:i}=s;if(i){Qt();let o=e.setupContext=i.length>1?_h(e):null,r=To(e),d=Ro(i,e,0,[e.props,o]),p=yr(d);if(Zt(),r(),(p||e.sp)&&!yo(e)&&Yr(e),p){if(d.then(Gl,Gl),t)return d.then(u=>{No(!0);try{Wl(e,u,t)}finally{No(!1)}}).catch(u=>{Po(u,e,0)});e.asyncDep=d}else Wl(e,d,t)}else qd(e,t)}function Wl(e,t,s){Te(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Ye(t)&&(e.setupState=vi(t)),qd(e,s)}var Kl,Yl;function qd(e,t,s){let i=e.type;if(!e.render){if(!t&&Kl&&!i.render){let o=i.template||Xr(e).template;if(o){let{isCustomElement:r,compilerOptions:d}=e.appContext.config,{delimiters:p,compilerOptions:u}=i,y=ct(ct({isCustomElement:r,delimiters:p},d),u);i.render=Kl(o,y)}}e.render=i.render||Tt,Yl&&Yl(e)}{let o=To(e);Qt();try{nh(e)}finally{Zt(),o()}}}var qh={get(e,t){return Et(e,"get",""),e[t]}};function _h(e){let t=s=>{e.exposed=s||{}};return{attrs:new Proxy(e.attrs,qh),slots:e.slots,emit:e.emit,expose:t}}function Ii(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(vi(dn(e.exposed)),{get(t,s){if(s in t)return t[s];if(s in bo)return bo[s](e)},has(t,s){return s in t||s in bo}})):e.proxy}function $h(e,t=!0){return Te(e)?e.displayName||e.name:e.name||t&&e.__name}function Lh(e){return Te(e)&&"__vccOpts"in e}var Rt=(e,t)=>Ol(e,t,_s);function De(e,t,s){try{Si(-1);let i=arguments.length;return i===2?Ye(t)&&!Ne(t)?So(t)?Oe(e,null,[t]):Oe(e,t):Oe(e,null,t):(i>3?s=Array.prototype.slice.call(arguments,2):i===3&&So(s)&&(s=[s]),Oe(e,t,s))}finally{Si(1)}}var Fh="3.5.44";var na,_d=typeof window<"u"&&window.trustedTypes;if(_d)try{na=_d.createPolicy("vue",{createHTML:e=>e})}catch{}var Yd=na?e=>na.createHTML(e):e=>e,Uh="http://www.w3.org/2000/svg",Bh="http://www.w3.org/1998/Math/MathML",Sn=typeof document<"u"?document:null,$d=Sn&&Sn.createElement("template"),zh={insert:(e,t,s)=>{t.insertBefore(e,s||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,s,i)=>{let o=t==="svg"?Sn.createElementNS(Uh,e):t==="mathml"?Sn.createElementNS(Bh,e):s?Sn.createElement(e,{is:s}):Sn.createElement(e);return e==="select"&&i&&i.multiple!=null&&o.setAttribute("multiple",i.multiple),o},createText:e=>Sn.createTextNode(e),createComment:e=>Sn.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Sn.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,s,i,o,r){let d=s?s.previousSibling:t.lastChild;if(o&&(o===r||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),s),!(o===r||!(o=o.nextSibling)););else{$d.innerHTML=Yd(i==="svg"?`${e}`:i==="mathml"?`${e}`:e);let p=$d.content;if(i==="svg"||i==="mathml"){let u=p.firstChild;for(;u.firstChild;)p.appendChild(u.firstChild);p.removeChild(u)}t.insertBefore(p,s)}return[d?d.nextSibling:t.firstChild,s?s.previousSibling:t.lastChild]}};var Hh=Symbol("_vtc");function jh(e,t,s){let i=e[Hh];i&&(t=(t?[t,...i]:[...i]).join(" ")),t==null?e.removeAttribute("class"):s?e.setAttribute("class",t):e.className=t}var qi=Symbol("_vod"),Xd=Symbol("_vsh"),Q={name:"show",beforeMount(e,{value:t},{transition:s}){e[qi]=e.style.display==="none"?"":e.style.display,s&&t?s.beforeEnter(e):Oo(e,t)},mounted(e,{value:t},{transition:s}){s&&t&&s.enter(e)},updated(e,{value:t,oldValue:s},{transition:i}){!t!=!s&&(i?t?(i.beforeEnter(e),Oo(e,!0),i.enter(e)):i.leave(e,()=>{Oo(e,!1)}):Oo(e,t))},beforeUnmount(e,{value:t}){Oo(e,t)}};function Oo(e,t){e.style.display=t?e[qi]:"none",e[Xd]=!t}var Gh=Symbol("");var Wh=/(?:^|;)\s*display\s*:/;function Kh(e,t,s){let i=e.style,o=it(s),r=!1;if(s&&!o){if(t)if(it(t))for(let d of t.split(";")){let p=d.slice(0,d.indexOf(":")).trim();s[p]==null&&Io(i,p,"")}else for(let d in t)s[d]==null&&Io(i,d,"");for(let d in s){d==="display"&&(r=!0);let p=s[d];p!=null?Xh(e,d,!it(t)&&t?t[d]:void 0,p)||Io(i,d,p):Io(i,d,"")}}else if(o){if(t!==s){let d=i[Gh];d&&(s+=";"+d),i.cssText=s,r=Wh.test(s)}}else t&&e.removeAttribute("style");qi in e&&((!o||t!==s)&&(e[qi]=r?i.display:""),e[Xd]&&(i.display="none"))}var Mi=/\s*!important$/;function Io(e,t,s){if(Ne(s))s.forEach(i=>Io(e,t,i));else if(s==null&&(s=""),t.startsWith("--"))Mi.test(s)?e.setProperty(t,s.replace(Mi,""),"important"):e.setProperty(t,s);else{let i=Yh(e,t);Mi.test(s)?e.setProperty(sn(i),s.replace(Mi,""),"important"):e[i]=s}}var Ld=["Webkit","Moz","ms"],xr={};function Yh(e,t){let s=xr[t];if(s)return s;let i=ht(t);if(i!=="filter"&&i in e)return xr[t]=i;i=Qn(i);for(let o=0;oea||(tm.then(()=>ea=0),ea=Date.now());function sm(e,t){let s=i=>{if(!i._vts)i._vts=Date.now();else if(i._vts<=s.attached)return;let o=s.value;if(Ne(o)){let r=i.stopImmediatePropagation;i.stopImmediatePropagation=()=>{r.call(i),i._stopped=!0};let d=o.slice(),p=[i];for(let u=0;ue.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,om=(e,t,s,i,o,r)=>{let d=o==="svg";t==="class"?jh(e,i,d):t==="style"?Kh(e,s,i):Rs(t)?Ps(t)||Qh(e,t,s,i,r):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):im(e,t,i,d))?(Bd(e,t,i),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Ud(e,t,i,d,r,t!=="value")):e._isVueCE&&(rm(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!it(i)))?Bd(e,ht(t),i,r,t):(t==="true-value"?e._trueValue=i:t==="false-value"&&(e._falseValue=i),Ud(e,t,i,d))};function im(e,t,s,i){if(i)return!!(t==="innerHTML"||t==="textContent"||t in e&&Hd(t)&&Te(s));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){let o=e.tagName;if(o==="IMG"||o==="VIDEO"||o==="CANVAS"||o==="SOURCE")return!1}return Hd(t)&&it(s)?!1:t in e}function rm(e,t){let s=e._def.props;if(!s)return!1;let i=ht(t);return Array.isArray(s)?s.some(o=>ht(o)===i):Object.keys(s).some(o=>ht(o)===i)}var $s=e=>{let t=e.props["onUpdate:modelValue"]||!1;return Ne(t)?s=>Ds(t,s):t};function am(e){e.target.composing=!0}function jd(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}var hn=Symbol("_assign"),Vi=Symbol("_initialValue");function ta(e,t,s){return t&&(e=e.trim()),s&&(e=Ts(e)),e}var pt={created(e,{modifiers:{lazy:t,trim:s,number:i}},o){e.parentNode&&(e.type==="text"?e[Vi]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[Vi]=e.defaultValue.replace(/\r\n?/g,` -`))),e[hn]=$s(o);let r=i||o.props&&o.props.type==="number";Vn(e,t?"change":"input",d=>{d.target.composing||e[hn](ta(e.value,s,r))}),(s||r)&&Vn(e,"change",()=>{e.value=ta(e.value,s,r)}),t||(Vn(e,"compositionstart",am),Vn(e,"compositionend",jd),Vn(e,"change",jd))},mounted(e,{value:t,modifiers:{trim:s,number:i}}){let o=t??"",r=e[Vi];delete e[Vi],r!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==r?e[hn](ta(e.value,s,i)):e.value=o},beforeUpdate(e,{value:t,oldValue:s,modifiers:{lazy:i,trim:o,number:r}},d){if(e[hn]=$s(d),e.composing)return;let p=(r||e.type==="number")&&!/^0\d/.test(e.value)?Ts(e.value):e.value,u=t??"";if(p===u)return;let y=e.getRootNode();(y instanceof Document||y instanceof ShadowRoot)&&y.activeElement===e&&e.type!=="range"&&(i&&t===s||o&&e.value.trim()===u)||(e.value=u)}},sa={deep:!0,created(e,t,s){e[hn]=$s(s),Vn(e,"change",()=>{let i=e._modelValue,o=Mo(e),r=e.checked,d=e[hn];if(Ne(i)){let p=li(i,o),u=p!==-1;if(r&&!u)d(i.concat(o));else if(!r&&u){let y=[...i];y.splice(p,1),d(y)}}else if(Yt(i)){let p=new Set(i);r?p.add(o):p.delete(o),d(p)}else d(Jd(e,r))})},mounted:Gd,beforeUpdate(e,t,s){e[hn]=$s(s),Gd(e,t,s)}};function Gd(e,{value:t,oldValue:s},i){e._modelValue=t;let o;if(Ne(t))o=li(t,i.props.value)>-1;else if(Yt(t))o=t.has(i.props.value);else{if(t===s)return;o=Xt(t,Jd(e,!0))}e.checked!==o&&(e.checked=o)}var mn={deep:!0,created(e,{value:t,modifiers:{number:s}},i){e._modelValue=t,Vn(e,"change",()=>{let o=Array.prototype.filter.call(e.options,u=>u.selected).map(u=>s?Ts(Mo(u)):Mo(u)),r=e.multiple,d=r?Yt(e._modelValue)?new Set(o):o:o[0],p=e._pendingValue=[r,r?Ne(d)?o.slice():o:d];try{e[hn](d)}finally{tt(()=>{e._pendingValue===p&&(e._pendingValue=void 0)})}}),e[hn]=$s(i)},mounted(e,{value:t}){Wd(e,t)},beforeUpdate(e,{value:t},s){e._modelValue=t,e[hn]=$s(s)},updated(e,{value:t}){let s=e._pendingValue;e._pendingValue=void 0,(!s||s[0]!==e.multiple||!lm(t,s[1],s[0]))&&Wd(e,t)}};function lm(e,t,s){if(!s)return Xt(e,t);if(Ne(e))return Xt(e,t);if(Yt(e)){if(e.size!==t.length)return!1;for(let i of t)if(!e.has(i))return!1;return!0}return!1}function Wd(e,t){let s=e.multiple,i=Ne(t);if(!(s&&!i&&!Yt(t))){for(let o=0,r=e.options.length;oString(y)===String(p)):d.selected=li(t,p)>-1}else d.selected=t.has(p);else if(Xt(Mo(d),t)){e.selectedIndex!==o&&(e.selectedIndex=o);return}}!s&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Mo(e){return"_value"in e?e._value:e.value}function Jd(e,t){let s=t?"_trueValue":"_falseValue";return s in e?e[s]:t}var dm=["ctrl","shift","alt","meta"],um={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>dm.some(s=>e[`${s}Key`]&&!t.includes(s))},ae=(e,t)=>{if(!e)return e;let s=e._withMods||(e._withMods={}),i=t.join(".");return s[i]||(s[i]=((o,...r)=>{for(let d=0;d{let s=e._withKeys||(e._withKeys={}),i=t.join(".");return s[i]||(s[i]=(o=>{if(!("key"in o))return;let r=sn(o.key);if(t.some(d=>d===r||cm[d]===r))return e(o)}))},pm=ct({patchProp:om},zh),Kd;function fm(){return Kd||(Kd=Rd(pm))}var Qd=((...e)=>{let t=fm().createApp(...e),{mount:s}=t;return t.mount=i=>{let o=mm(i);if(!o)return;let r=t._component;!Te(r)&&!r.render&&!r.template&&(r.template=o.innerHTML),o.nodeType===1&&(o.textContent="");let d=s(o,!1,hm(o));return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),d},t});function hm(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function mm(e){return it(e)?document.querySelector(e):e}var ls=typeof document<"u";function xd(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function gm(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&xd(e.default)}var Je=Object.assign;function _i(e,t){let s={};for(let i in t){let o=t[i];s[i]=Wt(o)?o.map(e):e(o)}return s}var Fs=()=>{},Wt=Array.isArray;function ra(e,t){let s={};for(let i in e)s[i]=i in t?t[i]:e[i];return s}var eu=/#/g,vm=/&/g,ym=/\//g,bm=/=/g,wm=/\?/g,tu=/\+/g,km=/%5B/g,Cm=/%5D/g,nu=/%5E/g,Em=/%60/g,su=/%7B/g,Sm=/%7C/g,ou=/%7D/g,Nm=/%20/g;function aa(e){return e==null?"":encodeURI(""+e).replace(Sm,"|").replace(km,"[").replace(Cm,"]")}function iu(e){return aa(e).replace(su,"{").replace(ou,"}").replace(nu,"^")}function oa(e){return aa(e).replace(tu,"%2B").replace(Nm,"+").replace(eu,"%23").replace(vm,"%26").replace(Em,"`").replace(su,"{").replace(ou,"}").replace(nu,"^")}function Rm(e){return oa(e).replace(bm,"%3D")}function Pm(e){return aa(e).replace(eu,"%23").replace(wm,"%3F")}function ru(e){return Pm(e).replace(ym,"%2F")}function Ls(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}var Am=/\/$/,Dm=e=>e.replace(Am,"");function $i(e,t,s="/"){let i,o={},r="",d="",p=t.indexOf("#"),u=t.indexOf("?");return u=p>=0&&u>p?-1:u,u>=0&&(i=t.slice(0,u),r=t.slice(u,p>0?p:t.length),o=e(r.slice(1))),p>=0&&(i=i||t.slice(0,p),d=t.slice(p,t.length)),i=Om(i??t,s),{fullPath:i+r+d,path:i,query:o,hash:Ls(d)}}function au(e,t){let s=t.query?e(t.query):"";return t.path+(s&&"?")+s+(t.hash||"")}function la(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function lu(e,t,s){let i=t.matched.length-1,o=s.matched.length-1;return i>-1&&i===o&&rs(t.matched[i],s.matched[o])&&da(t.params,s.params)&&e(t.query)===e(s.query)&&t.hash===s.hash}function rs(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function da(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var s in e)if(!Tm(e[s],t[s]))return!1;return!0}function Tm(e,t){return Wt(e)?Zd(e,t):Wt(t)?Zd(t,e):e?.valueOf()===t?.valueOf()}function Zd(e,t){return Wt(t)?e.length===t.length&&e.every((s,i)=>s===t[i]):e.length===1&&e[0]===t}function Om(e,t){if(e.startsWith("/"))return e;if(!e)return t;let s=t.split("/"),i=e.split("/"),o=i[i.length-1];(o===".."||o===".")&&i.push("");let r=s.length-1,d,p;for(d=0;d1&&r--;else break;return s.slice(0,r).join("/")+"/"+i.slice(d).join("/")}var Rn={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},Li=(function(e){return e.pop="pop",e.push="push",e})({}),Fi=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function du(e){if(!e)if(ls){let t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Dm(e)}var Im=/^[^#]+#/;function uu(e,t){return e.replace(Im,"#")+t}function Mm(e,t){let s=document.documentElement.getBoundingClientRect(),i=e.getBoundingClientRect();return{behavior:t.behavior,left:i.left-s.left-(t.left||0),top:i.top-s.top-(t.top||0)}}var Vo=()=>({left:window.scrollX,top:window.scrollY});function cu(e){let t;if("el"in e){let s=e.el,i=typeof s=="string"&&s.startsWith("#"),o=typeof s=="string"?i?document.getElementById(s.slice(1)):document.querySelector(s):s;if(!o)return;t=Mm(o,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function ua(e,t){return(history.state?history.state.position-t:-1)+e}var ia=new Map;function pu(e,t){ia.set(e,t)}function fu(e){let t=ia.get(e);return ia.delete(e),t}function Vm(e){return typeof e=="string"||e&&typeof e=="object"}function ca(e){return typeof e=="string"||typeof e=="symbol"}var ut=(function(e){return e[e.MATCHER_NOT_FOUND=1]="MATCHER_NOT_FOUND",e[e.NAVIGATION_GUARD_REDIRECT=2]="NAVIGATION_GUARD_REDIRECT",e[e.NAVIGATION_ABORTED=4]="NAVIGATION_ABORTED",e[e.NAVIGATION_CANCELLED=8]="NAVIGATION_CANCELLED",e[e.NAVIGATION_DUPLICATED=16]="NAVIGATION_DUPLICATED",e})({}),hu=Symbol("");var sZ={[ut.MATCHER_NOT_FOUND]({location:e,currentLocation:t}){return`No match for +"use strict";(()=>{var el=Object.defineProperty;var tl=e=>{throw TypeError(e)};var of=(e,t,s)=>t in e?el(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s;var rf=(e,t)=>{for(var s in t)el(e,s,{get:t[s],enumerable:!0})};var xe=(e,t,s)=>of(e,typeof t!="symbol"?t+"":t,s),mr=(e,t,s)=>t.has(e)||tl("Cannot "+s);var re=(e,t,s)=>(mr(e,t,"read from private field"),s?s.call(e):t.get(e)),qe=(e,t,s)=>t.has(e)?tl("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,s),Le=(e,t,s,i)=>(mr(e,t,"write to private field"),i?i.call(e,s):t.set(e,s),s),_e=(e,t,s)=>(mr(e,t,"access private method"),s);var nl=(e,t,s,i)=>({set _(o){Le(e,t,o,s)},get _(){return re(e,t,i)}});var me=["abap","abc","actionscript","ada","alda","apache_conf","apex","applescript","aql","asciidoc","asl","assembly_x86","autohotkey","batchfile","c9search","c_cpp","cirru","clojure","cobol","coffee","coldfusion","crystal","csharp","csound_document","csound_orchestra","csound_score","csp","css","curly","d","dart","diff","django","dockerfile","dot","drools","edifact","eiffel","ejs","elixir","elm","erlang","forth","fortran","fsharp","fsl","ftl","gcode","gherkin","gitignore","glsl","gobstones","golang","graphqlschema","groovy","haml","handlebars","haskell","haskell_cabal","haxe","hjson","html","html_elixir","html_ruby","ini","io","jack","jade","java","javascript","json","json5","jsoniq","jsp","jssm","jsx","julia","kotlin","latex","less","liquid","lisp","livescript","logiql","logtalk","lsl","lua","luapage","lucene","makefile","markdown","mask","matlab","maze","mediawiki","mel","mixal","mushcode","mysql","nginx","nim","nix","nsis","nunjucks","objectivec","ocaml","pascal","perl","perl6","pgsql","php","php_laravel_blade","pig","plain_text","powershell","praat","prisma","prolog","properties","protobuf","puppet","python","qml","r","razor","rdoc","red","redshift","rhtml","rst","ruby","rust","sass","scad","scala","scheme","scss","sh","sjs","slim","smarty","snippets","soy_template","space","sparql","sql","sqlserver","stylus","svg","swift","tcl","terraform","tex","text","textile","toml","tsx","turtle","twig","typescript","vala","vbscript","velocity","verilog","vhdl","visualforce","wollok","xml","xquery","yaml","zeek"];var ge={markdown:"/script/markdown.6c8dfb7b1d.min.js",org:"/script/org.f61f262915.min.js",notebook:"/script/notebook.c3144c18ae.min.js",editor:"/script/editor.4f142d3adc.min.js",pdf:"/script/pdf.4d9cc6ff49.min.js"};function sl(e){let t=e.location.hash.slice(1);if(e.history.replaceState(null,"","/review-link"),t.length>2048)return null;let s=new URLSearchParams(t);if([...s.keys()].length!==3||[...s.keys()].some(d=>!["clientId","intentId","token"].includes(d)))return null;let i=s.get("clientId"),o=s.get("intentId"),r=s.get("token");return!/^[a-f0-9]{32}$/.test(i||"")||!/^[a-f0-9]{32}$/.test(o||"")||!/^[a-f0-9]{64}$/.test(r||"")?null:{contract:"4open.artifacts/1",clientId:i,intentId:o,token:r}}function ol(e,t){let{http:s,promises:i,window:o}=t,r=t.takeReviewHandoff(),d=r?{clientId:r.clientId,intentId:r.intentId}:null,p,u,y,m,b,h=!0,w,R=i.defer(),S=()=>[...o.crypto.getRandomValues(new Uint8Array(16))].map(V=>V.toString(16).padStart(2,"0")).join("");Object.assign(e,{repositoryId:"",handoffEnabled:!1,busy:!1,preview:null,acceptAccess:!1,acceptRetention:!1,uncertain:!1,saved:!1,expired:!1,error:r?"":"Open a new artifact link from your submission. This link is missing or invalid."});let N=()=>h&&e.user?.username===b;function v(){h=!1,r=p=u=void 0,R.resolve(),o.clearTimeout(w)}e.on("dispose",v),e.on("routeLeave",v),e.watch(()=>e.user?.username,V=>{!b&&V?b=V:b&&V!==b&&(v(),e.preview=null,e.repositoryId="",e.busy=!1,e.saved=!1,e.handoffEnabled=!1,e.error="Your account changed. Open a new artifact link from your submission.")});let E=()=>({timeout:R.promise,headers:{"Content-Type":"application/json","X-Review-CSRF":u}}),M=V=>V?.status===404?"Artifact linking is not available on this server.":V?.status===401?"Sign in, then open a new artifact link from your submission.":V?.status===403?"This account cannot approve this repository or this link.":"The request could not be completed. You can retry from this page.";e.loadPreview=async()=>{if(!h||!r||e.busy||e.uncertain||e.saved||!e.user?.username)return;b=e.user.username;let V=e.repositoryId.trim();if(!/^[A-Za-z0-9_-]{3,128}$/.test(V)){e.error="Enter the anonymous repository ID from its URL.";return}e.busy=!0,e.error="",e.preview=null,p=void 0,e.acceptAccess=e.acceptRetention=!1,e.expired=!1,o.clearTimeout(w),m||(m=S());try{let _=(await s.get("/api/review-consent/csrf",{timeout:R.promise})).data;if(!N())return;if(u=_.csrf,e.handoffEnabled=_.handoffEnabled===!0,!/^[a-f0-9]{64}$/.test(u||""))throw new Error("invalid_csrf");let G=(await s.post("/api/review-consent/preview",{repositoryId:V,intent:{...r,requestId:m}},E())).data;if(!N())return;if(!G||typeof G.ticket!="string"||!G.ticket||G.ticket.length>8192||typeof G.repositoryName!="string"||!["restricted-review","anonymous-link"].includes(G.policy?.access)||!Number.isSafeInteger(G.policy.version)||!Number.isFinite(Date.parse(G.policy.retainUntil))||!Number.isFinite(Date.parse(G.expiresAt))||Date.parse(G.expiresAt)<=Date.now()||Date.parse(G.expiresAt)>Date.now()+6e5)throw new Error("invalid_preview");p=G.ticket,y=S(),e.preview={repositoryName:G.repositoryName,policy:{...G.policy},expiresAt:G.expiresAt},w=o.setTimeout(()=>{h&&(e.expired=!0)},Math.max(0,Date.parse(G.expiresAt)-Date.now()))}catch(_){N()&&(e.error=M(_))}finally{N()&&(e.busy=!1)}},e.confirmConsent=async()=>{if(!(!N()||e.busy||e.saved||!p||!e.acceptAccess||!e.acceptRetention)){if(Date.parse(e.preview.expiresAt)<=Date.now()){e.expired=!0;return}e.busy=!0,e.error="";try{let V=(await s.post("/api/review-consent/confirm",{ticket:p,requestId:y,acceptAccess:!0,acceptRetention:!0},E())).data;if(!N())return;if(V?.requestId!==y||!Number.isFinite(Date.parse(V.confirmedAt)))throw new Error("invalid_receipt");e.saved=!0,e.uncertain=!1,r=void 0,e.handoffEnabled||(p=void 0)}catch{N()&&(e.uncertain=!0,e.error="The confirmation was not verified. Retry with the same approval, or return to your submission to check its status.")}finally{N()&&(e.busy=!1)}}},e.continueReview=async()=>{if(!N()||e.busy||!e.saved||!e.handoffEnabled||!p||!d)return;e.busy=!0,e.error="";let V,_=()=>{V?.remove(),o.removeEventListener("securitypolicyviolation",G)},G=te=>{te.violatedDirective?.startsWith("form-action")&&(_(),N()&&(e.busy=!1,e.error="The return address was blocked. Return to your submission to check the artifact status."))};try{let te=(await s.post("/api/review-consent/handoff",{ticket:p},E())).data;if(!N())return;let X=te?.completion,O=new URL(te?.callbackUrl);if(!X||Object.keys(X).sort().join(",")!=="clientId,code,contract,expiresAt,intentId"||X.contract!=="4open.artifacts/1"||X.clientId!==d.clientId||X.intentId!==d.intentId||!/^[a-f0-9]{64}$/.test(X.code||"")||!Number.isFinite(Date.parse(X.expiresAt))||Date.parse(X.expiresAt)<=Date.now()||Date.parse(X.expiresAt)>Date.now()+3e5||O.protocol!=="https:"||O.href!==te.callbackUrl||O.username||O.password||te.callbackUrl.includes("?")||te.callbackUrl.includes("#"))throw new Error("invalid_handoff");V=o.document.createElement("form"),V.method="POST",V.action=O.href;let U=o.document.createElement("input");U.type="hidden",U.name="completion",U.value=JSON.stringify(X),V.appendChild(U),o.document.body.appendChild(V),o.addEventListener("securitypolicyviolation",G),e.on("dispose",_),V.submit()}catch{_(),N()&&(e.busy=!1,e.error="The return to review could not be prepared. Retry from this page, or return to your submission to check its status.")}}}var ti=new Map,df=ge;function Qn(e){if(!ti.has(e)){let t=document.createElement("script");t.src=df[e];let s=new Promise((i,o)=>{t.onload=i,t.onerror=()=>{ti.delete(e),t.remove(),o(new Error(`Unable to load ${e}. Please retry.`))}});ti.set(e,s),document.head.appendChild(t)}return ti.get(e)}async function ni(){await Qn("editor"),ace.config.set("basePath","/script/external/ace/")}function Ns(e){let t=Object.create(null);for(let s of e.split(","))t[s]=1;return s=>s in t}var Ze={},In=[],Tt=()=>{},vr=()=>!1,Rs=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),As=e=>e.startsWith("onUpdate:"),ct=Object.assign,eo=(e,t)=>{let s=e.indexOf(t);s>-1&&e.splice(s,1)},uf=Object.prototype.hasOwnProperty,je=(e,t)=>uf.call(e,t),Ne=Array.isArray,yn=e=>to(e)==="[object Map]",Xt=e=>to(e)==="[object Set]",il=e=>to(e)==="[object Date]";var Te=e=>typeof e=="function",it=e=>typeof e=="string",_t=e=>typeof e=="symbol",Ye=e=>e!==null&&typeof e=="object",yr=e=>(Ye(e)||Te(e))&&Te(e.then)&&Te(e.catch),dl=Object.prototype.toString,to=e=>dl.call(e),br=e=>to(e).slice(8,-1),si=e=>to(e)==="[object Object]",oi=e=>it(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Ps=Ns(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted");var ii=e=>{let t=Object.create(null);return(s=>t[s]||(t[s]=e(s)))},cf=/-\w/g,ht=ii(e=>e.replace(cf,t=>t.slice(1).toUpperCase())),pf=/\B([A-Z])/g,on=ii(e=>e.replace(pf,"-$1").toLowerCase()),Jn=ii(e=>e.charAt(0).toUpperCase()+e.slice(1)),no=ii(e=>e?`on${Jn(e)}`:""),Ht=(e,t)=>!Object.is(e,t),Ds=(e,...t)=>{for(let s=0;s{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:i,value:s})},Ts=e=>{let t=parseFloat(e);return isNaN(t)?e:t};var rl,so=()=>rl||(rl=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Ie(e){if(Ne(e)){let t={};for(let s=0;ss.startsWith("/*")?"":s).split(ff).forEach(s=>{if(s){let i=s.split(hf);i.length>1&&(t[i[0].trim()]=i[1].trim())}}),t}function A(e){let t="";if(it(e))t=e;else if(Ne(e))for(let s=0;sQt(s,t))}var pl=e=>!!(e&&e.__v_isRef===!0),c=e=>it(e)?e:e==null?"":Ne(e)||Ye(e)&&(e.toString===dl||!Te(e.toString))?pl(e)?c(e.value):JSON.stringify(e,fl,2):String(e),fl=(e,t)=>pl(t)?fl(e,t.value):yn(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((s,[i,o],r)=>(s[gr(i,r)+" =>"]=o,s),{})}:Xt(t)?{[`Set(${t.size})`]:[...t.values()].map(s=>gr(s))}:_t(t)?gr(t):Ye(t)&&!Ne(t)&&!si(t)?String(t):t,gr=(e,t="")=>{var s;return _t(e)?`Symbol(${(s=e.description)!=null?s:t})`:e};function wf(e,...t){console.warn(`[Vue warn] ${e}`,...t)}var mt,ao=class{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&mt&&(mt.active?(this.parent=mt,this.index=(mt.scopes||(mt.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,s;if(this.scopes){let i=this.scopes.slice();for(t=0,s=i.length;t0&&--this._on===0){if(mt===this)mt=this.prevScope;else{let t=mt;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let s,i;for(s=0,i=this.effects.length;s0)return;if(ro){let t=ro;for(ro=void 0;t;){let s=t.next;t.next=void 0,t.flags&=-9,t=s}}let e;for(;io;){let t=io;for(io=void 0;t;){let s=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(i){e||(e=i)}t=s}}if(e)throw e}function wl(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function kl(e){let t,s=e.depsTail,i=s;for(;i;){let o=i.prevDep;i.version===-1?(i===s&&(s=o),Mr(i),kf(i)):t=i,i.dep.activeLink=i.prevActiveLink,i.prevActiveLink=void 0,i=o}e.deps=t,e.depsTail=s}function Er(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Cl(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Cl(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===lo)||(e.globalVersion=lo,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Er(e))))return;e.flags|=2;let t=e.dep,s=nt,i=Jt;nt=e,Jt=!0;try{wl(e);let o=e.fn(e._value);(t.version===0||Ht(o,e._value))&&(e.flags|=128,e._value=o,t.version++)}catch(o){throw t.version++,o}finally{nt=s,Jt=i,kl(e),e.flags&=-3}}function Mr(e,t=!1){let{dep:s,prevSub:i,nextSub:o}=e;if(i&&(i.nextSub=o,e.prevSub=void 0),o&&(o.prevSub=i,e.nextSub=void 0),s.subs===e&&(s.subs=i,!i&&s.computed)){s.computed.flags&=-5;for(let r=s.computed.deps;r;r=r.nextDep)Mr(r,!0)}!t&&!--s.sc&&s.map&&s.map.delete(s.key)}function kf(e){let{prevDep:t,nextDep:s}=e;t&&(t.nextDep=s,e.prevDep=void 0),s&&(s.prevDep=t,e.nextDep=void 0)}var Jt=!0,El=[];function Zt(){El.push(Jt),Jt=!1}function xt(){let e=El.pop();Jt=e===void 0?!0:e}function hl(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let s=nt;nt=void 0;try{t()}finally{nt=s}}}var lo=0,Sr=class{constructor(t,s){this.sub=t,this.dep=s,this.version=s.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}},uo=class{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!nt||!Jt||nt===this.computed)return;let s=this.activeLink;if(s===void 0||s.sub!==nt)s=this.activeLink=new Sr(nt,this),nt.deps?(s.prevDep=nt.depsTail,nt.depsTail.nextDep=s,nt.depsTail=s):nt.deps=nt.depsTail=s,Sl(s);else if(s.version===-1&&(s.version=this.version,s.nextDep)){let i=s.nextDep;i.prevDep=s.prevDep,s.prevDep&&(s.prevDep.nextDep=i),s.prevDep=nt.depsTail,s.nextDep=void 0,nt.depsTail.nextDep=s,nt.depsTail=s,nt.deps===s&&(nt.deps=i)}return s}trigger(t){this.version++,lo++,this.notify(t)}notify(t){Or();try{for(let s=this.subs;s;s=s.prevSub)s.sub.notify()&&s.sub.dep.notify()}finally{Ir()}}};function Sl(e){if(e.dep.sc++,e.sub.flags&4){let t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let i=t.deps;i;i=i.nextDep)Sl(i)}let s=e.dep.subs;s!==e&&(e.prevSub=s,s&&(s.nextSub=e)),e.dep.subs=e}}var Nr=new WeakMap,xn=Symbol(""),Rr=Symbol(""),co=Symbol("");function Et(e,t,s){if(Jt&&nt){let i=Nr.get(e);i||Nr.set(e,i=new Map);let o=i.get(s);o||(i.set(s,o=new uo),o.map=i,o.key=s),o.track()}}function an(e,t,s,i,o,r){let d=Nr.get(e);if(!d){lo++;return}let p=u=>{u&&u.trigger()};if(Or(),t==="clear")d.forEach(p);else{let u=Ne(e),y=u&&oi(s);if(u&&s==="length"){let m=Number(i);d.forEach((b,h)=>{(h==="length"||h===co||!_t(h)&&h>=m)&&p(b)})}else switch((s!==void 0||d.has(void 0))&&p(d.get(s)),y&&p(d.get(co)),t){case"add":u?y&&p(d.get("length")):(p(d.get(xn)),yn(e)&&p(d.get(Rr)));break;case"delete":u||(p(d.get(xn)),yn(e)&&p(d.get(Rr)));break;case"set":yn(e)&&p(d.get(xn));break}}Ir()}function Os(e){let t=We(e);return t===e||(Et(t,"iterate",co),Ot(e))?t:jt(e)?dn(e)?t.map(s=>wn($t(s))):t.map(wn):t.map($t)}function po(e){return Et(e=We(e),"iterate",co),e}function rn(e,t){return jt(e)?wn(dn(e)?$t(t):t):$t(t)}var Cf={__proto__:null,[Symbol.iterator](){return kr(this,Symbol.iterator,e=>rn(this,e))},concat(...e){return Os(this).concat(...e.map(t=>Ne(t)?Os(t):t))},entries(){return kr(this,"entries",e=>(e[1]=rn(this,e[1]),e))},every(e,t){return bn(this,"every",e,t,void 0,arguments)},filter(e,t){return bn(this,"filter",e,t,s=>s.map(i=>rn(this,i)),arguments)},find(e,t){return bn(this,"find",e,t,s=>rn(this,s),arguments)},findIndex(e,t){return bn(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return bn(this,"findLast",e,t,s=>rn(this,s),arguments)},findLastIndex(e,t){return bn(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return bn(this,"forEach",e,t,void 0,arguments)},includes(...e){return Cr(this,"includes",e)},indexOf(...e){return Cr(this,"indexOf",e)},join(e){return Os(this).join(e)},lastIndexOf(...e){return Cr(this,"lastIndexOf",e)},map(e,t){return bn(this,"map",e,t,void 0,arguments)},pop(){return oo(this,"pop")},push(...e){return oo(this,"push",e)},reduce(e,...t){return gl(this,"reduce",e,t)},reduceRight(e,...t){return gl(this,"reduceRight",e,t)},shift(){return oo(this,"shift")},some(e,t){return bn(this,"some",e,t,void 0,arguments)},splice(...e){return oo(this,"splice",e)},toReversed(){return Os(this).toReversed()},toSorted(e){return Os(this).toSorted(e)},toSpliced(...e){return Os(this).toSpliced(...e)},unshift(...e){return oo(this,"unshift",e)},values(){return kr(this,"values",e=>rn(this,e))}};function kr(e,t,s){let i=po(e),o=i[t],r=o.call(i);if(i!==e&&!Ot(e)){if(r[Symbol.toStringTag]==="Array Iterator"){let d=Object.create(Object.getPrototypeOf(r));return d.next=()=>ml(r.next(),s),o!==Nl[t]&&Object.defineProperties(d,{return:{get(){let p=r.return;return typeof p=="function"?p.bind(r):p}},throw:{get(){let p=r.throw;return typeof p=="function"?p.bind(r):p}}}),d}r._next=r.next,r.next=()=>ml(r._next(),s)}return r}function ml(e,t){return e.done||(e.value=t(e.value)),e}var Nl=Array.prototype;function bn(e,t,s,i,o,r){let d=po(e),p=d!==e&&!Ot(e),u=d[t];if(u!==Nl[t]){let b=u.apply(e,r);return p?$t(b):b}let y=s;d!==e&&(p?y=function(b,h){return s.call(this,rn(e,b),h,e)}:s.length>2&&(y=function(b,h){return s.call(this,b,h,e)}));let m=u.call(d,y,i);return p&&o?o(m):m}function gl(e,t,s,i){let o=po(e),r=o!==e&&!Ot(e),d=s,p=!1;o!==e&&(r?(p=i.length===0,d=function(y,m,b){return p&&(p=!1,y=rn(e,y)),s.call(this,y,rn(e,m),b,e)}):s.length>3&&(d=function(y,m,b){return s.call(this,y,m,b,e)}));let u=o[t](d,...i);return p?rn(e,u):u}function Cr(e,t,s){let i=We(e);Et(i,"iterate",co);let o=i[t](...s);return(o===-1||o===!1)&&ho(s[0])?(s[0]=We(s[0]),i[t](...s)):o}function oo(e,t,s=[]){Zt(),Or();let i=We(e)[t].apply(e,s);return Ir(),xt(),i}var Ef=Ns("__proto__,__v_isRef,__isVue"),Rl=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(_t));function Sf(e){_t(e)||(e=String(e));let t=We(this);return Et(t,"has",e),t.hasOwnProperty(e)}var pi=class{constructor(t=!1,s=!1){this._isReadonly=t,this._isShallow=s}get(t,s,i){if(s==="__v_skip")return t.__v_skip;let o=this._isReadonly,r=this._isShallow;if(s==="__v_isReactive")return!o;if(s==="__v_isReadonly")return o;if(s==="__v_isShallow")return r;if(s==="__v_raw")return i===(o?r?Mf:Dl:r?Pl:Al).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(i)?t:void 0;let d=Ne(t);if(!o){let u;if(d&&(u=Cf[s]))return u;if(s==="hasOwnProperty")return Sf}let p=Reflect.get(t,s,wt(t)?t:i);if((_t(s)?Rl.has(s):Ef(s))||(o||Et(t,"get",s),r))return p;if(wt(p)){let u=d&&oi(s)?p:p.value;return o&&Ye(u)?hi(u):u}return Ye(p)?o?hi(p):st(p):p}},fi=class extends pi{constructor(t=!1){super(!1,t)}set(t,s,i,o){let r=t[s],d=Ne(t)&&oi(s);if(!this._isShallow){let y=jt(r);if(!Ot(i)&&!jt(i)&&(r=We(r),i=We(i)),!d&&wt(r)&&!wt(i))return y||(r.value=i),!0}let p=d?Number(s)e,di=e=>Reflect.getPrototypeOf(e);function Pf(e,t,s){return function(...i){let o=this.__v_raw,r=We(o),d=yn(r),p=e==="entries"||e===Symbol.iterator&&d,u=e==="keys"&&d,y=o[e](...i),m=s?Pr:t?wn:$t;return!t&&Et(r,"iterate",u?Rr:xn),ct(Object.create(y),{next(){let{value:b,done:h}=y.next();return h?{value:b,done:h}:{value:p?[m(b[0]),m(b[1])]:m(b),done:h}}})}}function ui(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Df(e,t){let s={get(o){let r=this.__v_raw,d=We(r),p=We(o);e||(Ht(o,p)&&Et(d,"get",o),Et(d,"get",p));let{has:u}=di(d),y=t?Pr:e?wn:$t;if(u.call(d,o))return y(r.get(o));if(u.call(d,p))return y(r.get(p));r!==d&&r.get(o)},get size(){let o=this.__v_raw;return!e&&Et(We(o),"iterate",xn),o.size},has(o){let r=this.__v_raw,d=We(r),p=We(o);return e||(Ht(o,p)&&Et(d,"has",o),Et(d,"has",p)),o===p?r.has(o):r.has(o)||r.has(p)},forEach(o,r){let d=this,p=d.__v_raw,u=We(p),y=t?Pr:e?wn:$t;return!e&&Et(u,"iterate",xn),p.forEach((m,b)=>o.call(r,y(m),y(b),d))}};return ct(s,e?{add:ui("add"),set:ui("set"),delete:ui("delete"),clear:ui("clear")}:{add(o){let r=We(this),d=di(r),p=We(o),u=!t&&!Ot(o)&&!jt(o)?p:o;return d.has.call(r,u)||Ht(o,u)&&d.has.call(r,o)||Ht(p,u)&&d.has.call(r,p)||(r.add(u),an(r,"add",u,u)),this},set(o,r){!t&&!Ot(r)&&!jt(r)&&(r=We(r));let d=We(this),{has:p,get:u}=di(d),y=p.call(d,o);y||(o=We(o),y=p.call(d,o));let m=u.call(d,o);return d.set(o,r),y?Ht(r,m)&&an(d,"set",o,r,m):an(d,"add",o,r),this},delete(o){let r=We(this),{has:d,get:p}=di(r),u=d.call(r,o);u||(o=We(o),u=d.call(r,o));let y=p?p.call(r,o):void 0,m=r.delete(o);return u&&an(r,"delete",o,void 0,y),m},clear(){let o=We(this),r=o.size!==0,d=void 0,p=o.clear();return r&&an(o,"clear",void 0,void 0,d),p}}),["keys","values","entries",Symbol.iterator].forEach(o=>{s[o]=Pf(o,e,t)}),s}function Vr(e,t){let s=Df(e,t);return(i,o,r)=>o==="__v_isReactive"?!e:o==="__v_isReadonly"?e:o==="__v_isShallow"?t:o==="__v_raw"?i:Reflect.get(je(s,o)&&o in i?s:i,o,r)}var Tf={get:Vr(!1,!1)},Of={get:Vr(!1,!0)},If={get:Vr(!0,!1)};var Al=new WeakMap,Pl=new WeakMap,Dl=new WeakMap,Mf=new WeakMap;function Vf(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function st(e){return jt(e)?e:qr(e,!1,Nf,Tf,Al)}function fo(e){return qr(e,!1,Af,Of,Pl)}function hi(e){return qr(e,!0,Rf,If,Dl)}function qr(e,t,s,i,o){if(!Ye(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;let r=o.get(e);if(r)return r;let d=Vf(br(e));if(d===0)return e;let p=new Proxy(e,d===2?i:s);return o.set(e,p),p}function dn(e){return jt(e)?dn(e.__v_raw):!!(e&&e.__v_isReactive)}function jt(e){return!!(e&&e.__v_isReadonly)}function Ot(e){return!!(e&&e.__v_isShallow)}function ho(e){return e?!!e.__v_raw:!1}function We(e){let t=e&&e.__v_raw;return t?We(t):e}function un(e){return!je(e,"__v_skip")&&Object.isExtensible(e)&&ri(e,"__v_skip",!0),e}var $t=e=>Ye(e)?st(e):e,wn=e=>Ye(e)?hi(e):e;function wt(e){return e?e.__v_isRef===!0:!1}function St(e){return Tl(e,!1)}function gi(e){return Tl(e,!0)}function Tl(e,t){return wt(e)?e:new Dr(e,t)}var Dr=class{constructor(t,s){this.dep=new uo,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=s?t:We(t),this._value=s?t:$t(t),this.__v_isShallow=s}get value(){return this.dep.track(),this._value}set value(t){let s=this._rawValue,i=this.__v_isShallow||Ot(t)||jt(t);t=i?t:We(t),Ht(t,s)&&(this._rawValue=t,this._value=i?t:$t(t),this.dep.trigger())}};function kn(e){return wt(e)?e.value:e}var qf={get:(e,t,s)=>t==="__v_raw"?e:kn(Reflect.get(e,t,s)),set:(e,t,s,i)=>{let o=e[t];return wt(o)&&!wt(s)?(o.value=s,!0):Reflect.set(e,t,s,i)}};function vi(e){return dn(e)?e:new Proxy(e,qf)}var Tr=class{constructor(t,s,i){this.fn=t,this.setter=s,this._value=void 0,this.dep=new uo(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=lo-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!s,this.isSSR=i}notify(){if(this.flags|=16,!(this.flags&8)&&nt!==this)return bl(this,!0),!0}get value(){let t=this.dep.track();return Cl(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}};function Ol(e,t,s=!1){let i,o;return Te(e)?i=e:(i=e.get,o=e.set),new Tr(i,o,s)}var ci={},mi=new WeakMap,Zn;function Il(e,t=!1,s=Zn){if(s){let i=mi.get(s);i||mi.set(s,i=[]),i.push(e)}}function Ml(e,t,s=Ze){let{immediate:i,deep:o,once:r,scheduler:d,augmentJob:p,call:u}=s,y=_=>{(s.onWarn||wf)("Invalid watch source: ",_,"A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.")},m=_=>o?_:Ot(_)||o===!1||o===0?ln(_,1):ln(_),b,h,w,R,S=!1,N=!1;if(wt(e)?(h=()=>e.value,S=Ot(e)):dn(e)?(h=()=>m(e),S=!0):Ne(e)?(N=!0,S=e.some(_=>dn(_)||Ot(_)),h=()=>e.map(_=>{if(wt(_))return _.value;if(dn(_))return m(_);if(Te(_))return u?u(_,2):_()})):Te(e)?t?h=u?()=>u(e,2):e:h=()=>{if(w){Zt();try{w()}finally{xt()}}let _=Zn;Zn=b;try{return u?u(e,3,[R]):e(R)}finally{Zn=_}}:h=Tt,t&&o){let _=h,G=o===!0?1/0:o;h=()=>ln(_(),G)}let v=vl(),E=()=>{b.stop(),v&&v.active&&eo(v.effects,b)};if(r&&t){let _=t;t=(...G)=>{try{return _(...G)}finally{E()}}}let M=N?new Array(e.length).fill(ci):ci,V=_=>{if(!(!(b.flags&1)||!b.dirty&&!_))if(t){let G=b.run();if(_||o||S||(N?G.some((te,X)=>Ht(te,M[X])):Ht(G,M))){let te=Zn;Zt();try{w&&w(),Zn=b;let X=[G,M===ci?void 0:N&&M[0]===ci?[]:M,R];M=G,u?u(t,3,X):t(...X)}finally{Zn=te,xt()}}}else b.run()};return p&&p(V),b=new Is(h),b.scheduler=d?()=>d(V,!1):V,R=_=>Il(_,!1,b),w=b.onStop=()=>{let _=mi.get(b);if(_){if(u)u(_,4);else for(let G of _)G();mi.delete(b)}},t?i?V(!0):M=b.run():d?d(V.bind(null,!0),!0):b.run(),E.pause=b.pause.bind(b),E.resume=b.resume.bind(b),E.stop=E,E}function ln(e,t=1/0,s){if(t<=0||!Ye(e)||e.__v_skip||(s=s||new Map,(s.get(e)||0)>=t))return e;if(s.set(e,t),t--,wt(e))ln(e.value,t,s);else if(Ne(e))for(let i=0;i{ln(i,t,s)});else if(si(e)){for(let i in e)ln(e[i],t,s);for(let i of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,i)&&ln(e[i],t,s)}return e}function Ro(e,t,s,i){try{return i?e(...i):e()}catch(o){Ao(o,t,s)}}function Gt(e,t,s,i){if(Te(e)){let o=Ro(e,t,s,i);return o&&yr(o)&&o.catch(r=>{Ao(r,t,s)}),o}if(Ne(e)){let o=[];for(let r=0;r>>1,o=Pt[i],r=ko(o);r=ko(s)?Pt.push(e):Pt.splice(Uf(t),0,e),e.flags|=1,Ql()}}function Ql(){wi||(wi=Xl.then(ed))}function Jl(e){if(!Ne(e))Mn&&e.id===-1?Mn.splice(Ms+1,0,e):e.flags&1||(pn.push(e),e.flags|=1);else for(let t=0;t=t))continue;Pt.splice(i,1),i=e?i-1:en,o.flags&4&&(o.flags&=-2),o(),o.flags&4||(o.flags&=-2)}}}function xl(e,t,s=0){if(pn.length){let i=pn,o=0;if(t){i=[];for(let d=0;dko(d)-ko(p));if(pn.length=o,Mn){for(let d=0;de.id==null?e.flags&2?-1:1/0:e.id;function ed(e){let t=Tt;try{for(en=0;en{i._d&&Si(-1);let r=ki(t),d=ss.length,p;try{p=e(...o)}finally{for(let u=ss.length;u>d;u--)Td();ki(r),i._d&&Si(1)}return p};return i._n=!0,i._c=!0,i._d=!0,i}function D(e,t){if(Lt===null)return e;let s=Ii(Lt),i=e.dirs||(e.dirs=[]);for(let o=0;o1)return s&&Te(t)?t.call(i&&i.proxy):t}}var Hf=Symbol.for("v-scx"),jf=()=>{{let e=Mt(Hf);return e}};function dt(e,t,s){return nd(e,t,s)}function nd(e,t,s=Ze){let{immediate:i,deep:o,flush:r,once:d}=s,p=ct({},s),u=t&&i||!t&&r!=="post",y;if(_s){if(r==="sync"){let w=jf();y=w.__watcherHandles||(w.__watcherHandles=[])}else if(!u){let w=()=>{};return w.stop=Tt,w.resume=Tt,w.pause=Tt,w}}let m=Nt;p.call=(w,R,S)=>Gt(w,m,R,S);let b=!1;r==="post"?p.scheduler=w=>{w.i=m,It(w,m&&m.suspense)}:r!=="sync"&&(b=!0,p.scheduler=(w,R)=>{R?w():Kr(w)}),p.augmentJob=w=>{t&&(w.flags|=4),b&&(w.flags|=2,m&&(w.id=m.uid,w.i=m))};let h=Ml(e,t,p);return _s&&(y?y.push(h):u&&h()),h}function Gf(e,t,s){let i=this.proxy,o=it(e)?e.includes(".")?sd(i,e):()=>i[e]:e.bind(i,i),r;Te(t)?r=t:(r=t.handler,s=t);let d=To(this),p=nd(o,r.bind(i),s);return d(),p}function sd(e,t){let s=t.split(".");return()=>{let i=e;for(let o=0;oe.__isTeleport;var $r=Symbol("_leaveCb");function Kf(e){let t=e[0];if(e.length>1){let s=!1;for(let i of e)if(i.type!==tn){t=i,s=!0;break}}return t}function od(e){if(!Pi(e))return Ai(e.type)&&e.children?Kf(e.children):e;if(e.component)return e.component.subTree;let{shapeFlag:t,children:s}=e;if(s){if(t&16)return s[0];if(t&32&&Te(s.default))return s.default()}}function Co(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;let s=e.component.subTree;Co(Ai(s.type)&&od(s)||s,t)}else if(e.shapeFlag&128)e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback);else if(e.transition=t,e.type===q&&Ne(e.children)){let s=gd(e.children,!1);s&&Co(s,t)}}function Br(e){if(e.component)return Br(e.component.subTree);if(e.type===q){let t=Ne(e.children)&&gd(e.children,!1);return t?Br(t):void 0}if(e.type!==tn)return e}function Po(e,t){return Te(e)?ct({name:e.name},t,{setup:e}):e}function Yr(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function Vl(e,t){let s;return!!((s=Object.getOwnPropertyDescriptor(e,t))&&!s.configurable)}var Ci=new WeakMap;function vo(e,t,s,i,o=!1){if(Ne(e)){e.forEach((S,N)=>vo(S,t&&(Ne(t)?t[N]:t),s,i,o));return}if(yo(i)&&!o){i.shapeFlag&512&&i.type.__asyncResolved&&i.component.subTree.component&&vo(e,t,s,i.component.subTree);return}let r=i.shapeFlag&4?Ii(i.component):i.el,d=o?null:r,{i:p,r:u}=e,y=t&&t.r,m=p.refs===Ze?p.refs={}:p.refs,b=p.setupState,h=We(b),w=b===Ze?vr:S=>Vl(m,S)?!1:je(h,S),R=(S,N)=>!(N&&Vl(m,N));if(y!=null&&y!==u){if(ql(t),it(y))m[y]=null,w(y)&&(b[y]=null);else if(wt(y)){let S=t;R(y,S.k)&&(y.value=null),S.k&&(m[S.k]=null)}}if(Te(u))Ro(u,p,12,[d,m]);else{let S=it(u),N=wt(u);if(S||N){let v=()=>{if(e.f){let E=S?w(u)?b[u]:m[u]:R(u)||!e.k?u.value:m[e.k];if(o)Ne(E)&&eo(E,r);else if(Ne(E))E.includes(r)||E.push(r);else if(S)m[u]=[r],w(u)&&(b[u]=m[u]);else{let M=[r];R(u,e.k)&&(u.value=M),e.k&&(m[e.k]=M)}}else S?(m[u]=d,w(u)&&(b[u]=d)):N&&(R(u,e.k)&&(u.value=d),e.k&&(m[e.k]=d))};if(d){let E=()=>{v(),Ci.delete(e)};E.id=-1,Ci.set(e,E),It(E,s)}else ql(e),v()}}}function ql(e){let t=Ci.get(e);t&&(t.flags|=8,Ci.delete(e))}var _l=e=>e.nodeType===8;var BJ=so().requestIdleCallback||(e=>setTimeout(e,1)),zJ=so().cancelIdleCallback||(e=>clearTimeout(e));function Yf(e,t){if(_l(e)&&e.data==="["){let s=1,i=e.nextSibling;for(;i;){if(i.nodeType===1){if(t(i)===!1)break}else if(_l(i))if(i.data==="]"){if(--s===0)break}else i.data==="["&&s++;i=i.nextSibling}}else t(e)}var yo=e=>!!e.type.__asyncLoader;function id(e){Te(e)&&(e={loader:e});let{loader:t,loadingComponent:s,errorComponent:i,delay:o=200,hydrate:r,timeout:d,suspensible:p=!0,onError:u}=e,y=null,m,b=0,h=()=>(b++,y=null,w()),w=()=>{let R;return y||(R=y=t().catch(S=>{if(S=S instanceof Error?S:new Error(String(S)),u)return new Promise((N,v)=>{u(S,()=>N(h()),()=>v(S),b+1)});throw S}).then(S=>R!==y&&y?y:(S&&(S.__esModule||S[Symbol.toStringTag]==="Module")&&(S=S.default),m=S,S)))};return Po({name:"AsyncComponentWrapper",__asyncLoader:w,__asyncHydrate(R,S,N){let v=R.isConnected,E=!1;(S.bu||(S.bu=[])).push(()=>E=!0);let M=()=>{E||!R.parentNode||v&&!R.isConnected||N()},V=r?()=>{let _=r(M,G=>Yf(R,G));_&&(S.bum||(S.bum=[])).push(_)}:M;m?V():w().then(()=>!S.isUnmounted&&V())},get __asyncResolved(){return m},setup(){let R=Nt;if(Yr(R),m)return()=>yi(m,R);let S=_=>{y=null,Ao(_,R,13,!i)};if(p&&R.suspense||_s)return w().then(_=>()=>yi(_,R)).catch(_=>(S(_),()=>i?Oe(i,{error:_}):null));let N=St(!1),v=St(),E=St(!!o),M,V;return Do(()=>{M!=null&&clearTimeout(M),V!=null&&clearTimeout(V)}),o&&(V=setTimeout(()=>{R.isUnmounted||(E.value=!1)},o)),d!=null&&(M=setTimeout(()=>{if(!R.isUnmounted&&!N.value&&!v.value){let _=new Error(`Async component timed out after ${d}ms.`);S(_),v.value=_}},d)),w().then(()=>{R.isUnmounted||(N.value=!0,R.parent&&Pi(R.parent.vnode)&&R.parent.update())}).catch(_=>{if(R.isUnmounted){y=null;return}S(_),v.value=_}),()=>{if(N.value&&m)return yi(m,R);if(v.value&&i)return Oe(i,{error:v.value});if(s&&!E.value)return yi(s,R)}}})}function yi(e,t){let{ref:s,props:i,children:o,ce:r}=t.vnode,d=Oe(e,i,o);return d.ref=s,d.ce=r,delete t.vnode.ce,d}var Pi=e=>e.type.__isKeepAlive;function rd(e,t){ld(e,"a",t)}function ad(e,t){ld(e,"da",t)}function ld(e,t,s=Nt){let i=e.__wdc||(e.__wdc=()=>{let o=s;for(;o;){if(o.isDeactivated)return;o=o.parent}return e()});if(Di(t,i,s),s){let o=s.parent;for(;o&&o.parent;)Pi(o.parent.vnode)&&Xf(i,t,s,o),o=o.parent}}function Xf(e,t,s,i){let o=Di(t,e,i,!0);Do(()=>{eo(i[t],o)},s)}function Di(e,t,s=Nt,i=!1){if(s){let o=s[e]||(s[e]=[]),r=t.__weh||(t.__weh=(...d)=>{Zt();let p=To(s),u=Gt(t,s,e,d);return p(),xt(),u});return i?o.unshift(r):o.push(r),r}}var En=e=>(t,s=Nt)=>{(!_s||e==="sp")&&Di(e,(...i)=>t(...i),s)},Qf=En("bm"),hn=En("m"),dd=En("bu"),ud=En("u"),is=En("bum"),Do=En("um"),Jf=En("sp"),Zf=En("rtg"),xf=En("rtc");function eh(e,t=Nt){Di("ec",e,t)}var cd="components",th="directives";function Xe(e,t){return pd(cd,e,!0,t)||e}var nh=Symbol.for("v-ndc");function Pe(e){return pd(th,e)}function pd(e,t,s=!0,i=!1){let o=Lt||Nt;if(o){let r=o.type;if(e===cd){let p=Fh(r,!1);if(p&&(p===t||p===ht(t)||p===Jn(ht(t))))return r}let d=$l(o[e]||r[e],t)||$l(o.appContext[e],t);return!d&&i?r:d}}function $l(e,t){return e&&(e[t]||e[ht(t)]||e[Jn(ht(t))])}function J(e,t,s,i){let o,r=s&&s[i],d=Ne(e);if(d||it(e)){let p=d&&dn(e),u=!1,y=!1;p&&(u=!Ot(e),y=jt(e),e=po(e)),o=new Array(e.length);for(let m=0,b=e.length;mt(p,u,void 0,r&&r[u]));else{let p=Object.keys(e);o=new Array(p.length);for(let u=0,y=p.length;ue?Vd(e)?Ii(e):zr(e.parent):null;var bo=ct(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>zr(e.parent),$root:e=>zr(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Xr(e),$forceUpdate:e=>e.f||(e.f=()=>{Kr(e.update)}),$nextTick:e=>e.n||(e.n=tt.bind(e.proxy)),$watch:e=>Gf.bind(e)});var Lr=(e,t)=>e!==Ze&&!e.__isScriptSetup&&je(e,t),sh={get({_:e},t){if(t==="__v_skip")return!0;let{ctx:s,setupState:i,data:o,props:r,accessCache:d,type:p,appContext:u}=e;if(t[0]!=="$"){let h=d[t];if(h!==void 0)switch(h){case 1:return i[t];case 2:return o[t];case 4:return s[t];case 3:return r[t]}else{if(Lr(i,t))return d[t]=1,i[t];if(o!==Ze&&je(o,t))return d[t]=2,o[t];if(je(r,t))return d[t]=3,r[t];if(s!==Ze&&je(s,t))return d[t]=4,s[t];Hr&&(d[t]=0)}}let y=bo[t],m,b;if(y)return t==="$attrs"&&Et(e.attrs,"get",""),y(e);if((m=p.__cssModules)&&(m=m[t]))return m;if(s!==Ze&&je(s,t))return d[t]=4,s[t];if(b=u.config.globalProperties,je(b,t))return b[t]},set({_:e},t,s){let{data:i,setupState:o,ctx:r}=e;return Lr(o,t)?(o[t]=s,!0):i!==Ze&&je(i,t)?(i[t]=s,!0):je(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(r[t]=s,!0)},has({_:{data:e,setupState:t,accessCache:s,ctx:i,appContext:o,props:r,type:d}},p){let u;return!!(s[p]||e!==Ze&&p[0]!=="$"&&je(e,p)||Lr(t,p)||je(r,p)||je(i,p)||je(bo,p)||je(o.config.globalProperties,p)||(u=d.__cssModules)&&u[p])},defineProperty(e,t,s){return s.get!=null?e._.accessCache[t]=0:je(s,"value")&&this.set(e,t,s.value,null),Reflect.defineProperty(e,t,s)}};function Ll(e){return Ne(e)?e.reduce((t,s)=>(t[s]=null,t),{}):e}var Hr=!0;function oh(e){let t=Xr(e),s=e.proxy,i=e.ctx;Hr=!1,t.beforeCreate&&Fl(t.beforeCreate,e,"bc");let{data:o,computed:r,methods:d,watch:p,provide:u,inject:y,created:m,beforeMount:b,mounted:h,beforeUpdate:w,updated:R,activated:S,deactivated:N,beforeDestroy:v,beforeUnmount:E,destroyed:M,unmounted:V,render:_,renderTracked:G,renderTriggered:te,errorCaptured:X,serverPrefetch:O,expose:U,inheritAttrs:C,components:L,directives:z,filters:K}=t;if(y&&ih(y,i,null),d)for(let Y in d){let he=d[Y];Te(he)&&(i[Y]=he.bind(s))}if(o){let Y=o.call(s,s);Ye(Y)&&(e.data=st(Y))}if(Hr=!0,r)for(let Y in r){let he=r[Y],Se=Te(he)?he.bind(s,s):Te(he.get)?he.get.bind(s,s):Tt,Ue=!Te(he)&&Te(he.set)?he.set.bind(s):Tt,Be=Rt({get:Se,set:Ue});Object.defineProperty(i,Y,{enumerable:!0,configurable:!0,get:()=>Be.value,set:Je=>Be.value=Je})}if(p)for(let Y in p)fd(p[Y],i,s,Y);if(u){let Y=Te(u)?u.call(s):u;Reflect.ownKeys(Y).forEach(he=>{os(he,Y[he])})}m&&Fl(m,e,"c");function se(Y,he){Ne(he)?he.forEach(Se=>Y(Se.bind(s))):he&&Y(he.bind(s))}if(se(Qf,b),se(hn,h),se(dd,w),se(ud,R),se(rd,S),se(ad,N),se(eh,X),se(xf,G),se(Zf,te),se(is,E),se(Do,V),se(Jf,O),Ne(U))if(U.length){let Y=e.exposed||(e.exposed={});U.forEach(he=>{Object.defineProperty(Y,he,{get:()=>s[he],set:Se=>s[he]=Se,enumerable:!0})})}else e.exposed||(e.exposed={});_&&e.render===Tt&&(e.render=_),C!=null&&(e.inheritAttrs=C),L&&(e.components=L),z&&(e.directives=z),O&&Yr(e)}function ih(e,t,s=Tt){Ne(e)&&(e=jr(e));for(let i in e){let o=e[i],r;Ye(o)?"default"in o?r=Mt(o.from||i,o.default,!0):r=Mt(o.from||i):r=Mt(o),wt(r)?Object.defineProperty(t,i,{enumerable:!0,configurable:!0,get:()=>r.value,set:d=>r.value=d}):t[i]=r}}function Fl(e,t,s){Gt(Ne(e)?e.map(i=>i.bind(t.proxy)):e.bind(t.proxy),t,s)}function fd(e,t,s,i){let o=i.includes(".")?sd(s,i):()=>s[i];if(it(e)){let r=t[e];Te(r)&&dt(o,r)}else if(Te(e))dt(o,e.bind(s));else if(Ye(e))if(Ne(e))e.forEach(r=>fd(r,t,s,i));else{let r=Te(e.handler)?e.handler.bind(s):t[e.handler];Te(r)&&dt(o,r,e)}}function Xr(e){let t=e.type,{mixins:s,extends:i}=t,{mixins:o,optionsCache:r,config:{optionMergeStrategies:d}}=e.appContext,p=r.get(t),u;return p?u=p:!o.length&&!s&&!i?u=t:(u={},o.length&&o.forEach(y=>Ei(u,y,d,!0)),Ei(u,t,d)),Ye(t)&&r.set(t,u),u}function Ei(e,t,s,i=!1){let{mixins:o,extends:r}=t;r&&Ei(e,r,s,!0),o&&o.forEach(d=>Ei(e,d,s,!0));for(let d in t)if(!(i&&d==="expose")){let p=rh[d]||s&&s[d];e[d]=p?p(e[d],t[d]):t[d]}return e}var rh={data:Ul,props:Bl,emits:Bl,methods:go,computed:go,beforeCreate:At,created:At,beforeMount:At,mounted:At,beforeUpdate:At,updated:At,beforeDestroy:At,beforeUnmount:At,destroyed:At,unmounted:At,activated:At,deactivated:At,errorCaptured:At,serverPrefetch:At,components:go,directives:go,watch:lh,provide:Ul,inject:ah};function Ul(e,t){return t?e?function(){return ct(Te(e)?e.call(this,this):e,Te(t)?t.call(this,this):t)}:t:e}function ah(e,t){return go(jr(e),jr(t))}function jr(e){if(Ne(e)){let t={};for(let s=0;st==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${ht(t)}Modifiers`]||e[`${on(t)}Modifiers`];function ph(e,t,...s){if(e.isUnmounted)return;let i=e.vnode.props||Ze,o=s,r=t.startsWith("update:"),d=r&&ch(i,t.slice(7));d&&(d.trim&&(o=s.map(m=>it(m)?m.trim():m)),d.number&&(o=o.map(Ts)));let p,u=i[p=no(t)]||i[p=no(ht(t))];!u&&r&&(u=i[p=no(on(t))]),u&&Gt(u,e,6,o);let y=i[p+"Once"];if(y){if(!e.emitted)e.emitted={};else if(e.emitted[p])return;e.emitted[p]=!0,Gt(y,e,6,o)}}var fh=new WeakMap;function md(e,t,s=!1){let i=s?fh:t.emitsCache,o=i.get(e);if(o!==void 0)return o;let r=e.emits,d={},p=!1;if(!Te(e)){let u=y=>{let m=md(y,t,!0);m&&(p=!0,ct(d,m))};!s&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}return!r&&!p?(Ye(e)&&i.set(e,null),null):(Ne(r)?r.forEach(u=>d[u]=null):ct(d,r),Ye(e)&&i.set(e,d),d)}function Ti(e,t){return!e||!Rs(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),je(e,t[0].toLowerCase()+t.slice(1))||je(e,on(t))||je(e,t))}function Fr(e){let{type:t,vnode:s,proxy:i,withProxy:o,propsOptions:[r],slots:d,attrs:p,emit:u,render:y,renderCache:m,props:b,data:h,setupState:w,ctx:R,inheritAttrs:S}=e,N=ki(e),v,E;try{if(s.shapeFlag&4){let _=o||i,G=_;v=fn(y.call(G,_,m,b,w,h,R)),E=p}else{let _=t;v=fn(_.length>1?_(b,{attrs:p,slots:d,emit:u}):_(b,null)),E=t.props?p:hh(p)}}catch(_){ss.length=0,Ao(_,e,1),v=Oe(tn)}let M=v,V;if(E&&S!==!1){let _=Object.keys(E),{shapeFlag:G}=M;_.length&&G&7&&(r&&_.some(As)&&(E=mh(E,r)),M=qs(M,E,!1,!0))}if(s.dirs&&(M=qs(M,null,!1,!0),M.dirs=M.dirs?M.dirs.concat(s.dirs):s.dirs),s.transition){let _=Ai(M.type)&&od(M)||M;Co(_,s.transition)}return v=M,ki(N),v}function gd(e,t=!0){let s;for(let i=0;i{let t;for(let s in e)(s==="class"||s==="style"||Rs(s))&&((t||(t={}))[s]=e[s]);return t},mh=(e,t)=>{let s={};for(let i in e)(!As(i)||!(i.slice(9)in t))&&(s[i]=e[i]);return s};function gh(e,t,s){let{props:i,children:o,component:r}=e,{props:d,children:p,patchFlag:u}=t,y=r.emitsOptions;if(t.dirs||t.transition)return!0;if(s&&u>=0){if(u&1024)return!0;if(u&16)return i?zl(i,d,y):!!d;if(u&8){let m=t.dynamicProps;for(let b=0;bObject.create(yd),wd=e=>Object.getPrototypeOf(e)===yd;function yh(e,t,s,i=!1){let o={},r=bd();e.propsDefaults=Object.create(null),kd(e,t,o,r);for(let d in e.propsOptions[0])d in o||(o[d]=void 0);s?e.props=i?o:fo(o):e.type.props?e.props=o:e.props=r,e.attrs=r}function bh(e,t,s,i){let{props:o,attrs:r,vnode:{patchFlag:d}}=e,p=We(o),[u]=e.propsOptions,y=!1;if((i||d>0)&&!(d&16)){if(d&8){let m=e.vnode.dynamicProps;for(let b=0;b{u=!0;let[h,w]=Cd(b,t,!0);ct(d,h),w&&p.push(...w)};!s&&t.mixins.length&&t.mixins.forEach(m),e.extends&&m(e.extends),e.mixins&&e.mixins.forEach(m)}if(!r&&!u)return Ye(e)&&i.set(e,In),In;if(Ne(r))for(let m=0;me==="_"||e==="_ctx"||e==="$stable",Jr=e=>Ne(e)?e.map(fn):[fn(e)],kh=(e,t,s)=>{if(t._n)return t;let i=zf((...o)=>Jr(t(...o)),s);return i._c=!1,i},Ed=(e,t,s)=>{let i=e._ctx;for(let o in e){if(Qr(o))continue;let r=e[o];if(Te(r))t[o]=kh(o,r,i);else if(r!=null){let d=Jr(r);t[o]=()=>d}}},Sd=(e,t)=>{let s=Jr(t);e.slots.default=()=>s},Nd=(e,t,s)=>{for(let i in t)(s||!Qr(i))&&(e[i]=t[i])},Ch=(e,t,s)=>{let i=e.slots=bd();if(e.vnode.shapeFlag&32){let o=t._;o?(Nd(i,t,s),s&&ri(i,"_",o,!0)):Ed(t,i)}else t&&Sd(e,t)},Eh=(e,t,s)=>{let{vnode:i,slots:o}=e,r=!0,d=Ze;if(i.shapeFlag&32){let p=t._;p?s&&p===1?r=!1:Nd(o,t,s):(r=!t.$stable,Ed(t,o)),d=t}else t&&(Sd(e,t),d={default:1});if(r)for(let p in o)!Qr(p)&&d[p]==null&&delete o[p]};function Sh(){let e=[]}var It=Ph;function Rd(e){return Nh(e)}function Nh(e,t){Sh();let s=so();s.__VUE__=!0;let{insert:i,remove:o,patchProp:r,createElement:d,createText:p,createComment:u,setText:y,setElementText:m,parentNode:b,nextSibling:h,setScopeId:w=Tt,insertStaticContent:R}=e,S=(P,T,F,Q=null,H=null,x=null,le=void 0,ne=null,oe=!!T.dynamicChildren)=>{if(P===T)return;P&&!mo(P,T)&&(Q=fe(P),He(P,H,x,!0),P=null),T.patchFlag===-2&&(oe=!1,T.dynamicChildren=null),T.dynamicChildren&&P&&P.dynamicChildren&&P.dynamicChildren.hasOnce&&(T.dynamicChildren===In&&(T.dynamicChildren=[]),T.dynamicChildren.hasOnce=!0);let{type:ee,ref:ke,shapeFlag:pe}=T;switch(ee){case Oi:N(P,T,F,Q);break;case tn:v(P,T,F,Q);break;case wo:P==null&&E(T,F,Q,le);break;case q:z(P,T,F,Q,H,x,le,ne,oe);break;default:pe&1?G(P,T,F,Q,H,x,le,ne,oe):pe&6?K(P,T,F,Q,H,x,le,ne,oe):(pe&64||pe&128)&&ee.process(P,T,F,Q,H,x,le,ne,oe,ce)}ke!=null&&H?vo(ke,P&&P.ref,x,T||P,!T):ke==null&&P&&P.ref!=null&&vo(P.ref,null,x,P,!0)},N=(P,T,F,Q)=>{if(P==null)i(T.el=p(T.children),F,Q);else{let H=T.el=P.el;T.children!==P.children&&y(H,T.children)}},v=(P,T,F,Q)=>{P==null?i(T.el=u(T.children||""),F,Q):T.el=P.el},E=(P,T,F,Q)=>{[P.el,P.anchor]=R(P.children,T,F,Q,P.el,P.anchor)},M=(P,T,F,Q)=>{if(T.children!==P.children){let H=h(P.anchor);_(P),[T.el,T.anchor]=R(T.children,F,H,Q)}else T.el=P.el,T.anchor=P.anchor},V=({el:P,anchor:T},F,Q)=>{let H;for(;P&&P!==T;)H=h(P),i(P,F,Q),P=H;i(T,F,Q)},_=({el:P,anchor:T})=>{let F;for(;P&&P!==T;)F=h(P),o(P),P=F;o(T)},G=(P,T,F,Q,H,x,le,ne,oe)=>{if(T.type==="svg"?le="svg":T.type==="math"&&(le="mathml"),P==null)te(T,F,Q,H,x,le,ne,oe);else{let ee=P.el&&P.el._isVueCE?P.el:null;try{ee&&ee._beginPatch(),U(P,T,H,x,le,ne,oe)}finally{ee&&ee._endPatch()}}},te=(P,T,F,Q,H,x,le,ne)=>{let oe,ee,{props:ke,shapeFlag:pe,transition:Ee,dirs:Ae}=P;if(oe=P.el=d(P.type,x,ke&&ke.is,ke),pe&8?m(oe,P.children):pe&16&&O(P.children,oe,null,Q,H,Ur(P,x),le,ne),Ae&&ts(P,null,Q,"created"),X(oe,P,P.scopeId,le,Q),ke){for(let Ge in ke)Ge!=="value"&&!Ps(Ge)&&r(oe,Ge,null,ke[Ge],x,Q);"value"in ke&&r(oe,"value",null,ke.value,x),(ee=ke.onVnodeBeforeMount)&&cn(ee,Q,P)}Ae&&ts(P,null,Q,"beforeMount");let Ve=Rh(H,Ee);Ve&&Ee.beforeEnter(oe),i(oe,T,F),((ee=ke&&ke.onVnodeMounted)||Ve||Ae)&&It(()=>{let ze;ee&&cn(ee,Q,P),Ve&&Ee.enter(oe),Ae&&ts(P,null,Q,"mounted")},H)},X=(P,T,F,Q,H)=>{if(F&&w(P,F),Q)for(let x=0;x{for(let ee=oe;ee{let ne=T.el=P.el,{patchFlag:oe,dynamicChildren:ee,dirs:ke}=T;oe|=P.patchFlag&16;let pe=P.props||Ze,Ee=T.props||Ze,Ae;if(F&&ns(F,!1),(Ae=Ee.onVnodeBeforeUpdate)&&cn(Ae,F,T,P),ke&&ts(T,P,F,"beforeUpdate"),F&&ns(F,!0),ee&&(!P.dynamicChildren||P.dynamicChildren.length!==ee.length)&&(oe=0,le=!1,ee=null),(pe.innerHTML&&Ee.innerHTML==null||pe.textContent&&Ee.textContent==null)&&m(ne,""),ee?C(P.dynamicChildren,ee,ne,F,Q,Ur(T,H),x):le||Se(P,T,ne,null,F,Q,Ur(T,H),x,!1),oe>0){if(oe&16)L(ne,pe,Ee,F,H);else if(oe&2&&pe.class!==Ee.class&&r(ne,"class",null,Ee.class,H),oe&4&&r(ne,"style",pe.style,Ee.style,H),oe&8){let Ve=T.dynamicProps;for(let Ge=0;Ge{Ae&&cn(Ae,F,T,P),ke&&ts(T,P,F,"updated")},Q)},C=(P,T,F,Q,H,x,le)=>{for(let ne=0;ne{if(T!==F){if(T!==Ze)for(let x in T)!Ps(x)&&!(x in F)&&r(P,x,T[x],null,H,Q);for(let x in F){if(Ps(x))continue;let le=F[x],ne=T[x];le!==ne&&x!=="value"&&r(P,x,ne,le,H,Q)}"value"in F&&r(P,"value",T.value,F.value,H)}},z=(P,T,F,Q,H,x,le,ne,oe)=>{let ee=T.el=P?P.el:p(""),ke=T.anchor=P?P.anchor:p(""),{patchFlag:pe,dynamicChildren:Ee,slotScopeIds:Ae}=T;Ae&&(ne=ne?ne.concat(Ae):Ae),P==null?(i(ee,F,Q),i(ke,F,Q),O(T.children||[],F,ke,H,x,le,ne,oe)):pe>0&&pe&64&&Ee&&P.dynamicChildren&&P.dynamicChildren.length===Ee.length?(C(P.dynamicChildren,Ee,F,H,x,le,ne),(T.key!=null||H&&T===H.subTree)&&Ad(P,T,!0)):Se(P,T,F,ke,H,x,le,ne,oe)},K=(P,T,F,Q,H,x,le,ne,oe)=>{T.slotScopeIds=ne,P==null?T.shapeFlag&512?H.ctx.activate(T,F,Q,le,oe):ie(T,F,Q,H,x,le,oe):se(P,T,oe)},ie=(P,T,F,Q,H,x,le)=>{let ne=P.component=Vh(P,Q,H);if(Pi(P)&&(ne.ctx.renderer=ce),qh(ne,!1,le),ne.asyncDep){if(H&&H.registerDep(ne,Y,le,x),!P.el){let oe=ne.subTree=Oe(tn);v(null,oe,T,F),P.placeholder=oe.el}}else Y(ne,P,T,F,H,x,le)},se=(P,T,F)=>{let Q=T.component=P.component;if(gh(P,T,F))if(Q.asyncDep&&!Q.asyncResolved){T.el=P.el,T.placeholder=P.placeholder,he(Q,T,F);return}else Q.next=T,Q.update();else T.el=P.el,T.placeholder=P.placeholder,Q.vnode=T},Y=(P,T,F,Q,H,x,le)=>{let ne=()=>{if(P.isMounted){let{next:pe,bu:Ee,u:Ae,parent:Ve,vnode:Ge}=P;{let rt=Pd(P);if(rt){pe&&(pe.el=Ge.el,he(P,pe,le)),rt.asyncDep.then(()=>{It(()=>{P.isUnmounted||ee()},H)});return}}let ze=pe,we;ns(P,!1),pe?(pe.el=Ge.el,he(P,pe,le)):pe=Ge,Ee&&Ds(Ee),(we=pe.props&&pe.props.onVnodeBeforeUpdate)&&cn(we,Ve,pe,Ge),ns(P,!0);let be=Fr(P),ot=P.subTree;P.subTree=be,S(ot,be,b(ot.el),fe(ot),P,H,x),pe.el=be.el,ze===null&&vh(P,be.el),Ae&&It(Ae,H),(we=pe.props&&pe.props.onVnodeUpdated)&&It(()=>cn(we,Ve,pe,Ge),H)}else{let pe,{el:Ee,props:Ae}=T,{bm:Ve,m:Ge,parent:ze,root:we,type:be}=P,ot=yo(T);if(ns(P,!1),Ve&&Ds(Ve),!ot&&(pe=Ae&&Ae.onVnodeBeforeMount)&&cn(pe,ze,T),ns(P,!0),Ee&&Me){let rt=()=>{P.subTree=Fr(P),Me(Ee,P.subTree,P,H,null)};ot&&be.__asyncHydrate?be.__asyncHydrate(Ee,P,rt):rt()}else{we.ce&&we.ce._hasShadowRoot()&&we.ce._injectChildStyle(be,P.parent?P.parent.type:void 0);let rt=P.subTree=Fr(P);S(null,rt,F,Q,P,H,x),T.el=rt.el}if(Ge&&It(Ge,H),!ot&&(pe=Ae&&Ae.onVnodeMounted)){let rt=T;It(()=>cn(pe,ze,rt),H)}(T.shapeFlag&256||ze&&yo(ze.vnode)&&ze.vnode.shapeFlag&256)&&P.a&&It(P.a,H),P.isMounted=!0,T=F=Q=null}};P.scope.on();let oe=P.effect=new Is(ne);P.scope.off();let ee=P.update=oe.run.bind(oe),ke=P.job=oe.runIfDirty.bind(oe);ke.i=P,ke.id=P.uid,oe.scheduler=()=>Kr(ke),ns(P,!0),ee()},he=(P,T,F)=>{T.component=P;let Q=P.vnode.props;P.vnode=T,P.next=null,bh(P,T.props,Q,F),Eh(P,T.children,F),Zt(),Zl(P),xt()},Se=(P,T,F,Q,H,x,le,ne,oe=!1)=>{let ee=P&&P.children,ke=P?P.shapeFlag:0,pe=T.children,{patchFlag:Ee,shapeFlag:Ae}=T;if(Ee>0){if(Ee&128){Be(ee,pe,F,Q,H,x,le,ne,oe);return}else if(Ee&256){Ue(ee,pe,F,Q,H,x,le,ne,oe);return}}Ae&8?(ke&16&&W(ee,H,x),pe!==ee&&m(F,pe)):ke&16?Ae&16?Be(ee,pe,F,Q,H,x,le,ne,oe):W(ee,H,x,!0):(ke&8&&m(F,""),Ae&16&&O(pe,F,Q,H,x,le,ne,oe))},Ue=(P,T,F,Q,H,x,le,ne,oe)=>{P=P||In,T=T||In;let ee=P.length,ke=T.length,pe=Math.min(ee,ke),Ee;for(Ee=0;Eeke?W(P,H,x,!0,!1,pe):O(T,F,Q,H,x,le,ne,oe,pe)},Be=(P,T,F,Q,H,x,le,ne,oe)=>{let ee=0,ke=T.length,pe=P.length-1,Ee=ke-1;for(;ee<=pe&&ee<=Ee;){let Ae=P[ee],Ve=T[ee]=oe?Cn(T[ee]):fn(T[ee]);if(mo(Ae,Ve))S(Ae,Ve,F,null,H,x,le,ne,oe);else break;ee++}for(;ee<=pe&&ee<=Ee;){let Ae=P[pe],Ve=T[Ee]=oe?Cn(T[Ee]):fn(T[Ee]);if(mo(Ae,Ve))S(Ae,Ve,F,null,H,x,le,ne,oe);else break;pe--,Ee--}if(ee>pe){if(ee<=Ee){let Ae=Ee+1,Ve=AeEe)for(;ee<=pe;)He(P[ee],H,x,!0),ee++;else{let Ae=ee,Ve=ee,Ge=new Map;for(ee=Ve;ee<=Ee;ee++){let lt=T[ee]=oe?Cn(T[ee]):fn(T[ee]);lt.key!=null&&Ge.set(lt.key,ee)}let ze,we=0,be=Ee-Ve+1,ot=!1,rt=0,yt=new Array(be);for(ee=0;ee=be){He(lt,H,x,!0);continue}let ft;if(lt.key!=null)ft=Ge.get(lt.key);else for(ze=Ve;ze<=Ee;ze++)if(yt[ze-Ve]===0&&mo(lt,T[ze])){ft=ze;break}ft===void 0?He(lt,H,x,!0):(yt[ft-Ve]=ee+1,ft>=rt?rt=ft:ot=!0,S(lt,T[ft],F,null,H,x,le,ne,oe),we++)}let at=ot?Ah(yt):In;for(ze=at.length-1,ee=be-1;ee>=0;ee--){let lt=Ve+ee,ft=T[lt],Vt=T[lt+1],Yn=lt+1{let{el:x,type:le,transition:ne,children:oe,shapeFlag:ee}=P;if(ee&6){Je(P.component.subTree,T,F,Q);return}if(ee&128){P.suspense.move(T,F,Q);return}if(ee&64){le.move(P,T,F,ce);return}if(le===q){i(x,T,F);for(let pe=0;pene.enter(x),H));else{let{leave:pe,delayLeave:Ee,afterLeave:Ae}=ne,Ve=()=>{P.ctx.isUnmounted?o(x):i(x,T,F)},Ge=()=>{let ze=x._isLeaving||!!x[$r];x._isLeaving&&x[$r](!0),ne.persisted&&!ze?Ve():pe(x,()=>{Ve(),Ae&&Ae()})};Ee?Ee(x,Ve,Ge):Ge()}else i(x,T,F)},He=(P,T,F,Q=!1,H=!1)=>{let{type:x,props:le,ref:ne,children:oe,dynamicChildren:ee,shapeFlag:ke,patchFlag:pe,dirs:Ee,cacheIndex:Ae,memo:Ve}=P;if((pe===-2||ee&&ee.hasOnce)&&(H=!1),ne!=null&&(Zt(),vo(ne,null,F,P,!0),xt()),Ae!=null&&(!P.ctx||P.ctx===T)&&(T.renderCache[Ae]=void 0),ke&256){T.ctx.deactivate(P);return}let Ge=ke&1&&Ee,ze=!yo(P),we;if(ze&&(we=le&&le.onVnodeBeforeUnmount)&&cn(we,T,P),ke&6)Fe(P.component,F,Q);else{if(ke&128){P.suspense.unmount(F,Q);return}Ge&&ts(P,null,T,"beforeUnmount"),ke&64?P.type.remove(P,T,F,ce,Q):ee&&!ee.hasOnce&&(x!==q||pe>0&&pe&64)?W(ee,T,F,!1,!0):(x===q&&pe&384||!H&&ke&16)&&W(oe,T,F),Q&&et(P)}let be=Ve!=null&&Ae==null;(ze&&(we=le&&le.onVnodeUnmounted)||Ge||be)&&It(()=>{we&&cn(we,T,P),Ge&&ts(P,null,T,"unmounted"),be&&(P.el=null)},F)},et=P=>{let{type:T,el:F,anchor:Q,transition:H}=P,x=T===q;if(x&&!H){Re(F,Q);return}if(T===wo){_(P),H&&!H.persisted&&H.afterLeave&&H.afterLeave();return}let le=x?Br(P):P,ne=()=>{x?b(F)&&Re(F,Q):o(F),H&&!H.persisted&&H.afterLeave&&H.afterLeave()};if(le&&le.shapeFlag&1&&H&&!H.persisted){let{leave:oe,delayLeave:ee}=H,ke=le.el,pe=()=>oe(ke,ne);ee?ee(ke,ne,pe):pe()}else ne()},Re=(P,T)=>{let F;for(;P!==T;)F=h(P),o(P),P=F;o(T)},Fe=(P,T,F)=>{let{bum:Q,scope:H,job:x,subTree:le,um:ne,m:oe,a:ee}=P;jl(oe),jl(ee),Q&&Ds(Q),H.stop(),x?(x.flags|=8,He(le,P,T,F)):P.vnode.el&&le&&(le.transition=P.vnode.transition,He(le,P,T,F)),ne&&It(ne,T),It(()=>{P.isUnmounted=!0},T)},W=(P,T,F,Q=!1,H=!1,x=0)=>{for(let le=x;le{if(P.shapeFlag&6)return fe(P.component.subTree);if(P.shapeFlag&128)return P.suspense.next();let T=h(P.anchor||P.el),F=T&&T[Wf];return F?h(F):T},de=(P,T,F)=>{let Q=P&&T._vnode?void 0:P&&P.component?P.component.uid:Mh();Bf(()=>{P==null?T._vnode&&He(T._vnode,null,null,!0):S(T._vnode||null,P,T,null,null,null,F),T._vnode=P},Q)},ce={p:S,um:He,m:Je,r:et,mt:ie,mc:O,pc:Se,pbc:C,n:fe,o:e},ve,Me;return t&&([ve,Me]=t(ce)),{render:de,hydrate:ve,createApp:uh(de,ve)}}function Ur({type:e,props:t},s){return s==="svg"&&e==="foreignObject"||s==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:s}function ns({effect:e,job:t},s){s?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Rh(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Ad(e,t,s=!1){let i=e.children,o=t.children;if(Ne(i)&&Ne(o))for(let r=0;r>1,e[s[p]]0&&(t[i]=s[r-1]),s[r]=i)}}for(r=s.length,d=s[r-1];r-- >0;)s[r]=d,d=t[d];return s}function Pd(e){let t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Pd(t)}function jl(e){if(e)for(let t=0;te.__isSuspense;function Ph(e,t){t&&t.pendingBranch?Ne(e)?t.effects.push(...e):t.effects.push(e):Jl(e)}var q=Symbol.for("v-fgt"),Oi=Symbol.for("v-txt"),tn=Symbol.for("v-cmt"),wo=Symbol.for("v-stc"),ss=[],Ft=null;function a(e=!1){ss.push(Ft=e?null:[])}function Td(){ss.pop(),Ft=ss[ss.length-1]||null}var Eo=1;function Si(e,t=!1){Eo+=e,e<0&&Ft&&t&&(Ft.hasOnce=!0)}function Od(e){return e.dynamicChildren=Eo>0?Ft||In:null,Td(),Eo>0&&Ft&&Ft.push(e),e}function l(e,t,s,i,o,r){return Od(n(e,t,s,i,o,r,!0))}function Wt(e,t,s,i,o){return Od(Oe(e,t,s,i,o,!0))}function So(e){return e?e.__v_isVNode===!0:!1}function mo(e,t){return e.type===t.type&&e.key===t.key}var Id=({key:e})=>e??null,bi=({ref:e,ref_key:t,ref_for:s})=>(typeof e=="number"&&(e=""+e),e!=null?it(e)||wt(e)||Te(e)?{i:Lt,r:e,k:t,f:!!s}:e:null);function n(e,t=null,s=null,i=0,o=null,r=e===q?0:1,d=!1,p=!1){let u={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Id(t),ref:t&&bi(t),scopeId:td,slotScopeIds:null,children:s,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:r,patchFlag:i,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:Lt};return p?(Ni(u,s),r&128&&e.normalize(u)):s&&(u.shapeFlag|=it(s)?8:16),Eo>0&&!d&&Ft&&(u.patchFlag>0||r&6)&&u.patchFlag!==32&&Ft.push(u),u}var Oe=Dh;function Dh(e,t=null,s=null,i=0,o=null,r=!1){if((!e||e===nh)&&(e=tn),So(e)){let p=qs(e,t,!0);return s&&Ni(p,s),Eo>0&&!r&&Ft&&(p.shapeFlag&6?Ft[Ft.indexOf(e)]=p:Ft.push(p)),p.patchFlag=-2,p}if(Uh(e)&&(e=e.__vccOpts),t){t=Th(t);let{class:p,style:u}=t;p&&!it(p)&&(t.class=A(p)),Ye(u)&&(ho(u)&&!Ne(u)&&(u=ct({},u)),t.style=Ie(u))}let d=it(e)?1:Dd(e)?128:Ai(e)?64:Ye(e)?4:Te(e)?2:0;return n(e,t,s,i,o,d,r,!0)}function Th(e){return e?ho(e)||wd(e)?ct({},e):e:null}function qs(e,t,s=!1,i=!1){let{props:o,ref:r,patchFlag:d,children:p,transition:u}=e,y=t?Oh(o||{},t):o,m={__v_isVNode:!0,__v_skip:!0,type:e.type,props:y,key:y&&Id(y),ref:t&&t.ref?s&&r?Ne(r)?r.concat(bi(t)):[r,bi(t)]:bi(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:p,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==q?d===-1?16:d|16:d,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:u,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&qs(e.ssContent),ssFallback:e.ssFallback&&qs(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce,cacheIndex:e.cacheIndex};return u&&i&&Co(m,u.clone(m)),m}function g(e=" ",t=0){return Oe(Oi,null,e,t)}function Ce(e,t){let s=Oe(wo,null,e);return s.staticCount=t,s}function f(e="",t=!1){return t?(a(),Wt(tn,null,e)):Oe(tn,null,e)}function fn(e){return e==null||typeof e=="boolean"?Oe(tn):Ne(e)?Oe(q,null,e.slice()):So(e)?Cn(e):Oe(Oi,null,String(e))}function Cn(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:qs(e)}function Ni(e,t){let s=0,{shapeFlag:i}=e;if(t==null)t=null;else if(Ne(t))s=16;else if(typeof t=="object")if(i&65){let o=t.default;o&&(o._c&&(o._d=!1),Ni(e,o()),o._c&&(o._d=!0));return}else{s=32;let o=t._;!o&&!wd(t)?t._ctx=Lt:o===3&&Lt&&(Lt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(Te(t)){if(i&65){Ni(e,{default:t});return}t={default:t,_ctx:Lt},s=32}else t=String(t),i&64?(s=16,t=[g(t)]):s=8;e.children=t,e.shapeFlag|=s}function Oh(...e){let t={};for(let s=0;sNt||Lt,Ri,No;{let e=so(),t=(s,i)=>{let o;return(o=e[s])||(o=e[s]=[]),o.push(i),r=>{o.length>1?o.forEach(d=>d(r)):o[0](r)}};Ri=t("__VUE_INSTANCE_SETTERS__",s=>Nt=s),No=t("__VUE_SSR_SETTERS__",s=>_s=s)}var To=e=>{let t=Nt;return Ri(e),e.scope.on(),()=>{e.scope.off(),Ri(t)}},Gl=()=>{Nt&&Nt.scope.off(),Ri(null)};function Vd(e){return e.vnode.shapeFlag&4}var _s=!1;function qh(e,t=!1,s=!1){t&&No(t);let{props:i,children:o}=e.vnode,r=Vd(e);yh(e,i,r,t),Ch(e,o,s||t);let d=r?_h(e,t):void 0;return t&&No(!1),d}function _h(e,t){let s=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,sh);let{setup:i}=s;if(i){Zt();let o=e.setupContext=i.length>1?Lh(e):null,r=To(e),d=Ro(i,e,0,[e.props,o]),p=yr(d);if(xt(),r(),(p||e.sp)&&!yo(e)&&Yr(e),p){if(d.then(Gl,Gl),t)return d.then(u=>{No(!0);try{Wl(e,u,t)}finally{No(!1)}}).catch(u=>{Ao(u,e,0)});e.asyncDep=d}else Wl(e,d,t)}else qd(e,t)}function Wl(e,t,s){Te(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Ye(t)&&(e.setupState=vi(t)),qd(e,s)}var Kl,Yl;function qd(e,t,s){let i=e.type;if(!e.render){if(!t&&Kl&&!i.render){let o=i.template||Xr(e).template;if(o){let{isCustomElement:r,compilerOptions:d}=e.appContext.config,{delimiters:p,compilerOptions:u}=i,y=ct(ct({isCustomElement:r,delimiters:p},d),u);i.render=Kl(o,y)}}e.render=i.render||Tt,Yl&&Yl(e)}{let o=To(e);Zt();try{oh(e)}finally{xt(),o()}}}var $h={get(e,t){return Et(e,"get",""),e[t]}};function Lh(e){let t=s=>{e.exposed=s||{}};return{attrs:new Proxy(e.attrs,$h),slots:e.slots,emit:e.emit,expose:t}}function Ii(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(vi(un(e.exposed)),{get(t,s){if(s in t)return t[s];if(s in bo)return bo[s](e)},has(t,s){return s in t||s in bo}})):e.proxy}function Fh(e,t=!0){return Te(e)?e.displayName||e.name:e.name||t&&e.__name}function Uh(e){return Te(e)&&"__vccOpts"in e}var Rt=(e,t)=>Ol(e,t,_s);function De(e,t,s){try{Si(-1);let i=arguments.length;return i===2?Ye(t)&&!Ne(t)?So(t)?Oe(e,null,[t]):Oe(e,t):Oe(e,null,t):(i>3?s=Array.prototype.slice.call(arguments,2):i===3&&So(s)&&(s=[s]),Oe(e,t,s))}finally{Si(1)}}var Bh="3.5.44";var na,_d=typeof window<"u"&&window.trustedTypes;if(_d)try{na=_d.createPolicy("vue",{createHTML:e=>e})}catch{}var Yd=na?e=>na.createHTML(e):e=>e,zh="http://www.w3.org/2000/svg",Hh="http://www.w3.org/1998/Math/MathML",Sn=typeof document<"u"?document:null,$d=Sn&&Sn.createElement("template"),jh={insert:(e,t,s)=>{t.insertBefore(e,s||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,s,i)=>{let o=t==="svg"?Sn.createElementNS(zh,e):t==="mathml"?Sn.createElementNS(Hh,e):s?Sn.createElement(e,{is:s}):Sn.createElement(e);return e==="select"&&i&&i.multiple!=null&&o.setAttribute("multiple",i.multiple),o},createText:e=>Sn.createTextNode(e),createComment:e=>Sn.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Sn.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,s,i,o,r){let d=s?s.previousSibling:t.lastChild;if(o&&(o===r||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),s),!(o===r||!(o=o.nextSibling)););else{$d.innerHTML=Yd(i==="svg"?`${e}`:i==="mathml"?`${e}`:e);let p=$d.content;if(i==="svg"||i==="mathml"){let u=p.firstChild;for(;u.firstChild;)p.appendChild(u.firstChild);p.removeChild(u)}t.insertBefore(p,s)}return[d?d.nextSibling:t.firstChild,s?s.previousSibling:t.lastChild]}};var Gh=Symbol("_vtc");function Wh(e,t,s){let i=e[Gh];i&&(t=(t?[t,...i]:[...i]).join(" ")),t==null?e.removeAttribute("class"):s?e.setAttribute("class",t):e.className=t}var qi=Symbol("_vod"),Xd=Symbol("_vsh"),Z={name:"show",beforeMount(e,{value:t},{transition:s}){e[qi]=e.style.display==="none"?"":e.style.display,s&&t?s.beforeEnter(e):Oo(e,t)},mounted(e,{value:t},{transition:s}){s&&t&&s.enter(e)},updated(e,{value:t,oldValue:s},{transition:i}){!t!=!s&&(i?t?(i.beforeEnter(e),Oo(e,!0),i.enter(e)):i.leave(e,()=>{Oo(e,!1)}):Oo(e,t))},beforeUnmount(e,{value:t}){Oo(e,t)}};function Oo(e,t){e.style.display=t?e[qi]:"none",e[Xd]=!t}var Kh=Symbol("");var Yh=/(?:^|;)\s*display\s*:/;function Xh(e,t,s){let i=e.style,o=it(s),r=!1;if(s&&!o){if(t)if(it(t))for(let d of t.split(";")){let p=d.slice(0,d.indexOf(":")).trim();s[p]==null&&Io(i,p,"")}else for(let d in t)s[d]==null&&Io(i,d,"");for(let d in s){d==="display"&&(r=!0);let p=s[d];p!=null?Jh(e,d,!it(t)&&t?t[d]:void 0,p)||Io(i,d,p):Io(i,d,"")}}else if(o){if(t!==s){let d=i[Kh];d&&(s+=";"+d),i.cssText=s,r=Yh.test(s)}}else t&&e.removeAttribute("style");qi in e&&((!o||t!==s)&&(e[qi]=r?i.display:""),e[Xd]&&(i.display="none"))}var Mi=/\s*!important$/;function Io(e,t,s){if(Ne(s))s.forEach(i=>Io(e,t,i));else if(s==null&&(s=""),t.startsWith("--"))Mi.test(s)?e.setProperty(t,s.replace(Mi,""),"important"):e.setProperty(t,s);else{let i=Qh(e,t);Mi.test(s)?e.setProperty(on(i),s.replace(Mi,""),"important"):e[i]=s}}var Ld=["Webkit","Moz","ms"],xr={};function Qh(e,t){let s=xr[t];if(s)return s;let i=ht(t);if(i!=="filter"&&i in e)return xr[t]=i;i=Jn(i);for(let o=0;oea||(sm.then(()=>ea=0),ea=Date.now());function im(e,t){let s=i=>{if(!i._vts)i._vts=Date.now();else if(i._vts<=s.attached)return;let o=s.value;if(Ne(o)){let r=i.stopImmediatePropagation;i.stopImmediatePropagation=()=>{r.call(i),i._stopped=!0};let d=o.slice(),p=[i];for(let u=0;ue.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,rm=(e,t,s,i,o,r)=>{let d=o==="svg";t==="class"?Wh(e,i,d):t==="style"?Xh(e,s,i):Rs(t)?As(t)||xh(e,t,s,i,r):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):am(e,t,i,d))?(Bd(e,t,i),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Ud(e,t,i,d,r,t!=="value")):e._isVueCE&&(lm(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!it(i)))?Bd(e,ht(t),i,r,t):(t==="true-value"?e._trueValue=i:t==="false-value"&&(e._falseValue=i),Ud(e,t,i,d))};function am(e,t,s,i){if(i)return!!(t==="innerHTML"||t==="textContent"||t in e&&Hd(t)&&Te(s));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){let o=e.tagName;if(o==="IMG"||o==="VIDEO"||o==="CANVAS"||o==="SOURCE")return!1}return Hd(t)&&it(s)?!1:t in e}function lm(e,t){let s=e._def.props;if(!s)return!1;let i=ht(t);return Array.isArray(s)?s.some(o=>ht(o)===i):Object.keys(s).some(o=>ht(o)===i)}var $s=e=>{let t=e.props["onUpdate:modelValue"]||!1;return Ne(t)?s=>Ds(t,s):t};function dm(e){e.target.composing=!0}function jd(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}var mn=Symbol("_assign"),Vi=Symbol("_initialValue");function ta(e,t,s){return t&&(e=e.trim()),s&&(e=Ts(e)),e}var pt={created(e,{modifiers:{lazy:t,trim:s,number:i}},o){e.parentNode&&(e.type==="text"?e[Vi]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[Vi]=e.defaultValue.replace(/\r\n?/g,` +`))),e[mn]=$s(o);let r=i||o.props&&o.props.type==="number";Vn(e,t?"change":"input",d=>{d.target.composing||e[mn](ta(e.value,s,r))}),(s||r)&&Vn(e,"change",()=>{e.value=ta(e.value,s,r)}),t||(Vn(e,"compositionstart",dm),Vn(e,"compositionend",jd),Vn(e,"change",jd))},mounted(e,{value:t,modifiers:{trim:s,number:i}}){let o=t??"",r=e[Vi];delete e[Vi],r!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==r?e[mn](ta(e.value,s,i)):e.value=o},beforeUpdate(e,{value:t,oldValue:s,modifiers:{lazy:i,trim:o,number:r}},d){if(e[mn]=$s(d),e.composing)return;let p=(r||e.type==="number")&&!/^0\d/.test(e.value)?Ts(e.value):e.value,u=t??"";if(p===u)return;let y=e.getRootNode();(y instanceof Document||y instanceof ShadowRoot)&&y.activeElement===e&&e.type!=="range"&&(i&&t===s||o&&e.value.trim()===u)||(e.value=u)}},sa={deep:!0,created(e,t,s){e[mn]=$s(s),Vn(e,"change",()=>{let i=e._modelValue,o=Mo(e),r=e.checked,d=e[mn];if(Ne(i)){let p=li(i,o),u=p!==-1;if(r&&!u)d(i.concat(o));else if(!r&&u){let y=[...i];y.splice(p,1),d(y)}}else if(Xt(i)){let p=new Set(i);r?p.add(o):p.delete(o),d(p)}else d(Qd(e,r))})},mounted:Gd,beforeUpdate(e,t,s){e[mn]=$s(s),Gd(e,t,s)}};function Gd(e,{value:t,oldValue:s},i){e._modelValue=t;let o;if(Ne(t))o=li(t,i.props.value)>-1;else if(Xt(t))o=t.has(i.props.value);else{if(t===s)return;o=Qt(t,Qd(e,!0))}e.checked!==o&&(e.checked=o)}var Ut={deep:!0,created(e,{value:t,modifiers:{number:s}},i){e._modelValue=t,Vn(e,"change",()=>{let o=Array.prototype.filter.call(e.options,u=>u.selected).map(u=>s?Ts(Mo(u)):Mo(u)),r=e.multiple,d=r?Xt(e._modelValue)?new Set(o):o:o[0],p=e._pendingValue=[r,r?Ne(d)?o.slice():o:d];try{e[mn](d)}finally{tt(()=>{e._pendingValue===p&&(e._pendingValue=void 0)})}}),e[mn]=$s(i)},mounted(e,{value:t}){Wd(e,t)},beforeUpdate(e,{value:t},s){e._modelValue=t,e[mn]=$s(s)},updated(e,{value:t}){let s=e._pendingValue;e._pendingValue=void 0,(!s||s[0]!==e.multiple||!um(t,s[1],s[0]))&&Wd(e,t)}};function um(e,t,s){if(!s)return Qt(e,t);if(Ne(e))return Qt(e,t);if(Xt(e)){if(e.size!==t.length)return!1;for(let i of t)if(!e.has(i))return!1;return!0}return!1}function Wd(e,t){let s=e.multiple,i=Ne(t);if(!(s&&!i&&!Xt(t))){for(let o=0,r=e.options.length;oString(y)===String(p)):d.selected=li(t,p)>-1}else d.selected=t.has(p);else if(Qt(Mo(d),t)){e.selectedIndex!==o&&(e.selectedIndex=o);return}}!s&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Mo(e){return"_value"in e?e._value:e.value}function Qd(e,t){let s=t?"_trueValue":"_falseValue";return s in e?e[s]:t}var cm=["ctrl","shift","alt","meta"],pm={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>cm.some(s=>e[`${s}Key`]&&!t.includes(s))},ae=(e,t)=>{if(!e)return e;let s=e._withMods||(e._withMods={}),i=t.join(".");return s[i]||(s[i]=((o,...r)=>{for(let d=0;d{let s=e._withKeys||(e._withKeys={}),i=t.join(".");return s[i]||(s[i]=(o=>{if(!("key"in o))return;let r=on(o.key);if(t.some(d=>d===r||fm[d]===r))return e(o)}))},hm=ct({patchProp:rm},jh),Kd;function mm(){return Kd||(Kd=Rd(hm))}var Jd=((...e)=>{let t=mm().createApp(...e),{mount:s}=t;return t.mount=i=>{let o=vm(i);if(!o)return;let r=t._component;!Te(r)&&!r.render&&!r.template&&(r.template=o.innerHTML),o.nodeType===1&&(o.textContent="");let d=s(o,!1,gm(o));return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),d},t});function gm(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function vm(e){return it(e)?document.querySelector(e):e}var ls=typeof document<"u";function xd(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function ym(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&xd(e.default)}var Qe=Object.assign;function _i(e,t){let s={};for(let i in t){let o=t[i];s[i]=Kt(o)?o.map(e):e(o)}return s}var Fs=()=>{},Kt=Array.isArray;function ra(e,t){let s={};for(let i in e)s[i]=i in t?t[i]:e[i];return s}var eu=/#/g,bm=/&/g,wm=/\//g,km=/=/g,Cm=/\?/g,tu=/\+/g,Em=/%5B/g,Sm=/%5D/g,nu=/%5E/g,Nm=/%60/g,su=/%7B/g,Rm=/%7C/g,ou=/%7D/g,Am=/%20/g;function aa(e){return e==null?"":encodeURI(""+e).replace(Rm,"|").replace(Em,"[").replace(Sm,"]")}function iu(e){return aa(e).replace(su,"{").replace(ou,"}").replace(nu,"^")}function oa(e){return aa(e).replace(tu,"%2B").replace(Am,"+").replace(eu,"%23").replace(bm,"%26").replace(Nm,"`").replace(su,"{").replace(ou,"}").replace(nu,"^")}function Pm(e){return oa(e).replace(km,"%3D")}function Dm(e){return aa(e).replace(eu,"%23").replace(Cm,"%3F")}function ru(e){return Dm(e).replace(wm,"%2F")}function Ls(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}var Tm=/\/$/,Om=e=>e.replace(Tm,"");function $i(e,t,s="/"){let i,o={},r="",d="",p=t.indexOf("#"),u=t.indexOf("?");return u=p>=0&&u>p?-1:u,u>=0&&(i=t.slice(0,u),r=t.slice(u,p>0?p:t.length),o=e(r.slice(1))),p>=0&&(i=i||t.slice(0,p),d=t.slice(p,t.length)),i=Mm(i??t,s),{fullPath:i+r+d,path:i,query:o,hash:Ls(d)}}function au(e,t){let s=t.query?e(t.query):"";return t.path+(s&&"?")+s+(t.hash||"")}function la(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function lu(e,t,s){let i=t.matched.length-1,o=s.matched.length-1;return i>-1&&i===o&&rs(t.matched[i],s.matched[o])&&da(t.params,s.params)&&e(t.query)===e(s.query)&&t.hash===s.hash}function rs(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function da(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var s in e)if(!Im(e[s],t[s]))return!1;return!0}function Im(e,t){return Kt(e)?Zd(e,t):Kt(t)?Zd(t,e):e?.valueOf()===t?.valueOf()}function Zd(e,t){return Kt(t)?e.length===t.length&&e.every((s,i)=>s===t[i]):e.length===1&&e[0]===t}function Mm(e,t){if(e.startsWith("/"))return e;if(!e)return t;let s=t.split("/"),i=e.split("/"),o=i[i.length-1];(o===".."||o===".")&&i.push("");let r=s.length-1,d,p;for(d=0;d1&&r--;else break;return s.slice(0,r).join("/")+"/"+i.slice(d).join("/")}var Rn={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},Li=(function(e){return e.pop="pop",e.push="push",e})({}),Fi=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function du(e){if(!e)if(ls){let t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Om(e)}var Vm=/^[^#]+#/;function uu(e,t){return e.replace(Vm,"#")+t}function qm(e,t){let s=document.documentElement.getBoundingClientRect(),i=e.getBoundingClientRect();return{behavior:t.behavior,left:i.left-s.left-(t.left||0),top:i.top-s.top-(t.top||0)}}var Vo=()=>({left:window.scrollX,top:window.scrollY});function cu(e){let t;if("el"in e){let s=e.el,i=typeof s=="string"&&s.startsWith("#"),o=typeof s=="string"?i?document.getElementById(s.slice(1)):document.querySelector(s):s;if(!o)return;t=qm(o,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function ua(e,t){return(history.state?history.state.position-t:-1)+e}var ia=new Map;function pu(e,t){ia.set(e,t)}function fu(e){let t=ia.get(e);return ia.delete(e),t}function _m(e){return typeof e=="string"||e&&typeof e=="object"}function ca(e){return typeof e=="string"||typeof e=="symbol"}var ut=(function(e){return e[e.MATCHER_NOT_FOUND=1]="MATCHER_NOT_FOUND",e[e.NAVIGATION_GUARD_REDIRECT=2]="NAVIGATION_GUARD_REDIRECT",e[e.NAVIGATION_ABORTED=4]="NAVIGATION_ABORTED",e[e.NAVIGATION_CANCELLED=8]="NAVIGATION_CANCELLED",e[e.NAVIGATION_DUPLICATED=16]="NAVIGATION_DUPLICATED",e})({}),hu=Symbol("");var bZ={[ut.MATCHER_NOT_FOUND]({location:e,currentLocation:t}){return`No match for ${JSON.stringify(e)}${t?` while being at -`+JSON.stringify(t):""}`},[ut.NAVIGATION_GUARD_REDIRECT]({from:e,to:t}){return`Redirected from "${e.fullPath}" to "${_m(t)}" via a navigation guard.`},[ut.NAVIGATION_ABORTED]({from:e,to:t}){return`Navigation aborted from "${e.fullPath}" to "${t.fullPath}" via a navigation guard.`},[ut.NAVIGATION_CANCELLED]({from:e,to:t}){return`Navigation cancelled from "${e.fullPath}" to "${t.fullPath}" with a new navigation.`},[ut.NAVIGATION_DUPLICATED]({from:e,to:t}){return`Avoided redundant navigation to current location: "${e.fullPath}".`}};function as(e,t){return Je(new Error,{type:e,[hu]:!0},t)}function gn(e,t){return e instanceof Error&&hu in e&&(t==null||!!(e.type&t))}var qm=["params","query","hash"];function _m(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;let t={};for(let s of qm)s in e&&(t[s]=e[s]);return JSON.stringify(t,null,2)}function mu(e){let t={};if(e===""||e==="?")return t;let s=(e[0]==="?"?e.slice(1):e).split("&");for(let i=0;io&&oa(o)):[i&&oa(i)]).forEach(o=>{o!==void 0&&(t+=(t.length?"&":"")+s,o!=null&&(t+="="+o))})}return t}function gu(e){let t={};for(let s in e){let i=e[s];i!==void 0&&(t[s]=Wt(i)?i.map(o=>o==null?null:""+o):i==null?i:""+i)}return t}var vu=Symbol(""),fa=Symbol(""),Ui=Symbol(""),Bi=Symbol(""),zi=Symbol("");function Us(){let e=[];function t(i){return e.push(i),()=>{let o=e.indexOf(i);o>-1&&e.splice(o,1)}}function s(){e=[]}return{add:t,list:()=>e.slice(),reset:s}}function Nn(e,t,s,i,o,r=d=>d()){let d=i&&(i.enterCallbacks[o]=i.enterCallbacks[o]||[]);return()=>new Promise((p,u)=>{let y=h=>{h===!1?u(as(ut.NAVIGATION_ABORTED,{from:s,to:t})):h instanceof Error?u(h):Vm(h)?u(as(ut.NAVIGATION_GUARD_REDIRECT,{from:t,to:h})):(d&&i.enterCallbacks[o]===d&&typeof h=="function"&&d.push(h),p())},m=r(()=>e.call(i&&i.instances[o],t,s,y)),b=Promise.resolve(m);e.length<3&&(b=b.then(y)),b.catch(h=>u(h))})}function Hi(e,t,s,i,o=r=>r()){let r=[];for(let d of e)for(let p in d.components){let u=d.components[p];if(!(t!=="beforeRouteEnter"&&!d.instances[p]))if(xd(u)){let y=(u.__vccOpts||u)[t];y&&r.push(Nn(y,s,i,d,p,o))}else{let y=u();r.push(()=>y.then(m=>{if(!m)throw new Error(`Couldn't resolve component "${p}" at "${d.path}"`);let b=gm(m)?m.default:m;d.mods[p]=m,d.components[p]=b;let h=(b.__vccOpts||b)[t];return h&&Nn(h,s,i,d,p,o)()}))}}return r}function yu(e,t){let s=[],i=[],o=[],r=Math.max(t.matched.length,e.matched.length);for(let d=0;drs(y,p))?i.push(p):s.push(p));let u=e.matched[d];u&&(t.matched.find(y=>rs(y,u))||o.push(u))}return[s,i,o]}var $m=()=>location.protocol+"//"+location.host;function Du(e,t){let{pathname:s,search:i,hash:o}=t,r=e.indexOf("#");if(r>-1){let d=o.includes(e.slice(r))?e.slice(r).length:1,p=o.slice(d);return p[0]!=="/"&&(p="/"+p),la(p,"")}return la(s,e)+i+o}function Lm(e,t,s,i){let o=[],r=[],d=null,p=({state:h})=>{let w=Du(e,location),R=s.value,S=t.value,N=0;if(h){if(s.value=w,t.value=h,d&&d===R){d=null;return}N=S?h.position-S.position:0}else i(w);o.forEach(v=>{v(s.value,R,{delta:N,type:Li.pop,direction:N?N>0?Fi.forward:Fi.back:Fi.unknown})})};function u(){d=s.value}function y(h){o.push(h);let w=()=>{let R=o.indexOf(h);R>-1&&o.splice(R,1)};return r.push(w),w}function m(){if(document.visibilityState==="hidden"){let{history:h}=window;if(!h.state)return;h.replaceState(Je({},h.state,{scroll:Vo()}),"")}}function b(){for(let h of r)h();r=[],window.removeEventListener("popstate",p),window.removeEventListener("pagehide",m),document.removeEventListener("visibilitychange",m)}return window.addEventListener("popstate",p),window.addEventListener("pagehide",m),document.addEventListener("visibilitychange",m),{pauseListeners:u,listen:y,destroy:b}}function bu(e,t,s,i=!1,o=!1){return{back:e,current:t,forward:s,replaced:i,position:window.history.length,scroll:o?Vo():null}}function Fm(e){let{history:t,location:s}=window,i={value:Du(e,s)},o={value:t.state};o.value||r(i.value,{back:null,current:i.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function r(u,y,m){let b=e.indexOf("#"),h=b>-1?(s.host&&document.querySelector("base")?e:e.slice(b))+u:$m()+e+u;try{t[m?"replaceState":"pushState"](y,"",h),o.value=y}catch(w){console.error(w),s[m?"replace":"assign"](h)}}function d(u,y){r(u,Je({},t.state,bu(o.value.back,u,o.value.forward,!0),y,{position:o.value.position}),!0),i.value=u}function p(u,y){let m=Je({},o.value,t.state,{forward:u,scroll:Vo()});r(m.current,m,!0),r(u,Je({},bu(i.value,u,null),{position:m.position+1},y),!1),i.value=u}return{location:i,state:o,push:p,replace:d}}function Tu(e){e=du(e);let t=Fm(e),s=Lm(e,t.state,t.location,t.replace);function i(r,d=!0){d||s.pauseListeners(),history.go(r)}let o=Je({location:"",base:e,go:i,createHref:uu.bind(null,e)},t,s);return Object.defineProperty(o,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(o,"state",{enumerable:!0,get:()=>t.state.value}),o}var ds=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({}),gt=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e})(gt||{}),Um={type:ds.Static,value:""},Bm=/[a-zA-Z0-9_]/;function zm(e){if(!e)return[[]];if(e==="/")return[[Um]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(w){throw new Error(`ERR (${s})/"${y}": ${w}`)}let s=gt.Static,i=s,o=[],r;function d(){r&&o.push(r),r=[]}let p=0,u,y="",m="";function b(){y&&(s===gt.Static?r.push({type:ds.Static,value:y}):s===gt.Param||s===gt.ParamRegExp||s===gt.ParamRegExpEnd?(r.length>1&&(u==="*"||u==="+")&&t(`A repeatable param (${y}) must be alone in its segment. eg: '/:ids+.`),r.push({type:ds.Param,value:y,regexp:m,repeatable:u==="*"||u==="+",optional:u==="*"||u==="?"})):t("Invalid state to consume buffer"),y="")}function h(){y+=u}for(;pt.length?t.length===1&&t[0]===Dt.Static+Dt.Segment?1:-1:0}function Ou(e,t){let s=0,i=e.score,o=t.score;for(;s0&&t[t.length-1]<0}var Km={strict:!1,end:!0,sensitive:!1};function Ym(e,t,s){let i=Gm(zm(e.path),s),o=Je(i,{record:e,parent:t,children:[],alias:[]});return t&&!o.record.aliasOf==!t.record.aliasOf&&t.children.push(o),o}function Xm(e,t){let s=[],i=new Map;t=ra(Km,t);function o(b){return i.get(b)}function r(b,h,w){let R=!w,S=Eu(b);S.aliasOf=w&&w.record;let N=ra(t,b),v=[S];if("alias"in b){let V=typeof b.alias=="string"?[b.alias]:b.alias;for(let _ of V)v.push(Eu(Je({},S,{components:w?w.record.components:S.components,path:_,aliasOf:w?w.record:S})))}let E,M;for(let V of v){let{path:_}=V;if(h&&_[0]!=="/"){let G=h.record.path,te=G[G.length-1]==="/"?"":"/";V.path=h.record.path+(_&&te+_)}if(E=Ym(V,h,N),w?w.alias.push(E):(M=M||E,M!==E&&M.alias.push(E),R&&b.name&&!Su(E)&&d(b.name)),Iu(E)&&u(E),S.children){let G=S.children;for(let te=0;te{d(M)}:Fs}function d(b){if(ca(b)){let h=i.get(b);h&&(i.delete(b),s.splice(s.indexOf(h),1),h.children.forEach(d),h.alias.forEach(d))}else{let h=s.indexOf(b);h>-1&&(s.splice(h,1),b.record.name&&i.delete(b.record.name),b.children.forEach(d),b.alias.forEach(d))}}function p(){return s}function u(b){let h=Zm(b,s);s.splice(h,0,b),b.record.name&&!Su(b)&&i.set(b.record.name,b)}function y(b,h){let w,R={},S,N;if("name"in b&&b.name){if(w=i.get(b.name),!w)throw as(ut.MATCHER_NOT_FOUND,{location:b});N=w.record.name,R=Je(Cu(h.params,w.keys.filter(M=>!M.optional).concat(w.parent?w.parent.keys.filter(M=>M.optional):[]).map(M=>M.name)),b.params&&Cu(b.params,w.keys.map(M=>M.name))),S=w.stringify(R)}else if(b.path!=null)S=b.path,w=s.find(M=>M.re.test(S)),w&&(R=w.parse(S),N=w.record.name);else{if(w=h.name?i.get(h.name):s.find(M=>M.re.test(h.path)),!w)throw as(ut.MATCHER_NOT_FOUND,{location:b,currentLocation:h});N=w.record.name,R=Je({},h.params,b.params),S=w.stringify(R)}let v=[],E=w;for(;E;)v.unshift(E.record),E=E.parent;return{name:N,path:S,params:R,matched:v,meta:Qm(v)}}e.forEach(b=>r(b));function m(){s.length=0,i.clear()}return{addRoute:r,resolve:y,removeRoute:d,clearRoutes:m,getRoutes:p,getRecordMatcher:o}}function Cu(e,t){let s={};for(let i of t)i in e&&(s[i]=e[i]);return s}function Eu(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Jm(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Jm(e){let t={},s=e.props||!1;if("component"in e)t.default=s;else for(let i in e.components)t[i]=typeof s=="object"?s[i]:s;return t}function Su(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Qm(e){return e.reduce((t,s)=>Je(t,s.meta),{})}function Zm(e,t){let s=0,i=t.length;for(;s!==i;){let r=s+i>>1;Ou(e,t[r])<0?i=r:s=r+1}let o=xm(e);return o&&(i=t.lastIndexOf(o,i-1)),i}function xm(e){let t=e;for(;t=t.parent;)if(Iu(t)&&Ou(e,t)===0)return t}function Iu({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Nu(e){let t=Mt(Ui),s=Mt(Bi),i=!1,o=null,r=Rt(()=>{let m=kn(e.to);return t.resolve(m)}),d=Rt(()=>{let{matched:m}=r.value,{length:b}=m,h=m[b-1],w=s.matched;if(!h||!w.length)return-1;let R=w.findIndex(rs.bind(null,h));if(R>-1)return R;let S=Ru(m[b-2]);return b>1&&Ru(h)===S&&w[w.length-1].path!==S?w.findIndex(rs.bind(null,m[b-2])):R}),p=Rt(()=>d.value>-1&&og(s.params,r.value.params)),u=Rt(()=>d.value>-1&&d.value===s.matched.length-1&&da(s.params,r.value.params));function y(m={}){if(sg(m)){let b=t[kn(e.replace)?"replace":"push"](kn(e.to)).catch(Fs);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>b),b}return Promise.resolve()}return{route:r,href:Rt(()=>r.value.href),isActive:p,isExactActive:u,navigate:y}}function eg(e){return e.length===1?e[0]:e}var tg=Ao({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:Nu,setup(e,{slots:t}){let s=st(Nu(e)),{options:i}=Mt(Ui),o=Rt(()=>({[Pu(e.activeClass,i.linkActiveClass,"router-link-active")]:s.isActive,[Pu(e.exactActiveClass,i.linkExactActiveClass,"router-link-exact-active")]:s.isExactActive}));return()=>{let r=t.default&&eg(t.default(s));return e.custom?r:De("a",{"aria-current":s.isExactActive?e.ariaCurrentValue:null,href:s.href,onClick:s.navigate,class:o.value},r)}}}),ng=tg;function sg(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){let t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function og(e,t){for(let s in t){let i=t[s],o=e[s];if(typeof i=="string"){if(i!==o)return!1}else if(!Wt(o)||o.length!==i.length||i.some((r,d)=>r.valueOf()!==o[d].valueOf()))return!1}return!0}function Ru(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}var Pu=(e,t,s)=>e??t??s,ig=Ao({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:s}){let i=Mt(zi),o=Rt(()=>e.route||i.value),r=Mt(fa,0),d=Rt(()=>{let y=kn(r),{matched:m}=o.value,b;for(;(b=m[y])&&!b.components;)y++;return y}),p=Rt(()=>o.value.matched[d.value]);os(fa,Rt(()=>d.value+1)),os(vu,p),os(zi,o);let u=St();return dt(()=>[u.value,p.value,e.name],([y,m,b],[h,w,R])=>{m&&(m.instances[b]=y,w&&w!==m&&y&&y===h&&(m.leaveGuards.size||(m.leaveGuards=w.leaveGuards),m.updateGuards.size||(m.updateGuards=w.updateGuards))),y&&m&&(!w||!rs(m,w)||!h)&&(m.enterCallbacks[b]||[]).forEach(S=>S(y))},{flush:"post"}),()=>{let y=o.value,m=e.name,b=p.value,h=b&&b.components[m];if(!h)return Au(s.default,{Component:h,route:y});let w=b.props[m],R=w?w===!0?y.params:typeof w=="function"?w(y):w:null,N=De(h,Je({},R,t,{onVnodeUnmounted:v=>{v.component.isUnmounted&&(b.instances[m]=null)},ref:u}));return Au(s.default,{Component:N,route:y})||N}}});function Au(e,t){if(!e)return null;let s=e(t);return s.length===1?s[0]:s}var ha=ig;function Mu(e){let t=Xm(e.routes,e),s=e.parseQuery||mu,i=e.stringifyQuery||pa,o=e.history,r=Us(),d=Us(),p=Us(),u=gi(Rn),y=Rn;ls&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");let m=_i.bind(null,W=>""+W),b=_i.bind(null,ru),h=_i.bind(null,Ls);function w(W,fe){let de,ce;return ca(W)?(de=t.getRecordMatcher(W),ce=fe):ce=W,t.addRoute(ce,de)}function R(W){let fe=t.getRecordMatcher(W);fe&&t.removeRoute(fe)}function S(){return t.getRoutes().map(W=>W.record)}function N(W){return!!t.getRecordMatcher(W)}function v(W,fe){if(fe=Je({},fe||u.value),typeof W=="string"){let T=$i(s,W,fe.path),F=t.resolve({path:T.path},fe),J=o.createHref(T.fullPath);return Je(T,F,{params:h(F.params),hash:Ls(T.hash),redirectedFrom:void 0,href:J})}let de;if(W.path!=null)de=Je({},W,{path:$i(s,W.path,fe.path).path});else{let T=Je({},W.params);for(let F in T)T[F]==null&&delete T[F];de=Je({},W,{params:b(T)}),fe.params=b(fe.params)}let ce=t.resolve(de,fe),me=W.hash||"";ce.params=m(h(ce.params));let Me=au(i,Je({},W,{hash:iu(me),path:ce.path})),A=o.createHref(Me);return Je({fullPath:Me,hash:me,query:i===pa?gu(W.query):W.query||{}},ce,{redirectedFrom:void 0,href:A})}function E(W){return typeof W=="string"?$i(s,W,u.value.path):Je({},W)}function M(W,fe){if(y!==W)return as(ut.NAVIGATION_CANCELLED,{from:fe,to:W})}function V(W){return te(W)}function _(W){return V(Je(E(W),{replace:!0}))}function G(W,fe){let de=W.matched[W.matched.length-1];if(de&&de.redirect){let{redirect:ce}=de,me=typeof ce=="function"?ce(W,fe):ce;return typeof me=="string"&&(me=me.includes("?")||me.includes("#")?me=E(me):{path:me},me.params={}),Je({query:W.query,hash:W.hash,params:me.path!=null?{}:W.params},me)}}function te(W,fe){let de=y=v(W),ce=u.value,me=W.state,Me=W.force,A=W.replace===!0,T=G(de,ce);if(T)return te(Je(E(T),{state:typeof T=="object"?Je({},me,T.state):me,force:Me,replace:A}),fe||de);let F=de;F.redirectedFrom=fe;let J;return!Me&&lu(i,ce,de)&&(J=as(ut.NAVIGATION_DUPLICATED,{to:F,from:ce}),Be(ce,ce,!0,!1)),(J?Promise.resolve(J):U(F,ce)).catch(H=>gn(H)?gn(H,ut.NAVIGATION_GUARD_REDIRECT)?H:Ue(H):he(H,F,ce)).then(H=>{if(H){if(gn(H,ut.NAVIGATION_GUARD_REDIRECT))return te(Je({replace:A},E(H.to),{state:typeof H.to=="object"?Je({},me,H.to.state):me,force:Me}),fe||F)}else H=L(F,ce,!0,A,me);return C(F,ce,H),H})}function X(W,fe){let de=M(W,fe);return de?Promise.reject(de):Promise.resolve()}function O(W){let fe=et.values().next().value;return fe&&typeof fe.runWithContext=="function"?fe.runWithContext(W):W()}function U(W,fe){let de,[ce,me,Me]=yu(W,fe);de=Hi(ce.reverse(),"beforeRouteLeave",W,fe);for(let T of ce)T.leaveGuards.forEach(F=>{de.push(Nn(F,W,fe))});let A=X.bind(null,W,fe);return de.push(A),Fe(de).then(()=>{de=[];for(let T of r.list())de.push(Nn(T,W,fe));return de.push(A),Fe(de)}).then(()=>{de=Hi(me,"beforeRouteUpdate",W,fe);for(let T of me)T.updateGuards.forEach(F=>{de.push(Nn(F,W,fe))});return de.push(A),Fe(de)}).then(()=>{de=[];for(let T of Me)if(T.beforeEnter)if(Wt(T.beforeEnter))for(let F of T.beforeEnter)de.push(Nn(F,W,fe));else de.push(Nn(T.beforeEnter,W,fe));return de.push(A),Fe(de)}).then(()=>(W.matched.forEach(T=>T.enterCallbacks={}),de=Hi(Me,"beforeRouteEnter",W,fe,O),de.push(A),Fe(de))).then(()=>{de=[];for(let T of d.list())de.push(Nn(T,W,fe));return de.push(A),Fe(de)}).catch(T=>gn(T,ut.NAVIGATION_CANCELLED)?T:Promise.reject(T))}function C(W,fe,de){p.list().forEach(ce=>O(()=>ce(W,fe,de)))}function L(W,fe,de,ce,me){let Me=M(W,fe);if(Me)return Me;let A=fe===Rn,T=ls?history.state:{};de&&(ce||A?o.replace(W.fullPath,Je({scroll:A&&T&&T.scroll},me)):o.push(W.fullPath,me)),u.value=W,Be(W,fe,de,A),Ue()}let z;function K(){z||(z=o.listen((W,fe,de)=>{if(!Re.listening)return;let ce=v(W),me=G(ce,Re.currentRoute.value);if(me){te(Je(me,{replace:!0,force:!0}),ce).catch(Fs);return}y=ce;let Me=u.value;ls&&pu(ua(Me.fullPath,de.delta),Vo()),U(ce,Me).catch(A=>gn(A,ut.NAVIGATION_ABORTED|ut.NAVIGATION_CANCELLED)?A:gn(A,ut.NAVIGATION_GUARD_REDIRECT)?(te(Je(E(A.to),{force:!0}),ce).then(T=>{gn(T,ut.NAVIGATION_ABORTED|ut.NAVIGATION_DUPLICATED)&&!de.delta&&de.type===Li.pop&&o.go(-1,!1)}).catch(Fs),Promise.reject()):(de.delta&&o.go(-de.delta,!1),he(A,ce,Me))).then(A=>{A=A||L(ce,Me,!1),A&&(de.delta&&!gn(A,ut.NAVIGATION_CANCELLED)?o.go(-de.delta,!1):de.type===Li.pop&&gn(A,ut.NAVIGATION_ABORTED|ut.NAVIGATION_DUPLICATED)&&o.go(-1,!1)),C(ce,Me,A)}).catch(Fs)}))}let ie=Us(),se=Us(),Y;function he(W,fe,de){Ue(W);let ce=se.list();return ce.length?ce.forEach(me=>me(W,fe,de)):console.error(W),Promise.reject(W)}function Se(){return Y&&u.value!==Rn?Promise.resolve():new Promise((W,fe)=>{ie.add([W,fe])})}function Ue(W){return Y||(Y=!W,K(),ie.list().forEach(([fe,de])=>W?de(W):fe()),ie.reset()),W}function Be(W,fe,de,ce){let{scrollBehavior:me}=e;if(!ls||!me)return Promise.resolve();let Me=!de&&fu(ua(W.fullPath,0))||(ce||!de)&&history.state&&history.state.scroll||null;return tt().then(()=>me(W,fe,Me)).then(A=>A&&cu(A)).catch(A=>he(A,W,fe))}let Qe=W=>o.go(W),He,et=new Set,Re={currentRoute:u,listening:!0,addRoute:w,removeRoute:R,clearRoutes:t.clearRoutes,hasRoute:N,getRoutes:S,resolve:v,options:e,push:V,replace:_,go:Qe,back:()=>Qe(-1),forward:()=>Qe(1),beforeEach:r.add,beforeResolve:d.add,afterEach:p.add,onError:se.add,isReady:Se,install(W){W.component("RouterLink",ng),W.component("RouterView",ha),W.config.globalProperties.$router=Re,Object.defineProperty(W.config.globalProperties,"$route",{enumerable:!0,get:()=>kn(u)}),ls&&!He&&u.value===Rn&&(He=!0,V(o.location).catch(ce=>{}));let fe={};for(let ce in Rn)Object.defineProperty(fe,ce,{get:()=>u.value[ce],enumerable:!0});W.provide(Ui,Re),W.provide(Bi,fo(fe)),W.provide(zi,u);let de=W.unmount;et.add(W),W.unmount=function(){et.delete(W),et.size<1&&(y=Rn,z&&z(),z=null,u.value=Rn,He=!1,Y=!1),de()}}};function Fe(W){return W.reduce((fe,de)=>fe.then(()=>O(de)),Promise.resolve())}return Re}function Vu(e){return Mt(Bi)}function Gi(e){return["author_pass","repo_extend","repo_never","repo_slot","repo_pack"].includes(e)}var ji=new WeakMap;function Wi(e){if(!ji.has(e)){let t=e.get("/api/billing/").finally(()=>ji.delete(e));ji.set(e,t)}return ji.get(e)}function Ki(e,t,s=()=>{},i={}){let o=new URLSearchParams(window.location.search).get("billing");e.billing=null,e.billingLoading=!0,e.billingBusy=!1,e.billingError="",e.billingNotice="",e.billingPending=o==="success",e.billingRepository="";let r={billing_invalid_draft:"This draft could not be saved. Your form is unchanged. Try again.",billing_draft_not_found:"This checkout draft is unavailable or expired. Your local form is unchanged.",billing_recovery_required:"Your earlier payment needs verification. Please contact support before paying again.",billing_checkout_disabled:"New purchases are temporarily unavailable. You can still manage existing billing.",billing_unavailable:"Payments are not available yet. Please try again later.",billing_subscription_exists:"You already have a subscription. Use Manage billing to change or cancel it.",billing_checkout_in_progress:"You have another checkout open. Complete it, or wait up to 30 minutes for it to expire, before choosing a different option.",billing_busy:"Another billing request is processing. Please try again shortly.",billing_already_paid:"This repository or conference already has this paid option.",billing_invalid_review_window:"Conference packages cover up to 180 days. Check the review dates.",billing_invalid_conference:"Only a conference owner can pay for a conference awaiting payment.",repo_not_found:"Enter the ID of an existing repository that you own."};e.billingAmount=u=>u?.amount==null?"":new Intl.NumberFormat(void 0,{style:"currency",currency:u.currency,minimumFractionDigits:u.amount%100?2:0,maximumFractionDigits:2}).format(u.amount/100),e.billingPrice=u=>u.amount==null?"Price shown at checkout":e.billingAmount(u)+(u.interval?` / ${u.intervalCount>1?u.intervalCount+" ":""}${u.interval}`:" once"),e.billingPerMonth=u=>u?.amount==null?"":new Intl.NumberFormat(void 0,{style:"currency",currency:u.currency}).format(u.amount/1200),e.billingBytes=u=>{let y=Number(u)||0;if(y<1024)return`${y} B`;let m=Math.min(4,Math.floor(Math.log2(y)/10));return`${new Intl.NumberFormat(void 0,{maximumFractionDigits:1}).format(y/1024**m)} ${["B","KB","MB","GB","TB"][m]}`},e.billingDate=u=>u?new Date(u).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"}):"",e.loadBilling=()=>(e.billingError="",e.billingLoading=!0,Wi(t).then(u=>{e.billing=u.data,e.emit?.("billing:updated",u.data)}).catch(()=>{e.billingError="Billing could not be loaded. Try again."}).finally(()=>{e.billingLoading=!1}));async function d(u,y,m=!0){if(!(e.billingBusy||!e.billing?.csrf)){e.billingBusy=!0,e.billingError="";try{let b=await t.post(`/api/billing/${u}`,y,{headers:{"x-csrf-token":e.billing.csrf}});if(m)window.location.assign(b.data.url);else return await e.loadBilling(),await s(),e.billingPending=!!b.data.pending,e.emit?.("billing:pending",e.billingPending),e.billingNotice=b.data.pending?"Your payment is still pending. Please do not pay again.":i.confirmedMessage||"Billing status refreshed. Your confirmed access appears below.",b.data}catch(b){e.billingError=r[b.data?.error]||"The billing request failed. Please try again."}finally{e.billingBusy=!1}}}e.checkout=(u,y="",m={})=>d("checkout",{planId:u,target:y,...m}),e.billingPortal=()=>d("portal",{}),e.refreshBilling=()=>d("refresh",{},!1);async function p(){for(let u=0;u<5;u++){let y=await e.refreshBilling();if(!y||!y.pending)return;await new Promise(m=>window.setTimeout(m,3e3))}e.billingNotice="Confirmation is taking longer than usual. You can refresh payment status later. Please do not pay again."}e.loadBilling().then(()=>{o==="success"?(e.billingNotice="Checking your payment. Paid access starts after confirmation.",p()):o==="portal"?e.refreshBilling().then(()=>{e.billingPending=!1,e.emit?.("billing:pending",!1),e.billingNotice=i.portalMessage?.(e.billing)||"Your billing details are up to date."}):o==="cancelled"&&(e.billingNotice="Checkout was closed. No new paid access has been activated.")})}function qu(e,t){return t?.split(".").reduce((s,i)=>s?.[i],e)}function qo(e=null,t=new Map){let s=st({}),i=[],o=!1,r=new Proxy(s,{get(d,p){return typeof p=="string"&&p.startsWith("__v_")||Reflect.has(d,p)?Reflect.get(d,p):e?.[p]}});return Object.defineProperty(s,"parent",{value:e,configurable:!0}),Object.defineProperty(s,"viewState",{get:()=>r}),r.watch=(d,p,u=!1,y=!0)=>{let m=typeof d=="function"?()=>d(r):()=>qu(r,d),b=dt(m,p,{deep:u,flush:"post"});return i.push(b),y&&tt(()=>{o||p(m(),m())}),b},r.watchGroup=(d,p,u=!0)=>r.watch(()=>d.map(y=>qu(r,y)),p,!0,u),r.on=(d,p)=>{if(d==="dispose")return i.push(p),()=>{};t.has(d)||t.set(d,new Set),t.get(d).add(p);let u=()=>t.get(d)?.delete(p);return i.push(u),u},r.emit=(d,...p)=>{for(let u of[...t.get(d)||[]])u({},...p)},r.dispose=()=>{o=!0,i.splice(0).reverse().forEach(d=>d())},es(r.dispose),r}function Ct(){let e=new Set,t=new Set,s=!1,i=(r,d=0)=>{if(s)return;let p=setTimeout(()=>{e.delete(p),r()},d);return e.add(p),p};i.cancel=r=>{clearTimeout(r),e.delete(r)};let o=(r,d)=>{if(s)return;let p=setInterval(r,d);return t.add(p),p};return o.cancel=r=>{clearInterval(r),t.delete(r)},es(()=>{s=!0,e.forEach(clearTimeout),t.forEach(clearInterval)}),{timeout:i,interval:o}}function Ut(){let e=new Set;return es(()=>{e.forEach(t=>t()),e.clear()}),(t,s,i,o)=>{t.addEventListener(s,i,o);let r=()=>{t.removeEventListener(s,i,o),e.delete(r)};return e.add(r),r}}var ma=function(e,t=e){let s=/\bXXXX-\d+\b/g;t.on("dark-mode",(O,U)=>{e.aceOption&&(e.aceOption.theme=U?"nord_dark":"chrome")});let i=Ct(),o=Ut();e.isMac=/Mac|iPhone|iPad|iPod/.test(navigator.platform||navigator.userAgent);let r={yml:"yaml",txt:"text",py:"python",js:"javascript",ts:"typescript"},d=["license","txt"],p=["png","jpg","jpeg","gif","svg","ico","bmp","tiff","tif","webp","avif","heif","heic"],u=["wav","mp3","ogg","wma","flac","aac","m4a"],y=["mp4","avi","webm","mov","mpg","mpeg","mkv","flv","wmv","3gp","3g2","m4v","f4v","f4p","f4a","f4b"];e.toggleSource=function(){e.showSource=!e.showSource},e.toggleAllowScripts=function(){e.allowScripts=!e.allowScripts};let m=(()=>{try{return window.localStorage?.getItem("wrapLines")}catch{return null}})();e.wrapLines=(m??(window.matchMedia?.("(max-width: 767px)").matches?"false":"true"))!=="false",e.toggleWrap=function(){e.wrapLines=!e.wrapLines;try{window.localStorage?.setItem("wrapLines",String(e.wrapLines))}catch{}e.codeEditor?.session.setUseWrapMode(e.wrapLines)};function b(){return window.document.querySelector(".reading-layout .markdown-body")}function h(){let O=b();O&&(O.querySelectorAll("mark.md-find").forEach(U=>{U.replaceWith(window.document.createTextNode(U.textContent))}),O.normalize())}e.runMdFind=function(){h(),e.mdFindTotal=0,e.mdFindIndex=0;let O=(e.mdFindQuery||"").trim(),U=b();if(!O||!U)return;let C=!!e.mdFindCase,L=C?O:O.toLowerCase(),z=window.document.createTreeWalker(U,4),K=[];for(;z.nextNode();)(C?z.currentNode.nodeValue:z.currentNode.nodeValue.toLowerCase()).includes(L)&&K.push(z.currentNode);let ie=0;for(let se of K){let Y=se.nodeValue,he=C?Y:Y.toLowerCase(),Se=window.document.createDocumentFragment(),Ue=0,Be;for(;(Be=he.indexOf(L,Ue))!==-1;){Se.appendChild(window.document.createTextNode(Y.slice(Ue,Be)));let Qe=window.document.createElement("mark");Qe.className="md-find",Qe.textContent=Y.slice(Be,Be+O.length),Se.appendChild(Qe),ie++,Ue=Be+O.length}Se.appendChild(window.document.createTextNode(Y.slice(Ue))),se.parentNode.replaceChild(Se,se)}e.mdFindTotal=ie,ie&&e.stepMdFind(0)},e.stepMdFind=function(O){let U=b();if(!U||!e.mdFindTotal)return;let C=U.querySelectorAll("mark.md-find");e.mdFindIndex=(e.mdFindIndex+O+C.length)%C.length,C.forEach((L,z)=>L.classList.toggle("is-current",z===e.mdFindIndex)),C[e.mdFindIndex]?.scrollIntoView({block:"center",behavior:"smooth"})},e.toggleMdFind=function(O){if(e.mdFindOpen=O===void 0?!e.mdFindOpen:O,!e.mdFindOpen){h(),e.mdFindTotal=0;return}tt(()=>window.document.querySelector(".md-find-input")?.focus())},e.findInFile=function(){let O=e.codeEditor;if(!O)return;O.focus(),O.execCommand("find");let U=()=>{let C=O.searchBox?.element;C&&(O.renderer.setScrollMargin(52,12,0,0),!C._dockObserver&&(C._dockObserver=new MutationObserver(()=>{O.renderer.setScrollMargin(C.style.display!=="none"?52:12,12,0,0)}),C._dockObserver.observe(C,{attributes:!0,attributeFilter:["style"]})))};U(),setTimeout(U,150)};let w=[[/^\s*(?:export\s+)?(?:default\s+)?(?:abstract\s+)?class\s+([A-Za-z_$][\w$]*)/,"class"],[/^\s*(?:export\s+)?(?:default\s+)?(?:async\s+)?function\s*\*?\s*([A-Za-z_$][\w$]*)/,"function"],[/^\s*(?:export\s+)?(?:const|let|var)\s+([A-Za-z_$][\w$]*)\s*=\s*(?:async\s*)?(?:function|\([^)]*\)\s*=>|[A-Za-z_$][\w$]*\s*=>)/,"function"],[/^\s*(?:async\s+)?def\s+([A-Za-z_]\w*)/,"function"],[/^\s*class\s+([A-Za-z_]\w*)/,"class"],[/^\s*func\s+(?:\([^)]*\)\s*)?([A-Za-z_]\w*)/,"function"],[/^\s*(?:pub\s+)?fn\s+([A-Za-z_]\w*)/,"function"],[/^\s*(?:public|private|protected|static|\s)+[\w<>\[\],\s]+\s+([A-Za-z_]\w*)\s*\([^;]*\)\s*\{?\s*$/,"function"]],R={content:null,list:[]};e.symbolsOpen=!1,e.symbols=function(){if(typeof e.content!="string"||e.content.length>2e6)return[];if(R.content===e.content)return R.list;let O=[];return e.content.split(` +`+JSON.stringify(t):""}`},[ut.NAVIGATION_GUARD_REDIRECT]({from:e,to:t}){return`Redirected from "${e.fullPath}" to "${Lm(t)}" via a navigation guard.`},[ut.NAVIGATION_ABORTED]({from:e,to:t}){return`Navigation aborted from "${e.fullPath}" to "${t.fullPath}" via a navigation guard.`},[ut.NAVIGATION_CANCELLED]({from:e,to:t}){return`Navigation cancelled from "${e.fullPath}" to "${t.fullPath}" with a new navigation.`},[ut.NAVIGATION_DUPLICATED]({from:e,to:t}){return`Avoided redundant navigation to current location: "${e.fullPath}".`}};function as(e,t){return Qe(new Error,{type:e,[hu]:!0},t)}function gn(e,t){return e instanceof Error&&hu in e&&(t==null||!!(e.type&t))}var $m=["params","query","hash"];function Lm(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;let t={};for(let s of $m)s in e&&(t[s]=e[s]);return JSON.stringify(t,null,2)}function mu(e){let t={};if(e===""||e==="?")return t;let s=(e[0]==="?"?e.slice(1):e).split("&");for(let i=0;io&&oa(o)):[i&&oa(i)]).forEach(o=>{o!==void 0&&(t+=(t.length?"&":"")+s,o!=null&&(t+="="+o))})}return t}function gu(e){let t={};for(let s in e){let i=e[s];i!==void 0&&(t[s]=Kt(i)?i.map(o=>o==null?null:""+o):i==null?i:""+i)}return t}var vu=Symbol(""),fa=Symbol(""),Ui=Symbol(""),Bi=Symbol(""),zi=Symbol("");function Us(){let e=[];function t(i){return e.push(i),()=>{let o=e.indexOf(i);o>-1&&e.splice(o,1)}}function s(){e=[]}return{add:t,list:()=>e.slice(),reset:s}}function Nn(e,t,s,i,o,r=d=>d()){let d=i&&(i.enterCallbacks[o]=i.enterCallbacks[o]||[]);return()=>new Promise((p,u)=>{let y=h=>{h===!1?u(as(ut.NAVIGATION_ABORTED,{from:s,to:t})):h instanceof Error?u(h):_m(h)?u(as(ut.NAVIGATION_GUARD_REDIRECT,{from:t,to:h})):(d&&i.enterCallbacks[o]===d&&typeof h=="function"&&d.push(h),p())},m=r(()=>e.call(i&&i.instances[o],t,s,y)),b=Promise.resolve(m);e.length<3&&(b=b.then(y)),b.catch(h=>u(h))})}function Hi(e,t,s,i,o=r=>r()){let r=[];for(let d of e)for(let p in d.components){let u=d.components[p];if(!(t!=="beforeRouteEnter"&&!d.instances[p]))if(xd(u)){let y=(u.__vccOpts||u)[t];y&&r.push(Nn(y,s,i,d,p,o))}else{let y=u();r.push(()=>y.then(m=>{if(!m)throw new Error(`Couldn't resolve component "${p}" at "${d.path}"`);let b=ym(m)?m.default:m;d.mods[p]=m,d.components[p]=b;let h=(b.__vccOpts||b)[t];return h&&Nn(h,s,i,d,p,o)()}))}}return r}function yu(e,t){let s=[],i=[],o=[],r=Math.max(t.matched.length,e.matched.length);for(let d=0;drs(y,p))?i.push(p):s.push(p));let u=e.matched[d];u&&(t.matched.find(y=>rs(y,u))||o.push(u))}return[s,i,o]}var Fm=()=>location.protocol+"//"+location.host;function Du(e,t){let{pathname:s,search:i,hash:o}=t,r=e.indexOf("#");if(r>-1){let d=o.includes(e.slice(r))?e.slice(r).length:1,p=o.slice(d);return p[0]!=="/"&&(p="/"+p),la(p,"")}return la(s,e)+i+o}function Um(e,t,s,i){let o=[],r=[],d=null,p=({state:h})=>{let w=Du(e,location),R=s.value,S=t.value,N=0;if(h){if(s.value=w,t.value=h,d&&d===R){d=null;return}N=S?h.position-S.position:0}else i(w);o.forEach(v=>{v(s.value,R,{delta:N,type:Li.pop,direction:N?N>0?Fi.forward:Fi.back:Fi.unknown})})};function u(){d=s.value}function y(h){o.push(h);let w=()=>{let R=o.indexOf(h);R>-1&&o.splice(R,1)};return r.push(w),w}function m(){if(document.visibilityState==="hidden"){let{history:h}=window;if(!h.state)return;h.replaceState(Qe({},h.state,{scroll:Vo()}),"")}}function b(){for(let h of r)h();r=[],window.removeEventListener("popstate",p),window.removeEventListener("pagehide",m),document.removeEventListener("visibilitychange",m)}return window.addEventListener("popstate",p),window.addEventListener("pagehide",m),document.addEventListener("visibilitychange",m),{pauseListeners:u,listen:y,destroy:b}}function bu(e,t,s,i=!1,o=!1){return{back:e,current:t,forward:s,replaced:i,position:window.history.length,scroll:o?Vo():null}}function Bm(e){let{history:t,location:s}=window,i={value:Du(e,s)},o={value:t.state};o.value||r(i.value,{back:null,current:i.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function r(u,y,m){let b=e.indexOf("#"),h=b>-1?(s.host&&document.querySelector("base")?e:e.slice(b))+u:Fm()+e+u;try{t[m?"replaceState":"pushState"](y,"",h),o.value=y}catch(w){console.error(w),s[m?"replace":"assign"](h)}}function d(u,y){r(u,Qe({},t.state,bu(o.value.back,u,o.value.forward,!0),y,{position:o.value.position}),!0),i.value=u}function p(u,y){let m=Qe({},o.value,t.state,{forward:u,scroll:Vo()});r(m.current,m,!0),r(u,Qe({},bu(i.value,u,null),{position:m.position+1},y),!1),i.value=u}return{location:i,state:o,push:p,replace:d}}function Tu(e){e=du(e);let t=Bm(e),s=Um(e,t.state,t.location,t.replace);function i(r,d=!0){d||s.pauseListeners(),history.go(r)}let o=Qe({location:"",base:e,go:i,createHref:uu.bind(null,e)},t,s);return Object.defineProperty(o,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(o,"state",{enumerable:!0,get:()=>t.state.value}),o}var ds=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({}),gt=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e})(gt||{}),zm={type:ds.Static,value:""},Hm=/[a-zA-Z0-9_]/;function jm(e){if(!e)return[[]];if(e==="/")return[[zm]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(w){throw new Error(`ERR (${s})/"${y}": ${w}`)}let s=gt.Static,i=s,o=[],r;function d(){r&&o.push(r),r=[]}let p=0,u,y="",m="";function b(){y&&(s===gt.Static?r.push({type:ds.Static,value:y}):s===gt.Param||s===gt.ParamRegExp||s===gt.ParamRegExpEnd?(r.length>1&&(u==="*"||u==="+")&&t(`A repeatable param (${y}) must be alone in its segment. eg: '/:ids+.`),r.push({type:ds.Param,value:y,regexp:m,repeatable:u==="*"||u==="+",optional:u==="*"||u==="?"})):t("Invalid state to consume buffer"),y="")}function h(){y+=u}for(;pt.length?t.length===1&&t[0]===Dt.Static+Dt.Segment?1:-1:0}function Ou(e,t){let s=0,i=e.score,o=t.score;for(;s0&&t[t.length-1]<0}var Xm={strict:!1,end:!0,sensitive:!1};function Qm(e,t,s){let i=Km(jm(e.path),s),o=Qe(i,{record:e,parent:t,children:[],alias:[]});return t&&!o.record.aliasOf==!t.record.aliasOf&&t.children.push(o),o}function Jm(e,t){let s=[],i=new Map;t=ra(Xm,t);function o(b){return i.get(b)}function r(b,h,w){let R=!w,S=Eu(b);S.aliasOf=w&&w.record;let N=ra(t,b),v=[S];if("alias"in b){let V=typeof b.alias=="string"?[b.alias]:b.alias;for(let _ of V)v.push(Eu(Qe({},S,{components:w?w.record.components:S.components,path:_,aliasOf:w?w.record:S})))}let E,M;for(let V of v){let{path:_}=V;if(h&&_[0]!=="/"){let G=h.record.path,te=G[G.length-1]==="/"?"":"/";V.path=h.record.path+(_&&te+_)}if(E=Qm(V,h,N),w?w.alias.push(E):(M=M||E,M!==E&&M.alias.push(E),R&&b.name&&!Su(E)&&d(b.name)),Iu(E)&&u(E),S.children){let G=S.children;for(let te=0;te{d(M)}:Fs}function d(b){if(ca(b)){let h=i.get(b);h&&(i.delete(b),s.splice(s.indexOf(h),1),h.children.forEach(d),h.alias.forEach(d))}else{let h=s.indexOf(b);h>-1&&(s.splice(h,1),b.record.name&&i.delete(b.record.name),b.children.forEach(d),b.alias.forEach(d))}}function p(){return s}function u(b){let h=eg(b,s);s.splice(h,0,b),b.record.name&&!Su(b)&&i.set(b.record.name,b)}function y(b,h){let w,R={},S,N;if("name"in b&&b.name){if(w=i.get(b.name),!w)throw as(ut.MATCHER_NOT_FOUND,{location:b});N=w.record.name,R=Qe(Cu(h.params,w.keys.filter(M=>!M.optional).concat(w.parent?w.parent.keys.filter(M=>M.optional):[]).map(M=>M.name)),b.params&&Cu(b.params,w.keys.map(M=>M.name))),S=w.stringify(R)}else if(b.path!=null)S=b.path,w=s.find(M=>M.re.test(S)),w&&(R=w.parse(S),N=w.record.name);else{if(w=h.name?i.get(h.name):s.find(M=>M.re.test(h.path)),!w)throw as(ut.MATCHER_NOT_FOUND,{location:b,currentLocation:h});N=w.record.name,R=Qe({},h.params,b.params),S=w.stringify(R)}let v=[],E=w;for(;E;)v.unshift(E.record),E=E.parent;return{name:N,path:S,params:R,matched:v,meta:xm(v)}}e.forEach(b=>r(b));function m(){s.length=0,i.clear()}return{addRoute:r,resolve:y,removeRoute:d,clearRoutes:m,getRoutes:p,getRecordMatcher:o}}function Cu(e,t){let s={};for(let i of t)i in e&&(s[i]=e[i]);return s}function Eu(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Zm(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Zm(e){let t={},s=e.props||!1;if("component"in e)t.default=s;else for(let i in e.components)t[i]=typeof s=="object"?s[i]:s;return t}function Su(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function xm(e){return e.reduce((t,s)=>Qe(t,s.meta),{})}function eg(e,t){let s=0,i=t.length;for(;s!==i;){let r=s+i>>1;Ou(e,t[r])<0?i=r:s=r+1}let o=tg(e);return o&&(i=t.lastIndexOf(o,i-1)),i}function tg(e){let t=e;for(;t=t.parent;)if(Iu(t)&&Ou(e,t)===0)return t}function Iu({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Nu(e){let t=Mt(Ui),s=Mt(Bi),i=!1,o=null,r=Rt(()=>{let m=kn(e.to);return t.resolve(m)}),d=Rt(()=>{let{matched:m}=r.value,{length:b}=m,h=m[b-1],w=s.matched;if(!h||!w.length)return-1;let R=w.findIndex(rs.bind(null,h));if(R>-1)return R;let S=Ru(m[b-2]);return b>1&&Ru(h)===S&&w[w.length-1].path!==S?w.findIndex(rs.bind(null,m[b-2])):R}),p=Rt(()=>d.value>-1&&rg(s.params,r.value.params)),u=Rt(()=>d.value>-1&&d.value===s.matched.length-1&&da(s.params,r.value.params));function y(m={}){if(ig(m)){let b=t[kn(e.replace)?"replace":"push"](kn(e.to)).catch(Fs);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>b),b}return Promise.resolve()}return{route:r,href:Rt(()=>r.value.href),isActive:p,isExactActive:u,navigate:y}}function ng(e){return e.length===1?e[0]:e}var sg=Po({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:Nu,setup(e,{slots:t}){let s=st(Nu(e)),{options:i}=Mt(Ui),o=Rt(()=>({[Au(e.activeClass,i.linkActiveClass,"router-link-active")]:s.isActive,[Au(e.exactActiveClass,i.linkExactActiveClass,"router-link-exact-active")]:s.isExactActive}));return()=>{let r=t.default&&ng(t.default(s));return e.custom?r:De("a",{"aria-current":s.isExactActive?e.ariaCurrentValue:null,href:s.href,onClick:s.navigate,class:o.value},r)}}}),og=sg;function ig(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){let t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function rg(e,t){for(let s in t){let i=t[s],o=e[s];if(typeof i=="string"){if(i!==o)return!1}else if(!Kt(o)||o.length!==i.length||i.some((r,d)=>r.valueOf()!==o[d].valueOf()))return!1}return!0}function Ru(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}var Au=(e,t,s)=>e??t??s,ag=Po({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:s}){let i=Mt(zi),o=Rt(()=>e.route||i.value),r=Mt(fa,0),d=Rt(()=>{let y=kn(r),{matched:m}=o.value,b;for(;(b=m[y])&&!b.components;)y++;return y}),p=Rt(()=>o.value.matched[d.value]);os(fa,Rt(()=>d.value+1)),os(vu,p),os(zi,o);let u=St();return dt(()=>[u.value,p.value,e.name],([y,m,b],[h,w,R])=>{m&&(m.instances[b]=y,w&&w!==m&&y&&y===h&&(m.leaveGuards.size||(m.leaveGuards=w.leaveGuards),m.updateGuards.size||(m.updateGuards=w.updateGuards))),y&&m&&(!w||!rs(m,w)||!h)&&(m.enterCallbacks[b]||[]).forEach(S=>S(y))},{flush:"post"}),()=>{let y=o.value,m=e.name,b=p.value,h=b&&b.components[m];if(!h)return Pu(s.default,{Component:h,route:y});let w=b.props[m],R=w?w===!0?y.params:typeof w=="function"?w(y):w:null,N=De(h,Qe({},R,t,{onVnodeUnmounted:v=>{v.component.isUnmounted&&(b.instances[m]=null)},ref:u}));return Pu(s.default,{Component:N,route:y})||N}}});function Pu(e,t){if(!e)return null;let s=e(t);return s.length===1?s[0]:s}var ha=ag;function Mu(e){let t=Jm(e.routes,e),s=e.parseQuery||mu,i=e.stringifyQuery||pa,o=e.history,r=Us(),d=Us(),p=Us(),u=gi(Rn),y=Rn;ls&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");let m=_i.bind(null,W=>""+W),b=_i.bind(null,ru),h=_i.bind(null,Ls);function w(W,fe){let de,ce;return ca(W)?(de=t.getRecordMatcher(W),ce=fe):ce=W,t.addRoute(ce,de)}function R(W){let fe=t.getRecordMatcher(W);fe&&t.removeRoute(fe)}function S(){return t.getRoutes().map(W=>W.record)}function N(W){return!!t.getRecordMatcher(W)}function v(W,fe){if(fe=Qe({},fe||u.value),typeof W=="string"){let T=$i(s,W,fe.path),F=t.resolve({path:T.path},fe),Q=o.createHref(T.fullPath);return Qe(T,F,{params:h(F.params),hash:Ls(T.hash),redirectedFrom:void 0,href:Q})}let de;if(W.path!=null)de=Qe({},W,{path:$i(s,W.path,fe.path).path});else{let T=Qe({},W.params);for(let F in T)T[F]==null&&delete T[F];de=Qe({},W,{params:b(T)}),fe.params=b(fe.params)}let ce=t.resolve(de,fe),ve=W.hash||"";ce.params=m(h(ce.params));let Me=au(i,Qe({},W,{hash:iu(ve),path:ce.path})),P=o.createHref(Me);return Qe({fullPath:Me,hash:ve,query:i===pa?gu(W.query):W.query||{}},ce,{redirectedFrom:void 0,href:P})}function E(W){return typeof W=="string"?$i(s,W,u.value.path):Qe({},W)}function M(W,fe){if(y!==W)return as(ut.NAVIGATION_CANCELLED,{from:fe,to:W})}function V(W){return te(W)}function _(W){return V(Qe(E(W),{replace:!0}))}function G(W,fe){let de=W.matched[W.matched.length-1];if(de&&de.redirect){let{redirect:ce}=de,ve=typeof ce=="function"?ce(W,fe):ce;return typeof ve=="string"&&(ve=ve.includes("?")||ve.includes("#")?ve=E(ve):{path:ve},ve.params={}),Qe({query:W.query,hash:W.hash,params:ve.path!=null?{}:W.params},ve)}}function te(W,fe){let de=y=v(W),ce=u.value,ve=W.state,Me=W.force,P=W.replace===!0,T=G(de,ce);if(T)return te(Qe(E(T),{state:typeof T=="object"?Qe({},ve,T.state):ve,force:Me,replace:P}),fe||de);let F=de;F.redirectedFrom=fe;let Q;return!Me&&lu(i,ce,de)&&(Q=as(ut.NAVIGATION_DUPLICATED,{to:F,from:ce}),Be(ce,ce,!0,!1)),(Q?Promise.resolve(Q):U(F,ce)).catch(H=>gn(H)?gn(H,ut.NAVIGATION_GUARD_REDIRECT)?H:Ue(H):he(H,F,ce)).then(H=>{if(H){if(gn(H,ut.NAVIGATION_GUARD_REDIRECT))return te(Qe({replace:P},E(H.to),{state:typeof H.to=="object"?Qe({},ve,H.to.state):ve,force:Me}),fe||F)}else H=L(F,ce,!0,P,ve);return C(F,ce,H),H})}function X(W,fe){let de=M(W,fe);return de?Promise.reject(de):Promise.resolve()}function O(W){let fe=et.values().next().value;return fe&&typeof fe.runWithContext=="function"?fe.runWithContext(W):W()}function U(W,fe){let de,[ce,ve,Me]=yu(W,fe);de=Hi(ce.reverse(),"beforeRouteLeave",W,fe);for(let T of ce)T.leaveGuards.forEach(F=>{de.push(Nn(F,W,fe))});let P=X.bind(null,W,fe);return de.push(P),Fe(de).then(()=>{de=[];for(let T of r.list())de.push(Nn(T,W,fe));return de.push(P),Fe(de)}).then(()=>{de=Hi(ve,"beforeRouteUpdate",W,fe);for(let T of ve)T.updateGuards.forEach(F=>{de.push(Nn(F,W,fe))});return de.push(P),Fe(de)}).then(()=>{de=[];for(let T of Me)if(T.beforeEnter)if(Kt(T.beforeEnter))for(let F of T.beforeEnter)de.push(Nn(F,W,fe));else de.push(Nn(T.beforeEnter,W,fe));return de.push(P),Fe(de)}).then(()=>(W.matched.forEach(T=>T.enterCallbacks={}),de=Hi(Me,"beforeRouteEnter",W,fe,O),de.push(P),Fe(de))).then(()=>{de=[];for(let T of d.list())de.push(Nn(T,W,fe));return de.push(P),Fe(de)}).catch(T=>gn(T,ut.NAVIGATION_CANCELLED)?T:Promise.reject(T))}function C(W,fe,de){p.list().forEach(ce=>O(()=>ce(W,fe,de)))}function L(W,fe,de,ce,ve){let Me=M(W,fe);if(Me)return Me;let P=fe===Rn,T=ls?history.state:{};de&&(ce||P?o.replace(W.fullPath,Qe({scroll:P&&T&&T.scroll},ve)):o.push(W.fullPath,ve)),u.value=W,Be(W,fe,de,P),Ue()}let z;function K(){z||(z=o.listen((W,fe,de)=>{if(!Re.listening)return;let ce=v(W),ve=G(ce,Re.currentRoute.value);if(ve){te(Qe(ve,{replace:!0,force:!0}),ce).catch(Fs);return}y=ce;let Me=u.value;ls&&pu(ua(Me.fullPath,de.delta),Vo()),U(ce,Me).catch(P=>gn(P,ut.NAVIGATION_ABORTED|ut.NAVIGATION_CANCELLED)?P:gn(P,ut.NAVIGATION_GUARD_REDIRECT)?(te(Qe(E(P.to),{force:!0}),ce).then(T=>{gn(T,ut.NAVIGATION_ABORTED|ut.NAVIGATION_DUPLICATED)&&!de.delta&&de.type===Li.pop&&o.go(-1,!1)}).catch(Fs),Promise.reject()):(de.delta&&o.go(-de.delta,!1),he(P,ce,Me))).then(P=>{P=P||L(ce,Me,!1),P&&(de.delta&&!gn(P,ut.NAVIGATION_CANCELLED)?o.go(-de.delta,!1):de.type===Li.pop&&gn(P,ut.NAVIGATION_ABORTED|ut.NAVIGATION_DUPLICATED)&&o.go(-1,!1)),C(ce,Me,P)}).catch(Fs)}))}let ie=Us(),se=Us(),Y;function he(W,fe,de){Ue(W);let ce=se.list();return ce.length?ce.forEach(ve=>ve(W,fe,de)):console.error(W),Promise.reject(W)}function Se(){return Y&&u.value!==Rn?Promise.resolve():new Promise((W,fe)=>{ie.add([W,fe])})}function Ue(W){return Y||(Y=!W,K(),ie.list().forEach(([fe,de])=>W?de(W):fe()),ie.reset()),W}function Be(W,fe,de,ce){let{scrollBehavior:ve}=e;if(!ls||!ve)return Promise.resolve();let Me=!de&&fu(ua(W.fullPath,0))||(ce||!de)&&history.state&&history.state.scroll||null;return tt().then(()=>ve(W,fe,Me)).then(P=>P&&cu(P)).catch(P=>he(P,W,fe))}let Je=W=>o.go(W),He,et=new Set,Re={currentRoute:u,listening:!0,addRoute:w,removeRoute:R,clearRoutes:t.clearRoutes,hasRoute:N,getRoutes:S,resolve:v,options:e,push:V,replace:_,go:Je,back:()=>Je(-1),forward:()=>Je(1),beforeEach:r.add,beforeResolve:d.add,afterEach:p.add,onError:se.add,isReady:Se,install(W){W.component("RouterLink",og),W.component("RouterView",ha),W.config.globalProperties.$router=Re,Object.defineProperty(W.config.globalProperties,"$route",{enumerable:!0,get:()=>kn(u)}),ls&&!He&&u.value===Rn&&(He=!0,V(o.location).catch(ce=>{}));let fe={};for(let ce in Rn)Object.defineProperty(fe,ce,{get:()=>u.value[ce],enumerable:!0});W.provide(Ui,Re),W.provide(Bi,fo(fe)),W.provide(zi,u);let de=W.unmount;et.add(W),W.unmount=function(){et.delete(W),et.size<1&&(y=Rn,z&&z(),z=null,u.value=Rn,He=!1,Y=!1),de()}}};function Fe(W){return W.reduce((fe,de)=>fe.then(()=>O(de)),Promise.resolve())}return Re}function Vu(e){return Mt(Bi)}function Gi(e){return["author_pass","repo_extend","repo_never","repo_slot","repo_pack"].includes(e)}var ji=new WeakMap;function Wi(e){if(!ji.has(e)){let t=e.get("/api/billing/").finally(()=>ji.delete(e));ji.set(e,t)}return ji.get(e)}function Ki(e,t,s=()=>{},i={}){let o=new URLSearchParams(window.location.search).get("billing");e.billing=null,e.billingLoading=!0,e.billingBusy=!1,e.billingError="",e.billingNotice="",e.billingPending=o==="success",e.billingRepository="";let r={billing_invalid_draft:"This draft could not be saved. Your form is unchanged. Try again.",billing_draft_not_found:"This checkout draft is unavailable or expired. Your local form is unchanged.",billing_recovery_required:"Your earlier payment needs verification. Please contact support before paying again.",billing_checkout_disabled:"New purchases are temporarily unavailable. You can still manage existing billing.",billing_unavailable:"Payments are not available yet. Please try again later.",billing_subscription_exists:"You already have a subscription. Use Manage billing to change or cancel it.",billing_checkout_in_progress:"You have another checkout open. Complete it, or wait up to 30 minutes for it to expire, before choosing a different option.",billing_busy:"Another billing request is processing. Please try again shortly.",billing_already_paid:"This repository or conference already has this paid option.",billing_invalid_review_window:"Conference packages cover up to 180 days. Check the review dates.",billing_invalid_conference:"Only a conference owner can pay for a conference awaiting payment.",repo_not_found:"Enter the ID of an existing repository that you own."};e.billingAmount=u=>u?.amount==null?"":new Intl.NumberFormat(void 0,{style:"currency",currency:u.currency,minimumFractionDigits:u.amount%100?2:0,maximumFractionDigits:2}).format(u.amount/100),e.billingPrice=u=>u.amount==null?"Price shown at checkout":e.billingAmount(u)+(u.interval?` / ${u.intervalCount>1?u.intervalCount+" ":""}${u.interval}`:" once"),e.billingPerMonth=u=>u?.amount==null?"":new Intl.NumberFormat(void 0,{style:"currency",currency:u.currency}).format(u.amount/1200),e.billingBytes=u=>{let y=Number(u)||0;if(y<1024)return`${y} B`;let m=Math.min(4,Math.floor(Math.log2(y)/10));return`${new Intl.NumberFormat(void 0,{maximumFractionDigits:1}).format(y/1024**m)} ${["B","KB","MB","GB","TB"][m]}`},e.billingDate=u=>u?new Date(u).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"}):"",e.loadBilling=()=>(e.billingError="",e.billingLoading=!0,Wi(t).then(u=>{e.billing=u.data,e.emit?.("billing:updated",u.data)}).catch(()=>{e.billingError="Billing could not be loaded. Try again."}).finally(()=>{e.billingLoading=!1}));async function d(u,y,m=!0){if(!(e.billingBusy||!e.billing?.csrf)){e.billingBusy=!0,e.billingError="";try{let b=await t.post(`/api/billing/${u}`,y,{headers:{"x-csrf-token":e.billing.csrf}});if(m)window.location.assign(b.data.url);else return await e.loadBilling(),await s(),e.billingPending=!!b.data.pending,e.emit?.("billing:pending",e.billingPending),e.billingNotice=b.data.pending?"Your payment is still pending. Please do not pay again.":i.confirmedMessage||"Billing status refreshed. Your confirmed access appears below.",b.data}catch(b){e.billingError=r[b.data?.error]||"The billing request failed. Please try again."}finally{e.billingBusy=!1}}}e.checkout=(u,y="",m={})=>d("checkout",{planId:u,target:y,...m}),e.billingPortal=()=>d("portal",{}),e.refreshBilling=()=>d("refresh",{},!1);async function p(){for(let u=0;u<5;u++){let y=await e.refreshBilling();if(!y||!y.pending)return;await new Promise(m=>window.setTimeout(m,3e3))}e.billingNotice="Confirmation is taking longer than usual. You can refresh payment status later. Please do not pay again."}e.loadBilling().then(()=>{o==="success"?(e.billingNotice="Checking your payment. Paid access starts after confirmation.",p()):o==="portal"?e.refreshBilling().then(()=>{e.billingPending=!1,e.emit?.("billing:pending",!1),e.billingNotice=i.portalMessage?.(e.billing)||"Your billing details are up to date."}):o==="cancelled"&&(e.billingNotice="Checkout was closed. No new paid access has been activated.")})}function qu(e,t){return t?.split(".").reduce((s,i)=>s?.[i],e)}function qo(e=null,t=new Map){let s=st({}),i=[],o=!1,r=new Proxy(s,{get(d,p){return typeof p=="string"&&p.startsWith("__v_")||Reflect.has(d,p)?Reflect.get(d,p):e?.[p]}});return Object.defineProperty(s,"parent",{value:e,configurable:!0}),Object.defineProperty(s,"viewState",{get:()=>r}),r.watch=(d,p,u=!1,y=!0)=>{let m=typeof d=="function"?()=>d(r):()=>qu(r,d),b=dt(m,p,{deep:u,flush:"post"});return i.push(b),y&&tt(()=>{o||p(m(),m())}),b},r.watchGroup=(d,p,u=!0)=>r.watch(()=>d.map(y=>qu(r,y)),p,!0,u),r.on=(d,p)=>{if(d==="dispose")return i.push(p),()=>{};t.has(d)||t.set(d,new Set),t.get(d).add(p);let u=()=>t.get(d)?.delete(p);return i.push(u),u},r.emit=(d,...p)=>{for(let u of[...t.get(d)||[]])u({},...p)},r.dispose=()=>{o=!0,i.splice(0).reverse().forEach(d=>d())},es(r.dispose),r}function Ct(){let e=new Set,t=new Set,s=!1,i=(r,d=0)=>{if(s)return;let p=setTimeout(()=>{e.delete(p),r()},d);return e.add(p),p};i.cancel=r=>{clearTimeout(r),e.delete(r)};let o=(r,d)=>{if(s)return;let p=setInterval(r,d);return t.add(p),p};return o.cancel=r=>{clearInterval(r),t.delete(r)},es(()=>{s=!0,e.forEach(clearTimeout),t.forEach(clearInterval)}),{timeout:i,interval:o}}function Bt(){let e=new Set;return es(()=>{e.forEach(t=>t()),e.clear()}),(t,s,i,o)=>{t.addEventListener(s,i,o);let r=()=>{t.removeEventListener(s,i,o),e.delete(r)};return e.add(r),r}}var ma=function(e,t=e){let s=/\bXXXX-\d+\b/g;t.on("dark-mode",(O,U)=>{e.aceOption&&(e.aceOption.theme=U?"nord_dark":"chrome")});let i=Ct(),o=Bt();e.isMac=/Mac|iPhone|iPad|iPod/.test(navigator.platform||navigator.userAgent);let r={yml:"yaml",txt:"text",py:"python",js:"javascript",ts:"typescript"},d=["license","txt"],p=["png","jpg","jpeg","gif","svg","ico","bmp","tiff","tif","webp","avif","heif","heic"],u=["wav","mp3","ogg","wma","flac","aac","m4a"],y=["mp4","avi","webm","mov","mpg","mpeg","mkv","flv","wmv","3gp","3g2","m4v","f4v","f4p","f4a","f4b"];e.toggleSource=function(){e.showSource=!e.showSource},e.toggleAllowScripts=function(){e.allowScripts=!e.allowScripts};let m=(()=>{try{return window.localStorage?.getItem("wrapLines")}catch{return null}})();e.wrapLines=(m??(window.matchMedia?.("(max-width: 767px)").matches?"false":"true"))!=="false",e.toggleWrap=function(){e.wrapLines=!e.wrapLines;try{window.localStorage?.setItem("wrapLines",String(e.wrapLines))}catch{}e.codeEditor?.session.setUseWrapMode(e.wrapLines)};function b(){return window.document.querySelector(".reading-layout .markdown-body")}function h(){let O=b();O&&(O.querySelectorAll("mark.md-find").forEach(U=>{U.replaceWith(window.document.createTextNode(U.textContent))}),O.normalize())}e.runMdFind=function(){h(),e.mdFindTotal=0,e.mdFindIndex=0;let O=(e.mdFindQuery||"").trim(),U=b();if(!O||!U)return;let C=!!e.mdFindCase,L=C?O:O.toLowerCase(),z=window.document.createTreeWalker(U,4),K=[];for(;z.nextNode();)(C?z.currentNode.nodeValue:z.currentNode.nodeValue.toLowerCase()).includes(L)&&K.push(z.currentNode);let ie=0;for(let se of K){let Y=se.nodeValue,he=C?Y:Y.toLowerCase(),Se=window.document.createDocumentFragment(),Ue=0,Be;for(;(Be=he.indexOf(L,Ue))!==-1;){Se.appendChild(window.document.createTextNode(Y.slice(Ue,Be)));let Je=window.document.createElement("mark");Je.className="md-find",Je.textContent=Y.slice(Be,Be+O.length),Se.appendChild(Je),ie++,Ue=Be+O.length}Se.appendChild(window.document.createTextNode(Y.slice(Ue))),se.parentNode.replaceChild(Se,se)}e.mdFindTotal=ie,ie&&e.stepMdFind(0)},e.stepMdFind=function(O){let U=b();if(!U||!e.mdFindTotal)return;let C=U.querySelectorAll("mark.md-find");e.mdFindIndex=(e.mdFindIndex+O+C.length)%C.length,C.forEach((L,z)=>L.classList.toggle("is-current",z===e.mdFindIndex)),C[e.mdFindIndex]?.scrollIntoView({block:"center",behavior:"smooth"})},e.toggleMdFind=function(O){if(e.mdFindOpen=O===void 0?!e.mdFindOpen:O,!e.mdFindOpen){h(),e.mdFindTotal=0;return}tt(()=>window.document.querySelector(".md-find-input")?.focus())},e.findInFile=function(){let O=e.codeEditor;if(!O)return;O.focus(),O.execCommand("find");let U=()=>{let C=O.searchBox?.element;C&&(O.renderer.setScrollMargin(52,12,0,0),!C._dockObserver&&(C._dockObserver=new MutationObserver(()=>{O.renderer.setScrollMargin(C.style.display!=="none"?52:12,12,0,0)}),C._dockObserver.observe(C,{attributes:!0,attributeFilter:["style"]})))};U(),setTimeout(U,150)};let w=[[/^\s*(?:export\s+)?(?:default\s+)?(?:abstract\s+)?class\s+([A-Za-z_$][\w$]*)/,"class"],[/^\s*(?:export\s+)?(?:default\s+)?(?:async\s+)?function\s*\*?\s*([A-Za-z_$][\w$]*)/,"function"],[/^\s*(?:export\s+)?(?:const|let|var)\s+([A-Za-z_$][\w$]*)\s*=\s*(?:async\s*)?(?:function|\([^)]*\)\s*=>|[A-Za-z_$][\w$]*\s*=>)/,"function"],[/^\s*(?:async\s+)?def\s+([A-Za-z_]\w*)/,"function"],[/^\s*class\s+([A-Za-z_]\w*)/,"class"],[/^\s*func\s+(?:\([^)]*\)\s*)?([A-Za-z_]\w*)/,"function"],[/^\s*(?:pub\s+)?fn\s+([A-Za-z_]\w*)/,"function"],[/^\s*(?:public|private|protected|static|\s)+[\w<>\[\],\s]+\s+([A-Za-z_]\w*)\s*\([^;]*\)\s*\{?\s*$/,"function"]],R={content:null,list:[]};e.symbolsOpen=!1,e.symbols=function(){if(typeof e.content!="string"||e.content.length>2e6)return[];if(R.content===e.content)return R.list;let O=[];return e.content.split(` `).forEach((U,C)=>{for(let[L,z]of w){let K=L.exec(U);if(K&&!/^(if|for|while|switch|return|catch)$/.test(K[1])){O.push({name:K[1],kind:z,line:C+1});break}}}),R={content:e.content,list:O.slice(0,300)},R.list},e.goToSymbol=function(O){e.symbolsOpen=!1;let U=e.codeEditor;U&&(U.scrollToLine(O-1,!0,!0,()=>{}),U.gotoLine(O,0,!0),window.history.replaceState(null,"",window.location.pathname+window.location.search+"#L"+O),window.dispatchEvent(new HashChangeEvent("hashchange")))},e.gotoLine=function(){e.codeEditor&&(e.moreOpen=!1,e.gotoError="",e.gotoValue=String(e.codeEditor.getCursorPosition().row+1),e.gotoOpen=!0,setTimeout(()=>{let O=window.document.getElementById("goto-input");O&&(O.focus(),O.select())},0))},e.closeGoto=function(){e.gotoOpen=!1,e.gotoError="",e.codeEditor?.focus()},e.submitGoto=function(){let O=e.codeEditor;if(!O)return;let U=/^\s*:?\s*(\d+)\s*(?:[:,]\s*(\d+))?\s*$/.exec(e.gotoValue||""),C=O.session.getLength();if(!U||+U[1]<1||+U[1]>C){e.gotoError="Enter a line from 1 to "+C;return}O.gotoLine(+U[1],U[2]?Math.max(0,+U[2]-1):0,!0),e.gotoOpen=!1,e.gotoError="",O.focus()},e.rootEntries=function(){return[...e.files||[]].sort((O,U)=>{let C=O.size==null,L=U.size==null;return C!==L?C?-1:1:O.name.localeCompare(U.name)})},e.formatSize=function(O){if(O==null)return"";if(O<1024)return O+" B";let U=O/1024,C=L=>L.toFixed(1).replace(/\.0$/,"");return U<1024?C(U)+" KB":U<1024*1024?C(U/1024)+" MB":C(U/1024/1024)+" GB"},e.fileSize=function(O){if(!O)return null;let U=O.replace(/^\/+/,""),C=(e.files||[]).find(L=>(L.path?L.path+"/":"")+L.name===U);return C&&C.size!=null?C.size:null},e.revealFolder=function(O){e.sidebarHidden=!1,e.sidebarCollapsed=!1,tt(()=>{let U=window.document.querySelector('.files a[data-path="/'+(window.CSS?.escape?window.CSS.escape(O):O)+'"]');U&&(U.closest("li")?.classList.contains("open")||U.click(),U.scrollIntoView({block:"nearest"}),U.focus())})};let S={content:null,n:0},N=O=>{if(S.content===O)return S.n;let U=O;if(typeof U=="string")try{U=JSON.parse(U)}catch{U=null}let C=[],L=K=>{Array.isArray(K)?C.push(K.join("")):typeof K=="string"&&C.push(K)};(U&&(U.cells||(U.worksheets||[]).flatMap(K=>K.cells||[]))||[]).forEach(K=>{L(K?.source??K?.input),(K?.outputs||[]).forEach(ie=>{L(ie?.text),ie?.data&&(L(ie.data["text/plain"]),L(ie.data["text/markdown"]),L(ie.data["text/html"])),L(ie?.traceback)})});let z=C.reduce((K,ie)=>K+(ie.match(s)||[]).length,0);return S={content:O,n:z},z};e.redactionCount=function(){return e.type==="IPython"?N(e.content):typeof e.content!="string"?0:((e.type==="html"?e.content.replace(/<[^>]*>/g," "):e.content).match(s)||[]).length},e.renderRedacted=_o;let v=O=>O.toLowerCase().trim().replace(/[^a-z0-9\s-]/g,"").replace(/\s+/g,"-").slice(0,60)||"section";e.renderReadme=function(O){let U=e.renderRedacted(O);if(!U||typeof window.DOMParser!="function")return U;let C=new window.DOMParser().parseFromString("
"+U+"
","text/html"),L={};return C.querySelectorAll("h1, h2, h3").forEach(z=>{let K=z.id||v(z.textContent);L[K]?K+="-"+ ++L[K]:L[K]=1,z.id=K}),C.body.firstChild.innerHTML};let E={content:null,list:[]};e.readmeToc=function(){if(e.type!=="html"||typeof e.content!="string")return[];if(E.content===e.content)return E.list;let U=[...new window.DOMParser().parseFromString("
"+e.renderReadme(e.sanitize?e.sanitize(e.content):e.content)+"
","text/html").querySelectorAll("h2, h3")].map(C=>({id:C.id,text:C.textContent.trim(),level:C.tagName==="H3"?3:2})).slice(0,40);return E={content:e.content,list:U},U},e.activeHeading=null,o(window,"scroll",()=>{let O=e.readmeToc?e.readmeToc():[];if(!O.length)return;let U=150,C="",L="";for(let z of O){let K=window.document.getElementById(z.id);if(!K)continue;let ie=K.getBoundingClientRect().top;ie{let C=[],L=[],z="",K=!1;for(let ie=0;ieie.length>1||ie[0]!=="")};e.isCsv=()=>typeof e.content=="string"&&e.type!=="html"&&/\.(csv|tsv)$/i.test(e.filePath||"")&&e.content.length<=1024*1024,e.csvRows=()=>{if(M.content!==e.content){let O=/\.tsv$/i.test(e.filePath||"")?" ":",";M={content:e.content,rows:V(e.content,O)}}return M.rows},e.csvNumCol=O=>{let U=e.csvRows().slice(1).map(C=>C[O]).filter(C=>C!=null&&String(C).trim()!=="");return U.length>0&&U.every(C=>e.csvNumeric(C))},e.csvNumeric=O=>/^\s*[-+]?(\d[\d,]*)?(\.\d+)?(e[-+]?\d+)?%?\s*$/i.test(O)&&/\d/.test(O),e.redactParts=function(O){let U=[],C=0,L,z=/\bXXXX-(\d+)\b/g;for(O=String(O||"");L=z.exec(O);)L.index>C&&U.push({t:O.slice(C,L.index)}),U.push({n:L[1]}),C=L.index+L[0].length;return C{e.pathCopied=!1},1600))},e.contentCopied=!1,e.copyContent=async function(){if(typeof e.content!="string"||!window.navigator.clipboard?.writeText)return;let O=e.content;if(e.type==="html"&&e.url)if(e.preview)O=e.sourceContent;else try{O=await(await window.fetch(e.url,{credentials:"same-origin"})).text()}catch{return}await window.navigator.clipboard.writeText(O),e.contentCopied=!0,setTimeout(()=>{e.contentCopied=!1},1600)};function _(O){return r[O]?r[O]:O}function G(O){return O=="pdf"?"pdf":O=="html"||O=="htm"?"html-doc":["md","markdown","mdown","mkdn","mdx"].includes(O)?"md":O=="org"?"org":O=="ipynb"?"IPython":d.indexOf(O)>-1?"text":p.indexOf(O)>-1?"image":y.indexOf(O)>-1?"media":u.indexOf(O)>-1?"audio":"code"}e.downloadUrl=()=>e.preview?e.url:e.url+"&download=true",e.prepareFile=function(O){e.showSource=!1,e.allowScripts=!1,e.imageSize="",e.filePath=O,e.paths=O.split("/").filter(Boolean);let U=e.filePath.toLowerCase(),C=U.lastIndexOf(".");C>-1&&(U=U.substring(C+1));let L={javascript:"JavaScript",typescript:"TypeScript",tsx:"TSX",jsx:"JSX",python:"Python",java:"Java",c_cpp:"C/C++",csharp:"C#",golang:"Go",rust:"Rust",ruby:"Ruby",php:"PHP",html:"HTML",css:"CSS",scss:"SCSS",json:"JSON",yaml:"YAML",markdown:"Markdown",sh:"Shell",dockerfile:"Dockerfile",xml:"XML",sql:"SQL",kotlin:"Kotlin",swift:"Swift",scala:"Scala",r:"R",julia:"Julia",latex:"LaTeX",toml:"TOML",csv:"CSV",tsv:"TSV",text:""},z=_(U);e.languageName=L[z]??(z?z.charAt(0).toUpperCase()+z.slice(1):""),e.aceOption={readOnly:!0,useWrapMode:!0,showGutter:!0,theme:"chrome",useSoftTab:!0,tabSize:2,fontSize:window.matchMedia?.("(max-width: 767px)").matches?12:13,keyBinding:"vscode",fullLineSelection:!0,highlightActiveLine:!1,highlightGutterLine:!1,cursor:"hide",showInvisibles:!1,showIndentGuides:!1,showPrintMargin:!1,highlightSelectedWord:!1,enableBehaviours:!0,fadeFoldWidgets:!1,mode:_(U),onLoad:function(K){e.codeEditor=dn(K);{let Re=K.session,Fe=Re.getTokens.bind(Re),W=/\bXXXX-\d+\b/g;if(Re.getTokens=function(fe){let de=Fe(fe);if(!de.some(me=>me.value.indexOf("XXXX-")!==-1))return de;let ce=[];for(let me of de){if(me.value.indexOf("XXXX-")===-1){ce.push(me);continue}let Me=0;W.lastIndex=0;let A;for(;A=W.exec(me.value);)A.index>Me&&ce.push({type:me.type,value:me.value.slice(Me,A.index)}),ce.push({type:"redacted.n"+A[0].slice(5),value:A[0]}),Me=A.index+A[0].length;Me`.ace_redacted.ace_n${ce+1}::after{content:"${ce+1}"}`).join(""),window.document.head.appendChild(fe)}K.renderer.updateFull(!0)}K.session.setUseWrapMode(e.wrapLines!==!1);let ie=K.container.closest?.(".file-card"),se=()=>{if(!ie)return;let Re=K.renderer,Fe=(Re.layerConfig?.width||0)-(Re.$size?.scrollerWidth||0);ie.classList.toggle("at-right-edge",Fe<=2||Re.getScrollLeft()>=Fe-2)};K.session.on("changeScrollLeft",se),K.renderer.on("afterRender",se),window.matchMedia?.("(max-width: 767px)").matches&&K.setOption("hScrollBarAlwaysVisible",!0);let Y=ace.require("ace/range").Range,he=null;function Se(Re,Fe){he!==null&&(K.session.removeMarker(he),he=null),Re!=null&&(he=K.session.addMarker(new Y(Re,0,Fe,1),"highlighted-line","fullLine"))}function Ue(Re){let Fe=!e.preview&&window.location.hash.match(/^#L(\d+)(?:-L(\d+))?/);if(!Fe){Se(null);return}let W=parseInt(Fe[1])-1,fe=Fe[2]?parseInt(Fe[2])-1:W;Se(W,fe),Re&&i.timeout(()=>{K.scrollToLine(W,!0,!0,function(){})},100)}Ue(!0);let Be=null;K.on("guttermousedown",function(Re){let Fe=Re.getDocumentPosition().row,W=Re.domEvent&&Re.domEvent.shiftKey,fe=Fe,de=Fe;W&&Be!==null?(fe=Math.min(Be,Fe),de=Math.max(Be,Fe)):Be=Fe;let ce=fe===de?`#L${fe+1}`:`#L${fe+1}-L${de+1}`,me=window.location.pathname+window.location.search+ce;e.preview||window.history.replaceState(null,"",me),Se(fe,de),Re.stop()});let Qe=o(window,"hashchange",()=>Ue(!1));K.setFontSize(e.aceOption.fontSize),K.setOptions({fontFamily:"'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace"}),K.container.style.lineHeight="20px",K.renderer.setPadding(16),K.renderer.setScrollMargin(12,12,0,0),K.renderer.updateFontSize(),K.setReadOnly(e.aceOption.readOnly),K.setKeyboardHandler(e.aceOption.keyBinding),K.setSelectionStyle(e.aceOption.fullLineSelection?"line":"text"),K.setOption("displayIndentGuides",!1),K.setHighlightActiveLine(e.aceOption.highlightActiveLine),e.aceOption.cursor=="hide"&&(K.renderer.$cursorLayer.element.style.display="none"),K.setHighlightGutterLine(e.aceOption.highlightGutterLine),K.setShowInvisibles(e.aceOption.showInvisibles),K.setDisplayIndentGuides(e.aceOption.showIndentGuides),K.renderer.setShowPrintMargin(e.aceOption.showPrintMargin),K.setHighlightSelectedWord(e.aceOption.highlightSelectedWord),K.session.setUseSoftTabs(e.aceOption.useSoftTab),K.session.setTabSize(e.aceOption.tabSize),K.setBehavioursEnabled(e.aceOption.enableBehaviours),K.setFadeFoldWidgets(e.aceOption.fadeFoldWidgets);let He=()=>!e.preview||K.isFocused(),et=o(window,"keydown",Re=>{if((Re.ctrlKey||Re.metaKey)&&!Re.altKey&&Re.key.toLowerCase()==="g"&&document.body.contains(K.container)&&He()){Re.preventDefault(),e.gotoLine();return}if(Re.altKey&&!Re.ctrlKey&&!Re.metaKey&&Re.key.toLowerCase()==="z"&&document.body.contains(K.container)&&He()){Re.preventDefault(),e.toggleWrap();return}(Re.ctrlKey||Re.metaKey)&&!Re.altKey&&Re.key.toLowerCase()==="f"&&document.body.contains(K.container)&&He()&&(Re.preventDefault(),e.findInFile())});return()=>{Qe(),et()}}},e.isDarkMode&&(e.aceOption.theme="nord_dark"),e.type=G(U)},e.renderFileContent=function(O,U,C,L){if(e.type=U,e.content=O,e.sourceContent=O,e.content==""&&(e.content=null),e.type=="md"&&(e.content=renderMD(O,C),e.type="html"),e.type=="org"){let K=contentAbs2Relative(O);var z=new Org.Parser().parse(K).convert(Org.ConverterHTML,{headerOffset:1,exportFromLineNumber:!1,suppressSubScriptHandling:!0,suppressAutoLink:!1});e.content=DOMPurify.sanitize(z.toString()),e.type="html"}e.type=="code"&&L=="application/octet-stream"&&(e.type="binary",e.content="binary"),i.timeout(()=>{Prism.highlightAll()},50)};let te=["image","media","audio","pdf","IPython","binary"],X=["file_too_big","file_not_found","file_not_accessible","file_not_supported","folder_not_supported"];e.fileFrame=()=>e.filePath?te.includes(e.type)?e.content!=null:e.type==="error"?X.includes(e.content):e.content==null&&["code","text"].includes(e.type):!1,e.fileKind=()=>{let O=(e.paths||[])[(e.paths||[]).length-1]||"",U=O.lastIndexOf("."),C=U>0?O.slice(U+1).toUpperCase():"";if(e.type==="image")return(C==="JPG"?"JPEG":C)+" image";let L={WEBM:"WebM",OGG:"Ogg",OGV:"Ogg",MOV:"QuickTime",M4V:"M4V",MKV:"Matroska"};return e.type==="media"?(L[C]||C)+" video":e.type==="audio"?C+" audio":e.type==="pdf"?"PDF":e.type==="IPython"?"Jupyter notebook":e.type==="binary"?"Binary file":e.languageName||(C?C+" file":"File")},e.imageSize="",e.onImageLoad=O=>{let U=O.target;U?.naturalWidth&&(e.imageSize=`${U.naturalWidth} \xD7 ${U.naturalHeight}`)},o(document,"click",O=>{e.preview&&(O.target.closest?.(".symbols")||(e.symbolsOpen=!1),O.target.closest?.(".tb-more")||(e.moreOpen=!1),O.target.closest?.(".tb-toc-m")||(e.tocOpen=!1),O.target.isConnected&&!O.target.closest?.(".goto-pop, .btn-goto, .tb-more")&&(e.gotoOpen=!1))})};function ga(e,t,s){let i,o=!1,r="form-draft:"+s,d=()=>Object.fromEntries(t.map(h=>[h,e[h]])),p=()=>JSON.stringify(d()),u=h=>{for(let w of t)Object.prototype.hasOwnProperty.call(h,w)&&(e[w]=h[w]);e.options?.expirationDate&&(e.options.expirationDate=new Date(e.options.expirationDate))},y=()=>{try{window.sessionStorage.removeItem(r)}catch{}},m=(h=!1)=>{if(i!==void 0){if(h&&document.querySelectorAll("input, select, textarea").forEach(w=>{w._field?.binding.state===e&&w._field.timer&&w._field.commit()}),e.unsavedChanges=p()!==i,e.draftSaved=!1,!e.unsavedChanges){y();return}try{window.sessionStorage.setItem(r,JSON.stringify({account:e.user?.username||null,savedAt:Date.now(),values:d()})),e.draftSaved=!0}catch{}}},b=()=>m(!0);return e.on("routeLeave",b),window.addEventListener("beforeunload",b),e.on("dispose",()=>window.removeEventListener("beforeunload",b)),{restore(){i=p();let h;try{h=JSON.parse(window.sessionStorage.getItem(r)||"null")}catch{}let w=h&&h.account===(e.user?.username||null)&&Date.now()-h.savedAt<30*6e4&&h.values;return w&&(u(h.values),e.draftRestored=!0),o||(o=!0,e.watch(()=>d(),()=>m(),!0)),e.unsavedChanges=p()!==i,!!w},checkpoint(){return document.querySelectorAll("input, select, textarea").forEach(h=>{h._field?.binding.state===e&&h._field.timer&&h._field.commit()}),JSON.parse(p())},accept(h){i=JSON.stringify(h),e.draftRestored=!1,m()},discard(){document.querySelectorAll("input, select, textarea").forEach(h=>{h._field?.binding.state!==e||!h._field.timer||(clearTimeout(h._field.timer),h._field.timer=null,h.value=h._field.binding.value??"")}),i!==void 0&&u(JSON.parse(i)),e.draftRestored=!1,m()},clear(){i=p(),e.unsavedChanges=!1,e.draftRestored=!1,e.draftSaved=!1,y()}}}var wa={};sf(wa,{bigNum:()=>ag,date:()=>vg,dateEcho:()=>ya,diff:()=>ug,duration:()=>qn,filter:()=>mg,humanFileSize:()=>rg,humanTime:()=>va,limitTo:()=>hg,money:()=>pg,number:()=>cg,orderBy:()=>gg,plural:()=>yg,shortDate:()=>ba,statusLabel:()=>dg,statusMsg:()=>Yi,title:()=>lg,uppercase:()=>fg});var rg=e=>String(window.humanFileSize(e)).replace(/([KMGTPEZY])iB$/,"$1B").replace(/\.0 ([KMGTPEZY]?B)$/," $1"),ag=(function(){return function(t){let s=Number(t)||0,i=Math.abs(s);return i<1e3?String(s):i<1e4?(s/1e3).toFixed(1).replace(/\.0$/,"")+"k":i<1e6?Math.round(s/1e3)+"k":i<1e7?(s/1e6).toFixed(1).replace(/\.0$/,"")+"M":Math.round(s/1e6)+"M"}})(),va=(function(){return function(t){if(!t)return"never";var s=null;t instanceof Date&&(s=t,t=Math.round((Date.now()-t)/1e3)),(typeof t=="string"||typeof t=="number")&&(s=new Date(t),t=Math.round((Date.now()-s)/1e3));var i=t<0?"from now":"ago";if(Math.abs(t)>7200*24)return(s&&!isNaN(s)?s:new Date(Date.now()-t*1e3)).toLocaleDateString(void 0,{day:"numeric",month:"short",year:"numeric"});t=Math.abs(t);for(var o=[t/60/60/24/365,t/60/60/24/30,t/60/60/24/7,t/60/60/24,t/60/60,t/60,t],r=["year","month","week","day","hour","minute","second"],d=0;d1&&(u+="s"),p>=1)return p+" "+u+" "+i}return"0 seconds "+i}})(),lg=(function(){return function(e){if(!e)return e;e=e.toLowerCase();var t=e.split(" "),s=t.map(function(i){return i.charAt(0).toUpperCase()+i.substring(1,i.length)});return s.join(" ")}})(),dg=(function(){var e={ready:"Ready",error:"Error",expired:"Expired",expiring:"Expiring",removed:"Removed",removing:"Removing",queue:"Queued",download:"Downloading",downloaded:"Downloaded",preparing:"Preparing",anonymizing:"Anonymizing"};return function(t){if(!t)return"";if(e[t])return e[t];var s=String(t).replace(/[_-]+/g," ").toLowerCase();return s.charAt(0).toUpperCase()+s.slice(1)}})(),Yi=(function(){var e={branch_not_found:"Branch not found on GitHub",repo_not_found:"Repository not found on GitHub",repository_not_found:"Repository not found on GitHub",repo_not_accessible:"Repository is not accessible with your token",pr_not_found:"Pull request not found on GitHub",gist_not_found:"Gist not found on GitHub",commit_not_found:"Commit not found on GitHub",repo_too_big:"Repository exceeds the size limit",repository_too_big:"Repository exceeds the size limit",quota_exceeded:"Storage quota exceeded",incomplete_record:"Incomplete record: missing identifier"};return function(t){if(!t)return t;var s=t.match(/^rate_limited:(\d+)$/);if(s){var i=Math.max(0,Math.ceil((parseInt(s[1],10)-Date.now())/1e3));if(i<=0)return"Rate limited \u2014 resuming soon";var o=Math.floor(i/60),r=i%60;return"Rate limited \u2014 retrying in "+(o>0?o+"m "+r+"s":r+"s")}if(e[t])return e[t];var d=/^([a-z0-9]+(?:_[a-z0-9]+)+):\s*\S/.exec(t);if(d){if(e[d[1]])return e[d[1]];var p=d[1].replace(/_/g," ");return p.charAt(0).toUpperCase()+p.slice(1)}if(/^[a-z0-9]+(_[a-z0-9]+)+$/.test(t)){var u=t.replace(/_/g," ");return u.charAt(0).toUpperCase()+u.slice(1)}return t}})(),ug=(function(e){let t=i=>i.replace(/&/g,"&").replace(//g,">");function s(i,o){if(!o)return;let r=o.newPath&&o.newPath!=="/dev/null"?o.newPath:o.oldPath||"",d=o.oldPath==="/dev/null"?"added":o.newPath==="/dev/null"?"deleted":o.oldPath&&o.newPath&&o.oldPath!==o.newPath?"renamed":"modified";if(i.push('
'),i.push('
'+t(r)+''+d+"
"),o.lines.length){i.push('');for(let p of o.lines)i.push('");i.push("
'+(p.oldNo||"")+''+(p.newNo||"")+''+(p.kind==="add"?"+":p.kind==="remove"?"-":"")+''+t(p.text)+"
")}i.push("
")}return function(i){if(!i)return i;let o=[],r=null,d=0,p=0,u=()=>(r||(r={oldPath:"",newPath:"",lines:[]}),r),y=()=>{r&&(r.lines.length||r.oldPath||r.newPath)&&(s(o,r),r=null)},m=i.split(` -`);for(let b=0;be});function cg(e,t){return e==null?"":Number(e).toLocaleString(void 0,t==null?{}:{minimumFractionDigits:t,maximumFractionDigits:t})}function pg(e,t="EUR"){let s=Number(e)||0;return new Intl.NumberFormat(void 0,{style:"currency",currency:t,minimumFractionDigits:s%1?2:0,maximumFractionDigits:2}).format(s)}function fg(e){return String(e??"").toUpperCase()}function hg(e,t,s=0){return(e||[]).slice(s,s+t)}function mg(e,t){return Array.isArray(e)?typeof t=="function"?e.filter(t):e:[]}function gg(e,t){if(!t)return e||[];let s=Array.isArray(t)?t:[t];return[...e||[]].sort((i,o)=>{for(let r of s){let d=r[0]==="-"?-1:1;r=r.replace(/^[+-]/,"");let p=r.split(".").reduce((y,m)=>y?.[m],i),u=r.split(".").reduce((y,m)=>y?.[m],o);if(typeof p=="string"&&(p=p.toLowerCase()),typeof u=="string"&&(u=u.toLowerCase()),p!==u)return(p==null?-1:u==null?1:pi[o])}function yg(e,t){return(t?.[e]??t?.[e===1?"one":"other"]??"").replace(/\{\}/g,e??0)}function ya(e){if(!e)return"";let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(String(e)),s=t?new Date(+t[1],+t[2]-1,+t[3]):new Date(e);if(isNaN(s))return"";let i=s.toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"}),o=new Date;o.setHours(0,0,0,0);let r=Math.round((s-o)/864e5),d;if(r===0)d="today";else if(r===1)d="tomorrow";else if(r===-1)d="yesterday";else{let p=Math.abs(r),u=Math.round(p/30.44),y=p<14?[p,"day"]:p<60?[Math.round(p/7),"week"]:u<18?[u,"month"]:[Math.round(p/365.25),"year"],m=y[0]+" "+y[1]+(y[0]===1?"":"s");d=r>0?"in "+m:m+" ago"}return i+" \xB7 "+d}function qn(e){if(e==null||e===""||isNaN(e))return"";e=Number(e);let t="\u202F";if(e<1e3)return+(e<10?e.toFixed(2):e<100?e.toFixed(1):Math.round(e))+t+"ms";let s=e/1e3;if(s<60)return+(s<10?s.toFixed(2):s.toFixed(1))+t+"s";let i=r=>String(r).padStart(2,"0"),o=Math.round(s);return o<3600?Math.floor(o/60)+"m "+i(o%60)+"s":Math.floor(o/3600)+"h "+i(Math.floor(o%3600/60))+"m"}function ba(e){if(!e)return"";let t=new Date(e);if(isNaN(t))return"";let s={day:"numeric",month:"short"};return t.getFullYear()!==new Date().getFullYear()&&(s.year="numeric"),t.toLocaleDateString(void 0,s)}var Xi=e=>["preparing","download","downloading","downloaded","queue","anonymizing"].includes(e)?"preparing":e==="expiring"?"expired":e==="removing"?"removed":e;function Ji(e,{flags:t,keys:s,count:i,onChange:o=()=>{}}){if(e.segView=()=>{let r=t()||{};if(s.every(p=>!!r[p]))return"all";let d=s.filter(p=>!!r[p]);return d.length===1?d[0]:"custom"},e.setSegView=r=>{let d=t();if(d){for(let p of s)d[p]=r==="all"?!0:p===r;o()}},e.segCount=r=>r==="all"?s.reduce((d,p)=>d+i(p),0):i(r),t()&&e.segView()==="custom")for(let r of s)t()[r]=!0}var Lu=function(e,t,s){let i=Ct(),o=Ut();Gu(i,o),e.Math=Math,e.watch("user.status",()=>{e.user==null&&s.url("/")}),e.user==null&&s.url("/"),e.repositories=[],e.total=-1,e.totalPage=0,e.statusCounts=[],e.totalSize=0,e.selected={},e.allSelected=!1;let r=S=>{if(S.key==="/"&&!["INPUT","TEXTAREA","SELECT"].includes(document.activeElement?.tagName)){S.preventDefault();let N=document.querySelector('.admin-filter-toolbar input[type="search"]');N&&N.focus()}};o(document,"keydown",r),e.on("dispose",()=>document.removeEventListener("keydown",r)),e.clearFilter=S=>{S==="dateRange"?(e.query.dateFrom="",e.query.dateTo=""):e.query[S]="",e.query.page=1},e.chips=[];let d=()=>{let S=[];e.query.owner&&S.push({key:"owner",label:"Owner",value:e.query.owner}),e.query.conference&&S.push({key:"conference",label:"Conference",value:e.query.conference}),e.chips=S};e.showStatusMessage=S=>{let N=S.statusMessage||"(no message)";window.prompt(`Status message for ${S.repoId} (${S.status}):`,N)},e.fetchGithubInfo=S=>{let N=window.open("","_blank");N&&N.document.write("
Loading GitHub info for "+S.repoId+"...
"),t.get("/api/admin/repos/"+S.repoId+"/github").then(v=>{N&&(N.document.open(),N.document.write('
'+JSON.stringify(v.data,null,2).replace(/[<>]/g,E=>E==="<"?"<":">")+"
"),N.document.close())},v=>{let E=v&&v.data?JSON.stringify(v.data,null,2):String(v);N&&(N.document.body.innerHTML='
'+E+"
")})},e.statusCountFor=S=>{let N=(e.statusCounts||[]).find(v=>v._id===S);return N?N.count:0},e.statusStorageFor=S=>{let N=(e.statusCounts||[]).find(v=>v._id===S);return N?N.storage:0},e.isErrorsOnly=()=>e.query&&e.query.error&&!e.query.ready&&!e.query.preparing&&!e.query.expired&&!e.query.removed,e.toggleErrorsOnly=()=>{e.isErrorsOnly()?Object.assign(e.query,{ready:!1,preparing:!0,expired:!1,removed:!1,error:!0}):Object.assign(e.query,{ready:!1,preparing:!1,expired:!1,removed:!1,error:!0}),e.query.page=1},e.toggleSortDirection=()=>{e.query.direction=e.query.direction==="asc"?"desc":"asc"},e.sortBy=S=>{e.query.sort===S?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=S,e.query.direction="desc"),e.query.page=1},e.sortIcon=S=>e.query.sort===S?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"";let p="admin.repos.filterPrefs",u={page:1,limit:25,sort:"lastView",direction:"desc",search:"",owner:"",conference:"",dateFrom:"",dateTo:"",ready:!0,expired:!0,removed:!0,error:!0,preparing:!0},y=loadFilterPrefs(p)||{};e.query=Object.assign({},u,y,{page:1,search:""});let m=s.search();m.owner&&(e.query.owner=m.owner),m.conference&&(e.query.conference=m.conference),m.search&&(e.query.search=m.search);let b="admin.repos.presets";e.presets=JSON.parse(localStorage.getItem(b)||"[]"),e.savePreset=()=>{let S=window.prompt("Preset name:");if(!S)return;let N=Object.assign({},e.query);delete N.page,e.presets=(e.presets||[]).filter(v=>v.name!==S),e.presets.push({name:S,query:N}),localStorage.setItem(b,JSON.stringify(e.presets))},e.applyPreset=S=>{Object.assign(e.query,S.query,{page:1})},e.deletePreset=S=>{e.presets=(e.presets||[]).filter(N=>N.name!==S.name),localStorage.setItem(b,JSON.stringify(e.presets))},e.selectAllOnPage=()=>{e.allSelected=!e.allSelected,e.repositories.forEach(S=>{e.selected[S.repoId]=e.allSelected})},e.selectedCount=()=>Object.values(e.selected||{}).filter(Boolean).length,e.selectedRepos=()=>e.repositories.filter(S=>e.selected[S.repoId]),e.bulkRefresh=()=>{let S=e.selectedRepos();S.length&&confirm(`Force refresh ${S.length} repositories?`)&&S.forEach(N=>e.updateRepository(N))},e.bulkRemoveCache=()=>{let S=e.selectedRepos();S.length&&confirm(`Purge cache for ${S.length} repositories?`)&&S.forEach(N=>e.removeCache(N))},e.clearSelection=()=>{e.selected={},e.allSelected=!1},e.exportCsv=()=>{let S=new URLSearchParams(Object.entries(e.query).filter(([,N])=>N!==""&&N!==!1&&N!=null));S.set("format","csv"),S.set("limit","10000"),window.open("/api/admin/repos?"+S.toString(),"_blank")},e.removeCache=S=>{confirm("Remove cached files for "+S.repoId+"?")&&t.delete("/api/admin/repos/"+S.repoId).then(()=>h(),N=>console.error(N))},e.removeRepository=S=>{confirm("Remove repository "+S.repoId+"?")&&t.delete("/api/repo/"+S.repoId+"/").then(()=>h(),N=>console.error(N))},e.updateRepository=S=>{let N=st({title:`Refreshing ${S.repoId}...`,date:new Date,body:`The repository ${S.repoId} is going to be refreshed.`});e.toasts.push(N),t.post(`/api/repo/${S.repoId}/refresh`).then(v=>{v.data.status=="ready"?N.title=`${S.repoId} is refreshed.`:N.title=`Refreshing of ${S.repoId}.`},v=>{N.title=`Error during the refresh of ${S.repoId}.`,N.body=v.body})},e.filtersOpen=!1,e.fetchError=null;function h(){e.fetchError=null,t.get("/api/admin/repos",{params:e.query}).then(S=>{e.total=S.data.total,e.totalPage=Math.ceil(S.data.total/e.query.limit),e.repositories=S.data.results,e.allSelected=!1},S=>{e.fetchError=S&&S.data&&S.data.error||"Failed to load repositories",console.error(S)})}function w(){let S=Object.assign({},e.query,{page:1,limit:1,ready:!0,expired:!0,removed:!0,error:!0,preparing:!0});t.get("/api/admin/repos",{params:S}).then(N=>{e.statusCounts=N.data.statusCounts||[],e.totalSize=N.data.totalSize||0},()=>{})}e.showAllStatuses=()=>Object.assign(e.query,{ready:!0,expired:!0,removed:!0,error:!0,preparing:!0,page:1}),Ji(e,{flags:()=>e.query,keys:["ready","preparing","error","expired","removed"],count:S=>S==="preparing"?e.statusCountFor("preparing")+e.statusCountFor("download"):S==="expired"?e.statusCountFor("expired")+e.statusCountFor("expiring"):S==="removed"?e.statusCountFor("removed")+e.statusCountFor("removing"):e.statusCountFor(S),onChange:()=>{e.query.page=1}}),h(),w();let R=null;e.watch("query",()=>{i.timeout.cancel(R),R=i.timeout(()=>{h(),w()},500);let{page:S,search:N,...v}=e.query;saveFilterPrefs(p,v),d()},!0),d()},Fu=function(e,t,s){let i=Ct(),o=Ut();e.Math=Math,e.watch("user.status",()=>{e.user==null&&s.url("/")}),e.user==null&&s.url("/"),e.users=[],e.total=-1,e.totalPage=0,e.statusCounts=[],e.selected={},e.allSelected=!1;let r=h=>{if(h.key==="/"&&!["INPUT","TEXTAREA","SELECT"].includes(document.activeElement?.tagName)){h.preventDefault();let w=document.querySelector('.admin-filter-toolbar input[type="search"]');w&&w.focus()}};o(document,"keydown",r),e.on("dispose",()=>document.removeEventListener("keydown",r)),e.clearFilter=h=>{h==="dateRange"?(e.query.dateFrom="",e.query.dateTo=""):e.query[h]="",e.query.page=1},e.chips=[];let d=()=>{let h=[];e.query.role&&h.push({key:"role",label:"Role",value:e.query.role}),e.chips=h};e.statusCountFor=h=>{let w=(e.statusCounts||[]).find(R=>R._id===h);return w?w.count:0},e.toggleSortDirection=()=>{e.query.direction=e.query.direction==="asc"?"desc":"asc"},e.sortBy=h=>{e.query.sort===h?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=h,e.query.direction="desc"),e.query.page=1},e.sortIcon=h=>e.query.sort===h?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"";let p="admin.users.filterPrefs",u={page:1,limit:25,sort:"username",direction:"asc",search:"",status:"",role:"",dateFrom:"",dateTo:""},y=loadFilterPrefs(p)||{};e.query=Object.assign({},u,y,{page:1,search:""}),e.selectAllOnPage=()=>{e.allSelected=!e.allSelected,e.users.forEach(h=>{e.selected[h.username]=e.allSelected})},e.selectedCount=()=>Object.values(e.selected||{}).filter(Boolean).length,e.selectedUsers=()=>e.users.filter(h=>e.selected[h.username]),e.banUser=h=>{confirm(`Ban user ${h.username}?`)&&t.post(`/api/admin/users/${h.username}/ban`).then(m,w=>console.error(w))},e.activateUser=h=>{t.post(`/api/admin/users/${h.username}/activate`).then(m,w=>console.error(w))},e.bulkBan=()=>{let h=e.selectedUsers();h.length&&confirm(`Ban ${h.length} users?`)&&h.forEach(w=>e.banUser(w))},e.exportCsv=()=>{let h=new URLSearchParams(Object.entries(e.query).filter(([,w])=>w!==""&&w!==!1&&w!=null));h.set("format","csv"),h.set("limit","10000"),window.open("/api/admin/users?"+h.toString(),"_blank")},e.fetchError=null;function m(){e.fetchError=null,t.get("/api/admin/users",{params:e.query}).then(h=>{e.total=h.data.total,e.totalPage=Math.ceil(h.data.total/e.query.limit),e.users=h.data.results,e.statusCounts=h.data.statusCounts||[],e.allSelected=!1},h=>{e.fetchError=h&&h.data&&h.data.error||"Failed to load users",console.error(h)})}m();let b=null;e.watch("query",()=>{i.timeout.cancel(b),b=i.timeout(m,500);let{page:h,search:w,...R}=e.query;saveFilterPrefs(p,R),d()},!0),d()},Uu=function(e,t,s,i){let o=Ct();Gu(o,Ut()),e.watch("user.status",()=>{e.user==null&&s.url("/")}),e.user==null&&s.url("/"),e.userInfo,e.repositories=[],e.search="",e.selected={},e.allSelected=!1;let r="admin.user.filterPrefs",d={filters:{status:{ready:!0,expired:!0,removed:!0,error:!0,preparing:!0}},sort:"anonymizeDate",direction:"desc"},p=loadFilterPrefs(r)||{};e.filters={status:Object.assign({},d.filters.status,p.filters&&p.filters.status||{})},e.query={sort:p.sort||d.sort,direction:p.direction||d.direction},e.orderBy=(e.query.direction==="asc"?"":"-")+e.query.sort,e.sortBy=h=>{e.query.sort===h?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=h,e.query.direction="desc"),e.orderBy=(e.query.direction==="asc"?"":"-")+e.query.sort},e.sortIcon=h=>e.query.sort===h?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"",e.watch("query",()=>{saveFilterPrefs(r,{filters:e.filters,sort:e.query.sort,direction:e.query.direction})},!0),e.watch("filters",()=>{saveFilterPrefs(r,{filters:e.filters,sort:e.query.sort,direction:e.query.direction})},!0),e.statusCountFor=h=>(e.repositories||[]).filter(w=>Xi(w.status)===h).length,Ji(e,{flags:()=>e.filters.status,keys:["ready","preparing","error","expired","removed"],count:h=>e.statusCountFor(h)}),e.repoFiler=h=>e.filters.status[Xi(h.status)]==!1?!1:!!(e.search.trim().length==0||h.source.fullName.indexOf(e.search)>-1||h.repoId.indexOf(e.search)>-1||h.statusMessage&&h.statusMessage.indexOf(e.search)>-1||h.conference&&h.conference.indexOf(e.search)>-1),e.selectAllOnPage=()=>{e.allSelected=!e.allSelected,(e.filteredRepositories||e.repositories).forEach(h=>{e.selected[h.repoId]=e.allSelected})},e.selectedCount=()=>Object.values(e.selected||{}).filter(Boolean).length,e.selectedRepos=()=>e.repositories.filter(h=>e.selected[h.repoId]),e.bulkRefresh=()=>{let h=e.selectedRepos();h.length&&confirm(`Force refresh ${h.length} repositories?`)&&h.forEach(w=>e.updateRepository(w))},e.bulkRemoveCache=()=>{let h=e.selectedRepos();h.length&&confirm(`Purge cache for ${h.length} repositories?`)&&h.forEach(w=>e.removeCache(w))},e.clearSelection=()=>{e.selected={},e.allSelected=!1},e.exportCsv=()=>{let h=e.filteredRepositories||e.repositories,R=["repoId","status","statusMessage","pageView","anonymizeDate","source.fullName","conference","size.storage"].join(","),S=h.map(E=>[E.repoId,E.status,E.statusMessage||"",E.pageView||0,E.anonymizeDate||"",E.source&&E.source.fullName||"",E.conference||"",E.size&&E.size.storage||0].map(M=>{let V=String(M??"");return/[",\n\r]/.test(V)?'"'+V.replace(/"/g,'""')+'"':V}).join(",")),N=new Blob([R+` +`&&ie++,L.push(z),C.push(L),L=[],z=""):z+=se}return(z!==""||L.length)&&(L.push(z),C.push(L)),C.filter(ie=>ie.length>1||ie[0]!=="")};e.isCsv=()=>typeof e.content=="string"&&e.type!=="html"&&/\.(csv|tsv)$/i.test(e.filePath||"")&&e.content.length<=1024*1024,e.csvRows=()=>{if(M.content!==e.content){let O=/\.tsv$/i.test(e.filePath||"")?" ":",";M={content:e.content,rows:V(e.content,O)}}return M.rows},e.csvNumCol=O=>{let U=e.csvRows().slice(1).map(C=>C[O]).filter(C=>C!=null&&String(C).trim()!=="");return U.length>0&&U.every(C=>e.csvNumeric(C))},e.csvNumeric=O=>/^\s*[-+]?(\d[\d,]*)?(\.\d+)?(e[-+]?\d+)?%?\s*$/i.test(O)&&/\d/.test(O),e.redactParts=function(O){let U=[],C=0,L,z=/\bXXXX-(\d+)\b/g;for(O=String(O||"");L=z.exec(O);)L.index>C&&U.push({t:O.slice(C,L.index)}),U.push({n:L[1]}),C=L.index+L[0].length;return C{e.pathCopied=!1},1600))},e.contentCopied=!1,e.copyContent=async function(){if(typeof e.content!="string"||!window.navigator.clipboard?.writeText)return;let O=e.content;if(e.type==="html"&&e.url)if(e.preview)O=e.sourceContent;else try{O=await(await window.fetch(e.url,{credentials:"same-origin"})).text()}catch{return}await window.navigator.clipboard.writeText(O),e.contentCopied=!0,setTimeout(()=>{e.contentCopied=!1},1600)};function _(O){return r[O]?r[O]:O}function G(O){return O=="pdf"?"pdf":O=="html"||O=="htm"?"html-doc":["md","markdown","mdown","mkdn","mdx"].includes(O)?"md":O=="org"?"org":O=="ipynb"?"IPython":d.indexOf(O)>-1?"text":p.indexOf(O)>-1?"image":y.indexOf(O)>-1?"media":u.indexOf(O)>-1?"audio":"code"}e.downloadUrl=()=>e.preview?e.url:e.url+"&download=true",e.prepareFile=function(O){e.showSource=!1,e.allowScripts=!1,e.imageSize="",e.filePath=O,e.paths=O.split("/").filter(Boolean);let U=e.filePath.toLowerCase(),C=U.lastIndexOf(".");C>-1&&(U=U.substring(C+1));let L={javascript:"JavaScript",typescript:"TypeScript",tsx:"TSX",jsx:"JSX",python:"Python",java:"Java",c_cpp:"C/C++",csharp:"C#",golang:"Go",rust:"Rust",ruby:"Ruby",php:"PHP",html:"HTML",css:"CSS",scss:"SCSS",json:"JSON",yaml:"YAML",markdown:"Markdown",sh:"Shell",dockerfile:"Dockerfile",xml:"XML",sql:"SQL",kotlin:"Kotlin",swift:"Swift",scala:"Scala",r:"R",julia:"Julia",latex:"LaTeX",toml:"TOML",csv:"CSV",tsv:"TSV",text:""},z=_(U);e.languageName=L[z]??(z?z.charAt(0).toUpperCase()+z.slice(1):""),e.aceOption={readOnly:!0,useWrapMode:!0,showGutter:!0,theme:"chrome",useSoftTab:!0,tabSize:2,fontSize:window.matchMedia?.("(max-width: 767px)").matches?12:13,keyBinding:"vscode",fullLineSelection:!0,highlightActiveLine:!1,highlightGutterLine:!1,cursor:"hide",showInvisibles:!1,showIndentGuides:!1,showPrintMargin:!1,highlightSelectedWord:!1,enableBehaviours:!0,fadeFoldWidgets:!1,mode:_(U),onLoad:function(K){e.codeEditor=un(K);{let Re=K.session,Fe=Re.getTokens.bind(Re),W=/\bXXXX-\d+\b/g;if(Re.getTokens=function(fe){let de=Fe(fe);if(!de.some(ve=>ve.value.indexOf("XXXX-")!==-1))return de;let ce=[];for(let ve of de){if(ve.value.indexOf("XXXX-")===-1){ce.push(ve);continue}let Me=0;W.lastIndex=0;let P;for(;P=W.exec(ve.value);)P.index>Me&&ce.push({type:ve.type,value:ve.value.slice(Me,P.index)}),ce.push({type:"redacted.n"+P[0].slice(5),value:P[0]}),Me=P.index+P[0].length;Me`.ace_redacted.ace_n${ce+1}::after{content:"${ce+1}"}`).join(""),window.document.head.appendChild(fe)}K.renderer.updateFull(!0)}K.session.setUseWrapMode(e.wrapLines!==!1);let ie=K.container.closest?.(".file-card"),se=()=>{if(!ie)return;let Re=K.renderer,Fe=(Re.layerConfig?.width||0)-(Re.$size?.scrollerWidth||0);ie.classList.toggle("at-right-edge",Fe<=2||Re.getScrollLeft()>=Fe-2)};K.session.on("changeScrollLeft",se),K.renderer.on("afterRender",se),window.matchMedia?.("(max-width: 767px)").matches&&K.setOption("hScrollBarAlwaysVisible",!0);let Y=ace.require("ace/range").Range,he=null;function Se(Re,Fe){he!==null&&(K.session.removeMarker(he),he=null),Re!=null&&(he=K.session.addMarker(new Y(Re,0,Fe,1),"highlighted-line","fullLine"))}function Ue(Re){let Fe=!e.preview&&window.location.hash.match(/^#L(\d+)(?:-L(\d+))?/);if(!Fe){Se(null);return}let W=parseInt(Fe[1])-1,fe=Fe[2]?parseInt(Fe[2])-1:W;Se(W,fe),Re&&i.timeout(()=>{K.scrollToLine(W,!0,!0,function(){})},100)}Ue(!0);let Be=null;K.on("guttermousedown",function(Re){let Fe=Re.getDocumentPosition().row,W=Re.domEvent&&Re.domEvent.shiftKey,fe=Fe,de=Fe;W&&Be!==null?(fe=Math.min(Be,Fe),de=Math.max(Be,Fe)):Be=Fe;let ce=fe===de?`#L${fe+1}`:`#L${fe+1}-L${de+1}`,ve=window.location.pathname+window.location.search+ce;e.preview||window.history.replaceState(null,"",ve),Se(fe,de),Re.stop()});let Je=o(window,"hashchange",()=>Ue(!1));K.setFontSize(e.aceOption.fontSize),K.setOptions({fontFamily:"'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace"}),K.container.style.lineHeight="20px",K.renderer.setPadding(16),K.renderer.setScrollMargin(12,12,0,0),K.renderer.updateFontSize(),K.setReadOnly(e.aceOption.readOnly),K.setKeyboardHandler(e.aceOption.keyBinding),K.setSelectionStyle(e.aceOption.fullLineSelection?"line":"text"),K.setOption("displayIndentGuides",!1),K.setHighlightActiveLine(e.aceOption.highlightActiveLine),e.aceOption.cursor=="hide"&&(K.renderer.$cursorLayer.element.style.display="none"),K.setHighlightGutterLine(e.aceOption.highlightGutterLine),K.setShowInvisibles(e.aceOption.showInvisibles),K.setDisplayIndentGuides(e.aceOption.showIndentGuides),K.renderer.setShowPrintMargin(e.aceOption.showPrintMargin),K.setHighlightSelectedWord(e.aceOption.highlightSelectedWord),K.session.setUseSoftTabs(e.aceOption.useSoftTab),K.session.setTabSize(e.aceOption.tabSize),K.setBehavioursEnabled(e.aceOption.enableBehaviours),K.setFadeFoldWidgets(e.aceOption.fadeFoldWidgets);let He=()=>!e.preview||K.isFocused(),et=o(window,"keydown",Re=>{if((Re.ctrlKey||Re.metaKey)&&!Re.altKey&&Re.key.toLowerCase()==="g"&&document.body.contains(K.container)&&He()){Re.preventDefault(),e.gotoLine();return}if(Re.altKey&&!Re.ctrlKey&&!Re.metaKey&&Re.key.toLowerCase()==="z"&&document.body.contains(K.container)&&He()){Re.preventDefault(),e.toggleWrap();return}(Re.ctrlKey||Re.metaKey)&&!Re.altKey&&Re.key.toLowerCase()==="f"&&document.body.contains(K.container)&&He()&&(Re.preventDefault(),e.findInFile())});return()=>{Je(),et()}}},e.isDarkMode&&(e.aceOption.theme="nord_dark"),e.type=G(U)},e.renderFileContent=function(O,U,C,L){if(e.type=U,e.content=O,e.sourceContent=O,e.content==""&&(e.content=null),e.type=="md"&&(e.content=renderMD(O,C),e.type="html"),e.type=="org"){let K=contentAbs2Relative(O);var z=new Org.Parser().parse(K).convert(Org.ConverterHTML,{headerOffset:1,exportFromLineNumber:!1,suppressSubScriptHandling:!0,suppressAutoLink:!1});e.content=DOMPurify.sanitize(z.toString()),e.type="html"}e.type=="code"&&L=="application/octet-stream"&&(e.type="binary",e.content="binary"),i.timeout(()=>{Prism.highlightAll()},50)};let te=["image","media","audio","pdf","IPython","binary"],X=["file_too_big","file_not_found","file_not_accessible","file_not_supported","folder_not_supported"];e.fileFrame=()=>e.filePath?te.includes(e.type)?e.content!=null:e.type==="error"?X.includes(e.content):e.content==null&&["code","text"].includes(e.type):!1,e.fileKind=()=>{let O=(e.paths||[])[(e.paths||[]).length-1]||"",U=O.lastIndexOf("."),C=U>0?O.slice(U+1).toUpperCase():"";if(e.type==="image")return(C==="JPG"?"JPEG":C)+" image";let L={WEBM:"WebM",OGG:"Ogg",OGV:"Ogg",MOV:"QuickTime",M4V:"M4V",MKV:"Matroska"};return e.type==="media"?(L[C]||C)+" video":e.type==="audio"?C+" audio":e.type==="pdf"?"PDF":e.type==="IPython"?"Jupyter notebook":e.type==="binary"?"Binary file":e.languageName||(C?C+" file":"File")},e.imageSize="",e.onImageLoad=O=>{let U=O.target;U?.naturalWidth&&(e.imageSize=`${U.naturalWidth} \xD7 ${U.naturalHeight}`)},o(document,"click",O=>{e.preview&&(O.target.closest?.(".symbols")||(e.symbolsOpen=!1),O.target.closest?.(".tb-more")||(e.moreOpen=!1),O.target.closest?.(".tb-toc-m")||(e.tocOpen=!1),O.target.isConnected&&!O.target.closest?.(".goto-pop, .btn-goto, .tb-more")&&(e.gotoOpen=!1))})};function ga(e,t,s){let i,o=!1,r="form-draft:"+s,d=()=>Object.fromEntries(t.map(h=>[h,e[h]])),p=()=>JSON.stringify(d()),u=h=>{for(let w of t)Object.prototype.hasOwnProperty.call(h,w)&&(e[w]=h[w]);e.options?.expirationDate&&(e.options.expirationDate=new Date(e.options.expirationDate))},y=()=>{try{window.sessionStorage.removeItem(r)}catch{}},m=(h=!1)=>{if(i!==void 0){if(h&&document.querySelectorAll("input, select, textarea").forEach(w=>{w._field?.binding.state===e&&w._field.timer&&w._field.commit()}),e.unsavedChanges=p()!==i,e.draftSaved=!1,!e.unsavedChanges){y();return}try{window.sessionStorage.setItem(r,JSON.stringify({account:e.user?.username||null,savedAt:Date.now(),values:d()})),e.draftSaved=!0}catch{}}},b=()=>m(!0);return e.on("routeLeave",b),window.addEventListener("beforeunload",b),e.on("dispose",()=>window.removeEventListener("beforeunload",b)),{restore(){i=p();let h;try{h=JSON.parse(window.sessionStorage.getItem(r)||"null")}catch{}let w=h&&h.account===(e.user?.username||null)&&Date.now()-h.savedAt<30*6e4&&h.values;return w&&(u(h.values),e.draftRestored=!0),o||(o=!0,e.watch(()=>d(),()=>m(),!0)),e.unsavedChanges=p()!==i,!!w},checkpoint(){return document.querySelectorAll("input, select, textarea").forEach(h=>{h._field?.binding.state===e&&h._field.timer&&h._field.commit()}),JSON.parse(p())},accept(h){i=JSON.stringify(h),e.draftRestored=!1,m()},discard(){document.querySelectorAll("input, select, textarea").forEach(h=>{h._field?.binding.state!==e||!h._field.timer||(clearTimeout(h._field.timer),h._field.timer=null,h.value=h._field.binding.value??"")}),i!==void 0&&u(JSON.parse(i)),e.draftRestored=!1,m()},clear(){i=p(),e.unsavedChanges=!1,e.draftRestored=!1,e.draftSaved=!1,y()}}}var wa={};rf(wa,{bigNum:()=>dg,date:()=>bg,dateEcho:()=>ya,diff:()=>pg,duration:()=>qn,filter:()=>vg,humanFileSize:()=>lg,humanTime:()=>va,limitTo:()=>gg,money:()=>hg,number:()=>fg,orderBy:()=>yg,plural:()=>wg,shortDate:()=>ba,statusLabel:()=>cg,statusMsg:()=>Yi,title:()=>ug,uppercase:()=>mg});var lg=e=>String(window.humanFileSize(e)).replace(/([KMGTPEZY])iB$/,"$1B").replace(/\.0 ([KMGTPEZY]?B)$/," $1"),dg=(function(){return function(t){let s=Number(t)||0,i=Math.abs(s);return i<1e3?String(s):i<1e4?(s/1e3).toFixed(1).replace(/\.0$/,"")+"k":i<1e6?Math.round(s/1e3)+"k":i<1e7?(s/1e6).toFixed(1).replace(/\.0$/,"")+"M":Math.round(s/1e6)+"M"}})(),va=(function(){return function(t){if(!t)return"never";var s=null;t instanceof Date&&(s=t,t=Math.round((Date.now()-t)/1e3)),(typeof t=="string"||typeof t=="number")&&(s=new Date(t),t=Math.round((Date.now()-s)/1e3));var i=t<0?"from now":"ago";if(Math.abs(t)>7200*24)return(s&&!isNaN(s)?s:new Date(Date.now()-t*1e3)).toLocaleDateString(void 0,{day:"numeric",month:"short",year:"numeric"});t=Math.abs(t);for(var o=[t/60/60/24/365,t/60/60/24/30,t/60/60/24/7,t/60/60/24,t/60/60,t/60,t],r=["year","month","week","day","hour","minute","second"],d=0;d1&&(u+="s"),p>=1)return p+" "+u+" "+i}return"0 seconds "+i}})(),ug=(function(){return function(e){if(!e)return e;e=e.toLowerCase();var t=e.split(" "),s=t.map(function(i){return i.charAt(0).toUpperCase()+i.substring(1,i.length)});return s.join(" ")}})(),cg=(function(){var e={ready:"Ready",error:"Error",expired:"Expired",expiring:"Expiring",removed:"Removed",removing:"Removing",queue:"Queued",download:"Downloading",downloaded:"Downloaded",preparing:"Preparing",anonymizing:"Anonymizing"};return function(t){if(!t)return"";if(e[t])return e[t];var s=String(t).replace(/[_-]+/g," ").toLowerCase();return s.charAt(0).toUpperCase()+s.slice(1)}})(),Yi=(function(){var e={branch_not_found:"Branch not found on GitHub",repo_not_found:"Repository not found on GitHub",repository_not_found:"Repository not found on GitHub",repo_not_accessible:"Repository is not accessible with your token",pr_not_found:"Pull request not found on GitHub",gist_not_found:"Gist not found on GitHub",commit_not_found:"Commit not found on GitHub",repo_too_big:"Repository exceeds the size limit",repository_too_big:"Repository exceeds the size limit",quota_exceeded:"Storage quota exceeded",incomplete_record:"Incomplete record: missing identifier"};return function(t){if(!t)return t;var s=t.match(/^rate_limited:(\d+)$/);if(s){var i=Math.max(0,Math.ceil((parseInt(s[1],10)-Date.now())/1e3));if(i<=0)return"Rate limited \u2014 resuming soon";var o=Math.floor(i/60),r=i%60;return"Rate limited \u2014 retrying in "+(o>0?o+"m "+r+"s":r+"s")}if(e[t])return e[t];var d=/^([a-z0-9]+(?:_[a-z0-9]+)+):\s*\S/.exec(t);if(d){if(e[d[1]])return e[d[1]];var p=d[1].replace(/_/g," ");return p.charAt(0).toUpperCase()+p.slice(1)}if(/^[a-z0-9]+(_[a-z0-9]+)+$/.test(t)){var u=t.replace(/_/g," ");return u.charAt(0).toUpperCase()+u.slice(1)}return t}})(),pg=(function(e){let t=i=>i.replace(/&/g,"&").replace(//g,">");function s(i,o){if(!o)return;let r=o.newPath&&o.newPath!=="/dev/null"?o.newPath:o.oldPath||"",d=o.oldPath==="/dev/null"?"added":o.newPath==="/dev/null"?"deleted":o.oldPath&&o.newPath&&o.oldPath!==o.newPath?"renamed":"modified";if(i.push('
'),i.push('
'+t(r)+''+d+"
"),o.lines.length){i.push('');for(let p of o.lines)i.push('");i.push("
'+(p.oldNo||"")+''+(p.newNo||"")+''+(p.kind==="add"?"+":p.kind==="remove"?"-":"")+''+t(p.text)+"
")}i.push("
")}return function(i){if(!i)return i;let o=[],r=null,d=0,p=0,u=()=>(r||(r={oldPath:"",newPath:"",lines:[]}),r),y=()=>{r&&(r.lines.length||r.oldPath||r.newPath)&&(s(o,r),r=null)},m=i.split(` +`);for(let b=0;be});function fg(e,t){return e==null?"":Number(e).toLocaleString(void 0,t==null?{}:{minimumFractionDigits:t,maximumFractionDigits:t})}function hg(e,t="EUR"){let s=Number(e)||0;return new Intl.NumberFormat(void 0,{style:"currency",currency:t,minimumFractionDigits:s%1?2:0,maximumFractionDigits:2}).format(s)}function mg(e){return String(e??"").toUpperCase()}function gg(e,t,s=0){return(e||[]).slice(s,s+t)}function vg(e,t){return Array.isArray(e)?typeof t=="function"?e.filter(t):e:[]}function yg(e,t){if(!t)return e||[];let s=Array.isArray(t)?t:[t];return[...e||[]].sort((i,o)=>{for(let r of s){let d=r[0]==="-"?-1:1;r=r.replace(/^[+-]/,"");let p=r.split(".").reduce((y,m)=>y?.[m],i),u=r.split(".").reduce((y,m)=>y?.[m],o);if(typeof p=="string"&&(p=p.toLowerCase()),typeof u=="string"&&(u=u.toLowerCase()),p!==u)return(p==null?-1:u==null?1:pi[o])}function wg(e,t){return(t?.[e]??t?.[e===1?"one":"other"]??"").replace(/\{\}/g,e??0)}function ya(e){if(!e)return"";let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(String(e)),s=t?new Date(+t[1],+t[2]-1,+t[3]):new Date(e);if(isNaN(s))return"";let i=s.toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"}),o=new Date;o.setHours(0,0,0,0);let r=Math.round((s-o)/864e5),d;if(r===0)d="today";else if(r===1)d="tomorrow";else if(r===-1)d="yesterday";else{let p=Math.abs(r),u=Math.round(p/30.44),y=p<14?[p,"day"]:p<60?[Math.round(p/7),"week"]:u<18?[u,"month"]:[Math.round(p/365.25),"year"],m=y[0]+" "+y[1]+(y[0]===1?"":"s");d=r>0?"in "+m:m+" ago"}return i+" \xB7 "+d}function qn(e){if(e==null||e===""||isNaN(e))return"";e=Number(e);let t="\u202F";if(e<1e3)return+(e<10?e.toFixed(2):e<100?e.toFixed(1):Math.round(e))+t+"ms";let s=e/1e3;if(s<60)return+(s<10?s.toFixed(2):s.toFixed(1))+t+"s";let i=r=>String(r).padStart(2,"0"),o=Math.round(s);return o<3600?Math.floor(o/60)+"m "+i(o%60)+"s":Math.floor(o/3600)+"h "+i(Math.floor(o%3600/60))+"m"}function ba(e){if(!e)return"";let t=new Date(e);if(isNaN(t))return"";let s={day:"numeric",month:"short"};return t.getFullYear()!==new Date().getFullYear()&&(s.year="numeric"),t.toLocaleDateString(void 0,s)}var Xi=e=>["preparing","download","downloading","downloaded","queue","anonymizing"].includes(e)?"preparing":e==="expiring"?"expired":e==="removing"?"removed":e;function Qi(e,{flags:t,keys:s,count:i,onChange:o=()=>{}}){if(e.segView=()=>{let r=t()||{};if(s.every(p=>!!r[p]))return"all";let d=s.filter(p=>!!r[p]);return d.length===1?d[0]:"custom"},e.setSegView=r=>{let d=t();if(d){for(let p of s)d[p]=r==="all"?!0:p===r;o()}},e.segCount=r=>r==="all"?s.reduce((d,p)=>d+i(p),0):i(r),t()&&e.segView()==="custom")for(let r of s)t()[r]=!0}var Lu=function(e,t,s){let i=Ct(),o=Bt();Gu(i,o),e.Math=Math,e.watch("user.status",()=>{e.user==null&&s.url("/")}),e.user==null&&s.url("/"),e.repositories=[],e.total=-1,e.totalPage=0,e.statusCounts=[],e.totalSize=0,e.selected={},e.allSelected=!1;let r=S=>{if(S.key==="/"&&!["INPUT","TEXTAREA","SELECT"].includes(document.activeElement?.tagName)){S.preventDefault();let N=document.querySelector('.admin-filter-toolbar input[type="search"]');N&&N.focus()}};o(document,"keydown",r),e.on("dispose",()=>document.removeEventListener("keydown",r)),e.clearFilter=S=>{S==="dateRange"?(e.query.dateFrom="",e.query.dateTo=""):e.query[S]="",e.query.page=1},e.chips=[];let d=()=>{let S=[];e.query.owner&&S.push({key:"owner",label:"Owner",value:e.query.owner}),e.query.conference&&S.push({key:"conference",label:"Conference",value:e.query.conference}),e.chips=S};e.showStatusMessage=S=>{let N=S.statusMessage||"(no message)";window.prompt(`Status message for ${S.repoId} (${S.status}):`,N)},e.fetchGithubInfo=S=>{let N=window.open("","_blank");N&&N.document.write("
Loading GitHub info for "+S.repoId+"...
"),t.get("/api/admin/repos/"+S.repoId+"/github").then(v=>{N&&(N.document.open(),N.document.write('
'+JSON.stringify(v.data,null,2).replace(/[<>]/g,E=>E==="<"?"<":">")+"
"),N.document.close())},v=>{let E=v&&v.data?JSON.stringify(v.data,null,2):String(v);N&&(N.document.body.innerHTML='
'+E+"
")})},e.statusCountFor=S=>{let N=(e.statusCounts||[]).find(v=>v._id===S);return N?N.count:0},e.statusStorageFor=S=>{let N=(e.statusCounts||[]).find(v=>v._id===S);return N?N.storage:0},e.isErrorsOnly=()=>e.query&&e.query.error&&!e.query.ready&&!e.query.preparing&&!e.query.expired&&!e.query.removed,e.toggleErrorsOnly=()=>{e.isErrorsOnly()?Object.assign(e.query,{ready:!1,preparing:!0,expired:!1,removed:!1,error:!0}):Object.assign(e.query,{ready:!1,preparing:!1,expired:!1,removed:!1,error:!0}),e.query.page=1},e.toggleSortDirection=()=>{e.query.direction=e.query.direction==="asc"?"desc":"asc"},e.sortBy=S=>{e.query.sort===S?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=S,e.query.direction="desc"),e.query.page=1},e.sortIcon=S=>e.query.sort===S?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"";let p="admin.repos.filterPrefs",u={page:1,limit:25,sort:"lastView",direction:"desc",search:"",owner:"",conference:"",dateFrom:"",dateTo:"",ready:!0,expired:!0,removed:!0,error:!0,preparing:!0},y=loadFilterPrefs(p)||{};e.query=Object.assign({},u,y,{page:1,search:""});let m=s.search();m.owner&&(e.query.owner=m.owner),m.conference&&(e.query.conference=m.conference),m.search&&(e.query.search=m.search);let b="admin.repos.presets";e.presets=JSON.parse(localStorage.getItem(b)||"[]"),e.savePreset=()=>{let S=window.prompt("Preset name:");if(!S)return;let N=Object.assign({},e.query);delete N.page,e.presets=(e.presets||[]).filter(v=>v.name!==S),e.presets.push({name:S,query:N}),localStorage.setItem(b,JSON.stringify(e.presets))},e.applyPreset=S=>{Object.assign(e.query,S.query,{page:1})},e.deletePreset=S=>{e.presets=(e.presets||[]).filter(N=>N.name!==S.name),localStorage.setItem(b,JSON.stringify(e.presets))},e.selectAllOnPage=()=>{e.allSelected=!e.allSelected,e.repositories.forEach(S=>{e.selected[S.repoId]=e.allSelected})},e.selectedCount=()=>Object.values(e.selected||{}).filter(Boolean).length,e.selectedRepos=()=>e.repositories.filter(S=>e.selected[S.repoId]),e.bulkRefresh=()=>{let S=e.selectedRepos();S.length&&confirm(`Force refresh ${S.length} repositories?`)&&S.forEach(N=>e.updateRepository(N))},e.bulkRemoveCache=()=>{let S=e.selectedRepos();S.length&&confirm(`Purge cache for ${S.length} repositories?`)&&S.forEach(N=>e.removeCache(N))},e.clearSelection=()=>{e.selected={},e.allSelected=!1},e.exportCsv=()=>{let S=new URLSearchParams(Object.entries(e.query).filter(([,N])=>N!==""&&N!==!1&&N!=null));S.set("format","csv"),S.set("limit","10000"),window.open("/api/admin/repos?"+S.toString(),"_blank")},e.removeCache=S=>{confirm("Remove cached files for "+S.repoId+"?")&&t.delete("/api/admin/repos/"+S.repoId).then(()=>h(),N=>console.error(N))},e.removeRepository=S=>{confirm("Remove repository "+S.repoId+"?")&&t.delete("/api/repo/"+S.repoId+"/").then(()=>h(),N=>console.error(N))},e.updateRepository=S=>{let N=st({title:`Refreshing ${S.repoId}...`,date:new Date,body:`The repository ${S.repoId} is going to be refreshed.`});e.toasts.push(N),t.post(`/api/repo/${S.repoId}/refresh`).then(v=>{v.data.status=="ready"?N.title=`${S.repoId} is refreshed.`:N.title=`Refreshing of ${S.repoId}.`},v=>{N.title=`Error during the refresh of ${S.repoId}.`,N.body=v.body})},e.filtersOpen=!1,e.fetchError=null;function h(){e.fetchError=null,t.get("/api/admin/repos",{params:e.query}).then(S=>{e.total=S.data.total,e.totalPage=Math.ceil(S.data.total/e.query.limit),e.repositories=S.data.results,e.allSelected=!1},S=>{e.fetchError=S&&S.data&&S.data.error||"Failed to load repositories",console.error(S)})}function w(){let S=Object.assign({},e.query,{page:1,limit:1,ready:!0,expired:!0,removed:!0,error:!0,preparing:!0});t.get("/api/admin/repos",{params:S}).then(N=>{e.statusCounts=N.data.statusCounts||[],e.totalSize=N.data.totalSize||0},()=>{})}e.showAllStatuses=()=>Object.assign(e.query,{ready:!0,expired:!0,removed:!0,error:!0,preparing:!0,page:1}),Qi(e,{flags:()=>e.query,keys:["ready","preparing","error","expired","removed"],count:S=>S==="preparing"?e.statusCountFor("preparing")+e.statusCountFor("download"):S==="expired"?e.statusCountFor("expired")+e.statusCountFor("expiring"):S==="removed"?e.statusCountFor("removed")+e.statusCountFor("removing"):e.statusCountFor(S),onChange:()=>{e.query.page=1}}),h(),w();let R=null;e.watch("query",()=>{i.timeout.cancel(R),R=i.timeout(()=>{h(),w()},500);let{page:S,search:N,...v}=e.query;saveFilterPrefs(p,v),d()},!0),d()},Fu=function(e,t,s){let i=Ct(),o=Bt();e.Math=Math,e.watch("user.status",()=>{e.user==null&&s.url("/")}),e.user==null&&s.url("/"),e.users=[],e.total=-1,e.totalPage=0,e.statusCounts=[],e.selected={},e.allSelected=!1;let r=h=>{if(h.key==="/"&&!["INPUT","TEXTAREA","SELECT"].includes(document.activeElement?.tagName)){h.preventDefault();let w=document.querySelector('.admin-filter-toolbar input[type="search"]');w&&w.focus()}};o(document,"keydown",r),e.on("dispose",()=>document.removeEventListener("keydown",r)),e.clearFilter=h=>{h==="dateRange"?(e.query.dateFrom="",e.query.dateTo=""):e.query[h]="",e.query.page=1},e.chips=[];let d=()=>{let h=[];e.query.role&&h.push({key:"role",label:"Role",value:e.query.role}),e.chips=h};e.statusCountFor=h=>{let w=(e.statusCounts||[]).find(R=>R._id===h);return w?w.count:0},e.toggleSortDirection=()=>{e.query.direction=e.query.direction==="asc"?"desc":"asc"},e.sortBy=h=>{e.query.sort===h?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=h,e.query.direction="desc"),e.query.page=1},e.sortIcon=h=>e.query.sort===h?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"";let p="admin.users.filterPrefs",u={page:1,limit:25,sort:"username",direction:"asc",search:"",status:"",role:"",dateFrom:"",dateTo:""},y=loadFilterPrefs(p)||{};e.query=Object.assign({},u,y,{page:1,search:""}),e.selectAllOnPage=()=>{e.allSelected=!e.allSelected,e.users.forEach(h=>{e.selected[h.username]=e.allSelected})},e.selectedCount=()=>Object.values(e.selected||{}).filter(Boolean).length,e.selectedUsers=()=>e.users.filter(h=>e.selected[h.username]),e.banUser=h=>{confirm(`Ban user ${h.username}?`)&&t.post(`/api/admin/users/${h.username}/ban`).then(m,w=>console.error(w))},e.activateUser=h=>{t.post(`/api/admin/users/${h.username}/activate`).then(m,w=>console.error(w))},e.bulkBan=()=>{let h=e.selectedUsers();h.length&&confirm(`Ban ${h.length} users?`)&&h.forEach(w=>e.banUser(w))},e.exportCsv=()=>{let h=new URLSearchParams(Object.entries(e.query).filter(([,w])=>w!==""&&w!==!1&&w!=null));h.set("format","csv"),h.set("limit","10000"),window.open("/api/admin/users?"+h.toString(),"_blank")},e.fetchError=null;function m(){e.fetchError=null,t.get("/api/admin/users",{params:e.query}).then(h=>{e.total=h.data.total,e.totalPage=Math.ceil(h.data.total/e.query.limit),e.users=h.data.results,e.statusCounts=h.data.statusCounts||[],e.allSelected=!1},h=>{e.fetchError=h&&h.data&&h.data.error||"Failed to load users",console.error(h)})}m();let b=null;e.watch("query",()=>{i.timeout.cancel(b),b=i.timeout(m,500);let{page:h,search:w,...R}=e.query;saveFilterPrefs(p,R),d()},!0),d()},Uu=function(e,t,s,i){let o=Ct();Gu(o,Bt()),e.watch("user.status",()=>{e.user==null&&s.url("/")}),e.user==null&&s.url("/"),e.userInfo,e.repositories=[],e.search="",e.selected={},e.allSelected=!1;let r="admin.user.filterPrefs",d={filters:{status:{ready:!0,expired:!0,removed:!0,error:!0,preparing:!0}},sort:"anonymizeDate",direction:"desc"},p=loadFilterPrefs(r)||{};e.filters={status:Object.assign({},d.filters.status,p.filters&&p.filters.status||{})},e.query={sort:p.sort||d.sort,direction:p.direction||d.direction},e.orderBy=(e.query.direction==="asc"?"":"-")+e.query.sort,e.sortBy=h=>{e.query.sort===h?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=h,e.query.direction="desc"),e.orderBy=(e.query.direction==="asc"?"":"-")+e.query.sort},e.sortIcon=h=>e.query.sort===h?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"",e.watch("query",()=>{saveFilterPrefs(r,{filters:e.filters,sort:e.query.sort,direction:e.query.direction})},!0),e.watch("filters",()=>{saveFilterPrefs(r,{filters:e.filters,sort:e.query.sort,direction:e.query.direction})},!0),e.statusCountFor=h=>(e.repositories||[]).filter(w=>Xi(w.status)===h).length,Qi(e,{flags:()=>e.filters.status,keys:["ready","preparing","error","expired","removed"],count:h=>e.statusCountFor(h)}),e.repoFiler=h=>e.filters.status[Xi(h.status)]==!1?!1:!!(e.search.trim().length==0||h.source.fullName.indexOf(e.search)>-1||h.repoId.indexOf(e.search)>-1||h.statusMessage&&h.statusMessage.indexOf(e.search)>-1||h.conference&&h.conference.indexOf(e.search)>-1),e.selectAllOnPage=()=>{e.allSelected=!e.allSelected,(e.filteredRepositories||e.repositories).forEach(h=>{e.selected[h.repoId]=e.allSelected})},e.selectedCount=()=>Object.values(e.selected||{}).filter(Boolean).length,e.selectedRepos=()=>e.repositories.filter(h=>e.selected[h.repoId]),e.bulkRefresh=()=>{let h=e.selectedRepos();h.length&&confirm(`Force refresh ${h.length} repositories?`)&&h.forEach(w=>e.updateRepository(w))},e.bulkRemoveCache=()=>{let h=e.selectedRepos();h.length&&confirm(`Purge cache for ${h.length} repositories?`)&&h.forEach(w=>e.removeCache(w))},e.clearSelection=()=>{e.selected={},e.allSelected=!1},e.exportCsv=()=>{let h=e.filteredRepositories||e.repositories,R=["repoId","status","statusMessage","pageView","anonymizeDate","source.fullName","conference","size.storage"].join(","),S=h.map(E=>[E.repoId,E.status,E.statusMessage||"",E.pageView||0,E.anonymizeDate||"",E.source&&E.source.fullName||"",E.conference||"",E.size&&E.size.storage||0].map(M=>{let V=String(M??"");return/[",\n\r]/.test(V)?'"'+V.replace(/"/g,'""')+'"':V}).join(",")),N=new Blob([R+` `+S.join(` -`)],{type:"text/csv"}),v=document.createElement("a");v.href=URL.createObjectURL(N),v.download=i.username+"-repositories.csv",v.click()},e.showStatusMessage=h=>{let w=h.statusMessage||"(no message)";window.prompt(`Status message for ${h.repoId} (${h.status}):`,w)},e.fetchGithubInfo=h=>{let w=window.open("","_blank");w&&w.document.write("
Loading GitHub info for "+h.repoId+"...
"),t.get("/api/admin/repos/"+h.repoId+"/github").then(R=>{w&&(w.document.open(),w.document.write('
'+JSON.stringify(R.data,null,2).replace(/[<>]/g,S=>S==="<"?"<":">")+"
"),w.document.close())},R=>{let S=R&&R.data?JSON.stringify(R.data,null,2):String(R);w&&(w.document.body.innerHTML='
'+S+"
")})};function u(h){t.get("/api/admin/users/"+h+"/repos",{}).then(w=>{e.repositories=w.data},w=>{console.error(w)})}function y(h){t.get("/api/admin/users/"+h,{}).then(w=>{e.userInfo=w.data},w=>{console.error(w)})}y(i.username),u(i.username),e.banUser=()=>{confirm(`Ban user ${i.username}?`)&&t.post(`/api/admin/users/${i.username}/ban`).then(()=>y(i.username),h=>console.error(h))},e.activateUser=()=>{t.post(`/api/admin/users/${i.username}/activate`).then(()=>y(i.username),h=>console.error(h))},e.promoteUser=()=>{confirm(`Promote ${i.username} to admin?`)&&t.post(`/api/admin/users/${i.username}/promote`).then(()=>y(i.username),h=>console.error(h))},e.demoteUser=()=>{confirm(`Remove admin privileges from ${i.username}?`)&&t.post(`/api/admin/users/${i.username}/demote`).then(()=>y(i.username),h=>console.error(h))},e.tokens=[],e.tokenForm={name:"",plaintext:null};function m(){t.get("/api/admin/tokens").then(h=>{e.tokens=h.data||[]},h=>{h.status!==401&&h.status!==403&&console.error(h)})}m(),e.createToken=()=>{e.tokenForm.name&&t.post("/api/admin/tokens",{name:e.tokenForm.name}).then(h=>{e.tokenForm.plaintext=h.data.token,e.tokenForm.name="",m()},h=>console.error(h))},e.revokeToken=h=>{confirm(`Revoke token "${h.name}"?`)&&t.delete("/api/admin/tokens/"+h.id).then(()=>m(),w=>console.error(w))},e.removeCache=h=>{confirm("Remove cached files for "+h.repoId+"?")&&t.delete("/api/admin/repos/"+h.repoId).then(()=>u(i.username),w=>console.error(w))},e.removeRepository=h=>{confirm("Remove repository "+h.repoId+"?")&&t.delete("/api/repo/"+h.repoId+"/").then(()=>u(i.username),w=>console.error(w))},e.updateRepository=h=>{let w=st({title:`Refreshing ${h.repoId}...`,date:new Date,body:`The repository ${h.repoId} is going to be refreshed.`});e.toasts.push(w),t.post(`/api/repo/${h.repoId}/refresh`).then(R=>{R.data.status=="ready"?w.title=`${h.repoId} is refreshed.`:w.title=`Refreshing of ${h.repoId}.`},R=>{w.title=`Error during the refresh of ${h.repoId}.`,w.body=R.body})},e.getGitHubRepositories=h=>{t.get(`/api/user/${e.userInfo.username}/all_repositories`,{params:{force:"1"}}).then(w=>{e.userInfo.repositories=w.data})};let b=null;e.watch("query",()=>{o.timeout.cancel(b),b=o.timeout(()=>{u(i.username)},500)},!0)},Bu=function(e,t,s){let i=Ct(),o=Ut();e.Math=Math,e.watch("user.status",()=>{e.user==null&&s.url("/")}),e.user==null&&s.url("/"),e.conferences=[],e.total=-1,e.totalPage=0,e.statusCounts=[];let r=R=>{if(R.key==="/"&&!["INPUT","TEXTAREA","SELECT"].includes(document.activeElement?.tagName)){R.preventDefault();let S=document.querySelector('.admin-filter-toolbar input[type="search"]');S&&S.focus()}};o(document,"keydown",r),e.on("dispose",()=>document.removeEventListener("keydown",r)),e.clearFilter=R=>{R==="dateRange"?(e.query.dateFrom="",e.query.dateTo=""):e.query[R]="",e.query.page=1},e.chips=[];let d=()=>{let R=[];(e.query.dateFrom||e.query.dateTo)&&R.push({key:"dateRange",label:"Date",value:(e.query.dateFrom||"\u2026")+" \u2013 "+(e.query.dateTo||"\u2026")}),e.chips=R};e.statusCountFor=R=>{let S=(e.statusCounts||[]).find(N=>N._id===R);return S?S.count:0},e.toggleSortDirection=()=>{e.query.direction=e.query.direction==="asc"?"desc":"asc"},e.sortBy=R=>{e.query.sort===R?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=R,e.query.direction="desc"),e.query.page=1},e.sortIcon=R=>e.query.sort===R?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"";let p="admin.conferences.filterPrefs",u={page:1,limit:25,sort:"name",direction:"asc",search:"",dateFrom:"",dateTo:"",ready:!0,expired:!0,removed:!0,error:!0,preparing:!0},y=loadFilterPrefs(p)||{};e.query=Object.assign({},u,y,{page:1,search:""});let m=s.search();m.search&&(e.query.search=m.search);let b="admin.conferences.presets";e.presets=JSON.parse(localStorage.getItem(b)||"[]"),e.savePreset=()=>{let R=window.prompt("Preset name:");if(!R)return;let S=Object.assign({},e.query);delete S.page,e.presets=(e.presets||[]).filter(N=>N.name!==R),e.presets.push({name:R,query:S}),localStorage.setItem(b,JSON.stringify(e.presets))},e.applyPreset=R=>{Object.assign(e.query,R.query,{page:1})},e.deletePreset=R=>{e.presets=(e.presets||[]).filter(S=>S.name!==R.name),localStorage.setItem(b,JSON.stringify(e.presets))},e.removeConference=R=>{confirm("Remove conference "+R.conferenceID+"?")&&t.delete("/api/admin/conferences/"+R.conferenceID).then(()=>h(),S=>console.error(S))},e.exportCsv=()=>{let R=new URLSearchParams(Object.entries(e.query).filter(([,S])=>S!==""&&S!==!1&&S!=null));R.set("format","csv"),R.set("limit","10000"),window.open("/api/admin/conferences?"+R.toString(),"_blank")},e.fetchError=null;function h(){e.fetchError=null,t.get("/api/admin/conferences",{params:e.query}).then(R=>{e.total=R.data.total,e.totalPage=Math.ceil(R.data.total/e.query.limit),e.conferences=R.data.results,e.statusCounts=R.data.statusCounts||[]},R=>{e.fetchError=R&&R.data&&R.data.error||"Failed to load conferences",console.error(R)})}Ji(e,{flags:()=>e.query,keys:["ready","preparing","error","expired","removed"],count:R=>e.statusCountFor(R),onChange:()=>{e.query.page=1}}),h();let w=null;e.watch("query",()=>{i.timeout.cancel(w),w=i.timeout(h,500);let{page:R,search:S,...N}=e.query;saveFilterPrefs(p,N),d()},!0),d()},zu=function(e,t,s,i,o){let r=Ct();e.watch("user.status",()=>{e.user==null&&s.url("/")}),e.user==null&&s.url("/"),e.queueList=[],e.jobs=[],e.selectedQueue="download",e.selectedStats=null,e.range="1h",e.allStates=["active","waiting","delayed","failed","completed"],e.stateFilter={active:!0,waiting:!0,delayed:!0,failed:!0,completed:!0},Ji(e,{flags:()=>e.stateFilter,keys:e.allStates,count:N=>(e.jobs||[]).filter(v=>v._state===N).length}),e.query={search:"",autoRefresh:!0},e.filteredJobs=()=>(e.jobs||[]).filter(N=>e.stateFilter[N._state]),e.jobProgressPct=N=>N?._state==="completed"?100:N&&N.progress&&typeof N.progress=="object"&&typeof N.progress.percent=="number"?Math.max(0,Math.min(100,Math.round(N.progress.percent))):typeof N.progress=="number"?Math.max(0,Math.min(100,Math.round(N.progress))):null;let d={get_files:"Fetching files",download:"Downloading",downloading:"Downloading",anonymize:"Anonymizing",anonymizing:"Anonymizing",ready:"Ready",removing:"Removing",preparing:"Preparing"};e.jobDetail=N=>{if(N?._state==="failed")return Yi(N.failedReason||"")||"Failed";let v=N?.progress&&typeof N.progress=="object"?N.progress.status:null;return N?._state==="active"&&v?d[v]||Yi(v):"\u2014"},e.jobDuration=N=>{if(!N.processedOn)return"\u2014";let v=N.finishedOn||Date.now();return qn(v-N.processedOn)},e.metricsPoints=[],e.selectQueue=N=>{e.selectedQueue=N,p(),u()},e.setRange=N=>{e.range=N,u()};function p(){let N={queue:e.selectedQueue,search:e.query.search};t.get("/api/admin/queues",{params:N}).then(v=>{e.queueList=v.data.queues||[],e.jobs=v.data.jobs||[],e.selectedStats=e.queueList.find(E=>E.key===e.selectedQueue)||e.queueList[0]||null},v=>console.error(v))}function u(){t.get("/api/admin/queues/metrics",{params:{queue:e.selectedQueue,range:e.range}}).then(N=>{e.metricsPoints=N.data.points||[],o(w,0)},N=>console.error(N))}p(),u();let y=i(()=>{e.query.autoRefresh&&(p(),u())},15e3);e.on("dispose",()=>i.cancel(y)),e.refreshNow=function(){p(),u()};function m(N){let v=N&&N.data&&(N.data.message||N.data.error)||"Request failed";e.actionError=v,o(()=>{e.actionError=null},5e3),console.error(N)}e.actionError=null,e.removeJob=N=>{t.delete(`/api/admin/queue/${e.selectedQueue}/${N.id}`).then(p,m)},e.retryJob=N=>{t.post(`/api/admin/queue/${e.selectedQueue}/${N.id}`).then(p,m)},e.retryFailed=()=>{confirm(`Retry all failed jobs in ${e.selectedQueue}?`)&&t.post(`/api/admin/queue/${e.selectedQueue}/retry-failed`).then(p,N=>console.error(N))},e.drainSelected=()=>{confirm(`Drain the ${e.selectedQueue} queue?`)&&t.post(`/api/admin/queue/${e.selectedQueue}/drain`).then(p,N=>console.error(N))},e.togglePause=()=>{let N=e.selectedStats&&e.selectedStats.paused?"resume":"pause";t.post(`/api/admin/queue/${e.selectedQueue}/${N}`).then(p,v=>console.error(v))},e.emptyQueue=()=>{confirm(`Empty the ${e.selectedQueue} queue? This removes ALL jobs.`)&&t.post(`/api/admin/queue/${e.selectedQueue}/empty`).then(p,N=>console.error(N))},e.pauseAll=()=>{confirm("Pause all queues?")&&t.post("/api/admin/queues/pause-all").then(p,N=>console.error(N))};let b=null;e.watch("query.search",()=>{r.timeout.cancel(b),b=r.timeout(p,350)}),e.expanded={},e.toggleJob=N=>{e.expanded[N.id]=!e.expanded[N.id]},e.humanTime=N=>{if(!N)return"";let v=new Date(N);return v.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})+" "+v.toLocaleDateString([],{month:"short",day:"numeric"})},e.delayCountdown=N=>{if(!N)return"";var v=Math.max(0,Math.ceil((N-Date.now())/1e3));if(v<=0)return"resuming soon";var E=Math.floor(v/60),M=v%60;return"in "+(E>0?E+"m "+M+"s":M+"s")};function h(N){if(N<=0)return{ticks:[0],niceMax:1};let v=Math.pow(10,Math.floor(Math.log10(N))),E=v;N/E<2?E=v/2:N/E>5&&(E=v*2);let M=Math.ceil(N/E)*E,V=[];for(let _=0;_<=M;_+=E)V.push(_);return{ticks:V,niceMax:M}}function w(){var N=document.getElementById("q-throughput-chart");if(!N)return;var v=N.getContext("2d"),E=window.devicePixelRatio||1,M=N.parentElement.getBoundingClientRect(),V=44,_=44,G=22,te=Math.max(200,Math.round(M.width)),X=Math.max(180,Math.min(420,Math.round(M.height)||180)),O=te-V-_,U=X-G;N.width=te*E,N.height=X*E,N.style.width=te+"px",N.style.height=X+"px",v.setTransform(E,0,0,E,0,0);var C=document.body.classList.contains("dark-mode"),L="#8A857C",z=C?"rgba(255,255,255,0.06)":"rgba(0,0,0,0.06)",K=C?"#6FBF8A":"#2F7D4F",ie=C?"rgba(111,191,138,0.12)":"rgba(47,125,79,0.08)",se=C?"#F08A82":"#B42318",Y=C?"rgba(240,138,130,0.08)":"rgba(180,35,24,0.06)",he=getComputedStyle(document.body).getPropertyValue("--q-time-series").trim()||(C?"#E0A94A":"#946512"),Se=e.metricsPoints||[];if(Se.length===0){v.fillStyle=L,v.font="13px Inter, system-ui, sans-serif",v.textAlign="center",v.fillText("No metrics data yet",te/2,X/2),R=null;return}var Ue=Se.map(function(we){return we.completed}),Be=Se.map(function(we){return we.failed}),Qe=Se.map(function(we){return we.avgMs});if(!Ue.some(Boolean)&&!Be.some(Boolean)){v.strokeStyle=C?"rgba(255,255,255,0.14)":"rgba(0,0,0,0.12)",v.beginPath(),v.moveTo(0,X-18.5),v.lineTo(te,X-18.5),v.stroke(),v.fillStyle=C?"#CFC8BD":"#4F4A42",v.font="500 14px Inter, system-ui, sans-serif",v.textAlign="center",v.fillText("No jobs processed in this window",te/2,X/2-6),v.fillStyle=L,v.font="12.5px Inter, system-ui, sans-serif",v.fillText("Completed and failed jobs will chart here",te/2,X/2+16),R=null;return}var He=Se.length,et=O/(He-1||1),Re=Math.max(1,Math.max.apply(null,Ue),Math.max.apply(null,Be)),Fe=h(Re),W=Math.max.apply(null,Qe),fe=W>0?h(W):{ticks:[0],niceMax:1},de=function(we){return U-we/Fe.niceMax*(U-10)},ce=function(we){return U-we/fe.niceMax*(U-10)},me=function(we){return V+we*et};v.textAlign="right",v.textBaseline="middle",v.font="11px Inter, system-ui, sans-serif",Fe.ticks.forEach(function(we){var be=de(we);v.strokeStyle=z,v.lineWidth=1,v.beginPath(),v.moveTo(V,be),v.lineTo(te-_,be),v.stroke(),v.fillStyle=L,we!==0&&v.fillText(we>=1e3?(we/1e3).toFixed(1)+"k":String(we),V-6,be)}),W>0&&(v.textAlign="left",fe.ticks.forEach(function(we){var be=ce(we);v.fillStyle=he,we!==0&&v.fillText(qn(we),te-_+6,be)}));var Me=Se[He-1].ts,A=Se[0].ts,T=Math.max(0,(Me-A)/6e4),F=[1,2,5,10,15,30,60,120,180,360,720,1440,2880,10080],J=F.find(function(we){return T/we<=4})||F[F.length-1],H=function(we){return we<60?we+"m":we<1440?we/60+"h":we/1440+"d"},Z=function(we){for(var be=0,ot=1;ot0&&Math.abs(Se[ke].ts-(Me-ee*6e4))>le+1)){var pe=me(ke),Ce=ee===0?"now":H(ee)+" ago",Pe=v.measureText(Ce).width,Ve=oe===0?"right":ke===0?"left":"center",Ge=Ve==="right"?pe:Ve==="left"?pe+Pe:pe+Pe/2;Ge>ne-12||(v.textAlign=Ve,v.fillText(Ce,pe,U+6),ne=Ve==="right"?pe-Pe:Ve==="left"?pe:pe-Pe/2)}}function ze(we,be,ot,rt){we.length!==0&&(v.beginPath(),v.moveTo(me(0),U),we.forEach(function(yt,at){var lt=me(at),ft=be(yt);if(at===0)v.lineTo(lt,ft);else{var Vt=(me(at-1)+lt)/2;v.bezierCurveTo(Vt,be(we[at-1]),Vt,ft,lt,ft)}}),v.lineTo(me(we.length-1),U),v.closePath(),v.fillStyle=ot,v.fill(),v.beginPath(),we.forEach(function(yt,at){var lt=me(at),ft=be(yt);if(at===0)v.moveTo(lt,ft);else{var Vt=(me(at-1)+lt)/2;v.bezierCurveTo(Vt,be(we[at-1]),Vt,ft,lt,ft)}}),v.strokeStyle=rt,v.lineWidth=1.5,v.stroke())}ze(Ue,de,ie,K),ze(Be,de,Y,se),W>0&&(v.beginPath(),Qe.forEach(function(we,be){var ot=me(be),rt=ce(we);if(be===0)v.moveTo(ot,rt);else{var yt=(me(be-1)+ot)/2;v.bezierCurveTo(yt,ce(Qe[be-1]),yt,rt,ot,rt)}}),v.strokeStyle=he,v.lineWidth=1,v.setLineDash([4,3]),v.stroke(),v.setLineDash([])),R={pts:Se,maxLen:He,marginLeft:V,step:et,totalW:te,toX:me}}var R=null;function S(){var N=document.getElementById("q-throughput-chart");if(!(!N||N._tipBound)){N._tipBound=!0;var v=document.getElementById("q-chart-tooltip"),E=document.getElementById("q-chart-crosshair");N.addEventListener("mousemove",function(M){if(!(!R||!v||!E)){var V=R,_=N.getBoundingClientRect(),G=M.clientX-_.left,te=Math.round((G-V.marginLeft)/V.step);if(te<0||te>=V.maxLen){v.style.display="none",E.style.display="none";return}var X=V.pts[te],O=V.pts[V.pts.length-1].ts,U=Math.round((O-X.ts)/6e4),C;if(U<=0)C="now";else if(U<60)C=U+"m ago";else if(U<1440){var L=Math.floor(U/60),z=U%60;C=L+"h"+(z?" "+z+"m":"")+" ago"}else C=Math.round(U/1440)+"d ago";var K='
'+C+'
● completed: '+X.completed+'/min
● failed: '+X.failed+"/min
";if(X.avgMs>0){var ie=qn(X.avgMs);K+='
● avg time: '+ie+"
"}v.innerHTML=K;var se=V.toX(te),Y=v.offsetWidth,he=se+10;he+Y>V.totalW&&(he=se-Y-10),v.style.display="block",v.style.left=he+"px",v.style.top="8px",E.style.display="block",E.style.left=se+"px"}}),N.addEventListener("mouseleave",function(){v&&(v.style.display="none"),E&&(E.style.display="none")})}}e.watch("metricsPoints",function(){o(S,50)})},Hu=function(e,t,s,i){let o=Ct();e.watch("user.status",()=>{e.user==null&&s.url("/")}),e.user==null&&s.url("/"),e.entries=[],e.visible=[],e.available=!0,e.cap=1e3,e.total=0,e.pageSize=250,e.expanded={},e.detailTab={},e.copyHint="",e.parsedFilterCount=0,e.stats={last24h:0,prev24h:0,delta:0,severity:{error:0,warn:0,info:0},unique:{error:0,warn:0,info:0},buckets:[],dropped:0},e.query={search:"",bucket:"",sort:"recent",group:"code",autoRefresh:!0},e.relTime=v=>{if(!v)return"";let E=new Date(v).getTime();if(isNaN(E))return v;let M=Math.max(0,Date.now()-E),V=Math.floor(M/1e3);if(V<5)return"just now";if(V<60)return`${V}s ago`;let _=Math.floor(V/60);if(_<60)return`${_}m ago`;let G=Math.floor(_/60);if(G<24)return`${G}h ago`;let te=Math.floor(G/24);return te<7?`${te}d ago`:new Date(v).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})},e.absTime=v=>{if(!v)return"";let E=new Date(v);return isNaN(E.getTime())?v:E.toLocaleString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})},e.absTimeShort=v=>{if(!v)return"";let E=new Date(v);return isNaN(E.getTime())?v:E.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})};let r=/^[a-zA-Z][a-zA-Z0-9]*(?:_[a-zA-Z0-9]+)+$/;function d(v,E){let M=v&&(v.httpStatus||v.status)||null;if(typeof M=="number"){if(M>=500)return"error";if(M===401||M===403||M===404)return"info";if(M>=400)return"warn"}return E==="error"?"error":E==="warn"?"warn":"info"}function p(v){let E=(v.raw||[]).find(G=>G&&typeof G=="object"&&!Array.isArray(G));if(E){E.message&&r.test(E.message)?(v.displayMessage=E.message,v.displayContext=v.message):E.code&&r.test(String(E.code))?(v.displayMessage=String(E.code),v.displayContext=v.message):E.name&&E.name!=="AnonymousError"&&E.name!=="Error"?(v.displayMessage=E.name,v.displayContext=E.message||v.message):v.displayMessage=v.message,v._status=E.httpStatus||E.status||null,v._url=E.url||null,v._method=E.method||null,v._repoId=E.repoId||E.detail||null,v._detail=E.detail&&E.detail!==v._repoId?E.detail:null;let G=typeof E.stack=="string"?E.stack:null;for(var M=[E.cause,E.err].filter(Boolean),V=0;!G&&V{O==null||O===""||M.push([X,O])};V("name",E&&E.name),V("code",v.displayMessage||E&&E.message),v._bucket&&V("kind",v._bucket),V("httpStatus",E&&E.httpStatus),E&&E.status&&!E.httpStatus&&V("status",E.status),V("module",v.module);let _=E&&E.detail;if(typeof _=="string"){let X=_.trim();if(X[0]==="{"||X[0]==="[")try{_=JSON.parse(_)}catch{}}if(V("detail",_),V("repoId",E&&E.repoId),V("filePath",E&&E.filePath),V("upstreamStatus",E&&E.upstreamStatus),V("upstreamBody",E&&E.upstreamBody),V("url",v._url),V("err",E&&E.err),V("cause",E&&!E.err&&E.cause),V("ts",v.ts),!M.length)return JSON.stringify(v,null,2);let G=M.reduce((X,O)=>Math.max(X,O[0].length),0),te=["{"];return M.forEach(([X,O],U)=>{let L=` ${`"${X}":`.padEnd(G+3," ")} `,z=U{let w=h.statusMessage||"(no message)";window.prompt(`Status message for ${h.repoId} (${h.status}):`,w)},e.fetchGithubInfo=h=>{let w=window.open("","_blank");w&&w.document.write("
Loading GitHub info for "+h.repoId+"...
"),t.get("/api/admin/repos/"+h.repoId+"/github").then(R=>{w&&(w.document.open(),w.document.write('
'+JSON.stringify(R.data,null,2).replace(/[<>]/g,S=>S==="<"?"<":">")+"
"),w.document.close())},R=>{let S=R&&R.data?JSON.stringify(R.data,null,2):String(R);w&&(w.document.body.innerHTML='
'+S+"
")})};function u(h){t.get("/api/admin/users/"+h+"/repos",{}).then(w=>{e.repositories=w.data},w=>{console.error(w)})}function y(h){t.get("/api/admin/users/"+h,{}).then(w=>{e.userInfo=w.data},w=>{console.error(w)})}y(i.username),u(i.username),e.banUser=()=>{confirm(`Ban user ${i.username}?`)&&t.post(`/api/admin/users/${i.username}/ban`).then(()=>y(i.username),h=>console.error(h))},e.activateUser=()=>{t.post(`/api/admin/users/${i.username}/activate`).then(()=>y(i.username),h=>console.error(h))},e.promoteUser=()=>{confirm(`Promote ${i.username} to admin?`)&&t.post(`/api/admin/users/${i.username}/promote`).then(()=>y(i.username),h=>console.error(h))},e.demoteUser=()=>{confirm(`Remove admin privileges from ${i.username}?`)&&t.post(`/api/admin/users/${i.username}/demote`).then(()=>y(i.username),h=>console.error(h))},e.tokens=[],e.tokenForm={name:"",plaintext:null};function m(){t.get("/api/admin/tokens").then(h=>{e.tokens=h.data||[]},h=>{h.status!==401&&h.status!==403&&console.error(h)})}m(),e.createToken=()=>{e.tokenForm.name&&t.post("/api/admin/tokens",{name:e.tokenForm.name}).then(h=>{e.tokenForm.plaintext=h.data.token,e.tokenForm.name="",m()},h=>console.error(h))},e.revokeToken=h=>{confirm(`Revoke token "${h.name}"?`)&&t.delete("/api/admin/tokens/"+h.id).then(()=>m(),w=>console.error(w))},e.removeCache=h=>{confirm("Remove cached files for "+h.repoId+"?")&&t.delete("/api/admin/repos/"+h.repoId).then(()=>u(i.username),w=>console.error(w))},e.removeRepository=h=>{confirm("Remove repository "+h.repoId+"?")&&t.delete("/api/repo/"+h.repoId+"/").then(()=>u(i.username),w=>console.error(w))},e.updateRepository=h=>{let w=st({title:`Refreshing ${h.repoId}...`,date:new Date,body:`The repository ${h.repoId} is going to be refreshed.`});e.toasts.push(w),t.post(`/api/repo/${h.repoId}/refresh`).then(R=>{R.data.status=="ready"?w.title=`${h.repoId} is refreshed.`:w.title=`Refreshing of ${h.repoId}.`},R=>{w.title=`Error during the refresh of ${h.repoId}.`,w.body=R.body})},e.getGitHubRepositories=h=>{t.get(`/api/user/${e.userInfo.username}/all_repositories`,{params:{force:"1"}}).then(w=>{e.userInfo.repositories=w.data})};let b=null;e.watch("query",()=>{o.timeout.cancel(b),b=o.timeout(()=>{u(i.username)},500)},!0)},Bu=function(e,t,s){let i=Ct(),o=Bt();e.Math=Math,e.watch("user.status",()=>{e.user==null&&s.url("/")}),e.user==null&&s.url("/"),e.conferences=[],e.total=-1,e.totalPage=0,e.statusCounts=[];let r=R=>{if(R.key==="/"&&!["INPUT","TEXTAREA","SELECT"].includes(document.activeElement?.tagName)){R.preventDefault();let S=document.querySelector('.admin-filter-toolbar input[type="search"]');S&&S.focus()}};o(document,"keydown",r),e.on("dispose",()=>document.removeEventListener("keydown",r)),e.clearFilter=R=>{R==="dateRange"?(e.query.dateFrom="",e.query.dateTo=""):e.query[R]="",e.query.page=1},e.chips=[];let d=()=>{let R=[];(e.query.dateFrom||e.query.dateTo)&&R.push({key:"dateRange",label:"Date",value:(e.query.dateFrom||"\u2026")+" \u2013 "+(e.query.dateTo||"\u2026")}),e.chips=R};e.statusCountFor=R=>{let S=(e.statusCounts||[]).find(N=>N._id===R);return S?S.count:0},e.toggleSortDirection=()=>{e.query.direction=e.query.direction==="asc"?"desc":"asc"},e.sortBy=R=>{e.query.sort===R?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=R,e.query.direction="desc"),e.query.page=1},e.sortIcon=R=>e.query.sort===R?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"";let p="admin.conferences.filterPrefs",u={page:1,limit:25,sort:"name",direction:"asc",search:"",dateFrom:"",dateTo:"",ready:!0,expired:!0,removed:!0,error:!0,preparing:!0},y=loadFilterPrefs(p)||{};e.query=Object.assign({},u,y,{page:1,search:""});let m=s.search();m.search&&(e.query.search=m.search);let b="admin.conferences.presets";e.presets=JSON.parse(localStorage.getItem(b)||"[]"),e.savePreset=()=>{let R=window.prompt("Preset name:");if(!R)return;let S=Object.assign({},e.query);delete S.page,e.presets=(e.presets||[]).filter(N=>N.name!==R),e.presets.push({name:R,query:S}),localStorage.setItem(b,JSON.stringify(e.presets))},e.applyPreset=R=>{Object.assign(e.query,R.query,{page:1})},e.deletePreset=R=>{e.presets=(e.presets||[]).filter(S=>S.name!==R.name),localStorage.setItem(b,JSON.stringify(e.presets))},e.removeConference=R=>{confirm("Remove conference "+R.conferenceID+"?")&&t.delete("/api/admin/conferences/"+R.conferenceID).then(()=>h(),S=>console.error(S))},e.exportCsv=()=>{let R=new URLSearchParams(Object.entries(e.query).filter(([,S])=>S!==""&&S!==!1&&S!=null));R.set("format","csv"),R.set("limit","10000"),window.open("/api/admin/conferences?"+R.toString(),"_blank")},e.fetchError=null;function h(){e.fetchError=null,t.get("/api/admin/conferences",{params:e.query}).then(R=>{e.total=R.data.total,e.totalPage=Math.ceil(R.data.total/e.query.limit),e.conferences=R.data.results,e.statusCounts=R.data.statusCounts||[]},R=>{e.fetchError=R&&R.data&&R.data.error||"Failed to load conferences",console.error(R)})}Qi(e,{flags:()=>e.query,keys:["ready","preparing","error","expired","removed"],count:R=>e.statusCountFor(R),onChange:()=>{e.query.page=1}}),h();let w=null;e.watch("query",()=>{i.timeout.cancel(w),w=i.timeout(h,500);let{page:R,search:S,...N}=e.query;saveFilterPrefs(p,N),d()},!0),d()},zu=function(e,t,s,i,o){let r=Ct();e.watch("user.status",()=>{e.user==null&&s.url("/")}),e.user==null&&s.url("/"),e.queueList=[],e.jobs=[],e.selectedQueue="download",e.selectedStats=null,e.range="1h",e.allStates=["active","waiting","delayed","failed","completed"],e.stateFilter={active:!0,waiting:!0,delayed:!0,failed:!0,completed:!0},Qi(e,{flags:()=>e.stateFilter,keys:e.allStates,count:N=>(e.jobs||[]).filter(v=>v._state===N).length}),e.query={search:"",autoRefresh:!0},e.filteredJobs=()=>(e.jobs||[]).filter(N=>e.stateFilter[N._state]),e.jobProgressPct=N=>N?._state==="completed"?100:N&&N.progress&&typeof N.progress=="object"&&typeof N.progress.percent=="number"?Math.max(0,Math.min(100,Math.round(N.progress.percent))):typeof N.progress=="number"?Math.max(0,Math.min(100,Math.round(N.progress))):null;let d={get_files:"Fetching files",download:"Downloading",downloading:"Downloading",anonymize:"Anonymizing",anonymizing:"Anonymizing",ready:"Ready",removing:"Removing",preparing:"Preparing"};e.jobDetail=N=>{if(N?._state==="failed")return Yi(N.failedReason||"")||"Failed";let v=N?.progress&&typeof N.progress=="object"?N.progress.status:null;return N?._state==="active"&&v?d[v]||Yi(v):"\u2014"},e.jobDuration=N=>{if(!N.processedOn)return"\u2014";let v=N.finishedOn||Date.now();return qn(v-N.processedOn)},e.metricsPoints=[],e.selectQueue=N=>{e.selectedQueue=N,p(),u()},e.setRange=N=>{e.range=N,u()};function p(){let N={queue:e.selectedQueue,search:e.query.search};t.get("/api/admin/queues",{params:N}).then(v=>{e.queueList=v.data.queues||[],e.jobs=v.data.jobs||[],e.selectedStats=e.queueList.find(E=>E.key===e.selectedQueue)||e.queueList[0]||null},v=>console.error(v))}function u(){t.get("/api/admin/queues/metrics",{params:{queue:e.selectedQueue,range:e.range}}).then(N=>{e.metricsPoints=N.data.points||[],o(w,0)},N=>console.error(N))}p(),u();let y=i(()=>{e.query.autoRefresh&&(p(),u())},15e3);e.on("dispose",()=>i.cancel(y)),e.refreshNow=function(){p(),u()};function m(N){let v=N&&N.data&&(N.data.message||N.data.error)||"Request failed";e.actionError=v,o(()=>{e.actionError=null},5e3),console.error(N)}e.actionError=null,e.removeJob=N=>{t.delete(`/api/admin/queue/${e.selectedQueue}/${N.id}`).then(p,m)},e.retryJob=N=>{t.post(`/api/admin/queue/${e.selectedQueue}/${N.id}`).then(p,m)},e.retryFailed=()=>{confirm(`Retry all failed jobs in ${e.selectedQueue}?`)&&t.post(`/api/admin/queue/${e.selectedQueue}/retry-failed`).then(p,N=>console.error(N))},e.drainSelected=()=>{confirm(`Drain the ${e.selectedQueue} queue?`)&&t.post(`/api/admin/queue/${e.selectedQueue}/drain`).then(p,N=>console.error(N))},e.togglePause=()=>{let N=e.selectedStats&&e.selectedStats.paused?"resume":"pause";t.post(`/api/admin/queue/${e.selectedQueue}/${N}`).then(p,v=>console.error(v))},e.emptyQueue=()=>{confirm(`Empty the ${e.selectedQueue} queue? This removes ALL jobs.`)&&t.post(`/api/admin/queue/${e.selectedQueue}/empty`).then(p,N=>console.error(N))},e.pauseAll=()=>{confirm("Pause all queues?")&&t.post("/api/admin/queues/pause-all").then(p,N=>console.error(N))};let b=null;e.watch("query.search",()=>{r.timeout.cancel(b),b=r.timeout(p,350)}),e.expanded={},e.toggleJob=N=>{e.expanded[N.id]=!e.expanded[N.id]},e.humanTime=N=>{if(!N)return"";let v=new Date(N);return v.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})+" "+v.toLocaleDateString([],{month:"short",day:"numeric"})},e.delayCountdown=N=>{if(!N)return"";var v=Math.max(0,Math.ceil((N-Date.now())/1e3));if(v<=0)return"resuming soon";var E=Math.floor(v/60),M=v%60;return"in "+(E>0?E+"m "+M+"s":M+"s")};function h(N){if(N<=0)return{ticks:[0],niceMax:1};let v=Math.pow(10,Math.floor(Math.log10(N))),E=v;N/E<2?E=v/2:N/E>5&&(E=v*2);let M=Math.ceil(N/E)*E,V=[];for(let _=0;_<=M;_+=E)V.push(_);return{ticks:V,niceMax:M}}function w(){var N=document.getElementById("q-throughput-chart");if(!N)return;var v=N.getContext("2d"),E=window.devicePixelRatio||1,M=N.parentElement.getBoundingClientRect(),V=44,_=44,G=22,te=Math.max(200,Math.round(M.width)),X=Math.max(180,Math.min(420,Math.round(M.height)||180)),O=te-V-_,U=X-G;N.width=te*E,N.height=X*E,N.style.width=te+"px",N.style.height=X+"px",v.setTransform(E,0,0,E,0,0);var C=document.body.classList.contains("dark-mode"),L="#8A857C",z=C?"rgba(255,255,255,0.06)":"rgba(0,0,0,0.06)",K=C?"#6FBF8A":"#2F7D4F",ie=C?"rgba(111,191,138,0.12)":"rgba(47,125,79,0.08)",se=C?"#F08A82":"#B42318",Y=C?"rgba(240,138,130,0.08)":"rgba(180,35,24,0.06)",he=getComputedStyle(document.body).getPropertyValue("--q-time-series").trim()||(C?"#E0A94A":"#946512"),Se=e.metricsPoints||[];if(Se.length===0){v.fillStyle=L,v.font="13px Inter, system-ui, sans-serif",v.textAlign="center",v.fillText("No metrics data yet",te/2,X/2),R=null;return}var Ue=Se.map(function(we){return we.completed}),Be=Se.map(function(we){return we.failed}),Je=Se.map(function(we){return we.avgMs});if(!Ue.some(Boolean)&&!Be.some(Boolean)){v.strokeStyle=C?"rgba(255,255,255,0.14)":"rgba(0,0,0,0.12)",v.beginPath(),v.moveTo(0,X-18.5),v.lineTo(te,X-18.5),v.stroke(),v.fillStyle=C?"#CFC8BD":"#4F4A42",v.font="500 14px Inter, system-ui, sans-serif",v.textAlign="center",v.fillText("No jobs processed in this window",te/2,X/2-6),v.fillStyle=L,v.font="12.5px Inter, system-ui, sans-serif",v.fillText("Completed and failed jobs will chart here",te/2,X/2+16),R=null;return}var He=Se.length,et=O/(He-1||1),Re=Math.max(1,Math.max.apply(null,Ue),Math.max.apply(null,Be)),Fe=h(Re),W=Math.max.apply(null,Je),fe=W>0?h(W):{ticks:[0],niceMax:1},de=function(we){return U-we/Fe.niceMax*(U-10)},ce=function(we){return U-we/fe.niceMax*(U-10)},ve=function(we){return V+we*et};v.textAlign="right",v.textBaseline="middle",v.font="11px Inter, system-ui, sans-serif",Fe.ticks.forEach(function(we){var be=de(we);v.strokeStyle=z,v.lineWidth=1,v.beginPath(),v.moveTo(V,be),v.lineTo(te-_,be),v.stroke(),v.fillStyle=L,we!==0&&v.fillText(we>=1e3?(we/1e3).toFixed(1)+"k":String(we),V-6,be)}),W>0&&(v.textAlign="left",fe.ticks.forEach(function(we){var be=ce(we);v.fillStyle=he,we!==0&&v.fillText(qn(we),te-_+6,be)}));var Me=Se[He-1].ts,P=Se[0].ts,T=Math.max(0,(Me-P)/6e4),F=[1,2,5,10,15,30,60,120,180,360,720,1440,2880,10080],Q=F.find(function(we){return T/we<=4})||F[F.length-1],H=function(we){return we<60?we+"m":we<1440?we/60+"h":we/1440+"d"},x=function(we){for(var be=0,ot=1;ot0&&Math.abs(Se[ke].ts-(Me-ee*6e4))>le+1)){var pe=ve(ke),Ee=ee===0?"now":H(ee)+" ago",Ae=v.measureText(Ee).width,Ve=oe===0?"right":ke===0?"left":"center",Ge=Ve==="right"?pe:Ve==="left"?pe+Ae:pe+Ae/2;Ge>ne-12||(v.textAlign=Ve,v.fillText(Ee,pe,U+6),ne=Ve==="right"?pe-Ae:Ve==="left"?pe:pe-Ae/2)}}function ze(we,be,ot,rt){we.length!==0&&(v.beginPath(),v.moveTo(ve(0),U),we.forEach(function(yt,at){var lt=ve(at),ft=be(yt);if(at===0)v.lineTo(lt,ft);else{var Vt=(ve(at-1)+lt)/2;v.bezierCurveTo(Vt,be(we[at-1]),Vt,ft,lt,ft)}}),v.lineTo(ve(we.length-1),U),v.closePath(),v.fillStyle=ot,v.fill(),v.beginPath(),we.forEach(function(yt,at){var lt=ve(at),ft=be(yt);if(at===0)v.moveTo(lt,ft);else{var Vt=(ve(at-1)+lt)/2;v.bezierCurveTo(Vt,be(we[at-1]),Vt,ft,lt,ft)}}),v.strokeStyle=rt,v.lineWidth=1.5,v.stroke())}ze(Ue,de,ie,K),ze(Be,de,Y,se),W>0&&(v.beginPath(),Je.forEach(function(we,be){var ot=ve(be),rt=ce(we);if(be===0)v.moveTo(ot,rt);else{var yt=(ve(be-1)+ot)/2;v.bezierCurveTo(yt,ce(Je[be-1]),yt,rt,ot,rt)}}),v.strokeStyle=he,v.lineWidth=1,v.setLineDash([4,3]),v.stroke(),v.setLineDash([])),R={pts:Se,maxLen:He,marginLeft:V,step:et,totalW:te,toX:ve}}var R=null;function S(){var N=document.getElementById("q-throughput-chart");if(!(!N||N._tipBound)){N._tipBound=!0;var v=document.getElementById("q-chart-tooltip"),E=document.getElementById("q-chart-crosshair");N.addEventListener("mousemove",function(M){if(!(!R||!v||!E)){var V=R,_=N.getBoundingClientRect(),G=M.clientX-_.left,te=Math.round((G-V.marginLeft)/V.step);if(te<0||te>=V.maxLen){v.style.display="none",E.style.display="none";return}var X=V.pts[te],O=V.pts[V.pts.length-1].ts,U=Math.round((O-X.ts)/6e4),C;if(U<=0)C="now";else if(U<60)C=U+"m ago";else if(U<1440){var L=Math.floor(U/60),z=U%60;C=L+"h"+(z?" "+z+"m":"")+" ago"}else C=Math.round(U/1440)+"d ago";var K='
'+C+'
● completed: '+X.completed+'/min
● failed: '+X.failed+"/min
";if(X.avgMs>0){var ie=qn(X.avgMs);K+='
● avg time: '+ie+"
"}v.innerHTML=K;var se=V.toX(te),Y=v.offsetWidth,he=se+10;he+Y>V.totalW&&(he=se-Y-10),v.style.display="block",v.style.left=he+"px",v.style.top="8px",E.style.display="block",E.style.left=se+"px"}}),N.addEventListener("mouseleave",function(){v&&(v.style.display="none"),E&&(E.style.display="none")})}}e.watch("metricsPoints",function(){o(S,50)})},Hu=function(e,t,s,i){let o=Ct();e.watch("user.status",()=>{e.user==null&&s.url("/")}),e.user==null&&s.url("/"),e.entries=[],e.visible=[],e.available=!0,e.cap=1e3,e.total=0,e.pageSize=250,e.expanded={},e.detailTab={},e.copyHint="",e.parsedFilterCount=0,e.stats={last24h:0,prev24h:0,delta:0,severity:{error:0,warn:0,info:0},unique:{error:0,warn:0,info:0},buckets:[],dropped:0},e.query={search:"",bucket:"",sort:"recent",group:"code",autoRefresh:!0},e.relTime=v=>{if(!v)return"";let E=new Date(v).getTime();if(isNaN(E))return v;let M=Math.max(0,Date.now()-E),V=Math.floor(M/1e3);if(V<5)return"just now";if(V<60)return`${V}s ago`;let _=Math.floor(V/60);if(_<60)return`${_}m ago`;let G=Math.floor(_/60);if(G<24)return`${G}h ago`;let te=Math.floor(G/24);return te<7?`${te}d ago`:new Date(v).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})},e.absTime=v=>{if(!v)return"";let E=new Date(v);return isNaN(E.getTime())?v:E.toLocaleString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})},e.absTimeShort=v=>{if(!v)return"";let E=new Date(v);return isNaN(E.getTime())?v:E.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})};let r=/^[a-zA-Z][a-zA-Z0-9]*(?:_[a-zA-Z0-9]+)+$/;function d(v,E){let M=v&&(v.httpStatus||v.status)||null;if(typeof M=="number"){if(M>=500)return"error";if(M===401||M===403||M===404)return"info";if(M>=400)return"warn"}return E==="error"?"error":E==="warn"?"warn":"info"}function p(v){let E=(v.raw||[]).find(G=>G&&typeof G=="object"&&!Array.isArray(G));if(E){E.message&&r.test(E.message)?(v.displayMessage=E.message,v.displayContext=v.message):E.code&&r.test(String(E.code))?(v.displayMessage=String(E.code),v.displayContext=v.message):E.name&&E.name!=="AnonymousError"&&E.name!=="Error"?(v.displayMessage=E.name,v.displayContext=E.message||v.message):v.displayMessage=v.message,v._status=E.httpStatus||E.status||null,v._url=E.url||null,v._method=E.method||null,v._repoId=E.repoId||E.detail||null,v._detail=E.detail&&E.detail!==v._repoId?E.detail:null;let G=typeof E.stack=="string"?E.stack:null;for(var M=[E.cause,E.err].filter(Boolean),V=0;!G&&V{O==null||O===""||M.push([X,O])};V("name",E&&E.name),V("code",v.displayMessage||E&&E.message),v._bucket&&V("kind",v._bucket),V("httpStatus",E&&E.httpStatus),E&&E.status&&!E.httpStatus&&V("status",E.status),V("module",v.module);let _=E&&E.detail;if(typeof _=="string"){let X=_.trim();if(X[0]==="{"||X[0]==="[")try{_=JSON.parse(_)}catch{}}if(V("detail",_),V("repoId",E&&E.repoId),V("filePath",E&&E.filePath),V("upstreamStatus",E&&E.upstreamStatus),V("upstreamBody",E&&E.upstreamBody),V("url",v._url),V("err",E&&E.err),V("cause",E&&!E.err&&E.cause),V("ts",v.ts),!M.length)return JSON.stringify(v,null,2);let G=M.reduce((X,O)=>Math.max(X,O[0].length),0),te=["{"];return M.forEach(([X,O],U)=>{let L=` ${`"${X}":`.padEnd(G+3," ")} `,z=UY===0?se:ie+se).join(` `)}else typeof O=="number"||typeof O=="boolean"?K=String(O):K=JSON.stringify(O);te.push(`${L}${K}${z}`)}),te.push("}"),te.join(` `)}function y(v){let E=[],M="",V=/(\w+):(>=|<=|!=|>|<|=)?([^\s]+)/g,_=0,G;for(;G=V.exec(v);)M+=v.slice(_,G.index),_=V.lastIndex,E.push({key:G[1],op:G[2]||"=",val:G[3]});return M+=v.slice(_),{filters:E,free:M.trim().toLowerCase()}}function m(v,E){for(let M of E.filters){let V=(G,te,X)=>{let O=parseFloat(G),U=parseFloat(te);return X==="="?String(G)===String(te):X==="!="?String(G)!==String(te):X===">="?O>=U:X==="<="?O<=U:X===">"?O>U:X==="<"?OE&&X._bucket!==E?!1:m(X,v)),V=e.query.group;if(V){let X=C=>V==="module"?C.module:C.displayMessage||C.message||"_",O=new Map;for(let C of M){let L=X(C);if(O.has(L)){let z=O.get(L);z.count++,z._related.push(C),new Date(C.ts)>new Date(z.ts)&&(z.ts=C.ts,z._url=C._url,z._status=C._status),new Date(C.ts)new Date(L.ts).getTime()>=U).length;M=Array.from(O.values())}else M=M.map((X,O)=>(X._key="row:"+O+":"+X.ts,X._related=[X],X._firstSeen=X.ts,X._lastHourCount=0,X.count=1,X));let _=X=>({error:0,warn:1,info:2})[X._bucket]??1;e.query.sort==="count"?M.sort((X,O)=>_(X)-_(O)||O.count-X.count||new Date(O.ts)-new Date(X.ts)):M.sort((X,O)=>_(X)-_(O)||new Date(O.ts)-new Date(X.ts)),e.visible=M;let G=!!(e.query.bucket||(e.query.search||"").trim()),te=!G&&(e.stats?.severity?.error||0)>0&&!M.some(X=>X._bucket==="error")&&e.entries.length<1500;(G&&!M.length||te)&&e.canLoadMore?.()&&!e._autoLoading&&e.entries.length<2500&&(e._autoLoading=!0,h(!0))}function h(v){let E=v?e.entries.length:0,M=v?e.pageSize:Math.max(e.pageSize,e.entries.length||e.pageSize);t.get("/api/admin/errors",{params:{offset:E,limit:M}}).then(V=>{let _=(V.data.entries||[]).map(p);e.entries=v?e.entries.concat(_):_,e.available=!!V.data.available,e.cap=V.data.max||e.cap,e.total=V.data.total||e.entries.length,e._autoLoading=!1,b()},V=>{e._autoLoading=!1,console.error(V)})}e.loadMore=()=>h(!0),e.canLoadMore=()=>e.entries.length{let E=v.data||{},M=E.prev24h?Math.round((E.last24h-E.prev24h)/E.prev24h*100):0;e.stats={last24h:E.last24h||0,prev24h:E.prev24h||0,delta:M,severity:E.severity||{error:0,warn:0,info:0},unique:E.unique||{error:0,warn:0,info:0},buckets:E.buckets||[],dropped:E.dropped||0},b()},v=>console.error(v))}function R(){h(),w()}e.barPx=(v,E)=>{let M=e.stats.buckets||[],V=0,_=0;for(let O of M)V=Math.max(V,(O.error||0)+(O.warn||0)),_=Math.max(_,O.info||0);let G=v[E]||0;if(!G)return 0;if(E==="info")return _?Math.max(2,Math.round(G/_*(V?16:60))):0;let te=(v.error||0)+(v.warn||0),X=Math.round(te/V*44);return Math.max(4,Math.round(G/te*X))},e.bucketTitle=v=>`${new Date(v.hour).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})} \xB7 ${v.error||0} err \xB7 ${v.warn||0} warn \xB7 ${v.info||0} info`,e.toggle=v=>{e.expanded[v._key]=!e.expanded[v._key]},e.setBucket=v=>{e.query.bucket=v},e.refreshNow=R,e.clearAll=()=>{confirm("Clear all captured errors?")&&t.delete("/api/admin/errors").then(R,v=>console.error(v))},e.exportCsv=()=>{let v=["ts","level","module","displayMessage","_status","_url","_repoId"],E=[v.join(",")];for(let G of e.visible)E.push(v.map(te=>{let X=G[te]==null?"":String(G[te]);return/[",\n]/.test(X)?`"${X.replace(/"/g,'""')}"`:X}).join(","));let M=new Blob([E.join(` -`)],{type:"text/csv;charset=utf-8"}),V=URL.createObjectURL(M),_=document.createElement("a");_.href=V,_.download=`errors-${new Date().toISOString().slice(0,19)}.csv`,document.body.appendChild(_),_.click(),document.body.removeChild(_),URL.revokeObjectURL(V)};function S(v){e.copyHint=`${v} copied`,o.timeout(()=>{e.copyHint=""},1500)}e.copyJson=v=>{navigator.clipboard.writeText(v._detailJson).then(()=>S("JSON"))},e.copyCurl=v=>{if(!v._url)return;let M=`curl -X ${v._method||"GET"} '${window.location.origin}${v._url}'`;navigator.clipboard.writeText(M).then(()=>S("curl"))},R();let N=i(()=>{e.query.autoRefresh&&R()},15e3);e.on("dispose",()=>i.cancel(N)),e.watch("query.search",b),e.watch("query.bucket",b),e.watch("query.sort",b),e.watch("query.group",b)},ju=function(e,t,s,i){if(e.Math=Math,e.watch("user.status",()=>{e.user==null&&s.url("/")}),e.user==null){s.url("/");return}e.data=null,e.loading=!0,e.error=null,e.performance=null,e.performanceMinutes=15,e.performanceTab="routes",e.cacheReport=null,e.cacheError=null,e.cacheMinutes=60,e.cacheTraffic="all",e.ovView=["performance","cache"].includes((window.location.hash||"").slice(1))?window.location.hash.slice(1):"summary",e.setOvView=function(v){e.ovView=v;try{window.history.replaceState(null,"",v==="summary"?window.location.pathname:"#"+v)}catch{}};var o=!1;e.loadCache=function(){if(!o){o=!0;var v=e.cacheMinutes;t.get("/api/admin/cache",{params:{minutes:v}}).then(function(E){v===e.cacheMinutes&&(e.cacheReport=E.data,e.cacheError=E.data.available?null:E.data.reason||"Cache monitoring is unavailable.")},function(){e.cacheError="Could not refresh cache monitoring. Displayed values may be stale."}).finally(function(){o=!1,v!==e.cacheMinutes&&e.loadCache()})}},e.cacheRows=function(){return(e.cacheReport?.rows||[]).filter(function(v){return e.cacheTraffic==="all"||v.traffic===e.cacheTraffic})},e.cacheRate=function(v,E){var M=e.cacheRows(),V=function(te){return M.filter(function(X){return X.name===te}).reduce(function(X,O){return X+O[E]},0)},_=V(v+"_hit"),G=V(v+"_miss");return _+G?(100*_/(_+G)).toFixed(1)+"%":"No samples"},e.cacheEventName=function(v){return v.replaceAll("_"," ")},e.cacheP95=function(v){var E=0,M=e.cacheReport?.latencyBucketsMs||[];if(!v.count)return"No samples";if(!v.ms)return"Not timed";for(var V=0;V<=M.length;V++)if(E+=v["b"+V]||0,E>=Math.ceil(v.count*.95))return V 10\u202Fs";return"No samples"},e.healthAlert=function(){let v=e.data&&e.data.system||{},E=[["Memory",v.memPercent],["Disk",v.diskPercent]].filter(([,V])=>V>90);return E.length?E.map(([V,_])=>V+" is at "+_+"%").join(" and ")+". New anonymizations may fail until "+(E.length>1?"they drop.":"it drops."):""},e.performanceError=null,e.formatMs=function(v){return v==null?"":qn(v)},e.latencyBound=function(v,E){return v.count?v[E]==null?"> 60\u202Fs":"\u2264 "+e.formatMs(v[E]):"No samples"},e.firstByteBound=function(v){return e.latencyBound({count:v.firstByteCount,p95UpperMs:v.firstByteP95UpperMs},"p95UpperMs")},e.sampleAge=function(v){return Math.max(0,Math.round((Date.now()-v.sampledAt)/1e3))},e.peakRss=function(v){return(e.performance.runtimeSeries||[]).filter(function(E){return E.instance===v.instance}).reduce(function(E,M){return Math.max(E,M.rss)},v.memory.rss)},e.performanceWarning=function(v){return e.sampleAge(v)>45||v.droppedBatches||v.droppedMetrics||v.sockets?.closeWait>0||v.eventLoop?.p95Ms>100||v.memoryLimitBytes&&v.memory.rss>v.memoryLimitBytes*.8};var r=!1;e.loadPerformance=function(){var v=e.performanceMinutes;e.performance?.windowMinutes&&e.performance.windowMinutes!==v&&(e.performance=null),!r&&(r=!0,t.get("/api/admin/performance",{params:{minutes:v}}).then(function(E){v===e.performanceMinutes&&(e.performance=E.data,e.performanceError=E.data.available?null:"Performance monitoring is unavailable. Request history may be incomplete.")},function(){v===e.performanceMinutes&&(e.performanceError="Could not refresh performance monitoring. Displayed samples may be stale.")}).finally(function(){r=!1,v!==e.performanceMinutes&&e.loadPerformance()}))};function d(v){if(v==null)return"\u2014";for(var E=["B","KB","MB","GB","TB"],M=0,V=v;V>=1024&&M0?1:0).replace(/\.0$/,"")+" "+E[M]}e.humanBytes=d;function p(v){if(!v)return"\u2014";var E=Math.floor(v/86400),M=Math.floor(v%86400/3600),V=Math.floor(v%3600/60);return E>0?E+"d "+(M<10?"0":"")+M+"h":M>0?M+"h "+(V<10?"0":"")+V+"m":V+"m"}e.humanDuration=p;function u(v){return v==null?"\u2014":v>=1e6?(v/1e6).toFixed(1)+"M":v>=1e3?(v/1e3).toFixed(1)+"K":String(v)}e.humanNum=u,e.queueTotal=function(v){return v?(v.waiting||0)+(v.active||0)+(v.delayed||0)+(v.failed||0):0},e.statusCount=function(v){if(!e.data||!e.data.repos)return 0;for(var E=e.data.repos.statusBreakdown||[],M=0;M0,zero:!V,title:String(_.getHours()).padStart(2,"0")+":00 \xB7 "+(M.error||0)+" 5xx, "+(M.warn||0)+" 4xx"}})},e.errorHoursPeak=function(){var v=e.errorStats&&e.errorStats.buckets||[];return v.reduce(function(E,M){return Math.max(E,(M.error||0)+(M.warn||0))},0)};function y(v){var E=v||[];return E.map(function(M,V){var _=E[V-1]||{},G=Object.assign({},M);return G.dailyRepositories=V?Math.max(0,(M.nbRepositories||0)-(_.nbRepositories||0)):0,G.dailyUsers=V?Math.max(0,(M.nbUsers||0)-(_.nbUsers||0)):0,G.dailyPageViews=V?Math.max(0,(M.nbPageViews||0)-(_.nbPageViews||0)):0,G})}function m(v){var E=v&&v.length?v[v.length-1]:{};return{repositories:E.dailyRepositories||0,users:E.dailyUsers||0,pageViews:E.dailyPageViews||0}}function b(v,E){if(!v||!v.length)return v;var M=new Date(v[v.length-1].date);if(isNaN(M))return v;var V={};v.forEach(function(O){V[new Date(O.date).toISOString().slice(0,10)]=O});for(var _=[],G=E-1;G>=0;G--){var te=new Date(M.getTime()-G*864e5),X=te.toISOString().slice(0,10);_.push(V[X]||{date:te.toISOString(),_empty:!0,dailyPageViews:0,dailyRepositories:0,dailyUsers:0,nbUsers:0})}return _}var h={};e.historyMax=function(v){return h[v]||0};var w={};e.axisMax=function(v){var E=h[v]||0;if(E<=2)return 2;if(E<=10)return Math.ceil(E/2)*2;var M=Math.pow(10,Math.floor(Math.log10(E)));return Math.ceil(E/M)*M},e.historyBarH=function(v,E){return!v||!h[E]||!v[E]?0:Math.max(1,Math.round(v[E]/e.axisMax(E)*140))},e.historyRange=function(v){return{min:w[v],max:h[v]}};var R=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];e.historyLabel=function(v){if(!v||!v.date)return"";var E=new Date(v.date);return R[E.getUTCMonth()]+" "+E.getUTCDate()},e.historyHasMissing=function(){return!!(e.data&&e.data.history||[]).some(function(v){return v&&v._empty})},e.firstDataIndex=function(){for(var v=e.data&&e.data.history||[],E=0;E=M)return{lo:X,hi:X+2*G[te]}}return{lo:0,hi:e.axisMax("nbUsers")}},e.userStepPath=function(v){var E=e.data&&e.data.history||[],M=e.userAxis(),V=h.nbUsers?M.hi-M.lo:0,_=e.firstDataIndex();if(!V||_>=E.length)return"";for(var G=function(U){return(140-((U||0)-M.lo)/V*140).toFixed(2)},te=v?"M"+_+" 140":"",X=_;Xh[M])&&(h[M]=E[M]),(w[M]==null||E[M] .meta-more"),s=[...e.querySelectorAll(":scope > .meta-item")];if(s.forEach(o=>{o.removeAttribute("data-meta-hidden")}),t&&(t.hidden=!0,t.textContent="",t.removeAttribute("title"),t.removeAttribute("aria-label")),!e.clientWidth)return;if(e.classList.add("is-fitting"),e.scrollWidth<=e.clientWidth+1){e.classList.remove("is-fitting");return}let i=[];for(let o=s.length-1;o>=0&&e.scrollWidth>e.clientWidth+1;o--)if(s[o].setAttribute("data-meta-hidden",""),i.unshift(s[o]),t){let r=i.map(d=>d.dataset.metaLabel||d.textContent.trim().replace(/\s+/g," "));t.hidden=!1,t.textContent="+"+i.length,t.title=r.join(" \xB7 "),t.setAttribute("aria-label",i.length+" more: "+r.join(", "))}e.classList.remove("is-fitting")}function Gu(e,t){if(typeof document>"u"||typeof MutationObserver>"u"||!document.body)return;let s=!1,i=null,o=()=>{s=!1,i&&(document.querySelectorAll("[data-meta-fit]").forEach(bg),i.takeRecords())},r=()=>{!s&&i&&(s=!0,e.timeout(o,30))};i=new MutationObserver(d=>{d.some(p=>!(p.target.closest&&p.target.closest(".meta-more")))&&r()}),i.observe(document.body,{childList:!0,subtree:!0,characterData:!0}),es(()=>{i.disconnect(),i=null}),t(window,"resize",r),document.fonts?.ready&&document.fonts.ready.then(r),r()}var wg=["bif","clp","djf","gnf","jpy","kmf","krw","mga","pyg","rwf","ugx","vnd","vuv","xaf","xof","xpf"],_u=[{id:"subscription",label:"Subscriptions"},{id:"repository",label:"Repository purchases"},{id:"conference",label:"Conferences"}],kg={author_monthly:"Author monthly",author_annual:"Author annual",author_pass:"Live updates",repo_extend:"Extended expiration",repo_never:"Never expire",repo_slot:"Extra repository",repo_pack:"Paper pack",conference_workshop:"Workshop",conference:"Conference",conference_large:"Large conference"};function $u(e){return Object.entries(e||{}).filter(([,t])=>t).sort((t,s)=>s[1]-t[1]).map(([t,s])=>{let i=wg.includes(t)?s:s/100;try{return new Intl.NumberFormat(void 0,{style:"currency",currency:t.toUpperCase(),minimumFractionDigits:i%1?2:0,maximumFractionDigits:2}).format(i)}catch{return i+" "+t.toUpperCase()}})}var Wu=function(e,t,s){let i=Ct();if(e.Math=Math,e.watch("user.status",()=>{e.user==null&&s.url("/")}),e.user==null){s.url("/");return}e.families=_u,e.periods=[{id:"7d",label:"7 days"},{id:"30d",label:"30 days"},{id:"90d",label:"90 days"},{id:"12m",label:"12 months"},{id:"all",label:"All time"}];let o=(()=>{try{return localStorage.getItem("admin.billing.period")}catch{return null}})();e.period=e.periods.some(h=>h.id===o)?o:"30d",e.summary=null,e.summaryError=null,e.summaryLoading=!0,e.periodLabel=()=>(e.periods.find(h=>h.id===e.period)||{}).label||"",e.periodPhrase=()=>e.period==="all"?"all time":"last "+e.periodLabel(),e.money=h=>$u(h),e.moneyText=(h,w="\u2014")=>$u(h).join(" \xB7 ")||w,e.revenueOn=()=>!!e.summary?.revenue?.available,e.planName=h=>((e.summary?.plans||[]).find(w=>w.planId===h)||{}).name||kg[h]||h,e.bucketTotal=h=>h?h.subscription+h.repository+h.conference:0,e.chartMax=()=>{let h=Math.max(0,...(e.summary?.series||[]).map(e.bucketTotal));if(h<=4)return 4;let w=Math.pow(10,Math.floor(Math.log10(h)));return[1,1.2,1.5,2,2.5,3,4,5,6,8,10].map(R=>R*w).find(R=>R>=h&&R%2===0)||10*w},e.segmentPct=(h,w)=>h&&h[w]?h[w]/e.chartMax()*100:0,e.familyTotal=h=>(e.summary?.series||[]).reduce((w,R)=>w+R[h],0),e.bucketLabel=h=>{if(!h)return"";let w=new Date(h.date),R={timeZone:"UTC",day:"numeric",month:"short"};return e.summary?.bucket==="month"?w.toLocaleDateString(void 0,{timeZone:"UTC",month:"short",year:"numeric"}):((e.period==="12m"||e.period==="all"||w.getUTCFullYear()!==new Date().getUTCFullYear())&&(R.year="numeric"),(e.summary?.bucket==="week"?"Week of ":"")+w.toLocaleDateString(void 0,R))},e.bucketTip=h=>{let w=e.bucketTotal(h);if(!w)return e.bucketLabel(h)+": no sales";let R=_u.filter(S=>h[S.id]).map(S=>h[S.id]+" "+S.label.toLowerCase());return e.bucketLabel(h)+": "+w+(w===1?" sale":" sales")+" ("+R.join(", ")+")"},e.bucketName=()=>({day:"day",week:"week",month:"month"})[e.summary?.bucket]||"day",e.seriesSales=()=>(e.summary?.series||[]).reduce((h,w)=>h+e.bucketTotal(w),0),e.plansWithActivity=()=>(e.summary?.plans||[]).filter(h=>h.active||h.allTimeSales||h.sales),e.planTotals=()=>{let h=w=>(e.summary?.plans||[]).reduce((R,S)=>R+(S[w]||0),0);return{active:h("active"),sales:h("sales"),allTimeSales:h("allTimeSales")}},e.webhookState=()=>{let h=e.summary?.webhooks;return h?h.failed||h.reconciliationFailed?"bad":h.oldestPendingSeconds>900||h.unreviewedRevocations?"warn":"ok":"ok"},e.age=h=>h?qn(h*1e3):"\u2014";let r=0;e.loadSummary=()=>{let h=++r;e.summaryLoading=!0,e.summaryError=null,t.get("/api/admin/billing/summary",{params:{period:e.period}}).then(w=>{if(h!==r)return;e.summaryLoading=!1;let R=w.data;if(!R||!R.subscriptions||!R.sales||!Array.isArray(R.plans)){e.summaryError="The billing summary had an unexpected format.";return}e.summary=R},w=>{h===r&&(e.summaryLoading=!1,e.summaryError=w&&w.data&&w.data.error||"Could not load billing figures.")})},e.setPeriod=h=>{if(e.period!==h){e.period=h;try{localStorage.setItem("admin.billing.period",h)}catch{}e.loadSummary()}},e.grants=[],e.total=-1,e.totalPage=0,e.stateCounts={},e.statuses=[],e.grantsError=null,e.filtersOpen=!1,e.query={page:1,limit:25,search:"",plan:"",status:"",state:"",sort:"purchasedAt",direction:"desc"};let d=s.search();d.search&&(e.query.search=d.search),e.stateView=()=>e.query.state||"all",e.setStateView=h=>{e.query.state=h==="all"?"":h,e.query.page=1},e.stateCount=h=>h==="all"?["active","expired","revoked"].reduce((w,R)=>w+(e.stateCounts[R]||0),0):e.stateCounts[h]||0,e.sortBy=h=>{e.query.sort===h?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=h,e.query.direction="desc"),e.query.page=1},e.sortIcon=h=>e.query.sort===h?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"",e.chips=[];let p=()=>{let h=[];e.query.plan&&h.push({key:"plan",label:"Plan",value:e.planName(e.query.plan)}),e.query.status&&h.push({key:"status",label:"Stripe status",value:e.query.status.replace(/_/g," ")}),e.chips=h};e.clearFilter=h=>{e.query[h]="",e.query.page=1},e.filterPlan=h=>{Object.assign(e.query,{plan:h,page:1});let w=document.getElementById("bl-grants");w&&w.scrollIntoView&&w.scrollIntoView({behavior:"smooth",block:"start"})},e.clearFilters=()=>Object.assign(e.query,{search:"",plan:"",status:"",state:"",page:1}),e.hasFilters=()=>!!(e.query.search||e.query.plan||e.query.status||e.query.state),e.statusText=h=>(h.status||"unknown").replace(/_/g," "),e.revocationText=h=>h==="dispute"?"Disputed":h==="full_refund"?"Refunded":"Revoked",e.scopeHref=h=>h?.kind==="repo"?"/admin/repositories?search="+encodeURIComponent(h.id):h?.kind==="conference"?"/conference/"+encodeURIComponent(h.id):null;let u=0;function y(){let h=++u;e.grantsError=null;let w=Object.fromEntries(Object.entries(e.query).filter(([,R])=>R!==""&&R!=null));t.get("/api/admin/billing/grants",{params:w}).then(R=>{h===u&&(e.total=R.data?.total??0,e.totalPage=Math.ceil(e.total/e.query.limit),e.grants=R.data?.results||[],e.stateCounts=R.data.stateCounts||{},e.statuses=R.data.statuses||[])},R=>{h===u&&(e.grantsError=R&&R.data&&R.data.error||"Could not load subscriptions and purchases.")})}e.reloadGrants=y,e.loadSummary(),y(),p();let m=null,b=JSON.stringify({...e.query,page:0});e.watch("query",()=>{let h=JSON.stringify({...e.query,page:0});if(h!==b&&e.query.page!==1){b=h,e.query.page=1;return}b=h,i.timeout.cancel(m),m=i.timeout(y,300),p()},!0)};var ka=(e,t,s)=>{let i=e instanceof RegExp?Ku(e,s):e,o=t instanceof RegExp?Ku(t,s):t,r=i!==null&&o!=null&&Eg(i,o,s);return r&&{start:r[0],end:r[1],pre:s.slice(0,r[0]),body:s.slice(r[0]+i.length,r[1]),post:s.slice(r[1]+o.length)}},Ku=(e,t)=>{let s=t.match(e);return s?s[0]:null},Eg=(e,t,s)=>{let i,o,r,d,p,u=s.indexOf(e),y=s.indexOf(t,u+1),m=u;if(u>=0&&y>0){if(e===t)return[u,y];for(i=[],r=s.length;m>=0&&!p;){if(m===u)i.push(m),u=s.indexOf(e,m+1);else if(i.length===1){let b=i.pop();b!==void 0&&(p=[b,y])}else o=i.pop(),o!==void 0&&o=0?u:y}i.length&&d!==void 0&&(p=[r,d])}return p};var Yu="\0SLASH"+Math.random()+"\0",Xu="\0OPEN"+Math.random()+"\0",Na="\0CLOSE"+Math.random()+"\0",Ju="\0COMMA"+Math.random()+"\0",Qu="\0PERIOD"+Math.random()+"\0",Sg=new RegExp(Yu,"g"),Ng=new RegExp(Xu,"g"),Rg=new RegExp(Na,"g"),Pg=new RegExp(Ju,"g"),Ag=new RegExp(Qu,"g"),Dg=/\\\\/g,Tg=/\\{/g,Og=/\\}/g,Ig=/\\,/g,Mg=/\\\./g,Vg=1e5,qg=4e6,_g=1e3,$g=1e3;function Ca(e){return isNaN(e)?e.charCodeAt(0):parseInt(e,10)}function Lg(e){return e.replace(Dg,Yu).replace(Tg,Xu).replace(Og,Na).replace(Ig,Ju).replace(Mg,Qu)}function Fg(e){return e.replace(Sg,"\\").replace(Ng,"{").replace(Rg,"}").replace(Pg,",").replace(Ag,".")}function Ea(e,t){for(let s=0;s=t}function $o(e,t,s,i,o,r){let d=[],p=0;for(let u=0;u=i)return d;let m=e[u]+t+s[y];if(!(r&&!m)){if(p+m.length>o)return d;d.push(m),p+=m.length}}return d}function Gg(e,t,s,i){let o=e.split(/\.\./),r=[];if(o[0]===void 0||o[1]===void 0)return r;let d=Ca(o[0]),p=Ca(o[1]),u=Math.max(o[0].length,o[1].length),y=o.length===3&&o[2]!==void 0?Math.max(Math.abs(Ca(o[2])),1):1,m=Hg;p0){let v=new Array(N+1).join("0");R<0?S="-"+v+S.slice(1):S=v+S}}if(w+S.length>i)break;r.push(S),w+=S.length}return r}function Sa(e,t,s,i,o,r,d){if(o>i)return[e];let p=[""],u=0,y=!1,m=!0;for(;;){let b=ka("{","}",e);if(!b)return $o(p,e,[""],t,s,y);let h=b.pre;if(/\$$/.test(h)){if(p=$o(p,h+"{"+b.body+"}",[""],t,s,y&&!b.post.length),m=!1,!b.post.length)break;e=b.post;continue}let w=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(b.body),R=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(b.body),S=w||R,N=b.body.indexOf(",")>=0;if(!S&&!N){if(u=t||V+X.length>s)break e;v.push(X),V+=X.length}}}}if(p=$o(p,h,v,t,s,y&&!b.post.length),!b.post.length)break;e=b.post}return p}var Wg={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}"],"[:alpha:]":["\\p{L}\\p{Nl}"],"[:ascii:]":["\\x00-\\x7f"],"[:blank:]":["\\p{Zs}\\t"],"[:cntrl:]":["\\p{Cc}"],"[:digit:]":["\\p{Nd}"],"[:graph:]":["\\p{Z}\\p{C}",!0],"[:lower:]":["\\p{Ll}"],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}\\p{S}"],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f"],"[:upper:]":["\\p{Lu}"],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}"],"[:xdigit:]":["A-Fa-f0-9"]},Lo=e=>e.replace(/[[\]\\-]/g,"\\$&"),Ra=/$./,xu=(e,t,s=!1,i)=>{let o=v=>{let E=i?v.normalize(i):v;return[...E].length===1?E:v},r=t;if(e.charAt(r)!=="[")throw new Error("not in a brace expression");let d=[],p=[],u=r+1,y=!1,m=!1,b=!1,h=r,w="";e:for(;uw.codePointAt(0)?d.push(Lo(w)+"-"+Lo(E)):E===w&&d.push(Lo(E)),w="",u+=v.length;continue}if(e.startsWith("-]",u+v.length)){d.push(Lo(E+"-")),u+=v.length+1;continue}if(e.startsWith("-",u+v.length)){w=E,u+=v.length+1;continue}d.push(Lo(E)),u+=v.length}if(h({t:"lit",ch:e}),Yg=e=>e.replace(/[\\^$.*+?()[\]{}|/]/g,"\\$&"),sc=e=>new RegExp(`^${Yg(e)}$`,"iu"),Qi=new Map,oc=e=>{let t=Qi.get(e);return t||(t=sc(e),Qi.size>=1e3&&Qi.clear(),Qi.set(e,t)),t},Ma=(e,t)=>{if(t===e.ch)return!0;if(!e.re)return!1;let s=t.charCodeAt(0);if(s>=128)return e.re.test(t);let i=e.ascii??(e.ascii=new Uint8Array(128));return i[s]||(i[s]=e.re.test(t)?1:2),i[s]===1},Xg=(e,t,s,i)=>{let o=[];for(let r=0;r{let t=new Map,s=[];return e.forEach((i,o)=>{i.t==="open"?s.push(o):i.t==="close"&&s.length&&t.set(s.pop(),o)}),t},ic=(e,t,s,i,o)=>{let r=[],d=[r];for(let p=s;p{let s=[],i="",o=()=>{for(let r of i.normalize(t))s.push(us(r));i=""};for(let r of e){if(r.t==="lit"){i+=r.ch;continue}o(),s.push(r.t==="ext"?{...r,alts:r.alts.map(d=>rc(d,t))}:r)}return o(),s},Qg=(e,t)=>{let s=1,i=p=>({t:"split",id:s++,out:p}),o=(p,u)=>p.reduceRight((y,m)=>r(m,y),u),r=(p,u)=>{switch(p.t){case"lit":let h=t?oc(p.ch):void 0;return{t:"lit",id:s++,ch:p.ch,re:h,next:u};case"any":case"star":return{t:p.t,id:s++,next:u};case"class":return{t:"class",id:s++,re:p.re,next:u}}let y=h=>p.alts.map(w=>o(w,h));switch(p.type){case"@":return i(y(u));case"?":return i([u,...y(u)]);case"!":return{t:"neg",id:s++,sub:i(y(Pa)),next:u}}let m=i([]),b=i(y(m));return m.out.push(u,b),p.type==="*"?m:b};return[o(e,Pa),s]},Zg=e=>{let t=[],s=new Set,i=r=>r.t==="match"?"match":String(r.id),o=(r,d)=>{if(r.t==="match"||s.has(r))return;s.add(r);let p=u=>t.push(`${d}${r.id}: ${u}`);switch(r.t){case"split":p(`split -> ${r.out.map(i).join(", ")}`);for(let u of r.out)o(u,d);return;case"neg":return p(`!(${i(r.sub)}) -> ${i(r.next)}`),o(r.sub,d+" "),o(r.next,d);case"lit":p(`${JSON.stringify(r.ch)} -> ${i(r.next)}`);break;case"class":p(`${r.re} -> ${i(r.next)}`);break;default:p(`${r.t==="any"?"?":"*"} -> ${i(r.next)}`)}o(r.next,d)};return o(e,""),[`start -> ${i(e)}`,...t].join(` -`)},Aa=class{constructor(t){xe(this,"gen");xe(this,"threads",[]);xe(this,"match",!1);xe(this,"runs",[]);xe(this,"ids",[]);this.gen=t}get dead(){return!this.threads.length&&!this.match&&!this.runs.length}},ac=(e,t)=>e.ids.length!==t.ids.length||e.runs.length!==t.runs.length||e.ids.some((s,i)=>s!==t.ids[i])?!1:e.runs.every(s=>t.runs.some(i=>i.neg===s.neg&&ac(i.state,s.state))),ec=e=>({has:new Float64Array(e),seen:new Float64Array(e),gen:0}),cs,Bn,Da,Ta,Uo=class{constructor(t,s,i){qe(this,Bn);xe(this,"dots");xe(this,"dotStart");qe(this,cs);this.dots=t,this.dotStart=s,Le(this,cs,i)}state(){return new Aa(++re(this,cs).gen)}done(t){return t.ids=t.threads.map(s=>s.id).sort((s,i)=>s-i),t.match&&t.ids.unshift(Pa.id),t}restricted(t,s){return s&&(this.dots||this.dotStart&&t===0)}add(t,s,i,o){switch(s.t){case"split":if(!_e(this,Bn,Da).call(this,t,s))return;for(let d of s.out)this.add(t,d,i,o);return;case"neg":if(!_e(this,Bn,Da).call(this,t,s))return;let r=this.state();return this.add(r,s.sub,i,!1),this.done(r),this.addRun(t,{t:"run",neg:s,state:r},i,o);case"star":if(this.restricted(i,o))return;_e(this,Bn,Ta).call(this,t,s)&&this.add(t,s.next,i,o);return;case"match":t.match=!0;return;default:_e(this,Bn,Ta).call(this,t,s)}}addRun(t,s,i,o){for(let r of t.runs)if(r.neg===s.neg&&ac(r.state,s.state))return;t.runs.push(s),s.state.match||this.add(t,s.neg.next,i,o)}step(t,s,i,o){let r=this.state();for(let d of t.threads)switch(d.t){case"lit":Ma(d,s)&&this.add(r,d.next,i+1,o);break;case"any":this.restricted(i,o)||this.add(r,d.next,i+1,o);break;case"class":!this.restricted(i,o)&&d.re.test(s)&&this.add(r,d.next,i+1,o);break;case"star":this.restricted(i,o)||this.add(r,d,i+1,o)}if(!this.restricted(i,o))for(let d of t.runs){if(d.state.dead){this.addRun(r,d,i+1,o);continue}let p=this.step(d.state,s,i,!1);this.addRun(r,{t:"run",neg:d.neg,state:p},i+1,o)}return this.done(r)}};cs=new WeakMap,Bn=new WeakSet,Da=function(t,s){let{seen:i}=re(this,cs);return i[s.id]===t.gen?!1:(i[s.id]=t.gen,!0)},Ta=function(t,s){let{has:i}=re(this,cs);return i[s.id]===t.gen?!1:(i[s.id]=t.gen,t.threads.push(s),!0)};var lc=e=>{let t=e.ids.join();if(!e.runs.length)return t;let s=e.runs.map(i=>`${i.neg.id}(${lc(i.state)})`);return`${t}|${s.sort().join("|")}`},xg=1<<18,Bs,zs,_n,ps,$n,Ln,Fn,nn,Ia,xi,dc,Oa=class{constructor(t,s){qe(this,nn);qe(this,Bs);qe(this,zs,new Map);qe(this,_n,0);qe(this,ps);qe(this,$n);qe(this,Ln);qe(this,Fn);Le(this,Bs,t),Le(this,Ln,new Uo(!1,!1,s)),Le(this,Fn,new Uo(!1,!0,s))}start(t){if(t){if(re(this,$n))return re(this,$n);let i=re(this,Fn).state();return re(this,Fn).add(i,re(this,Bs),0,!0),Le(this,$n,_e(this,nn,Ia).call(this,re(this,Fn).done(i)))}if(re(this,ps))return re(this,ps);let s=re(this,Ln).state();return re(this,Ln).add(s,re(this,Bs),0,!0),Le(this,ps,_e(this,nn,xi).call(this,re(this,Ln).done(s)))}next(t,s){let i=s.charCodeAt(0),o=i<128?void 0:t.next.get(s);if(o)return o;let r=t===re(this,$n)?_e(this,nn,xi).call(this,re(this,Fn).step(t.state,s,0,!0)):_e(this,nn,xi).call(this,re(this,Ln).step(t.state,s,1,!0));return i<128?(t.ascii||(t.ascii=new Array(128),Le(this,_n,re(this,_n)+128)),t.ascii[i]=r):t.next.set(s,r),nl(this,_n)._++,r}};Bs=new WeakMap,zs=new WeakMap,_n=new WeakMap,ps=new WeakMap,$n=new WeakMap,Ln=new WeakMap,Fn=new WeakMap,nn=new WeakSet,Ia=function(t){return{state:t,match:t.match,dead:t.dead,next:new Map}},xi=function(t){let s=lc(t),i=re(this,zs).get(s);if(i)return i;re(this,_n)>xg&&_e(this,nn,dc).call(this);let o=_e(this,nn,Ia).call(this,t);return re(this,zs).set(s,o),Le(this,_n,re(this,_n)+(s.length+1)),o},dc=function(){re(this,zs).clear(),Le(this,_n,0),Le(this,ps,void 0),Le(this,$n,void 0)};var ev=e=>{let t=[];for(let s=e;s.t!=="match";s=s.next){if(s.t==="split"||s.t==="neg")return;t.push(s)}return t},tv=(e,t,s,i)=>{let o=0,r=s,d=-1,p=0;for(;r{let t=0,s=0;for(let i of e){let[o,r]=nv(i);t+=o,s+=r}return[t,s]},nv=e=>{if(e.t==="star")return[0,1/0];if(e.t!=="ext")return[1,1];if(e.type==="!")return[0,1/0];let t=e.alts.map(uc),s=Math.min(...t.map(r=>r[0])),i=Math.max(...t.map(r=>r[1])),o=i===0?0:1/0;return e.type==="@"?[s,i]:e.type==="?"?[0,i]:e.type==="*"?[0,o]:[s,o]},tc=(e,t,s)=>{for(let i=0;iov.test(e)?[...e]:e,nc=e=>{if(e.includes("/"))throw new Error("can only match a single path portion, got: "+e)},Un,Hs,fs,er,hs,zo,tr,ms,Ho,jo,Go,Pn,vn,js,Gs,Wo,nr,tn,gs,Fo,Bo=class{constructor(t,s={}){qe(this,gs);xe(this,"pattern");xe(this,"options");qe(this,Un);qe(this,Hs);qe(this,fs);qe(this,er);qe(this,hs);qe(this,zo,!1);qe(this,tr);qe(this,ms);qe(this,Ho,!1);qe(this,jo,0);qe(this,Go,1/0);qe(this,Pn,[]);qe(this,vn,[]);qe(this,js);qe(this,Gs);qe(this,Wo,!1);qe(this,nr);qe(this,tn);if(t.includes("/"))throw new Error("can only match a single path portion, got pattern: "+t);this.pattern=t,this.options=s;let{nocase:i=!1,noext:o=!1,normalize:r}=s;Le(this,tn,r===!0?"NFC":r||void 0);let d=/^[?*+@]\(\)$/.test(t),p=Xg(t,i,o||d,re(this,tn)),[u]=ic(p,Jg(p),0,p.length,!0);re(this,tn)&&(u=rc(u,re(this,tn)));let[y,m]=Qg(u,i);if(Le(this,Un,y),Le(this,Hs,m),u.every(b=>b.t==="lit"))Le(this,hs,u.map(b=>b.ch).join("")),Le(this,zo,i);else{let b=R=>R.t!=="lit"?void 0:i?{ch:R.ch,re:oc(R.ch)}:{ch:R.ch};for(let R of u){let S=b(R);if(!S)break;re(this,Pn).push(S)}for(let R=u.length-1;R>=0;R--){let S=b(u[R]);if(!S)break;re(this,vn).unshift(S)}Le(this,Wo,!!(re(this,Pn).length||re(this,vn).length)),i||(Le(this,js,re(this,Pn).map(R=>R.ch).join("")),Le(this,Gs,re(this,vn).map(R=>R.ch).join(""))),Le(this,ms,ev(re(this,Un))?.slice(re(this,Pn).length,-re(this,vn).length||void 0)),Le(this,Ho,!!re(this,ms)?.every(R=>R.t==="star"||R.t==="any"));let[h,w]=uc(u);Le(this,jo,h),Le(this,Go,w)}}test(t){return re(this,tn)?(nc(t),_e(this,gs,Fo).call(this,t.normalize(re(this,tn)))):sv.test(t)?(nc(t),_e(this,gs,Fo).call(this,t,[...t])):_e(this,gs,Fo).call(this,t,t)}testUnchecked(t){return _e(this,gs,Fo).call(this,re(this,tn)?t.normalize(re(this,tn)):t)}toString(){return Zg(re(this,Un))}};Un=new WeakMap,Hs=new WeakMap,fs=new WeakMap,er=new WeakMap,hs=new WeakMap,zo=new WeakMap,tr=new WeakMap,ms=new WeakMap,Ho=new WeakMap,jo=new WeakMap,Go=new WeakMap,Pn=new WeakMap,vn=new WeakMap,js=new WeakMap,Gs=new WeakMap,Wo=new WeakMap,nr=new WeakMap,tn=new WeakMap,gs=new WeakSet,Fo=function(t,s){if(re(this,hs)!==void 0)return re(this,zo)?(re(this,tr)??Le(this,tr,sc(re(this,hs)))).test(t):t===re(this,hs);let i=re(this,jo),o=re(this,Go);if(s===void 0){let m=t.length,b=m+1>>1;if(mo)return!1;(bo)&&(s=Zi(t))}if(s!==void 0&&(s.lengtho))return!1;let r=re(this,Pn).length;if(re(this,Wo))if(re(this,js)!==void 0&&re(this,Gs)!==void 0){if(!t.startsWith(re(this,js))||!t.endsWith(re(this,Gs)))return!1}else{s??(s=Zi(t));let m=s.length-re(this,vn).length;if(!tc(re(this,Pn),s,0)||!tc(re(this,vn),s,m))return!1}let d=!this.options.dot&&t.startsWith(".");if(re(this,ms)){if(t==="."||t===".."||d&&!r)return!1;if(re(this,Ho))return!0;s??(s=Zi(t));let m=s.length-re(this,vn).length;return tv(re(this,ms),s,r,m)}if(s??(s=Zi(t)),t==="."||t===".."){re(this,fs)??Le(this,fs,ec(re(this,Hs)));let m=re(this,er)??Le(this,er,new Uo(!0,!1,re(this,fs))),b=m.state();m.add(b,re(this,Un),0,!0);let h=m.done(b);for(let w=0;w{if(typeof e!="string")throw new TypeError("invalid pattern");if(e.length>65536)throw new TypeError("pattern is too long")};var zn=(e,{windowsPathsNoEscape:t=!1,magicalBraces:s=!1}={})=>s?t?e.replace(/[?*()[\]{}]/g,"[$&]"):e.replace(/[?*()[\]\\{}]/g,"\\$&"):t?e.replace(/[?*()[\]]/g,"[$&]"):e.replace(/[?*()[\]\\]/g,"\\$&");var vs=(e,{windowsPathsNoEscape:t=!1,magicalBraces:s=!0}={})=>s?t?e.replace(/\[([^/\\])\]/g,"$1"):e.replace(/((?!\\).|^)\[([^/\\])\]/g,"$1$2").replace(/\\([^/])/g,"$1"):t?e.replace(/\[([^/\\{}])\]/g,"$1"):e.replace(/((?!\\).|^)\[([^/\\{}])\]/g,"$1$2").replace(/\\([^/{}])/g,"$1");var Bt=(e,t,s={})=>(Ko(t),!s.nocomment&&t.charAt(0)==="#"?!1:rv(t,s).match(e)),Ws=new Map,iv=256,rv=(e,t)=>{let s=e+"\0"+JSON.stringify(t),i=Ws.get(s);return i?Ws.delete(s):(i=new ys(e,{...t}),Ws.size>=iv&&Ws.delete(Ws.keys().next().value)),Ws.set(s,i),i},gc=typeof process=="object"&&process?process.env?.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",cc={win32:{sep:"\\"},posix:{sep:"/"}},av=gc==="win32"?cc.win32.sep:cc.posix.sep;Bt.sep=av;var vt=Symbol("globstar **");Bt.GLOBSTAR=vt;var lv=(e,t={})=>s=>Bt(s,e,t);Bt.filter=lv;var An=(e,t={})=>Object.assign({},e,t),dv=e=>{if(!e||typeof e!="object"||!Object.keys(e).length)return Bt;let t=Bt;return Object.assign((i,o,r={})=>t(i,o,An(e,r)),{Minimatch:class extends t.Minimatch{constructor(o,r={}){super(o,An(e,r))}static defaults(o){return t.defaults(An(e,o)).Minimatch}},unescape:(i,o={})=>t.unescape(i,An(e,o)),escape:(i,o={})=>t.escape(i,An(e,o)),filter:(i,o={})=>t.filter(i,An(e,o)),defaults:i=>t.defaults(An(e,i)),braceExpand:(i,o={})=>t.braceExpand(i,An(e,o)),match:(i,o,r={})=>t.match(i,o,An(e,r)),sep:t.sep,GLOBSTAR:vt})};Bt.defaults=dv;var vc=(e,t={})=>(Ko(e),t.nobrace||!/\{(?:(?!\{).)*\}/.test(e)?[e]:Zu(e,{max:t.braceExpandMax}));Bt.braceExpand=vc;var uv=(e,t,s={})=>{let i=new ys(t,s);return e=e.filter(o=>i.match(o)),i.options.nonull&&!e.length&&e.push(t),e};Bt.match=uv;var pc=/[?*]|[+@!]\(.*?\)|\[|\]/,yc=(e,t)=>{let s=t+1;(e.charAt(s)==="!"||e.charAt(s)==="^")&&s++;let i=!1;for(;s{if(!t&&(e==="+()"||e==="@()"))return e;let s="";for(let i=0;i{if(/^[?*+@]\(\)$/.test(e)||e.includes("[:"))return!1;let t=0;for(let s=0;stypeof e=="string"?t===e:t!==""&&e.testUnchecked(t),hc=(e,t,s,i,o)=>Hn(e,t)?s:i!==void 0&&Hn(e,i)?o:-1,La=e=>e==="."||e==="..",qa=e=>typeof e=="string"&&/^[a-z]:$/i.test(e),or=e=>typeof e=="string"&&/^unc$/i.test(e),_a=e=>{if(e[0]!==""||e[1]!=="")return-1;let t=e[2]!=="?"?2:or(e[3])?4:-1,s=e[t],i=e[t+1];return t!==-1&&s!==void 0&&s!==""&&s!==vt&&i!==void 0&&i!==""&&i!==vt?t:-1},sr=(e,t)=>!La(e)&&(t||!e.startsWith(".")),Yo=(e,t,s,i,o)=>{for(let r=t;r=s||rr(e.charCodeAt(p),o))return!0}let d=Fa(e,r,o);if(d===-1)return!1;for(r=d+1;rt==="/"?e===47:t==="\\"?e===92:e===47||e===92,Fa=(e,t,s)=>{if(s!=="both")return e.indexOf(s,t);let i=e.indexOf("/",t),o=e.indexOf("\\",t);return i===-1?o:o===-1?i:Math.min(i,o)},mc=(e,t,s)=>s!=="both"?e.lastIndexOf(s,t):Math.max(e.lastIndexOf("/",t),e.lastIndexOf("\\",t)),$a={},jn,Ys,Gn,Dn,Xs,Js,Wn,Jo,Qs,Qo,$e,ir,Xo,bc,wc,kc,Cc,Ec,Sc,Ua,Nc,Rc,Ba,Ks,za,ys=class{constructor(t,s={}){qe(this,$e);xe(this,"options");xe(this,"set");xe(this,"pattern");xe(this,"windowsPathsNoEscape");xe(this,"nonegate");xe(this,"negate");xe(this,"comment");xe(this,"empty");xe(this,"preserveMultipleSlashes");xe(this,"partial");xe(this,"globSet");xe(this,"globParts");xe(this,"nocase");xe(this,"isWindows");xe(this,"platform");xe(this,"windowsNoMagicRoot");xe(this,"maxGlobstarRecursion");qe(this,jn);qe(this,Ys);qe(this,Gn);qe(this,Dn);qe(this,Xs,[]);qe(this,Js,[]);qe(this,Wn,[]);qe(this,Jo,new Map);qe(this,Qs,!1);qe(this,Qo,new WeakMap);Ko(t),s=s||{},this.options=s,this.maxGlobstarRecursion=s.maxGlobstarRecursion??200,this.pattern=t,this.platform=s.platform||gc,this.isWindows=this.platform==="win32";let i="allowWindowsEscape";this.windowsPathsNoEscape=!!s.windowsPathsNoEscape||s[i]===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,"/")),this.preserveMultipleSlashes=!!s.preserveMultipleSlashes,this.negate=!1,this.nonegate=!!s.nonegate,this.comment=!1,this.empty=!1,this.partial=!!s.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=s.windowsNoMagicRoot!==void 0?s.windowsNoMagicRoot:!!(this.isWindows&&this.nocase),this.globSet=[],this.globParts=[],this.set=[],Le(this,jn,!this.preserveMultipleSlashes),Le(this,Gn,(s.optimizationLevel??1)>=2);let o=s.normalize;Le(this,Dn,o===!0?"NFC":o||void 0),this.make();let r=this.set.map(d=>_e(this,$e,Xo).call(this,d));Le(this,Wn,this.set.map((d,p)=>re(this,jn)&&d.length-1>r[p])),Le(this,Xs,this.set.map((d,p)=>{let u=re(this,Wn)[p]?d.length-1:d.length,y=d.slice(r[p]+1,u).filter(m=>typeof m=="string"&&!!m);return[...new Set(y)]})),Le(this,Ys,re(this,Xs).some(d=>d.length)),Le(this,Js,this.set.map((d,p)=>{let[u,y,m]=d;if(re(this,Wn)[p]&&d.length===2&&u===vt&&y!==vt)return"tail";if(re(this,Wn)[p]&&s.matchBase&&d.length===1&&u!==vt&&u!=="")return"base";if(!(!re(this,jn)||r[p]!==-1)){if(d.length===3&&u===vt&&m===vt&&y!==vt&&y!==""&&this.maxGlobstarRecursion>0)return"mid";if(d.length===2&&y===vt&&u!==vt&&u!=="")return"head"}}))}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let t of this.set)for(let s of t)if(typeof s!="string")return!0;return!1}make(){let t=this.pattern,s=this.options;if(!s.nocomment&&t.charAt(0)==="#"){this.comment=!0;return}if(!t){this.empty=!0;return}this.parseNegate(),this.globSet=[...new Set(this.braceExpand())];let i=this.globSet.map(r=>_e(this,$e,za).call(this,r));this.globParts=this.preprocess(i),Le(this,Qs,!0);let o=this.globParts.map((r,d,p)=>{if(this.isWindows&&this.windowsNoMagicRoot){let u=r[2]==="?"&&or(r[3])?6:4,y=r[0]===""&&r[1]===""&&(r[2]==="?"||!pc.test(r[2]))&&r.slice(3,u).every(b=>!pc.test(b)),m=/^[a-z]:/i.test(r[0]);if(y)return[...r.slice(0,u).map(b=>_e(this,$e,ir).call(this,b)),...r.slice(u).map(b=>this.parse(b))];if(m)return[_e(this,$e,ir).call(this,r[0]),...r.slice(1).map(b=>this.parse(b))]}return r.map(u=>this.parse(u))});if(this.set=o.filter(r=>r.indexOf(!1)===-1),this.isWindows)for(let r=0;r{for(let p=0;pi.length));for(let i=0;i{if(!(d[i]instanceof Bo||d[i]===$a)||!pv(this.globParts[p][i]))return;let u=[...this.globParts[p]];u[i]="";let y=`${d.length}/${u.join("/")}`,m=o.get(y);m?m.push(p):o.set(y,[p])});let r=new Set;for(let d of o.values()){if(d.length<2)continue;let[p,...u]=d,m=`@(${d.map(b=>this.globParts[b][i]).join("|")})`;this.globParts[p][i]=m,this.set[p][i]=this.parse(m);for(let b of u)r.add(b)}r.size&&(t=!0,this.set=this.set.filter((d,p)=>!r.has(p)),this.globParts=this.globParts.filter((d,p)=>!r.has(p)))}}}preprocess(t){if(this.options.noglobstar)for(let i of t)for(let o=0;o=2?(t=this.firstPhasePreProcess(t),t=this.secondPhasePreProcess(t)):s>=1?t=this.levelOneOptimize(t):t=this.adjascentGlobstarOptimize(t),t}adjascentGlobstarOptimize(t){return t.map(s=>{let i=-1;for(;(i=s.indexOf("**",i+1))!==-1;){let o=i;for(;s[o+1]==="**";)o++;o!==i&&s.splice(i,o-i)}return s})}levelOneOptimize(t){return t.map(s=>{let i=_e(this,$e,Xo).call(this,s)+1;return s=s.reduce((o,r)=>{let d=o[o.length-1];return r==="**"&&d==="**"?o:r===".."&&o.length>i&&d&&d!==".."&&d!=="."&&d!=="**"?(o.pop(),o):(o.push(r),o)},[]),s.length===0?[""]:s})}firstPhasePreProcess(t){let{braceExpandMax:s=1e5}=this.options,i=!1;do{i=!1;for(let o of t){let r=-1;for(;(r=o.indexOf("**",r+1))!==-1;){let u=r;for(;o[u+1]==="**";)u++;u>r&&o.splice(r+1,u-r);let y=o[r+1],m=o[r+2],b=o[r+3];if(y!==".."||!m||m==="."||m===".."||!b||b==="."||b===".."||t.length>=s)continue;i=!0,o.splice(r,1);let h=o.slice(0);h[r]="**",t.push(h),r--}if(!this.preserveMultipleSlashes){for(let u=1;u1e3)return t;for(let s=0;ss.length)}partsMatch(t,s,i=!1){let o=0,r=0,d=[],p="";for(;o=0;y--)u=r[y];for(let y=0;y=0){let v=S;for(;v>0&&rr(t.charCodeAt(v-1),s);)v--;p=v===0?0:mc(t,v-1,s)+1,d=t.slice(p,v)}let N=re(this,Gn)&&(La(o)||o===""&&d!==void 0&&La(d));i=N?-1:1,h=!N}let w=-1;if(h&&typeof b=="string"&&(w=hc(b,o,r,d,p),w===-1))continue;if(re(this,Ys)){for(let S of re(this,Xs)[y])if(!t.includes(S))continue e}if(h&&typeof b=="object"&&(w=hc(b,o,r,d,p),w===-1))continue;let R=re(this,Js)[y];if(R==="base"&&h)return"yes";if(R==="tail"&&h){if(re(this,Gn)&&Yo(t,0,w,!0,s))return"maybe";if(!Yo(t,0,w,u,s))return"yes";continue}if(R==="mid"||R==="head"){let S=_e(this,$e,kc).call(this,t,m,R==="head",u,s);if(S!=="no")return S;continue}return"maybe"}return"no"},wc=function(t,s,i){let o=!!this.options.dot,r=t.length;if(i==="head"){if(r<2||!Hn(s[0],t[0]))return!1;for(let p=1;pp&&d.testUnchecked(t.slice(p,u)))&&!Yo(t,y,t.length,o,r))return"yes";if(i||Yo(t,p,y,o,r))return"no";p=y}return"no"},Cc=function(t){let s=Va;return s?.f===t&&s.isWindows===this.isWindows&&s.preserveMultipleSlashes===this.preserveMultipleSlashes&&s.normalize===re(this,Dn)?s:void 0},Ec=function(t){let{isWindows:s,preserveMultipleSlashes:i}=this,o=_e(this,$e,za).call(this,s?t.split("\\").join("/"):t),r=re(this,Dn);return r&&(o=o.map(d=>d.normalize(r))),Va={f:t,isWindows:s,preserveMultipleSlashes:i,normalize:r,parts:o},Va},Sc=function(t){let s=[...t],i=!1;do{if(i=!1,!this.preserveMultipleSlashes){for(let d=1;dt.length)return!1;let b=t.length-u.length;if(_e(this,$e,Ks).call(this,t,u,i,b,0))m=u.length;else{if(t[t.length-1]!==""||o+u.length===t.length||(b--,!_e(this,$e,Ks).call(this,t,u,i,b,0)))return!1;m=u.length+1}}if(!p.length){let b=!!m;for(let h=o;h{v[1]=R-S[E]});let N={head:y,body:m,tail:b,segments:h};return o[r]=N,N},Ba=function(t,s,i,o,r,d,p,u,y){let m=s[r];if(!m){if(d)return o>=i||o===i-1&&t[o]==="";for(let R=o;Re.lastIndexOf(t)===s)}function ja(e){let t=(e||[]).filter(s=>typeof s=="string"&&s.length>0).map(s=>{let{negated:i,anchored:o,directoryOnly:r,body:d}=fv(s);return{negated:i,directoryOnly:r,matcher:new ys(d,{dot:!0,nonegate:!0,nocomment:!0,matchBase:!o&&!d.includes("/")})}});return(s,i=!1)=>{let o=(s||"").replace(/^\/+/,"");if(!o)return!1;let r=o.split("/"),d=r.slice(0,-1).map((u,y)=>r.slice(0,y+1).join("/")),p=i;for(let u of t){if(u.negated?!p:p)continue;(u.directoryOnly?d:[...d,o]).some(m=>u.matcher.match(m))&&(p=!u.negated)}return p}}var Tx=new Set("^$\\.*+?()[]{}|/dDsSwWbBnrtvf0cxupP".split(""));function Ga(e){let t=e.indexOf("=>");if(t<0)return{term:e,replacement:null};let s=e.slice(0,t).replace(/\s+$/,""),i=e.slice(t+2).replace(/^\s+/,"");return s?{term:s,replacement:i}:{term:e,replacement:null}}var Pc=new Set(["*","+","?","(",")","[","]","{","}","|","^","$"]);function Ac(e){let t=[];return String(e||"").split(` -`).forEach((s,i)=>{let{term:o}=Ga(s.trim());if(!o)return;let r=[];for(let d=0;d{e.copyHint=""},1500)}e.copyJson=v=>{navigator.clipboard.writeText(v._detailJson).then(()=>S("JSON"))},e.copyCurl=v=>{if(!v._url)return;let M=`curl -X ${v._method||"GET"} '${window.location.origin}${v._url}'`;navigator.clipboard.writeText(M).then(()=>S("curl"))},R();let N=i(()=>{e.query.autoRefresh&&R()},15e3);e.on("dispose",()=>i.cancel(N)),e.watch("query.search",b),e.watch("query.bucket",b),e.watch("query.sort",b),e.watch("query.group",b)},ju=function(e,t,s,i){if(e.Math=Math,e.watch("user.status",()=>{e.user==null&&s.url("/")}),e.user==null){s.url("/");return}e.data=null,e.loading=!0,e.error=null,e.performance=null,e.performanceMinutes=15,e.performanceTab="routes",e.cacheReport=null,e.cacheError=null,e.cacheMinutes=60,e.cacheTraffic="all",e.ovView=["performance","cache"].includes((window.location.hash||"").slice(1))?window.location.hash.slice(1):"summary",e.setOvView=function(v){e.ovView=v;try{window.history.replaceState(null,"",v==="summary"?window.location.pathname:"#"+v)}catch{}};var o=!1;e.loadCache=function(){if(!o){o=!0;var v=e.cacheMinutes;t.get("/api/admin/cache",{params:{minutes:v}}).then(function(E){v===e.cacheMinutes&&(e.cacheReport=E.data,e.cacheError=E.data.available?null:E.data.reason||"Cache monitoring is unavailable.")},function(){e.cacheError="Could not refresh cache monitoring. Displayed values may be stale."}).finally(function(){o=!1,v!==e.cacheMinutes&&e.loadCache()})}},e.cacheRows=function(){return(e.cacheReport?.rows||[]).filter(function(v){return e.cacheTraffic==="all"||v.traffic===e.cacheTraffic})},e.cacheRate=function(v,E){var M=e.cacheRows(),V=function(te){return M.filter(function(X){return X.name===te}).reduce(function(X,O){return X+O[E]},0)},_=V(v+"_hit"),G=V(v+"_miss");return _+G?(100*_/(_+G)).toFixed(1)+"%":"No samples"},e.cacheEventName=function(v){return v.replaceAll("_"," ")},e.cacheP95=function(v){var E=0,M=e.cacheReport?.latencyBucketsMs||[];if(!v.count)return"No samples";if(!v.ms)return"Not timed";for(var V=0;V<=M.length;V++)if(E+=v["b"+V]||0,E>=Math.ceil(v.count*.95))return V 10\u202Fs";return"No samples"},e.healthAlert=function(){let v=e.data&&e.data.system||{},E=[["Memory",v.memPercent],["Disk",v.diskPercent]].filter(([,V])=>V>90);return E.length?E.map(([V,_])=>V+" is at "+_+"%").join(" and ")+". New anonymizations may fail until "+(E.length>1?"they drop.":"it drops."):""},e.performanceError=null,e.formatMs=function(v){return v==null?"":qn(v)},e.latencyBound=function(v,E){return v.count?v[E]==null?"> 60\u202Fs":"\u2264 "+e.formatMs(v[E]):"No samples"},e.firstByteBound=function(v){return e.latencyBound({count:v.firstByteCount,p95UpperMs:v.firstByteP95UpperMs},"p95UpperMs")},e.sampleAge=function(v){return Math.max(0,Math.round((Date.now()-v.sampledAt)/1e3))},e.peakRss=function(v){return(e.performance.runtimeSeries||[]).filter(function(E){return E.instance===v.instance}).reduce(function(E,M){return Math.max(E,M.rss)},v.memory.rss)},e.performanceWarning=function(v){return e.sampleAge(v)>45||v.droppedBatches||v.droppedMetrics||v.sockets?.closeWait>0||v.eventLoop?.p95Ms>100||v.memoryLimitBytes&&v.memory.rss>v.memoryLimitBytes*.8};var r=!1;e.loadPerformance=function(){var v=e.performanceMinutes;e.performance?.windowMinutes&&e.performance.windowMinutes!==v&&(e.performance=null),!r&&(r=!0,t.get("/api/admin/performance",{params:{minutes:v}}).then(function(E){v===e.performanceMinutes&&(e.performance=E.data,e.performanceError=E.data.available?null:"Performance monitoring is unavailable. Request history may be incomplete.")},function(){v===e.performanceMinutes&&(e.performanceError="Could not refresh performance monitoring. Displayed samples may be stale.")}).finally(function(){r=!1,v!==e.performanceMinutes&&e.loadPerformance()}))};function d(v){if(v==null)return"\u2014";for(var E=["B","KB","MB","GB","TB"],M=0,V=v;V>=1024&&M0?1:0).replace(/\.0$/,"")+" "+E[M]}e.humanBytes=d;function p(v){if(!v)return"\u2014";var E=Math.floor(v/86400),M=Math.floor(v%86400/3600),V=Math.floor(v%3600/60);return E>0?E+"d "+(M<10?"0":"")+M+"h":M>0?M+"h "+(V<10?"0":"")+V+"m":V+"m"}e.humanDuration=p;function u(v){return v==null?"\u2014":v>=1e6?(v/1e6).toFixed(1)+"M":v>=1e3?(v/1e3).toFixed(1)+"K":String(v)}e.humanNum=u,e.queueTotal=function(v){return v?(v.waiting||0)+(v.active||0)+(v.delayed||0)+(v.failed||0):0},e.statusCount=function(v){if(!e.data||!e.data.repos)return 0;for(var E=e.data.repos.statusBreakdown||[],M=0;M0,zero:!V,title:String(_.getHours()).padStart(2,"0")+":00 \xB7 "+(M.error||0)+" 5xx, "+(M.warn||0)+" 4xx"}})},e.errorHoursPeak=function(){var v=e.errorStats&&e.errorStats.buckets||[];return v.reduce(function(E,M){return Math.max(E,(M.error||0)+(M.warn||0))},0)};function y(v){var E=v||[];return E.map(function(M,V){var _=E[V-1]||{},G=Object.assign({},M);return G.dailyRepositories=V?Math.max(0,(M.nbRepositories||0)-(_.nbRepositories||0)):0,G.dailyUsers=V?Math.max(0,(M.nbUsers||0)-(_.nbUsers||0)):0,G.dailyPageViews=V?Math.max(0,(M.nbPageViews||0)-(_.nbPageViews||0)):0,G})}function m(v){var E=v&&v.length?v[v.length-1]:{};return{repositories:E.dailyRepositories||0,users:E.dailyUsers||0,pageViews:E.dailyPageViews||0}}function b(v,E){if(!v||!v.length)return v;var M=new Date(v[v.length-1].date);if(isNaN(M))return v;var V={};v.forEach(function(O){V[new Date(O.date).toISOString().slice(0,10)]=O});for(var _=[],G=E-1;G>=0;G--){var te=new Date(M.getTime()-G*864e5),X=te.toISOString().slice(0,10);_.push(V[X]||{date:te.toISOString(),_empty:!0,dailyPageViews:0,dailyRepositories:0,dailyUsers:0,nbUsers:0})}return _}var h={};e.historyMax=function(v){return h[v]||0};var w={};e.axisMax=function(v){var E=h[v]||0;if(E<=2)return 2;if(E<=10)return Math.ceil(E/2)*2;var M=Math.pow(10,Math.floor(Math.log10(E)));return Math.ceil(E/M)*M},e.historyBarH=function(v,E){return!v||!h[E]||!v[E]?0:Math.max(1,Math.round(v[E]/e.axisMax(E)*140))},e.historyRange=function(v){return{min:w[v],max:h[v]}};var R=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];e.historyLabel=function(v){if(!v||!v.date)return"";var E=new Date(v.date);return R[E.getUTCMonth()]+" "+E.getUTCDate()},e.historyHasMissing=function(){return!!(e.data&&e.data.history||[]).some(function(v){return v&&v._empty})},e.firstDataIndex=function(){for(var v=e.data&&e.data.history||[],E=0;E=M)return{lo:X,hi:X+2*G[te]}}return{lo:0,hi:e.axisMax("nbUsers")}},e.userStepPath=function(v){var E=e.data&&e.data.history||[],M=e.userAxis(),V=h.nbUsers?M.hi-M.lo:0,_=e.firstDataIndex();if(!V||_>=E.length)return"";for(var G=function(U){return(140-((U||0)-M.lo)/V*140).toFixed(2)},te=v?"M"+_+" 140":"",X=_;Xh[M])&&(h[M]=E[M]),(w[M]==null||E[M] .meta-more"),s=[...e.querySelectorAll(":scope > .meta-item")];if(s.forEach(o=>{o.removeAttribute("data-meta-hidden")}),t&&(t.hidden=!0,t.textContent="",t.removeAttribute("title"),t.removeAttribute("aria-label")),!e.clientWidth)return;if(e.classList.add("is-fitting"),e.scrollWidth<=e.clientWidth+1){e.classList.remove("is-fitting");return}let i=[];for(let o=s.length-1;o>=0&&e.scrollWidth>e.clientWidth+1;o--)if(s[o].setAttribute("data-meta-hidden",""),i.unshift(s[o]),t){let r=i.map(d=>d.dataset.metaLabel||d.textContent.trim().replace(/\s+/g," "));t.hidden=!1,t.textContent="+"+i.length,t.title=r.join(" \xB7 "),t.setAttribute("aria-label",i.length+" more: "+r.join(", "))}e.classList.remove("is-fitting")}function Gu(e,t){if(typeof document>"u"||typeof MutationObserver>"u"||!document.body)return;let s=!1,i=null,o=()=>{s=!1,i&&(document.querySelectorAll("[data-meta-fit]").forEach(kg),i.takeRecords())},r=()=>{!s&&i&&(s=!0,e.timeout(o,30))};i=new MutationObserver(d=>{d.some(p=>!(p.target.closest&&p.target.closest(".meta-more")))&&r()}),i.observe(document.body,{childList:!0,subtree:!0,characterData:!0}),es(()=>{i.disconnect(),i=null}),t(window,"resize",r),document.fonts?.ready&&document.fonts.ready.then(r),r()}var Cg=["bif","clp","djf","gnf","jpy","kmf","krw","mga","pyg","rwf","ugx","vnd","vuv","xaf","xof","xpf"],_u=[{id:"subscription",label:"Subscriptions"},{id:"repository",label:"Repository purchases"},{id:"conference",label:"Conferences"}],Eg={author_monthly:"Author monthly",author_annual:"Author annual",author_pass:"Live updates",repo_extend:"Extended expiration",repo_never:"Never expire",repo_slot:"Extra repository",repo_pack:"Paper pack",conference_workshop:"Workshop",conference:"Conference",conference_large:"Large conference"};function $u(e){return Object.entries(e||{}).filter(([,t])=>t).sort((t,s)=>s[1]-t[1]).map(([t,s])=>{let i=Cg.includes(t)?s:s/100;try{return new Intl.NumberFormat(void 0,{style:"currency",currency:t.toUpperCase(),minimumFractionDigits:i%1?2:0,maximumFractionDigits:2}).format(i)}catch{return i+" "+t.toUpperCase()}})}var Wu=function(e,t,s){let i=Ct();if(e.Math=Math,e.watch("user.status",()=>{e.user==null&&s.url("/")}),e.user==null){s.url("/");return}e.families=_u,e.periods=[{id:"7d",label:"7 days"},{id:"30d",label:"30 days"},{id:"90d",label:"90 days"},{id:"12m",label:"12 months"},{id:"all",label:"All time"}];let o=(()=>{try{return localStorage.getItem("admin.billing.period")}catch{return null}})();e.period=e.periods.some(h=>h.id===o)?o:"30d",e.summary=null,e.summaryError=null,e.summaryLoading=!0,e.periodLabel=()=>(e.periods.find(h=>h.id===e.period)||{}).label||"",e.periodPhrase=()=>e.period==="all"?"all time":"last "+e.periodLabel(),e.money=h=>$u(h),e.moneyText=(h,w="\u2014")=>$u(h).join(" \xB7 ")||w,e.revenueOn=()=>!!e.summary?.revenue?.available,e.planName=h=>((e.summary?.plans||[]).find(w=>w.planId===h)||{}).name||Eg[h]||h,e.bucketTotal=h=>h?h.subscription+h.repository+h.conference:0,e.chartMax=()=>{let h=Math.max(0,...(e.summary?.series||[]).map(e.bucketTotal));if(h<=4)return 4;let w=Math.pow(10,Math.floor(Math.log10(h)));return[1,1.2,1.5,2,2.5,3,4,5,6,8,10].map(R=>R*w).find(R=>R>=h&&R%2===0)||10*w},e.segmentPct=(h,w)=>h&&h[w]?h[w]/e.chartMax()*100:0,e.familyTotal=h=>(e.summary?.series||[]).reduce((w,R)=>w+R[h],0),e.bucketLabel=h=>{if(!h)return"";let w=new Date(h.date),R={timeZone:"UTC",day:"numeric",month:"short"};return e.summary?.bucket==="month"?w.toLocaleDateString(void 0,{timeZone:"UTC",month:"short",year:"numeric"}):((e.period==="12m"||e.period==="all"||w.getUTCFullYear()!==new Date().getUTCFullYear())&&(R.year="numeric"),(e.summary?.bucket==="week"?"Week of ":"")+w.toLocaleDateString(void 0,R))},e.bucketTip=h=>{let w=e.bucketTotal(h);if(!w)return e.bucketLabel(h)+": no sales";let R=_u.filter(S=>h[S.id]).map(S=>h[S.id]+" "+S.label.toLowerCase());return e.bucketLabel(h)+": "+w+(w===1?" sale":" sales")+" ("+R.join(", ")+")"},e.bucketName=()=>({day:"day",week:"week",month:"month"})[e.summary?.bucket]||"day",e.seriesSales=()=>(e.summary?.series||[]).reduce((h,w)=>h+e.bucketTotal(w),0),e.plansWithActivity=()=>(e.summary?.plans||[]).filter(h=>h.active||h.allTimeSales||h.sales),e.planTotals=()=>{let h=w=>(e.summary?.plans||[]).reduce((R,S)=>R+(S[w]||0),0);return{active:h("active"),sales:h("sales"),allTimeSales:h("allTimeSales")}},e.webhookState=()=>{let h=e.summary?.webhooks;return h?h.failed||h.reconciliationFailed?"bad":h.oldestPendingSeconds>900||h.unreviewedRevocations?"warn":"ok":"ok"},e.age=h=>h?qn(h*1e3):"\u2014";let r=0;e.loadSummary=()=>{let h=++r;e.summaryLoading=!0,e.summaryError=null,t.get("/api/admin/billing/summary",{params:{period:e.period}}).then(w=>{if(h!==r)return;e.summaryLoading=!1;let R=w.data;if(!R||!R.subscriptions||!R.sales||!Array.isArray(R.plans)){e.summaryError="The billing summary had an unexpected format.";return}e.summary=R},w=>{h===r&&(e.summaryLoading=!1,e.summaryError=w&&w.data&&w.data.error||"Could not load billing figures.")})},e.setPeriod=h=>{if(e.period!==h){e.period=h;try{localStorage.setItem("admin.billing.period",h)}catch{}e.loadSummary()}},e.grants=[],e.total=-1,e.totalPage=0,e.stateCounts={},e.statuses=[],e.grantsError=null,e.filtersOpen=!1,e.query={page:1,limit:25,search:"",plan:"",status:"",state:"",sort:"purchasedAt",direction:"desc"};let d=s.search();d.search&&(e.query.search=d.search),e.stateView=()=>e.query.state||"all",e.setStateView=h=>{e.query.state=h==="all"?"":h,e.query.page=1},e.stateCount=h=>h==="all"?["active","expired","revoked"].reduce((w,R)=>w+(e.stateCounts[R]||0),0):e.stateCounts[h]||0,e.sortBy=h=>{e.query.sort===h?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=h,e.query.direction="desc"),e.query.page=1},e.sortIcon=h=>e.query.sort===h?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"",e.chips=[];let p=()=>{let h=[];e.query.plan&&h.push({key:"plan",label:"Plan",value:e.planName(e.query.plan)}),e.query.status&&h.push({key:"status",label:"Stripe status",value:e.query.status.replace(/_/g," ")}),e.chips=h};e.clearFilter=h=>{e.query[h]="",e.query.page=1},e.filterPlan=h=>{Object.assign(e.query,{plan:h,page:1});let w=document.getElementById("bl-grants");w&&w.scrollIntoView&&w.scrollIntoView({behavior:"smooth",block:"start"})},e.clearFilters=()=>Object.assign(e.query,{search:"",plan:"",status:"",state:"",page:1}),e.hasFilters=()=>!!(e.query.search||e.query.plan||e.query.status||e.query.state),e.statusText=h=>(h.status||"unknown").replace(/_/g," "),e.revocationText=h=>h==="dispute"?"Disputed":h==="full_refund"?"Refunded":"Revoked",e.scopeHref=h=>h?.kind==="repo"?"/admin/repositories?search="+encodeURIComponent(h.id):h?.kind==="conference"?"/conference/"+encodeURIComponent(h.id):null;let u=0;function y(){let h=++u;e.grantsError=null;let w=Object.fromEntries(Object.entries(e.query).filter(([,R])=>R!==""&&R!=null));t.get("/api/admin/billing/grants",{params:w}).then(R=>{h===u&&(e.total=R.data?.total??0,e.totalPage=Math.ceil(e.total/e.query.limit),e.grants=R.data?.results||[],e.stateCounts=R.data.stateCounts||{},e.statuses=R.data.statuses||[])},R=>{h===u&&(e.grantsError=R&&R.data&&R.data.error||"Could not load subscriptions and purchases.")})}e.reloadGrants=y,e.loadSummary(),y(),p();let m=null,b=JSON.stringify({...e.query,page:0});e.watch("query",()=>{let h=JSON.stringify({...e.query,page:0});if(h!==b&&e.query.page!==1){b=h,e.query.page=1;return}b=h,i.timeout.cancel(m),m=i.timeout(y,300),p()},!0)},Ku=function(e,t,s){if(e.user==null){s.url("/");return}e.emailRows=[],e.emailState="",e.emailKind="",e.emailLoading=!1,e.emailError="",e.emailNextCursor=null,e.emailStatusLabel=o=>({sending:"Outcome pending",accepted:"Accepted",rejected:"Rejected",unknown:"Unknown outcome"})[o]||o,e.emailKindLabel=o=>o==="repository-expiration"?"Repository expiration":"GitHub access",e.emailTime=o=>o?new Date(o).toLocaleString():"Not recorded";let i=0;e.loadEmails=async(o=!1)=>{let r=++i;e.emailLoading=!0,e.emailError="",o||(e.emailRows=[],e.emailNextCursor=null);try{let d=await t.get("/api/admin/emails",{params:{state:e.emailState||void 0,kind:e.emailKind||void 0,before:o?e.emailNextCursor:void 0}});if(r!==i)return;e.emailRows=o?e.emailRows.concat(d.data.entries):d.data.entries,e.emailNextCursor=d.data.nextCursor}catch{r===i&&(e.emailError="Could not load email history. Try again.")}finally{r===i&&(e.emailLoading=!1)}},e.loadEmails()};var ka=(e,t,s)=>{let i=e instanceof RegExp?Yu(e,s):e,o=t instanceof RegExp?Yu(t,s):t,r=i!==null&&o!=null&&Ng(i,o,s);return r&&{start:r[0],end:r[1],pre:s.slice(0,r[0]),body:s.slice(r[0]+i.length,r[1]),post:s.slice(r[1]+o.length)}},Yu=(e,t)=>{let s=t.match(e);return s?s[0]:null},Ng=(e,t,s)=>{let i,o,r,d,p,u=s.indexOf(e),y=s.indexOf(t,u+1),m=u;if(u>=0&&y>0){if(e===t)return[u,y];for(i=[],r=s.length;m>=0&&!p;){if(m===u)i.push(m),u=s.indexOf(e,m+1);else if(i.length===1){let b=i.pop();b!==void 0&&(p=[b,y])}else o=i.pop(),o!==void 0&&o=0?u:y}i.length&&d!==void 0&&(p=[r,d])}return p};var Xu="\0SLASH"+Math.random()+"\0",Qu="\0OPEN"+Math.random()+"\0",Na="\0CLOSE"+Math.random()+"\0",Ju="\0COMMA"+Math.random()+"\0",Zu="\0PERIOD"+Math.random()+"\0",Rg=new RegExp(Xu,"g"),Ag=new RegExp(Qu,"g"),Pg=new RegExp(Na,"g"),Dg=new RegExp(Ju,"g"),Tg=new RegExp(Zu,"g"),Og=/\\\\/g,Ig=/\\{/g,Mg=/\\}/g,Vg=/\\,/g,qg=/\\\./g,_g=1e5,$g=4e6,Lg=1e3,Fg=1e3;function Ca(e){return isNaN(e)?e.charCodeAt(0):parseInt(e,10)}function Ug(e){return e.replace(Og,Xu).replace(Ig,Qu).replace(Mg,Na).replace(Vg,Ju).replace(qg,Zu)}function Bg(e){return e.replace(Rg,"\\").replace(Ag,"{").replace(Pg,"}").replace(Dg,",").replace(Tg,".")}function Ea(e,t){for(let s=0;s=t}function $o(e,t,s,i,o,r){let d=[],p=0;for(let u=0;u=i)return d;let m=e[u]+t+s[y];if(!(r&&!m)){if(p+m.length>o)return d;d.push(m),p+=m.length}}return d}function Kg(e,t,s,i){let o=e.split(/\.\./),r=[];if(o[0]===void 0||o[1]===void 0)return r;let d=Ca(o[0]),p=Ca(o[1]),u=Math.max(o[0].length,o[1].length),y=o.length===3&&o[2]!==void 0?Math.max(Math.abs(Ca(o[2])),1):1,m=Gg;p0){let v=new Array(N+1).join("0");R<0?S="-"+v+S.slice(1):S=v+S}}if(w+S.length>i)break;r.push(S),w+=S.length}return r}function Sa(e,t,s,i,o,r,d){if(o>i)return[e];let p=[""],u=0,y=!1,m=!0;for(;;){let b=ka("{","}",e);if(!b)return $o(p,e,[""],t,s,y);let h=b.pre;if(/\$$/.test(h)){if(p=$o(p,h+"{"+b.body+"}",[""],t,s,y&&!b.post.length),m=!1,!b.post.length)break;e=b.post;continue}let w=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(b.body),R=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(b.body),S=w||R,N=b.body.indexOf(",")>=0;if(!S&&!N){if(u=t||V+X.length>s)break e;v.push(X),V+=X.length}}}}if(p=$o(p,h,v,t,s,y&&!b.post.length),!b.post.length)break;e=b.post}return p}var Yg={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}"],"[:alpha:]":["\\p{L}\\p{Nl}"],"[:ascii:]":["\\x00-\\x7f"],"[:blank:]":["\\p{Zs}\\t"],"[:cntrl:]":["\\p{Cc}"],"[:digit:]":["\\p{Nd}"],"[:graph:]":["\\p{Z}\\p{C}",!0],"[:lower:]":["\\p{Ll}"],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}\\p{S}"],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f"],"[:upper:]":["\\p{Lu}"],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}"],"[:xdigit:]":["A-Fa-f0-9"]},Lo=e=>e.replace(/[[\]\\-]/g,"\\$&"),Ra=/$./,ec=(e,t,s=!1,i)=>{let o=v=>{let E=i?v.normalize(i):v;return[...E].length===1?E:v},r=t;if(e.charAt(r)!=="[")throw new Error("not in a brace expression");let d=[],p=[],u=r+1,y=!1,m=!1,b=!1,h=r,w="";e:for(;uw.codePointAt(0)?d.push(Lo(w)+"-"+Lo(E)):E===w&&d.push(Lo(E)),w="",u+=v.length;continue}if(e.startsWith("-]",u+v.length)){d.push(Lo(E+"-")),u+=v.length+1;continue}if(e.startsWith("-",u+v.length)){w=E,u+=v.length+1;continue}d.push(Lo(E)),u+=v.length}if(h({t:"lit",ch:e}),Qg=e=>e.replace(/[\\^$.*+?()[\]{}|/]/g,"\\$&"),oc=e=>new RegExp(`^${Qg(e)}$`,"iu"),Ji=new Map,ic=e=>{let t=Ji.get(e);return t||(t=oc(e),Ji.size>=1e3&&Ji.clear(),Ji.set(e,t)),t},Ma=(e,t)=>{if(t===e.ch)return!0;if(!e.re)return!1;let s=t.charCodeAt(0);if(s>=128)return e.re.test(t);let i=e.ascii??(e.ascii=new Uint8Array(128));return i[s]||(i[s]=e.re.test(t)?1:2),i[s]===1},Jg=(e,t,s,i)=>{let o=[];for(let r=0;r{let t=new Map,s=[];return e.forEach((i,o)=>{i.t==="open"?s.push(o):i.t==="close"&&s.length&&t.set(s.pop(),o)}),t},rc=(e,t,s,i,o)=>{let r=[],d=[r];for(let p=s;p{let s=[],i="",o=()=>{for(let r of i.normalize(t))s.push(us(r));i=""};for(let r of e){if(r.t==="lit"){i+=r.ch;continue}o(),s.push(r.t==="ext"?{...r,alts:r.alts.map(d=>ac(d,t))}:r)}return o(),s},xg=(e,t)=>{let s=1,i=p=>({t:"split",id:s++,out:p}),o=(p,u)=>p.reduceRight((y,m)=>r(m,y),u),r=(p,u)=>{switch(p.t){case"lit":let h=t?ic(p.ch):void 0;return{t:"lit",id:s++,ch:p.ch,re:h,next:u};case"any":case"star":return{t:p.t,id:s++,next:u};case"class":return{t:"class",id:s++,re:p.re,next:u}}let y=h=>p.alts.map(w=>o(w,h));switch(p.type){case"@":return i(y(u));case"?":return i([u,...y(u)]);case"!":return{t:"neg",id:s++,sub:i(y(Aa)),next:u}}let m=i([]),b=i(y(m));return m.out.push(u,b),p.type==="*"?m:b};return[o(e,Aa),s]},ev=e=>{let t=[],s=new Set,i=r=>r.t==="match"?"match":String(r.id),o=(r,d)=>{if(r.t==="match"||s.has(r))return;s.add(r);let p=u=>t.push(`${d}${r.id}: ${u}`);switch(r.t){case"split":p(`split -> ${r.out.map(i).join(", ")}`);for(let u of r.out)o(u,d);return;case"neg":return p(`!(${i(r.sub)}) -> ${i(r.next)}`),o(r.sub,d+" "),o(r.next,d);case"lit":p(`${JSON.stringify(r.ch)} -> ${i(r.next)}`);break;case"class":p(`${r.re} -> ${i(r.next)}`);break;default:p(`${r.t==="any"?"?":"*"} -> ${i(r.next)}`)}o(r.next,d)};return o(e,""),[`start -> ${i(e)}`,...t].join(` +`)},Pa=class{constructor(t){xe(this,"gen");xe(this,"threads",[]);xe(this,"match",!1);xe(this,"runs",[]);xe(this,"ids",[]);this.gen=t}get dead(){return!this.threads.length&&!this.match&&!this.runs.length}},lc=(e,t)=>e.ids.length!==t.ids.length||e.runs.length!==t.runs.length||e.ids.some((s,i)=>s!==t.ids[i])?!1:e.runs.every(s=>t.runs.some(i=>i.neg===s.neg&&lc(i.state,s.state))),tc=e=>({has:new Float64Array(e),seen:new Float64Array(e),gen:0}),cs,Bn,Da,Ta,Uo=class{constructor(t,s,i){qe(this,Bn);xe(this,"dots");xe(this,"dotStart");qe(this,cs);this.dots=t,this.dotStart=s,Le(this,cs,i)}state(){return new Pa(++re(this,cs).gen)}done(t){return t.ids=t.threads.map(s=>s.id).sort((s,i)=>s-i),t.match&&t.ids.unshift(Aa.id),t}restricted(t,s){return s&&(this.dots||this.dotStart&&t===0)}add(t,s,i,o){switch(s.t){case"split":if(!_e(this,Bn,Da).call(this,t,s))return;for(let d of s.out)this.add(t,d,i,o);return;case"neg":if(!_e(this,Bn,Da).call(this,t,s))return;let r=this.state();return this.add(r,s.sub,i,!1),this.done(r),this.addRun(t,{t:"run",neg:s,state:r},i,o);case"star":if(this.restricted(i,o))return;_e(this,Bn,Ta).call(this,t,s)&&this.add(t,s.next,i,o);return;case"match":t.match=!0;return;default:_e(this,Bn,Ta).call(this,t,s)}}addRun(t,s,i,o){for(let r of t.runs)if(r.neg===s.neg&&lc(r.state,s.state))return;t.runs.push(s),s.state.match||this.add(t,s.neg.next,i,o)}step(t,s,i,o){let r=this.state();for(let d of t.threads)switch(d.t){case"lit":Ma(d,s)&&this.add(r,d.next,i+1,o);break;case"any":this.restricted(i,o)||this.add(r,d.next,i+1,o);break;case"class":!this.restricted(i,o)&&d.re.test(s)&&this.add(r,d.next,i+1,o);break;case"star":this.restricted(i,o)||this.add(r,d,i+1,o)}if(!this.restricted(i,o))for(let d of t.runs){if(d.state.dead){this.addRun(r,d,i+1,o);continue}let p=this.step(d.state,s,i,!1);this.addRun(r,{t:"run",neg:d.neg,state:p},i+1,o)}return this.done(r)}};cs=new WeakMap,Bn=new WeakSet,Da=function(t,s){let{seen:i}=re(this,cs);return i[s.id]===t.gen?!1:(i[s.id]=t.gen,!0)},Ta=function(t,s){let{has:i}=re(this,cs);return i[s.id]===t.gen?!1:(i[s.id]=t.gen,t.threads.push(s),!0)};var dc=e=>{let t=e.ids.join();if(!e.runs.length)return t;let s=e.runs.map(i=>`${i.neg.id}(${dc(i.state)})`);return`${t}|${s.sort().join("|")}`},tv=1<<18,Bs,zs,_n,ps,$n,Ln,Fn,sn,Ia,xi,uc,Oa=class{constructor(t,s){qe(this,sn);qe(this,Bs);qe(this,zs,new Map);qe(this,_n,0);qe(this,ps);qe(this,$n);qe(this,Ln);qe(this,Fn);Le(this,Bs,t),Le(this,Ln,new Uo(!1,!1,s)),Le(this,Fn,new Uo(!1,!0,s))}start(t){if(t){if(re(this,$n))return re(this,$n);let i=re(this,Fn).state();return re(this,Fn).add(i,re(this,Bs),0,!0),Le(this,$n,_e(this,sn,Ia).call(this,re(this,Fn).done(i)))}if(re(this,ps))return re(this,ps);let s=re(this,Ln).state();return re(this,Ln).add(s,re(this,Bs),0,!0),Le(this,ps,_e(this,sn,xi).call(this,re(this,Ln).done(s)))}next(t,s){let i=s.charCodeAt(0),o=i<128?void 0:t.next.get(s);if(o)return o;let r=t===re(this,$n)?_e(this,sn,xi).call(this,re(this,Fn).step(t.state,s,0,!0)):_e(this,sn,xi).call(this,re(this,Ln).step(t.state,s,1,!0));return i<128?(t.ascii||(t.ascii=new Array(128),Le(this,_n,re(this,_n)+128)),t.ascii[i]=r):t.next.set(s,r),nl(this,_n)._++,r}};Bs=new WeakMap,zs=new WeakMap,_n=new WeakMap,ps=new WeakMap,$n=new WeakMap,Ln=new WeakMap,Fn=new WeakMap,sn=new WeakSet,Ia=function(t){return{state:t,match:t.match,dead:t.dead,next:new Map}},xi=function(t){let s=dc(t),i=re(this,zs).get(s);if(i)return i;re(this,_n)>tv&&_e(this,sn,uc).call(this);let o=_e(this,sn,Ia).call(this,t);return re(this,zs).set(s,o),Le(this,_n,re(this,_n)+(s.length+1)),o},uc=function(){re(this,zs).clear(),Le(this,_n,0),Le(this,ps,void 0),Le(this,$n,void 0)};var nv=e=>{let t=[];for(let s=e;s.t!=="match";s=s.next){if(s.t==="split"||s.t==="neg")return;t.push(s)}return t},sv=(e,t,s,i)=>{let o=0,r=s,d=-1,p=0;for(;r{let t=0,s=0;for(let i of e){let[o,r]=ov(i);t+=o,s+=r}return[t,s]},ov=e=>{if(e.t==="star")return[0,1/0];if(e.t!=="ext")return[1,1];if(e.type==="!")return[0,1/0];let t=e.alts.map(cc),s=Math.min(...t.map(r=>r[0])),i=Math.max(...t.map(r=>r[1])),o=i===0?0:1/0;return e.type==="@"?[s,i]:e.type==="?"?[0,i]:e.type==="*"?[0,o]:[s,o]},nc=(e,t,s)=>{for(let i=0;irv.test(e)?[...e]:e,sc=e=>{if(e.includes("/"))throw new Error("can only match a single path portion, got: "+e)},Un,Hs,fs,er,hs,zo,tr,ms,Ho,jo,Go,An,vn,js,Gs,Wo,nr,nn,gs,Fo,Bo=class{constructor(t,s={}){qe(this,gs);xe(this,"pattern");xe(this,"options");qe(this,Un);qe(this,Hs);qe(this,fs);qe(this,er);qe(this,hs);qe(this,zo,!1);qe(this,tr);qe(this,ms);qe(this,Ho,!1);qe(this,jo,0);qe(this,Go,1/0);qe(this,An,[]);qe(this,vn,[]);qe(this,js);qe(this,Gs);qe(this,Wo,!1);qe(this,nr);qe(this,nn);if(t.includes("/"))throw new Error("can only match a single path portion, got pattern: "+t);this.pattern=t,this.options=s;let{nocase:i=!1,noext:o=!1,normalize:r}=s;Le(this,nn,r===!0?"NFC":r||void 0);let d=/^[?*+@]\(\)$/.test(t),p=Jg(t,i,o||d,re(this,nn)),[u]=rc(p,Zg(p),0,p.length,!0);re(this,nn)&&(u=ac(u,re(this,nn)));let[y,m]=xg(u,i);if(Le(this,Un,y),Le(this,Hs,m),u.every(b=>b.t==="lit"))Le(this,hs,u.map(b=>b.ch).join("")),Le(this,zo,i);else{let b=R=>R.t!=="lit"?void 0:i?{ch:R.ch,re:ic(R.ch)}:{ch:R.ch};for(let R of u){let S=b(R);if(!S)break;re(this,An).push(S)}for(let R=u.length-1;R>=0;R--){let S=b(u[R]);if(!S)break;re(this,vn).unshift(S)}Le(this,Wo,!!(re(this,An).length||re(this,vn).length)),i||(Le(this,js,re(this,An).map(R=>R.ch).join("")),Le(this,Gs,re(this,vn).map(R=>R.ch).join(""))),Le(this,ms,nv(re(this,Un))?.slice(re(this,An).length,-re(this,vn).length||void 0)),Le(this,Ho,!!re(this,ms)?.every(R=>R.t==="star"||R.t==="any"));let[h,w]=cc(u);Le(this,jo,h),Le(this,Go,w)}}test(t){return re(this,nn)?(sc(t),_e(this,gs,Fo).call(this,t.normalize(re(this,nn)))):iv.test(t)?(sc(t),_e(this,gs,Fo).call(this,t,[...t])):_e(this,gs,Fo).call(this,t,t)}testUnchecked(t){return _e(this,gs,Fo).call(this,re(this,nn)?t.normalize(re(this,nn)):t)}toString(){return ev(re(this,Un))}};Un=new WeakMap,Hs=new WeakMap,fs=new WeakMap,er=new WeakMap,hs=new WeakMap,zo=new WeakMap,tr=new WeakMap,ms=new WeakMap,Ho=new WeakMap,jo=new WeakMap,Go=new WeakMap,An=new WeakMap,vn=new WeakMap,js=new WeakMap,Gs=new WeakMap,Wo=new WeakMap,nr=new WeakMap,nn=new WeakMap,gs=new WeakSet,Fo=function(t,s){if(re(this,hs)!==void 0)return re(this,zo)?(re(this,tr)??Le(this,tr,oc(re(this,hs)))).test(t):t===re(this,hs);let i=re(this,jo),o=re(this,Go);if(s===void 0){let m=t.length,b=m+1>>1;if(mo)return!1;(bo)&&(s=Zi(t))}if(s!==void 0&&(s.lengtho))return!1;let r=re(this,An).length;if(re(this,Wo))if(re(this,js)!==void 0&&re(this,Gs)!==void 0){if(!t.startsWith(re(this,js))||!t.endsWith(re(this,Gs)))return!1}else{s??(s=Zi(t));let m=s.length-re(this,vn).length;if(!nc(re(this,An),s,0)||!nc(re(this,vn),s,m))return!1}let d=!this.options.dot&&t.startsWith(".");if(re(this,ms)){if(t==="."||t===".."||d&&!r)return!1;if(re(this,Ho))return!0;s??(s=Zi(t));let m=s.length-re(this,vn).length;return sv(re(this,ms),s,r,m)}if(s??(s=Zi(t)),t==="."||t===".."){re(this,fs)??Le(this,fs,tc(re(this,Hs)));let m=re(this,er)??Le(this,er,new Uo(!0,!1,re(this,fs))),b=m.state();m.add(b,re(this,Un),0,!0);let h=m.done(b);for(let w=0;w{if(typeof e!="string")throw new TypeError("invalid pattern");if(e.length>65536)throw new TypeError("pattern is too long")};var zn=(e,{windowsPathsNoEscape:t=!1,magicalBraces:s=!1}={})=>s?t?e.replace(/[?*()[\]{}]/g,"[$&]"):e.replace(/[?*()[\]\\{}]/g,"\\$&"):t?e.replace(/[?*()[\]]/g,"[$&]"):e.replace(/[?*()[\]\\]/g,"\\$&");var vs=(e,{windowsPathsNoEscape:t=!1,magicalBraces:s=!0}={})=>s?t?e.replace(/\[([^/\\])\]/g,"$1"):e.replace(/((?!\\).|^)\[([^/\\])\]/g,"$1$2").replace(/\\([^/])/g,"$1"):t?e.replace(/\[([^/\\{}])\]/g,"$1"):e.replace(/((?!\\).|^)\[([^/\\{}])\]/g,"$1$2").replace(/\\([^/{}])/g,"$1");var zt=(e,t,s={})=>(Ko(t),!s.nocomment&&t.charAt(0)==="#"?!1:lv(t,s).match(e)),Ws=new Map,av=256,lv=(e,t)=>{let s=e+"\0"+JSON.stringify(t),i=Ws.get(s);return i?Ws.delete(s):(i=new ys(e,{...t}),Ws.size>=av&&Ws.delete(Ws.keys().next().value)),Ws.set(s,i),i},vc=typeof process=="object"&&process?process.env?.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",pc={win32:{sep:"\\"},posix:{sep:"/"}},dv=vc==="win32"?pc.win32.sep:pc.posix.sep;zt.sep=dv;var vt=Symbol("globstar **");zt.GLOBSTAR=vt;var uv=(e,t={})=>s=>zt(s,e,t);zt.filter=uv;var Pn=(e,t={})=>Object.assign({},e,t),cv=e=>{if(!e||typeof e!="object"||!Object.keys(e).length)return zt;let t=zt;return Object.assign((i,o,r={})=>t(i,o,Pn(e,r)),{Minimatch:class extends t.Minimatch{constructor(o,r={}){super(o,Pn(e,r))}static defaults(o){return t.defaults(Pn(e,o)).Minimatch}},unescape:(i,o={})=>t.unescape(i,Pn(e,o)),escape:(i,o={})=>t.escape(i,Pn(e,o)),filter:(i,o={})=>t.filter(i,Pn(e,o)),defaults:i=>t.defaults(Pn(e,i)),braceExpand:(i,o={})=>t.braceExpand(i,Pn(e,o)),match:(i,o,r={})=>t.match(i,o,Pn(e,r)),sep:t.sep,GLOBSTAR:vt})};zt.defaults=cv;var yc=(e,t={})=>(Ko(e),t.nobrace||!/\{(?:(?!\{).)*\}/.test(e)?[e]:xu(e,{max:t.braceExpandMax}));zt.braceExpand=yc;var pv=(e,t,s={})=>{let i=new ys(t,s);return e=e.filter(o=>i.match(o)),i.options.nonull&&!e.length&&e.push(t),e};zt.match=pv;var fc=/[?*]|[+@!]\(.*?\)|\[|\]/,bc=(e,t)=>{let s=t+1;(e.charAt(s)==="!"||e.charAt(s)==="^")&&s++;let i=!1;for(;s{if(!t&&(e==="+()"||e==="@()"))return e;let s="";for(let i=0;i{if(/^[?*+@]\(\)$/.test(e)||e.includes("[:"))return!1;let t=0;for(let s=0;stypeof e=="string"?t===e:t!==""&&e.testUnchecked(t),mc=(e,t,s,i,o)=>Hn(e,t)?s:i!==void 0&&Hn(e,i)?o:-1,La=e=>e==="."||e==="..",qa=e=>typeof e=="string"&&/^[a-z]:$/i.test(e),or=e=>typeof e=="string"&&/^unc$/i.test(e),_a=e=>{if(e[0]!==""||e[1]!=="")return-1;let t=e[2]!=="?"?2:or(e[3])?4:-1,s=e[t],i=e[t+1];return t!==-1&&s!==void 0&&s!==""&&s!==vt&&i!==void 0&&i!==""&&i!==vt?t:-1},sr=(e,t)=>!La(e)&&(t||!e.startsWith(".")),Yo=(e,t,s,i,o)=>{for(let r=t;r=s||rr(e.charCodeAt(p),o))return!0}let d=Fa(e,r,o);if(d===-1)return!1;for(r=d+1;rt==="/"?e===47:t==="\\"?e===92:e===47||e===92,Fa=(e,t,s)=>{if(s!=="both")return e.indexOf(s,t);let i=e.indexOf("/",t),o=e.indexOf("\\",t);return i===-1?o:o===-1?i:Math.min(i,o)},gc=(e,t,s)=>s!=="both"?e.lastIndexOf(s,t):Math.max(e.lastIndexOf("/",t),e.lastIndexOf("\\",t)),$a={},jn,Ys,Gn,Dn,Xs,Qs,Wn,Qo,Js,Jo,$e,ir,Xo,wc,kc,Cc,Ec,Sc,Nc,Ua,Rc,Ac,Ba,Ks,za,ys=class{constructor(t,s={}){qe(this,$e);xe(this,"options");xe(this,"set");xe(this,"pattern");xe(this,"windowsPathsNoEscape");xe(this,"nonegate");xe(this,"negate");xe(this,"comment");xe(this,"empty");xe(this,"preserveMultipleSlashes");xe(this,"partial");xe(this,"globSet");xe(this,"globParts");xe(this,"nocase");xe(this,"isWindows");xe(this,"platform");xe(this,"windowsNoMagicRoot");xe(this,"maxGlobstarRecursion");qe(this,jn);qe(this,Ys);qe(this,Gn);qe(this,Dn);qe(this,Xs,[]);qe(this,Qs,[]);qe(this,Wn,[]);qe(this,Qo,new Map);qe(this,Js,!1);qe(this,Jo,new WeakMap);Ko(t),s=s||{},this.options=s,this.maxGlobstarRecursion=s.maxGlobstarRecursion??200,this.pattern=t,this.platform=s.platform||vc,this.isWindows=this.platform==="win32";let i="allowWindowsEscape";this.windowsPathsNoEscape=!!s.windowsPathsNoEscape||s[i]===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,"/")),this.preserveMultipleSlashes=!!s.preserveMultipleSlashes,this.negate=!1,this.nonegate=!!s.nonegate,this.comment=!1,this.empty=!1,this.partial=!!s.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=s.windowsNoMagicRoot!==void 0?s.windowsNoMagicRoot:!!(this.isWindows&&this.nocase),this.globSet=[],this.globParts=[],this.set=[],Le(this,jn,!this.preserveMultipleSlashes),Le(this,Gn,(s.optimizationLevel??1)>=2);let o=s.normalize;Le(this,Dn,o===!0?"NFC":o||void 0),this.make();let r=this.set.map(d=>_e(this,$e,Xo).call(this,d));Le(this,Wn,this.set.map((d,p)=>re(this,jn)&&d.length-1>r[p])),Le(this,Xs,this.set.map((d,p)=>{let u=re(this,Wn)[p]?d.length-1:d.length,y=d.slice(r[p]+1,u).filter(m=>typeof m=="string"&&!!m);return[...new Set(y)]})),Le(this,Ys,re(this,Xs).some(d=>d.length)),Le(this,Qs,this.set.map((d,p)=>{let[u,y,m]=d;if(re(this,Wn)[p]&&d.length===2&&u===vt&&y!==vt)return"tail";if(re(this,Wn)[p]&&s.matchBase&&d.length===1&&u!==vt&&u!=="")return"base";if(!(!re(this,jn)||r[p]!==-1)){if(d.length===3&&u===vt&&m===vt&&y!==vt&&y!==""&&this.maxGlobstarRecursion>0)return"mid";if(d.length===2&&y===vt&&u!==vt&&u!=="")return"head"}}))}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let t of this.set)for(let s of t)if(typeof s!="string")return!0;return!1}make(){let t=this.pattern,s=this.options;if(!s.nocomment&&t.charAt(0)==="#"){this.comment=!0;return}if(!t){this.empty=!0;return}this.parseNegate(),this.globSet=[...new Set(this.braceExpand())];let i=this.globSet.map(r=>_e(this,$e,za).call(this,r));this.globParts=this.preprocess(i),Le(this,Js,!0);let o=this.globParts.map((r,d,p)=>{if(this.isWindows&&this.windowsNoMagicRoot){let u=r[2]==="?"&&or(r[3])?6:4,y=r[0]===""&&r[1]===""&&(r[2]==="?"||!fc.test(r[2]))&&r.slice(3,u).every(b=>!fc.test(b)),m=/^[a-z]:/i.test(r[0]);if(y)return[...r.slice(0,u).map(b=>_e(this,$e,ir).call(this,b)),...r.slice(u).map(b=>this.parse(b))];if(m)return[_e(this,$e,ir).call(this,r[0]),...r.slice(1).map(b=>this.parse(b))]}return r.map(u=>this.parse(u))});if(this.set=o.filter(r=>r.indexOf(!1)===-1),this.isWindows)for(let r=0;r{for(let p=0;pi.length));for(let i=0;i{if(!(d[i]instanceof Bo||d[i]===$a)||!hv(this.globParts[p][i]))return;let u=[...this.globParts[p]];u[i]="";let y=`${d.length}/${u.join("/")}`,m=o.get(y);m?m.push(p):o.set(y,[p])});let r=new Set;for(let d of o.values()){if(d.length<2)continue;let[p,...u]=d,m=`@(${d.map(b=>this.globParts[b][i]).join("|")})`;this.globParts[p][i]=m,this.set[p][i]=this.parse(m);for(let b of u)r.add(b)}r.size&&(t=!0,this.set=this.set.filter((d,p)=>!r.has(p)),this.globParts=this.globParts.filter((d,p)=>!r.has(p)))}}}preprocess(t){if(this.options.noglobstar)for(let i of t)for(let o=0;o=2?(t=this.firstPhasePreProcess(t),t=this.secondPhasePreProcess(t)):s>=1?t=this.levelOneOptimize(t):t=this.adjascentGlobstarOptimize(t),t}adjascentGlobstarOptimize(t){return t.map(s=>{let i=-1;for(;(i=s.indexOf("**",i+1))!==-1;){let o=i;for(;s[o+1]==="**";)o++;o!==i&&s.splice(i,o-i)}return s})}levelOneOptimize(t){return t.map(s=>{let i=_e(this,$e,Xo).call(this,s)+1;return s=s.reduce((o,r)=>{let d=o[o.length-1];return r==="**"&&d==="**"?o:r===".."&&o.length>i&&d&&d!==".."&&d!=="."&&d!=="**"?(o.pop(),o):(o.push(r),o)},[]),s.length===0?[""]:s})}firstPhasePreProcess(t){let{braceExpandMax:s=1e5}=this.options,i=!1;do{i=!1;for(let o of t){let r=-1;for(;(r=o.indexOf("**",r+1))!==-1;){let u=r;for(;o[u+1]==="**";)u++;u>r&&o.splice(r+1,u-r);let y=o[r+1],m=o[r+2],b=o[r+3];if(y!==".."||!m||m==="."||m===".."||!b||b==="."||b===".."||t.length>=s)continue;i=!0,o.splice(r,1);let h=o.slice(0);h[r]="**",t.push(h),r--}if(!this.preserveMultipleSlashes){for(let u=1;u1e3)return t;for(let s=0;ss.length)}partsMatch(t,s,i=!1){let o=0,r=0,d=[],p="";for(;o=0;y--)u=r[y];for(let y=0;y=0){let v=S;for(;v>0&&rr(t.charCodeAt(v-1),s);)v--;p=v===0?0:gc(t,v-1,s)+1,d=t.slice(p,v)}let N=re(this,Gn)&&(La(o)||o===""&&d!==void 0&&La(d));i=N?-1:1,h=!N}let w=-1;if(h&&typeof b=="string"&&(w=mc(b,o,r,d,p),w===-1))continue;if(re(this,Ys)){for(let S of re(this,Xs)[y])if(!t.includes(S))continue e}if(h&&typeof b=="object"&&(w=mc(b,o,r,d,p),w===-1))continue;let R=re(this,Qs)[y];if(R==="base"&&h)return"yes";if(R==="tail"&&h){if(re(this,Gn)&&Yo(t,0,w,!0,s))return"maybe";if(!Yo(t,0,w,u,s))return"yes";continue}if(R==="mid"||R==="head"){let S=_e(this,$e,Cc).call(this,t,m,R==="head",u,s);if(S!=="no")return S;continue}return"maybe"}return"no"},kc=function(t,s,i){let o=!!this.options.dot,r=t.length;if(i==="head"){if(r<2||!Hn(s[0],t[0]))return!1;for(let p=1;pp&&d.testUnchecked(t.slice(p,u)))&&!Yo(t,y,t.length,o,r))return"yes";if(i||Yo(t,p,y,o,r))return"no";p=y}return"no"},Ec=function(t){let s=Va;return s?.f===t&&s.isWindows===this.isWindows&&s.preserveMultipleSlashes===this.preserveMultipleSlashes&&s.normalize===re(this,Dn)?s:void 0},Sc=function(t){let{isWindows:s,preserveMultipleSlashes:i}=this,o=_e(this,$e,za).call(this,s?t.split("\\").join("/"):t),r=re(this,Dn);return r&&(o=o.map(d=>d.normalize(r))),Va={f:t,isWindows:s,preserveMultipleSlashes:i,normalize:r,parts:o},Va},Nc=function(t){let s=[...t],i=!1;do{if(i=!1,!this.preserveMultipleSlashes){for(let d=1;dt.length)return!1;let b=t.length-u.length;if(_e(this,$e,Ks).call(this,t,u,i,b,0))m=u.length;else{if(t[t.length-1]!==""||o+u.length===t.length||(b--,!_e(this,$e,Ks).call(this,t,u,i,b,0)))return!1;m=u.length+1}}if(!p.length){let b=!!m;for(let h=o;h{v[1]=R-S[E]});let N={head:y,body:m,tail:b,segments:h};return o[r]=N,N},Ba=function(t,s,i,o,r,d,p,u,y){let m=s[r];if(!m){if(d)return o>=i||o===i-1&&t[o]==="";for(let R=o;Re.lastIndexOf(t)===s)}function ja(e){let t=(e||[]).filter(s=>typeof s=="string"&&s.length>0).map(s=>{let{negated:i,anchored:o,directoryOnly:r,body:d}=mv(s);return{negated:i,directoryOnly:r,matcher:new ys(d,{dot:!0,nonegate:!0,nocomment:!0,matchBase:!o&&!d.includes("/")})}});return(s,i=!1)=>{let o=(s||"").replace(/^\/+/,"");if(!o)return!1;let r=o.split("/"),d=r.slice(0,-1).map((u,y)=>r.slice(0,y+1).join("/")),p=i;for(let u of t){if(u.negated?!p:p)continue;(u.directoryOnly?d:[...d,o]).some(m=>u.matcher.match(m))&&(p=!u.negated)}return p}}var Wx=new Set("^$\\.*+?()[]{}|/dDsSwWbBnrtvf0cxupP".split(""));function Ga(e){let t=e.indexOf("=>");if(t<0)return{term:e,replacement:null};let s=e.slice(0,t).replace(/\s+$/,""),i=e.slice(t+2).replace(/^\s+/,"");return s?{term:s,replacement:i}:{term:e,replacement:null}}var Pc=new Set(["*","+","?","(",")","[","]","{","}","|","^","$"]);function Dc(e){let t=[];return String(e||"").split(` +`).forEach((s,i)=>{let{term:o}=Ga(s.trim());if(!o)return;let r=[];for(let d=0;d{let t=e.target;if(!t||t.tagName!=="IMG"||t.dataset.failed||!t.closest?.(".markdown-body, .anonymize-preview-body"))return;t.dataset.failed="1";let s=window.document.createElement("span"),i=parseInt(t.getAttribute("width"),10)||0,o=parseInt(t.getAttribute("height"),10)||0;s.className=i>=200||o>=120?"img-unavailable is-large":"img-unavailable",s.textContent="Image unavailable",s.title=t.alt?"Image unavailable: "+t.alt.replace(/\bXXXX-(\d+)\b/g,"[redacted term $1]"):"Image unavailable",s.setAttribute("role","img"),s.setAttribute("aria-label",s.title),t.replaceWith(s)},!0);function ar(e){let t=e?.data;if(typeof t=="string")try{t=JSON.parse(t)}catch{t=null}return typeof t?.error=="string"&&Object.prototype.hasOwnProperty.call(Kn.ERRORS,t.error)?t.error:e?.status===-1||e?.status===0?"request_error":[502,503,504].includes(e?.status)?"unreachable":"unknown_error"}var lr="XXXX",mv=e=>{lr=e||"XXXX"},gv=(e=lr)=>{if(!e)return null;let t=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(t+"(?:-\\d+)?","g")},Tc=(e,t=lr)=>{let s=gv(t);if(!s||!e||!e.textContent.includes(t))return;let i=e.ownerDocument,o=i.createTreeWalker(e,NodeFilter.SHOW_TEXT),r=[];for(;o.nextNode();)r.push(o.currentNode);for(let d of r){let p=d.nodeValue,u=d.parentElement;if(!p.includes(t)||!u||u.closest("script, style, mark.redaction, .mermaid"))continue;let y=u.closest('code[class*="language-"]');if(y&&!y.contains(e))continue;let m=i.createDocumentFragment(),b=0;for(let h of p.matchAll(s)){m.append(p.slice(b,h.index));let w=i.createElement("mark");w.className="redaction",w.title="Redacted by Anonymous GitHub",w.textContent=h[0],m.append(w),b=h.index+h[0].length}m.append(p.slice(b)),d.replaceWith(m)}},Zo=/\bXXXX-\d+\b/g,_o=function(e){if(!e||e.indexOf("XXXX-")===-1||typeof window.DOMParser!="function")return e;let t=new window.DOMParser().parseFromString("
"+e+"
","text/html"),s=t.createTreeWalker(t.body,4),i=[];for(;s.nextNode();)Zo.lastIndex=0,!s.currentNode.parentElement?.closest("pre code")&&Zo.test(s.currentNode.nodeValue)&&i.push(s.currentNode);for(let o of i){Zo.lastIndex=0;let r=t.createDocumentFragment(),d=0,p,u=o.nodeValue;for(;p=Zo.exec(u);){r.appendChild(t.createTextNode(u.slice(d,p.index)));let y=t.createElement("mark");y.className="redact-chip",y.setAttribute("title","Redacted term "+p[0].slice(5)+" \u2014 the same term everywhere in this snapshot");let m=p[0].slice(5);y.textContent="";let b=t.createElement("i");b.textContent=m,y.appendChild(b),y.dataset.term=p[0],y.setAttribute("aria-label","Redacted term "+m);let h=/^[.,;:!?)\]]+/.exec(u.slice(p.index+p[0].length));if(h){let w=t.createElement("span");w.className="redact-glue",w.appendChild(y),w.appendChild(t.createTextNode(h[0])),r.appendChild(w),d=p.index+p[0].length+h[0].length}else r.appendChild(y),d=p.index+p[0].length}r.appendChild(t.createTextNode(u.slice(d))),o.parentNode.replaceChild(r,o)}return t.body.firstChild.innerHTML},Oc=()=>{window.Prism?.hooks&&!window.Prism.redactionHook&&(window.Prism.hooks.add("complete",e=>{Tc(e.element),e.element.querySelectorAll?.("mark.redaction").forEach(t=>{let s=/^XXXX-(\d+)$/.exec(t.textContent);if(!s)return;t.className="redact-chip",t.setAttribute("title","Redacted term "+s[1]+" \u2014 the same term everywhere in this snapshot"),t.setAttribute("aria-label","Redacted term "+s[1]),t.dataset.term=s[0],t.style.setProperty("--slot-ch",s[0].length+"ch"),t.textContent="";let i=t.ownerDocument.createElement("span");i.className="redact-src",i.textContent=s[0].slice(0,s[0].length-s[1].length),t.appendChild(i);let o=t.ownerDocument.createElement("i");o.textContent=s[1],t.appendChild(o)})}),window.Prism.redactionHook=!0)},Ic=(e,t=lr)=>{if(!e||!t||!e.includes(t))return e;let s=new DOMParser().parseFromString(""+e+"","text/html");return Tc(s.body,t),s.body.innerHTML};async function Wa(e){if(window.navigator.clipboard?.writeText){await window.navigator.clipboard.writeText(e);return}let t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="fixed",t.style.opacity="0";let s=document.activeElement;document.body.appendChild(t);try{if(t.select(),!document.execCommand?.("copy"))throw Error("Copy unavailable")}finally{t.remove(),s?.focus()}}function vv(e){if(!["ArrowLeft","ArrowRight","Home","End"].includes(e.key))return;let t=[...e.currentTarget.closest('[role="tablist"]').querySelectorAll('[role="tab"]')],s=t.indexOf(e.currentTarget),i=e.key==="Home"?0:e.key==="End"?t.length-1:(s+(e.key==="ArrowRight"?1:-1)+t.length)%t.length;e.preventDefault(),t[i]?.focus(),t[i]?.click()}var Mc=function(e,t,s,i){e.previewTabKeydown=vv,e.headerCanUpgrade=!1,e.headerShowSupport=!1,e.headerBillingPending=new URLSearchParams(window.location.search).get("billing")==="success";let o=N=>{e.headerShowSupport=!(N?.grants||[]).some(E=>["active","paid","past_due"].includes(E.status)&&new Date(E.until).getTime()>Date.now());let v=(N?.grants||[]).some(E=>["author_monthly","author_annual"].includes(E.planId)&&["active","paid","past_due"].includes(E.status)&&new Date(E.until).getTime()>Date.now());e.headerCanUpgrade=!!N?.enabled&&N.checkoutEnabled!==!1&&!v&&(N.plans||[]).some(E=>["author_monthly","author_annual"].includes(E.id))};e.on("billing:updated",(N,v)=>o(v)),e.on("billing:pending",(N,v)=>{e.headerBillingPending=v}),e.openHeaderUpgrade=()=>{s.path()==="/profile"?e.emit("settings:upgrade"):s.url("/profile?upgrade=1")};let r=Ut(),d=Ct(),p=!1,u=()=>{p=!1;let N=document.querySelector("nav.navbar.navbar-expand-lg");if(!N||(N.classList.remove("nav-fit-1","nav-fit-2"),window.innerWidth<992))return;let v=N.querySelector(".navbar-collapse"),E=()=>N.scrollWidth>N.clientWidth+1||!!v&&v.scrollWidth>v.clientWidth+1;E()&&N.classList.add("nav-fit-1"),E()&&N.classList.add("nav-fit-2")},y=()=>{p||(p=!0,tt(()=>d.timeout(u,0)))};r(window,"resize",y),e.on("routeChange",y),e.on("billing:updated",y),document.fonts?.ready&&document.fonts.ready.then(y).catch(()=>{}),e.title="Main",e.user={status:"connection"},e.site_options,e.toasts=[],e.removeToast=function(N){let v=e.toasts.indexOf(N);v!==-1&&e.toasts.splice(v,1)},e.addToast=function(N){return e.toasts.push(N),i(function(){e.removeToast(N)},8e3),N};let m=/^\/(r|repository|pr|gist)\//;e.path=s.url(),e.paths=s.path().substring(1).split("/"),e.isReviewerRoute=m.test(s.path()),e.darkMode=function(N){localStorage.setItem("darkMode",N),e.isDarkMode=N;let v="/css/prism.css";if($("link[href='/css/prism-okaidia.css']").remove(),N)$("body").addClass("dark-mode"),$(`link[href='${v}']`).remove();else if($("body").removeClass("dark-mode"),!document.querySelector(`link[href='${v}']`)){let E=document.createElement("link");E.href=v,E.rel="stylesheet",document.head.append(E)}e.emit("dark-mode",N)},e.darkMode(localStorage.getItem("darkMode")=="true"),e.emailPromptOpen=!1,e.emailPromptAddress="",e.emailPromptBusy=!1,e.emailPromptError="";let b;e.respondToEmailPrompt=async N=>{if(!e.emailPromptBusy){e.emailPromptBusy=!0,e.emailPromptError="";try{let v=await t.post("/github/connections/email",{action:N,email:e.emailPromptAddress},{headers:{"X-CSRF-Token":e.user.emailPromptCSRF}});N==="save"&&(e.user.notificationEmail=v.data.notificationEmail),e.emailPromptOpen=!1,e.user.showEmailPrompt=!1,b?.focus()}catch(v){e.emailPromptError=v.data?.error||"Unable to save your preference. Please try again."}finally{e.emailPromptBusy=!1}}};function h(){t.get("/api/user").then(N=>{N&&(e.user=N.data),y(),e.user?.username?Wi(t).then(v=>o(v.data)).catch(()=>{}):e.headerShowSupport=!0,e.user?.emailNotificationsEnabled&&e.user.showEmailPrompt&&!e.user.notificationEmail&&(b=document.activeElement,e.emailPromptOpen=!0,i(()=>{let v=document.getElementById("email-prompt");v?.showModal?v.showModal():v?.setAttribute("open",""),document.getElementById("email-prompt-address")?.focus()},0))},()=>{e.user=null,e.headerShowSupport=!0})}h();function w(){t.get("/api/options").then(N=>{N&&(e.site_options=N.data),mv(N?.data?.ANONYMIZATION_MASK),e.emit("site-options")},()=>{e.site_options=null})}w();function R(){t.get("/api/message").then(N=>{N&&(e.generalMessage=N.data)},()=>{e.generalMessage=null})}R();function S(N,v){v&&(e.title=v.title),e.path=s.url(),e.paths=s.path().substring(1).split("/"),e.isReviewerRoute=m.test(s.path())}e.on("routeChange",S),e.on("routeUpdate",S)},Vc=function(e,t){let s=Ut(),i=Ct();e.faqQuery="",e.faqResults=0;let o=d=>(d||"").toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/\s+/g," ");e.filterFaq=()=>{let d=o(e.faqQuery).trim().split(" ").filter(Boolean),p=0;document.querySelectorAll(".faq-section .panel-group").forEach(u=>{let y=0;u.querySelectorAll(":scope > .panel").forEach(h=>{let w=h.dataset.faqText||(h.dataset.faqText=o(h.textContent)),R=d.every(S=>w.includes(S));h.classList.toggle("faq-hit",d.length>0&&R),h.hidden=d.length>0&&!R,R&&y++});let m=d.length>0&&y===0;u.hidden=m;let b=u.previousElementSibling;b?.classList.contains("faq-cat")&&(b.hidden=m),p+=y}),e.faqResults=d.length?p:0},e.clearFaqSearch=()=>{e.faqQuery="",e.filterFaq(),document.getElementById("faq-search-input")?.focus()};let r=()=>{let d=window.location.hash.slice(1),p=document.getElementById(d);if(!p?.classList.contains("panel-collapse"))return;$(p).collapse("show");let u=document.getElementById(p.getAttribute("aria-labelledby"));u?.setAttribute("tabindex","-1"),u?.focus({preventScroll:!0}),u?.scrollIntoView?.({block:"start"})};e.on("routeUpdate",()=>i.timeout(r,0)),s(window,"hashchange",r),i.timeout(r,0)},qc=function(e,t,s,i,o){e.settingsTab=/(?:billing|upgrade)=/.test(window.location.search)?"billing":"defaults",e.confirmDeleteAccount=!1,e.deleteUsername="",e.profilePastSubscription=()=>!e.profileAuthorGrant()&&(e.billing?.grants||[]).some(m=>["author_monthly","author_annual"].includes(m.planId)),e.showAuthorPlans=new URLSearchParams(window.location.search).get("upgrade")==="1",e.showRepositoryPass=!1,e.profilePlan="author_annual",e.openProfileUpgrade=()=>{e.settingsTab="billing",e.showAuthorPlans=!0,tt(()=>document.getElementById("settings-plan-comparison")?.focus())},e.on("settings:upgrade",()=>e.openProfileUpgrade()),e.profileAuthorPlans=()=>(e.billing?.plans||[]).filter(m=>["author_monthly","author_annual"].includes(m.id)),e.profileSelectedPlan=()=>e.profileAuthorPlans().find(m=>m.id===e.profilePlan)||e.profileAuthorPlans()[0],e.profilePassPlan=()=>(e.billing?.plans||[]).find(m=>m.id==="author_pass"),e.profileAddonPlans=()=>(e.billing?.plans||[]).filter(m=>Gi(m.id)).sort((m,b)=>+(b.id==="repo_pack")-+(m.id==="repo_pack")),e.profileAddonId="repo_pack",e.profilePackPlan=()=>(e.billing?.plans||[]).find(m=>m.id==="repo_pack"),e.profileSlotPlan=()=>(e.billing?.plans||[]).find(m=>m.id==="repo_slot"),e.profileRepositories=()=>(e.billing?.repositories||[]).filter(m=>m.status!=="removed"),e.openProfileAddon=m=>{m&&(e.profileAddonId=m),e.showRepositoryPass=!0,e.billingRepository="",tt(()=>{let b=document.getElementById("settings-addons-title");b?.scrollIntoView?.({block:"nearest",behavior:"smooth"}),b?.focus?.({preventScroll:!0})})};let r=["repo_slot","author_pass","repo_extend","repo_never"];e.profileSingleAddons=()=>e.profileAddonPlans().filter(m=>m.id!=="repo_pack").sort((m,b)=>r.indexOf(m.id)-r.indexOf(b.id)),e.profileSingleId="repo_slot",e.profileSingleAddon=()=>e.profileSingleAddons().find(m=>m.id===e.profileSingleId)||e.profileSingleAddons()[0],e.profileCheapestAddon=()=>[...e.profileSingleAddons()].sort((m,b)=>(m.amount??1/0)-(b.amount??1/0))[0],e.profileAuthorPlansByValue=()=>[...e.profileAuthorPlans()].sort((m,b)=>+(m.interval==="year")-+(b.interval==="year")),e.profilePackSummary=m=>m.parts.map(b=>b.planId==="repo_slot"?"Extra repository":`${e.profileGrantName(b)} until ${e.billingDate(b.until)}`).join(" \xB7 "),e.profileAddonFeatures=m=>({repo_pack:["One more repository, outside your free ones",`Its own ${e.billingBytes(e.profileSlotPlan()?.storage||e.profilePassPlan()?.storage)} of storage`,"Automatic updates for 180 days","Online for up to a year","No subscription"],repo_slot:["One more repository, outside your free ones",`Its own ${e.billingBytes(e.profileSlotPlan()?.storage)} of storage`,"Valid while the repository exists","Refresh it by hand"],author_pass:["Automatic updates for 180 days",`Its own ${e.billingBytes(e.profilePassPlan()?.storage)} of storage`,"No subscription"],repo_extend:["Online for up to one more year","Buy again to add another year","No subscription"],repo_never:["The link never expires","No subscription","Ends only if the payment is refunded"]})[m]||[],e.profileAddonBlurb=m=>({repo_slot:"One more repository",author_pass:"Auto-updates for 180 days",repo_extend:"Online one more year",repo_never:"The link never expires"})[m]||"",e.profileAuthorPurchase=()=>(e.billing?.purchases||[]).find(m=>m.recurring&&["active","overdue"].includes(m.status)),e.profileRepositoryExpiry=m=>m.status==="expired"?"expired":m.expirationMode==="never"?"never expires":m.expirationDate?"expires "+e.billingDate(m.expirationDate):"no date",e.profileAnnualSavings=()=>{let m=e.profileAuthorPlans().find(h=>h.interval==="month")?.amount,b=e.profileAuthorPlans().find(h=>h.interval==="year")?.amount;return m&&b&&b(e.billing?.purchases||[]).filter(b=>["active","overdue"].includes(b.status)===m),e.profilePurchaseStatus=m=>({active:"Active",overdue:"Payment overdue",ended:"Ended",refunded:"Refunded",disputed:"Disputed"})[m.status]||m.status,e.profilePurchaseTerm=m=>{let b=m.status&&!["active","overdue"].includes(m.status);if(m.recurring)return b?m.until?"Ended "+e.billingDate(m.until):"":(m.cancelAtPeriodEnd?"Ends ":"Renews ")+e.billingDate(m.until);if(m.planId==="repo_pack"){let h=m.parts.map(w=>w.until).filter(Boolean).map(w=>new Date(w).getTime());return b||!h.length?"":"Until "+e.billingDate(new Date(Math.max(...h)))}return m.until?(b||new Date(m.until).getTime()e.profileAddonPlans().find(m=>m.id===e.profileAddonId)||e.profileAddonPlans()[0],e.profileAuthorGrant=()=>(e.billing?.grants||[]).find(m=>["author_monthly","author_annual"].includes(m.planId)&&["active","paid","past_due"].includes(m.status)&&new Date(m.until).getTime()>Date.now()),e.profileConferencePlan=()=>(e.billing?.plans||[]).filter(m=>["conference_workshop","conference","conference_large"].includes(m.id)&&m.amount!=null).sort((m,b)=>m.amount-b.amount)[0],e.profileGrantName=m=>({author_monthly:"Author monthly",author_annual:"Author annual",author_pass:"Live updates",repo_extend:"Extended expiration",repo_never:"Never expire",repo_slot:"Extra repository",repo_pack:"Paper pack",conference:"Conference package",conference_workshop:"Workshop package",conference_large:"Large conference package"})[m.planId]||m.planId,Ki(e,t,()=>o.load().then(m=>{e.quota=m},console.error),{portalMessage:()=>{let m=e.profileAuthorGrant();return m?m.cancelAtPeriodEnd?`Renewal cancelled. Your access continues until ${e.billingDate(m.until)}.`:`Your subscription renews on ${e.billingDate(m.until)}.`:"Your billing details are up to date."}}),e.terms="",e.options={expirationMode:"remove",update:!1,image:!0,pdf:!0,notebook:!0,loc:!0,link:!0},e.saving=!1,e.message=null,e.error=null,e.accountEmail="",e.emailLoading=!0,e.emailCSRFReady=!1,e.emailSaving=!1,e.emailSaved=!1,e.emailError="";let d="";e.loadAccountEmail=async()=>{e.emailLoading=!0,e.emailError="";try{let m=await t.get("/github/connections/email");e.accountEmail=m.data.notificationEmail||"",d=m.data.csrf,e.emailCSRFReady=!!d}catch{e.emailError="Unable to load your email address. Please try again."}finally{e.emailLoading=!1}},e.saveAccountEmail=async()=>{if(!(e.emailSaving||e.emailLoading||!d)){e.emailSaving=!0,e.emailSaved=!1,e.emailError="";try{let m=await t.post("/github/connections/email",{email:e.accountEmail},{headers:{"X-CSRF-Token":d}});e.accountEmail=m.data.notificationEmail,e.user&&(e.user.notificationEmail=m.data.notificationEmail),e.emailSaved=!0}catch{e.emailError="Unable to save your email address. Check the address and try again."}finally{e.emailSaving=!1}}},e.loadAccountEmail(),o.load().then(m=>{e.quota=m},console.error);let p=ga(e,["terms","options"],"profile");e.discardDraft=()=>p.discard();function u(){t.get("/api/user/default").then(m=>{let b=m.data||{};b.terms&&(e.terms=b.terms.join(` +`)}var Kn={VIEWER_ERRORS:{title:"Content could not be loaded",access_title:"GitHub access needs attention",reader_help:"Reading this repository? You do not need to sign in. Try again after the owner restores access, or let them know this anonymous link is unavailable.",owner_help:"Own this repository? If your GitHub account was suspended or recently recovered, sign in to Anonymous GitHub again and check the GitHub connection and repository permissions in your dashboard. Then retry this page. Keep the existing anonymous URL; do not delete the repository to restore access.",retry:"Try again",dashboard:"Open owner dashboard"},ERRORS:{cache_busy:"Downloads are busy. Please try again shortly.",invalid_sort:"The selected sort order is invalid.",invalid_cursor:"This project page is no longer valid. Reload the list.",repository_changed:"The repository changed while processing. Please retry.",repository_job_cancelled:"The repository changed or was removed while processing.",storage_delete_failed:"Unable to remove cached files. Please try again later.",unknown_error:"We could not load this content. Try again. If it still fails, contact support with the anonymous URL and the time of the error.",unreachable:"The service could not complete this request. Wait a moment and try again.",request_error:"The connection was interrupted. Check your internet connection and try again.",not_found:"The requested resource could not be found.",not_connected:"You must be logged in to perform this action.",not_authorized:"You do not have permission to perform this action.",unable_to_connect_user:"Unable to connect your account. Please try again later.",user_not_found:"The requested user could not be found.",user_banned:"Your account has been banned. Contact the admin for more information.",repo_access_limited:"GitHub blocked access because the repository's organization restricts third-party OAuth apps. Ask an org owner to approve Anonymous GitHub under Settings \u2192 Third-party Access \u2192 OAuth app policy, or anonymize a personal fork instead.",repo_saml_enforcement:"The repository's organization enforces SAML single sign-on. Authorize your token for that organization (GitHub \u2192 Settings \u2192 Applications, or re-run the org's SSO sign-in), then retry. Alternatively, anonymize a personal fork.",repo_not_found:"Anonymous GitHub cannot access the source repository on GitHub. It may be private, unavailable, or require the owner to reconnect GitHub.",repo_empty:"The selected branch has no commits on GitHub. Push at least one commit, or pick a different branch, then retry.",repo_not_accessible:"Anonymous GitHub cannot access this repository. Verify the repository exists and that Anonymous GitHub has been authorized for the owning organization.",repository_archived:"This repository has been archived and its files are no longer available.",repository_expired:"The repository is expired.",invalid_status:"This action cannot be performed while the resource is in its current state.",repository_not_ready:"Anonymous GitHub is still processing the repository, it can take several minutes.",repository_not_accessible:"This repository is currently not accessible.",repo_is_updating:"Anonymous GitHub is still processing the repository, it can take several minutes.",invalid_repo:"The provided repository is not valid.",invalid_source_repository:"The repository source name is invalid; expected the form 'owner/name'.",repoId_not_defined:"A repository ID must be provided.",repoUrl_not_defined:"The repository URL needs to be defined.",source_not_provided:"A repository source must be provided.",github_rate_limit_exceeded:"GitHub temporarily blocked the request because we hit its API rate limit. Wait a few minutes and try again. If the problem persists and you contact GitHub Support, include the request ID and timestamp shown in GitHub's response (the 'X-GitHub-Request-Id' header).",rate_limited:"GitHub API rate limit reached. The repository will be available shortly \u2014 please wait a moment and refresh.",repoId_already_used:"The repository ID is already used.",invalid_repoId:"The format of the repository ID is invalid.",unsupported_source:"The repository source type is not supported.",branch_not_specified:"The branch is not specified.",branch_not_found:"The branch of the repository cannot be found.",commit_not_specified:"A commit must be specified.",commit_not_found:"The configured commit no longer exists in the source repository. It may have been force-pushed, rebased, or removed.",repo_renamed:"The source repository appears to have been renamed or moved on GitHub. Please refresh and try again \u2014 the cached name has been updated.",invalid_commit_format:"The commit hash format is invalid. It must be a hexadecimal string.",pull_request_not_found:"The requested pull request could not be found.",pull_request_expired:"This pull request has expired and is no longer available.",pull_request_not_ready:"This pull request is still being prepared. Please try again shortly.",pull_request_not_available:"This pull request is currently not available.",invalid_pullRequestId:"The pull request ID is invalid.",pullRequestId_already_used:"This pull request ID is already in use. Please choose a different one.",repository_not_specified:"A repository must be specified for this pull request.",pullRequestId_not_specified:"A pull request ID must be specified.",pullRequestId_is_not_a_number:"The source pull request ID must be a number.",options_not_provided:"Anonymization options are mandatory.",terms_not_specified:"Anonymization terms must be specified.",invalid_terms_format:"Terms are in an invalid format.",invalid_preserve_files_format:"Unredacted files must be repository paths or patterns, at most 200 of them.",missing_content:"No content was provided to the anonymization preview.",unable_to_anonymize:"An error happened during the anonymization process. Please try later or report the issue.",non_supported_mode:"The selected anonymization mode is invalid, only download and stream are supported.",invalid_path:"The provided path is invalid or missing.",path_not_specified:"A file path must be specified.",path_not_defined:"The file path has not been resolved yet.",invalid_file_path:"The requested file path is not valid.",invalid_request:"The request is missing required fields or is malformed.",invalid_project_name:"Use a project name of up to 100 characters without line breaks or control characters.",no_file_selected:"Please select a file.",submodule_not_available:"This public submodule file is no longer available at its recorded commit.",file_not_found:"The requested file is not found.",file_not_accessible:"The requested file is not accessible.",file_not_supported:"The file type is not supported. Anonymous GitHub cannot handle it.",repository_tree_too_large:"The repository has too many pending folders to process safely. Share a smaller repository.",file_listing_too_large:"This folder has too many entries to list. Open a more specific folder or use file search.",file_too_big:"The file size exceeds the limit of Anonymous GitHub.",is_folder:"The path points to a folder.",folder_not_supported:"The path points to a folder. Please select a file.",unable_to_write_file:"Unable to write file on disk.",download_not_enabled:"Repository downloads are not enabled on this server.",unable_to_download:"The repository could not be downloaded. Please try again later.",s3_config_not_provided:"Object storage has not been configured on this server.",stats_unsupported:"Statistics are only supported in download mode.",branches_not_found:"The requested branch is not found.",readme_not_available:"No README for the repository is found.",page_not_supported_on_different_branch:"GitHub Pages is served from a different branch than the one selected. Pick the branch that GitHub Pages is configured to use.",page_not_activated:"GitHub Pages is not enabled on this repository. Enable it in the repository settings on GitHub before anonymizing.",is_removed:"This resource has been removed and is no longer available.",conf_name_missing:"A conference name is required.",conf_id_missing:"A conference ID is required.",conf_id_used:"This conference ID is already in use. Please choose a different one.",conf_start_date_missing:"A start date is required for the conference.",conf_end_date_missing:"An end date is required for the conference.",conf_start_date_invalid:"The start date must be before the end date.",conf_end_date_invalid:"The end date must be in the future.",invalid_plan:"The selected plan is not valid.",conference_not_found:"The requested conference could not be found.",conf_not_found:"The requested conference could not be found.",conf_not_activated:"The conference is not activated.",conference_payment_required:"This conference's review package is full or not paid. Ask the organizer, or host the repository yourself.",billing_plan_change_not_supported:"This conference plan cannot be changed.",billing_invalid_review_window:"Conference packages cover up to 180 days and must end in the future. Check the review dates.",billing_missing:"Billing information is required for this plan.",billing_name_missing:"A billing name is required.",billing_email_missing:"A billing email is required.",billing_address_missing:"A billing address is required.",billing_city_missing:"A billing city is required.",billing_zip_missing:"A billing ZIP/postal code is required.",billing_country_missing:"A billing country is required.",queue_not_found:"The specified queue could not be found.",job_not_found:"The specified job could not be found in the queue.",error_retrying_job:"An error occurred while retrying the job.",gist_expired:"The gist is expired.",gist_not_ready:"Anonymous GitHub is still processing the gist, it can take several minutes.",gist_not_found:"The requested gist could not be found.",gist_not_available:"This gist is currently not available.",invalid_gistId:"The format of the gist ID is invalid.",gistId_not_specified:"A gist ID must be provided.",gistId_already_used:"The gist ID is already used.",missing_token:"An authentication token is required.",token_attempts_rate_limited:"Too many token authentication attempts. Wait before trying again.",refresh_rate_limited:"A refresh was already requested for this repository. Wait one minute before trying again.",session_required:"Sign in through your browser to manage maintenance tokens.",invalid_token_options:"Provide a token name, 1 to 20 repository IDs, and an expiration of 1 to 90 days.",token_limit_reached:"You have reached the limit of 50 API tokens. Revoke an unused token before creating another.",invalid_token_id:"The token ID is invalid.",invalid_settings:"Provide supported settings with boolean values, or a list of anonymization terms.",token_scope_forbidden:"This token does not allow this operation or repository.",authentication_unavailable:"Authentication is temporarily unavailable. Try again later.",invalid_token:"The provided authentication token is invalid.",login_failed:"Login failed. Please try again.",server_error:"An unexpected server error occurred. Please try again later.",username_not_defined:"A username must be provided.",github_user_not_found:"The specified GitHub user could not be found.",cannot_coauthor_self:"You cannot add yourself as a co-author.",storage_write_size_mismatch:"The downloaded file was smaller than expected. The upstream source may have returned an incomplete response \u2014 please try again.",storage_read_error:"An error occurred while reading the file from storage \u2014 please try again.",upstream_error:"A temporary error occurred while fetching from GitHub \u2014 please try again.",token_expired:"The repository owner needs to renew their GitHub connection before this content can be loaded.",job_is_active:"This job is currently running \u2014 wait for it to finish or remove it first.",github_app_access_required:"Allow this repository on GitHub using the read-only access button, then retry. Organization access may require administrator approval.",github_app_reconnect_required:"Reconnect your GitHub App account to restore read-only access.",github_app_disabled:"New GitHub App connections are currently unavailable.",github_oauth_required:"Connect legacy GitHub OAuth to use this feature.",github_identity_mismatch:"Use the same GitHub account that you are signed in with here.",github_app_permissions_invalid:"The GitHub App must be configured with read-only permissions.",github_unavailable:"GitHub is temporarily unavailable. Please retry.",connection_changed:"The repository connection changed. Reload and try again.",repository_busy:"Wait for the repository operation to finish before changing its connection.",invalid_connection:"Select a supported GitHub connection.",github_oauth_disabled:"Legacy OAuth sign-in is currently disabled.",invalid_auth_state:"The authorization session expired. Please start again from Anonymous GitHub.",invalid_webhook_signature:"The webhook signature is invalid.",webhook_processing_failed:"Webhook processing failed. Retry the delivery.",github_app_authorization_cancelled:"GitHub authorization was cancelled.",github_account_link_required:"Verify your existing account with your previous GitHub connection. Future sign-ins will use the GitHub App.",github_app_refresh_busy:"GitHub credentials are being renewed. Please retry shortly.",github_grant_revocation_failed:"Unable to revoke the GitHub grant. Please retry.",another_login_required:"Connect and verify another sign-in method before disconnecting OAuth.",oauth_resources_remaining:"Some resources still require OAuth. Migrate or remove them before disconnecting.",invalid_github_path:"The GitHub repository path is invalid.",repository_tree_incomplete:"The repository file tree is incomplete. Reduce its size and refresh before downloading.",billing_environment_mismatch:"The payment event does not match this billing environment.",billing_unavailable:"Payments are not available. Please try again later.",invalid_billing_signature:"The payment notification could not be verified.",billing_webhook_failed:"The payment notification could not be processed.",billing_customer_not_found:"No billing account was found.",subscription_required_for_never_expiration:"Never-expiring repositories require the owner\u2019s active monthly or annual author subscription. Choose a dated expiration or upgrade in Plans and billing.",invalid_billing_expiration:"Choose an earlier expiration date. Free repositories can be scheduled 5 months ahead. Buy Extended expiration or Never expire for this repository in Plans and billing to keep it longer.",quota_exceeded:"Your free repositories are used up. Add this repository with a one-time payment, choose a subscription, or remove a repository you no longer need.",expiration_limit_reached:"This repository is already at its latest allowed expiration date. Buy Extended expiration or Never expire for it in Plans and billing to keep it longer.",pending_payment:"Awaiting payment"},WARNINGS:{page_not_enabled_on_repo:"GitHub Pages is not enabled on this repository. Enable it in the repository's Settings \u2192 Pages on GitHub, then refresh.",page_branch_mismatch:"GitHub Pages on this repository is served from the '{{pageBranch}}' branch, but you selected '{{selectedBranch}}'. Switch the branch above to '{{pageBranch}}' to anonymize the Pages site.",folder_truncated:"This folder has more than 10,000 entries; only a partial listing is shown.",repo_truncated:"Some folders in this repository have too many files to be fully listed. Affected folders are marked with a warning icon.",submodules_not_included:"Some submodule contents could not be included. Only direct public GitHub submodules within the size limits are supported. Private, external, nested, or unavailable submodules appear as empty folders."},VIEWER_LOADING:{loading:"Loading file\u2026",receiving:"Receiving file\u2026",slow:"Still loading. You can select another file while you wait."}};typeof window<"u"&&window.document?.addEventListener&&window.document.addEventListener("error",e=>{let t=e.target;if(!t||t.tagName!=="IMG"||t.dataset.failed||!t.closest?.(".markdown-body, .anonymize-preview-body"))return;t.dataset.failed="1";let s=window.document.createElement("span"),i=parseInt(t.getAttribute("width"),10)||0,o=parseInt(t.getAttribute("height"),10)||0;s.className=i>=200||o>=120?"img-unavailable is-large":"img-unavailable",s.textContent="Image unavailable",s.title=t.alt?"Image unavailable: "+t.alt.replace(/\bXXXX-(\d+)\b/g,"[redacted term $1]"):"Image unavailable",s.setAttribute("role","img"),s.setAttribute("aria-label",s.title),t.replaceWith(s)},!0);function ar(e){let t=e?.data;if(typeof t=="string")try{t=JSON.parse(t)}catch{t=null}return typeof t?.error=="string"&&Object.prototype.hasOwnProperty.call(Kn.ERRORS,t.error)?t.error:e?.status===-1||e?.status===0?"request_error":[502,503,504].includes(e?.status)?"unreachable":"unknown_error"}var lr="XXXX",vv=e=>{lr=e||"XXXX"},yv=(e=lr)=>{if(!e)return null;let t=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(t+"(?:-\\d+)?","g")},Oc=(e,t=lr)=>{let s=yv(t);if(!s||!e||!e.textContent.includes(t))return;let i=e.ownerDocument,o=i.createTreeWalker(e,NodeFilter.SHOW_TEXT),r=[];for(;o.nextNode();)r.push(o.currentNode);for(let d of r){let p=d.nodeValue,u=d.parentElement;if(!p.includes(t)||!u||u.closest("script, style, mark.redaction, .mermaid"))continue;let y=u.closest('code[class*="language-"]');if(y&&!y.contains(e))continue;let m=i.createDocumentFragment(),b=0;for(let h of p.matchAll(s)){m.append(p.slice(b,h.index));let w=i.createElement("mark");w.className="redaction",w.title="Redacted by Anonymous GitHub",w.textContent=h[0],m.append(w),b=h.index+h[0].length}m.append(p.slice(b)),d.replaceWith(m)}},Zo=/\bXXXX-\d+\b/g,_o=function(e){if(!e||e.indexOf("XXXX-")===-1||typeof window.DOMParser!="function")return e;let t=new window.DOMParser().parseFromString("
"+e+"
","text/html"),s=t.createTreeWalker(t.body,4),i=[];for(;s.nextNode();)Zo.lastIndex=0,!s.currentNode.parentElement?.closest("pre code")&&Zo.test(s.currentNode.nodeValue)&&i.push(s.currentNode);for(let o of i){Zo.lastIndex=0;let r=t.createDocumentFragment(),d=0,p,u=o.nodeValue;for(;p=Zo.exec(u);){r.appendChild(t.createTextNode(u.slice(d,p.index)));let y=t.createElement("mark");y.className="redact-chip",y.setAttribute("title","Redacted term "+p[0].slice(5)+" \u2014 the same term everywhere in this snapshot");let m=p[0].slice(5);y.textContent="";let b=t.createElement("i");b.textContent=m,y.appendChild(b),y.dataset.term=p[0],y.setAttribute("aria-label","Redacted term "+m);let h=/^[.,;:!?)\]]+/.exec(u.slice(p.index+p[0].length));if(h){let w=t.createElement("span");w.className="redact-glue",w.appendChild(y),w.appendChild(t.createTextNode(h[0])),r.appendChild(w),d=p.index+p[0].length+h[0].length}else r.appendChild(y),d=p.index+p[0].length}r.appendChild(t.createTextNode(u.slice(d))),o.parentNode.replaceChild(r,o)}return t.body.firstChild.innerHTML},Ic=()=>{window.Prism?.hooks&&!window.Prism.redactionHook&&(window.Prism.hooks.add("complete",e=>{Oc(e.element),e.element.querySelectorAll?.("mark.redaction").forEach(t=>{let s=/^XXXX-(\d+)$/.exec(t.textContent);if(!s)return;t.className="redact-chip",t.setAttribute("title","Redacted term "+s[1]+" \u2014 the same term everywhere in this snapshot"),t.setAttribute("aria-label","Redacted term "+s[1]),t.dataset.term=s[0],t.style.setProperty("--slot-ch",s[0].length+"ch"),t.textContent="";let i=t.ownerDocument.createElement("span");i.className="redact-src",i.textContent=s[0].slice(0,s[0].length-s[1].length),t.appendChild(i);let o=t.ownerDocument.createElement("i");o.textContent=s[1],t.appendChild(o)})}),window.Prism.redactionHook=!0)},Mc=(e,t=lr)=>{if(!e||!t||!e.includes(t))return e;let s=new DOMParser().parseFromString(""+e+"","text/html");return Oc(s.body,t),s.body.innerHTML};async function Wa(e){if(window.navigator.clipboard?.writeText){await window.navigator.clipboard.writeText(e);return}let t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="fixed",t.style.opacity="0";let s=document.activeElement;document.body.appendChild(t);try{if(t.select(),!document.execCommand?.("copy"))throw Error("Copy unavailable")}finally{t.remove(),s?.focus()}}function bv(e){if(!["ArrowLeft","ArrowRight","Home","End"].includes(e.key))return;let t=[...e.currentTarget.closest('[role="tablist"]').querySelectorAll('[role="tab"]')],s=t.indexOf(e.currentTarget),i=e.key==="Home"?0:e.key==="End"?t.length-1:(s+(e.key==="ArrowRight"?1:-1)+t.length)%t.length;e.preventDefault(),t[i]?.focus(),t[i]?.click()}var Vc=function(e,t,s,i){e.previewTabKeydown=bv,e.headerCanUpgrade=!1,e.headerShowSupport=!1,e.headerBillingPending=new URLSearchParams(window.location.search).get("billing")==="success";let o=N=>{e.headerShowSupport=!(N?.grants||[]).some(E=>["active","paid","past_due"].includes(E.status)&&new Date(E.until).getTime()>Date.now());let v=(N?.grants||[]).some(E=>["author_monthly","author_annual"].includes(E.planId)&&["active","paid","past_due"].includes(E.status)&&new Date(E.until).getTime()>Date.now());e.headerCanUpgrade=!!N?.enabled&&N.checkoutEnabled!==!1&&!v&&(N.plans||[]).some(E=>["author_monthly","author_annual"].includes(E.id))};e.on("billing:updated",(N,v)=>o(v)),e.on("billing:pending",(N,v)=>{e.headerBillingPending=v}),e.openHeaderUpgrade=()=>{s.path()==="/profile"?e.emit("settings:upgrade"):s.url("/profile?upgrade=1")};let r=Bt(),d=Ct(),p=!1,u=()=>{p=!1;let N=document.querySelector("nav.navbar.navbar-expand-lg");if(!N||(N.classList.remove("nav-fit-1","nav-fit-2"),window.innerWidth<992))return;let v=N.querySelector(".navbar-collapse"),E=()=>N.scrollWidth>N.clientWidth+1||!!v&&v.scrollWidth>v.clientWidth+1;E()&&N.classList.add("nav-fit-1"),E()&&N.classList.add("nav-fit-2")},y=()=>{p||(p=!0,tt(()=>d.timeout(u,0)))};r(window,"resize",y),e.on("routeChange",y),e.on("billing:updated",y),document.fonts?.ready&&document.fonts.ready.then(y).catch(()=>{}),e.title="Main",e.user={status:"connection"},e.site_options,e.toasts=[],e.removeToast=function(N){let v=e.toasts.indexOf(N);v!==-1&&e.toasts.splice(v,1)},e.addToast=function(N){return e.toasts.push(N),i(function(){e.removeToast(N)},8e3),N};let m=/^\/(r|repository|pr|gist)\//;e.path=s.url(),e.paths=s.path().substring(1).split("/"),e.isReviewerRoute=m.test(s.path()),e.darkMode=function(N){localStorage.setItem("darkMode",N),e.isDarkMode=N;let v="/css/prism.css";if($("link[href='/css/prism-okaidia.css']").remove(),N)$("body").addClass("dark-mode"),$(`link[href='${v}']`).remove();else if($("body").removeClass("dark-mode"),!document.querySelector(`link[href='${v}']`)){let E=document.createElement("link");E.href=v,E.rel="stylesheet",document.head.append(E)}e.emit("dark-mode",N)},e.darkMode(localStorage.getItem("darkMode")=="true"),e.emailPromptOpen=!1,e.emailPromptAddress="",e.emailPromptBusy=!1,e.emailPromptError="";let b;e.respondToEmailPrompt=async N=>{if(!e.emailPromptBusy){e.emailPromptBusy=!0,e.emailPromptError="";try{let v=await t.post("/github/connections/email",{action:N,email:e.emailPromptAddress},{headers:{"X-CSRF-Token":e.user.emailPromptCSRF}});N==="save"&&(e.user.notificationEmail=v.data.notificationEmail),e.emailPromptOpen=!1,e.user.showEmailPrompt=!1,b?.focus()}catch(v){e.emailPromptError=v.data?.error||"Unable to save your preference. Please try again."}finally{e.emailPromptBusy=!1}}};function h(){t.get("/api/user").then(N=>{N&&(e.user=N.data),y(),e.user?.username?Wi(t).then(v=>o(v.data)).catch(()=>{}):e.headerShowSupport=!0,e.user?.emailNotificationsEnabled&&e.user.showEmailPrompt&&!e.user.notificationEmail&&(b=document.activeElement,e.emailPromptOpen=!0,i(()=>{let v=document.getElementById("email-prompt");v?.showModal?v.showModal():v?.setAttribute("open",""),document.getElementById("email-prompt-address")?.focus()},0))},()=>{e.user=null,e.headerShowSupport=!0})}h();function w(){t.get("/api/options").then(N=>{N&&(e.site_options=N.data),vv(N?.data?.ANONYMIZATION_MASK),e.emit("site-options")},()=>{e.site_options=null})}w();function R(){t.get("/api/message").then(N=>{N&&(e.generalMessage=N.data)},()=>{e.generalMessage=null})}R();function S(N,v){v&&(e.title=v.title),e.path=s.url(),e.paths=s.path().substring(1).split("/"),e.isReviewerRoute=m.test(s.path())}e.on("routeChange",S),e.on("routeUpdate",S)},qc=function(e,t){let s=Bt(),i=Ct();e.faqQuery="",e.faqResults=0;let o=d=>(d||"").toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/\s+/g," ");e.filterFaq=()=>{let d=o(e.faqQuery).trim().split(" ").filter(Boolean),p=0;document.querySelectorAll(".faq-section .panel-group").forEach(u=>{let y=0;u.querySelectorAll(":scope > .panel").forEach(h=>{let w=h.dataset.faqText||(h.dataset.faqText=o(h.textContent)),R=d.every(S=>w.includes(S));h.classList.toggle("faq-hit",d.length>0&&R),h.hidden=d.length>0&&!R,R&&y++});let m=d.length>0&&y===0;u.hidden=m;let b=u.previousElementSibling;b?.classList.contains("faq-cat")&&(b.hidden=m),p+=y}),e.faqResults=d.length?p:0},e.clearFaqSearch=()=>{e.faqQuery="",e.filterFaq(),document.getElementById("faq-search-input")?.focus()};let r=()=>{let d=window.location.hash.slice(1),p=document.getElementById(d);if(!p?.classList.contains("panel-collapse"))return;$(p).collapse("show");let u=document.getElementById(p.getAttribute("aria-labelledby"));u?.setAttribute("tabindex","-1"),u?.focus({preventScroll:!0}),u?.scrollIntoView?.({block:"start"})};e.on("routeUpdate",()=>i.timeout(r,0)),s(window,"hashchange",r),i.timeout(r,0)},_c=function(e,t,s,i,o){e.settingsTab=/(?:billing|upgrade)=/.test(window.location.search)?"billing":"defaults",e.confirmDeleteAccount=!1,e.deleteUsername="",e.profilePastSubscription=()=>!e.profileAuthorGrant()&&(e.billing?.grants||[]).some(m=>["author_monthly","author_annual"].includes(m.planId)),e.showAuthorPlans=new URLSearchParams(window.location.search).get("upgrade")==="1",e.showRepositoryPass=!1,e.profilePlan="author_annual",e.openProfileUpgrade=()=>{e.settingsTab="billing",e.showAuthorPlans=!0,tt(()=>document.getElementById("settings-plan-comparison")?.focus())},e.on("settings:upgrade",()=>e.openProfileUpgrade()),e.profileAuthorPlans=()=>(e.billing?.plans||[]).filter(m=>["author_monthly","author_annual"].includes(m.id)),e.profileSelectedPlan=()=>e.profileAuthorPlans().find(m=>m.id===e.profilePlan)||e.profileAuthorPlans()[0],e.profilePassPlan=()=>(e.billing?.plans||[]).find(m=>m.id==="author_pass"),e.profileAddonPlans=()=>(e.billing?.plans||[]).filter(m=>Gi(m.id)).sort((m,b)=>+(b.id==="repo_pack")-+(m.id==="repo_pack")),e.profileAddonId="repo_pack",e.profilePackPlan=()=>(e.billing?.plans||[]).find(m=>m.id==="repo_pack"),e.profileSlotPlan=()=>(e.billing?.plans||[]).find(m=>m.id==="repo_slot"),e.profileRepositories=()=>(e.billing?.repositories||[]).filter(m=>m.status!=="removed"),e.openProfileAddon=m=>{m&&(e.profileAddonId=m),e.showRepositoryPass=!0,e.billingRepository="",tt(()=>{let b=document.getElementById("settings-addons-title");b?.scrollIntoView?.({block:"nearest",behavior:"smooth"}),b?.focus?.({preventScroll:!0})})};let r=["repo_slot","author_pass","repo_extend","repo_never"];e.profileSingleAddons=()=>e.profileAddonPlans().filter(m=>m.id!=="repo_pack").sort((m,b)=>r.indexOf(m.id)-r.indexOf(b.id)),e.profileSingleId="repo_slot",e.profileSingleAddon=()=>e.profileSingleAddons().find(m=>m.id===e.profileSingleId)||e.profileSingleAddons()[0],e.profileCheapestAddon=()=>[...e.profileSingleAddons()].sort((m,b)=>(m.amount??1/0)-(b.amount??1/0))[0],e.profileAuthorPlansByValue=()=>[...e.profileAuthorPlans()].sort((m,b)=>+(m.interval==="year")-+(b.interval==="year")),e.profilePackSummary=m=>m.parts.map(b=>b.planId==="repo_slot"?"Extra repository":`${e.profileGrantName(b)} until ${e.billingDate(b.until)}`).join(" \xB7 "),e.profileAddonFeatures=m=>({repo_pack:["One more repository, outside your free ones",`Its own ${e.billingBytes(e.profileSlotPlan()?.storage||e.profilePassPlan()?.storage)} of storage`,"Automatic updates for 180 days","Online for up to a year","No subscription"],repo_slot:["One more repository, outside your free ones",`Its own ${e.billingBytes(e.profileSlotPlan()?.storage)} of storage`,"Valid while the repository exists","Refresh it by hand"],author_pass:["Automatic updates for 180 days",`Its own ${e.billingBytes(e.profilePassPlan()?.storage)} of storage`,"No subscription"],repo_extend:["Online for up to one more year","Buy again to add another year","No subscription"],repo_never:["The link never expires","No subscription","Ends only if the payment is refunded"]})[m]||[],e.profileAddonBlurb=m=>({repo_slot:"One more repository",author_pass:"Auto-updates for 180 days",repo_extend:"Online one more year",repo_never:"The link never expires"})[m]||"",e.profileAuthorPurchase=()=>(e.billing?.purchases||[]).find(m=>m.recurring&&["active","overdue"].includes(m.status)),e.profileRepositoryExpiry=m=>m.status==="expired"?"expired":m.expirationMode==="never"?"never expires":m.expirationDate?"expires "+e.billingDate(m.expirationDate):"no date",e.profileAnnualSavings=()=>{let m=e.profileAuthorPlans().find(h=>h.interval==="month")?.amount,b=e.profileAuthorPlans().find(h=>h.interval==="year")?.amount;return m&&b&&b(e.billing?.purchases||[]).filter(b=>["active","overdue"].includes(b.status)===m),e.profilePurchaseStatus=m=>({active:"Active",overdue:"Payment overdue",ended:"Ended",refunded:"Refunded",disputed:"Disputed"})[m.status]||m.status,e.profilePurchaseTerm=m=>{let b=m.status&&!["active","overdue"].includes(m.status);if(m.recurring)return b?m.until?"Ended "+e.billingDate(m.until):"":(m.cancelAtPeriodEnd?"Ends ":"Renews ")+e.billingDate(m.until);if(m.planId==="repo_pack"){let h=m.parts.map(w=>w.until).filter(Boolean).map(w=>new Date(w).getTime());return b||!h.length?"":"Until "+e.billingDate(new Date(Math.max(...h)))}return m.until?(b||new Date(m.until).getTime()e.profileAddonPlans().find(m=>m.id===e.profileAddonId)||e.profileAddonPlans()[0],e.profileAuthorGrant=()=>(e.billing?.grants||[]).find(m=>["author_monthly","author_annual"].includes(m.planId)&&["active","paid","past_due"].includes(m.status)&&new Date(m.until).getTime()>Date.now()),e.profileConferencePlan=()=>(e.billing?.plans||[]).filter(m=>["conference_workshop","conference","conference_large"].includes(m.id)&&m.amount!=null).sort((m,b)=>m.amount-b.amount)[0],e.profileGrantName=m=>({author_monthly:"Author monthly",author_annual:"Author annual",author_pass:"Live updates",repo_extend:"Extended expiration",repo_never:"Never expire",repo_slot:"Extra repository",repo_pack:"Paper pack",conference:"Conference package",conference_workshop:"Workshop package",conference_large:"Large conference package"})[m.planId]||m.planId,Ki(e,t,()=>o.load().then(m=>{e.quota=m},console.error),{portalMessage:()=>{let m=e.profileAuthorGrant();return m?m.cancelAtPeriodEnd?`Renewal cancelled. Your access continues until ${e.billingDate(m.until)}.`:`Your subscription renews on ${e.billingDate(m.until)}.`:"Your billing details are up to date."}}),e.terms="",e.options={expirationMode:"remove",update:!1,image:!0,pdf:!0,notebook:!0,loc:!0,link:!0},e.saving=!1,e.message=null,e.error=null,e.accountEmail="",e.emailLoading=!0,e.emailCSRFReady=!1,e.emailSaving=!1,e.emailSaved=!1,e.emailError="";let d="";e.loadAccountEmail=async()=>{e.emailLoading=!0,e.emailError="";try{let m=await t.get("/github/connections/email");e.accountEmail=m.data.notificationEmail||"",d=m.data.csrf,e.emailCSRFReady=!!d}catch{e.emailError="Unable to load your email address. Please try again."}finally{e.emailLoading=!1}},e.saveAccountEmail=async()=>{if(!(e.emailSaving||e.emailLoading||!d)){e.emailSaving=!0,e.emailSaved=!1,e.emailError="";try{let m=await t.post("/github/connections/email",{email:e.accountEmail},{headers:{"X-CSRF-Token":d}});e.accountEmail=m.data.notificationEmail,e.user&&(e.user.notificationEmail=m.data.notificationEmail),e.emailSaved=!0}catch{e.emailError="Unable to save your email address. Check the address and try again."}finally{e.emailSaving=!1}}},e.loadAccountEmail(),o.load().then(m=>{e.quota=m},console.error);let p=ga(e,["terms","options"],"profile");e.discardDraft=()=>p.discard();function u(){t.get("/api/user/default").then(m=>{let b=m.data||{};b.terms&&(e.terms=b.terms.join(` `)),e.options=Object.assign({},e.options,b.options),p.restore()})}u();let y=null;e.saveDefault=m=>{if(m&&m.preventDefault&&m.preventDefault(),e.saving)return;let b=p.checkpoint(),h={terms:e.terms.split(` -`).map(w=>w.trim()).filter(w=>w.length>0),options:e.options};e.saving=!0,e.error=null,t.post("/api/user/default",h).then(()=>{p.accept(b),e.saving=!1,e.message=e.unsavedChanges?null:"Saved",y&&i.cancel(y),y=i(()=>{e.message=null},2500)},w=>{e.saving=!1;let R=w&&w.data&&w.data.error,S="Unable to save your defaults. Please try again.";Promise.all([s("ERRORS."+R),s("ERRORS.unknown_error")]).then(([N,v])=>{e.error=R&&N!==v?N:S},()=>{e.error=S})})},e.deleteAccount=()=>{e.deletingAccount||!e.confirmDeleteAccount||e.deleteUsername!==e.user?.username||(e.deletingAccount=!0,t.delete("/api/user").then(()=>{window.location.href="/"},()=>{e.deletingAccount=!1,e.deleteError="Unable to delete the account. Please try again."}))}},_c=function(e,t,s){e.repoId=null,e.repoUrl=null,e.claim=()=>{t.post("/api/repo/claim",{repoId:e.repoId,repoUrl:e.repoUrl}).then(i=>{s.url("/dashboard")},i=>{e.error=i.data,e.claimForm.repoUrl.setValidity("not_found",!1),e.claimForm.repoId.setValidity("not_found",!1)})}},$c=function(e,t,s,i,o){e.user&&!e.user.status&&s.url("/dashboard"),e.watch("user.status",()=>{e.user&&!e.user.status&&s.url("/dashboard")}),e.features=[{key:"anonymize",num:"01",eyebrow:"Anonymize",title:"Double-anonymous,",accent:"your rules.",text:"Choose what reviewers may see: links, images, PDFs, notebooks, GitHub Pages. Add your own terms, with regex if you need it, and pick the expiration date.",cta:"Start an anonymization",href:"/anonymize",url:"anonymous.4open.science/anonymize",img:"/imgs/anonymize.png",alt:"The anonymize form: source repository, terms to redact, options and a live README preview"},{key:"review",num:"02",eyebrow:"Review",title:"Reviewers browse",accent:"the real thing.",text:"Highlighted source code, rendered PDFs, images, and notebooks, in a familiar file explorer. GitHub Pages is also supported.",cta:"Open the example",href:"https://anonymous.4open.science/r/840c8c57-3c32-451e-bf12-0e20be300389/",target:"_self",url:"anonymous.4open.science/r/840c8c57-\u2026",img:"/imgs/explorer.png",alt:"The repository explorer with a file tree and a rendered README"},{key:"manage",num:"03",eyebrow:"Manage",title:"One dashboard,",accent:"until the decision.",text:"Monitor views, edit configuration, remove or update your repository. Program chairs can group submissions under a conference with one shared expiry.",cta:"Open the dashboard",href:"/dashboard",needsUser:!0,url:"anonymous.4open.science/dashboard",img:"/imgs/dashboard.png",alt:"The dashboard listing anonymized repositories with status, views and expiry"}],e.feature=e.features[0].key,e.selectFeature=function(p){e.feature=p},e.featureHref=function(p){return p.needsUser&&!e.user?"/signin":p.href},e.featureTarget=function(p){return p.needsUser&&!e.user?"_self":p.target||void 0},e.featureKeydown=function(p,u){let y={ArrowDown:1,ArrowRight:1,ArrowUp:-1,ArrowLeft:-1,Home:"first",End:"last"}[p.key];if(y===void 0)return;p.preventDefault();let m=e.features.length,b=y==="first"?0:y==="last"?m-1:(u+y+m)%m;e.feature=e.features[b].key,o(()=>{let h=i.document.getElementById("feature-tab-"+e.feature);h&&h.focus()})},e.demoText=`# DeepLearnUtils +`).map(w=>w.trim()).filter(w=>w.length>0),options:e.options};e.saving=!0,e.error=null,t.post("/api/user/default",h).then(()=>{p.accept(b),e.saving=!1,e.message=e.unsavedChanges?null:"Saved",y&&i.cancel(y),y=i(()=>{e.message=null},2500)},w=>{e.saving=!1;let R=w&&w.data&&w.data.error,S="Unable to save your defaults. Please try again.";Promise.all([s("ERRORS."+R),s("ERRORS.unknown_error")]).then(([N,v])=>{e.error=R&&N!==v?N:S},()=>{e.error=S})})},e.deleteAccount=()=>{e.deletingAccount||!e.confirmDeleteAccount||e.deleteUsername!==e.user?.username||(e.deletingAccount=!0,t.delete("/api/user").then(()=>{window.location.href="/"},()=>{e.deletingAccount=!1,e.deleteError="Unable to delete the account. Please try again."}))}},$c=function(e,t,s){e.repoId=null,e.repoUrl=null,e.claim=()=>{t.post("/api/repo/claim",{repoId:e.repoId,repoUrl:e.repoUrl}).then(i=>{s.url("/dashboard")},i=>{e.error=i.data,e.claimForm.repoUrl.setValidity("not_found",!1),e.claimForm.repoId.setValidity("not_found",!1)})}},Lc=function(e,t,s,i,o){e.user&&!e.user.status&&s.url("/dashboard"),e.watch("user.status",()=>{e.user&&!e.user.status&&s.url("/dashboard")}),e.features=[{key:"anonymize",num:"01",eyebrow:"Anonymize",title:"Double-anonymous,",accent:"your rules.",text:"Choose what reviewers may see: links, images, PDFs, notebooks, GitHub Pages. Add your own terms, with regex if you need it, and pick the expiration date.",cta:"Start an anonymization",href:"/anonymize",url:"anonymous.4open.science/anonymize",img:"/imgs/anonymize.png",alt:"The anonymize form: source repository, terms to redact, options and a live README preview"},{key:"review",num:"02",eyebrow:"Review",title:"Reviewers browse",accent:"the real thing.",text:"Highlighted source code, rendered PDFs, images, and notebooks, in a familiar file explorer. GitHub Pages is also supported.",cta:"Open the example",href:"https://anonymous.4open.science/r/840c8c57-3c32-451e-bf12-0e20be300389/",target:"_self",url:"anonymous.4open.science/r/840c8c57-\u2026",img:"/imgs/explorer.png",alt:"The repository explorer with a file tree and a rendered README"},{key:"manage",num:"03",eyebrow:"Manage",title:"One dashboard,",accent:"until the decision.",text:"Monitor views, edit configuration, remove or update your repository. Program chairs can group submissions under a conference with one shared expiry.",cta:"Open the dashboard",href:"/dashboard",needsUser:!0,url:"anonymous.4open.science/dashboard",img:"/imgs/dashboard.png",alt:"The dashboard listing anonymized repositories with status, views and expiry"}],e.feature=e.features[0].key,e.selectFeature=function(p){e.feature=p},e.featureHref=function(p){return p.needsUser&&!e.user?"/signin":p.href},e.featureTarget=function(p){return p.needsUser&&!e.user?"_self":p.target||void 0},e.featureKeydown=function(p,u){let y={ArrowDown:1,ArrowRight:1,ArrowUp:-1,ArrowLeft:-1,Home:"first",End:"last"}[p.key];if(y===void 0)return;p.preventDefault();let m=e.features.length,b=y==="first"?0:y==="last"?m-1:(u+y+m)%m;e.feature=e.features[b].key,o(()=>{let h=i.document.getElementById("feature-tab-"+e.feature);h&&h.focus()})},e.demoText=`# DeepLearnUtils Developed by Jane Smith at MIT CSAIL. See Smith et al., "Attention That Works," 2026. -Contact: jane.smith@mit.edu`,e.demoTerms="Jane Smith, Smith, MIT CSAIL, jane.smith@mit.edu",e.demoParts=function(){let p=(e.demoTerms||"").split(/[,\n]/).map(h=>h.trim()).filter(Boolean).sort((h,w)=>w.length-h.length),u=h=>h.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");if(!p.length)return[{text:e.demoText}];let y=new RegExp("("+p.map(u).join("|")+")","gi"),m={},b=0;return(e.demoText||"").split(y).filter(h=>h!=="").map(h=>{let w=p.find(R=>R.toLowerCase()===h.toLowerCase());return w?(m[w.toLowerCase()]||(m[w.toLowerCase()]=++b),{text:String(m[w.toLowerCase()]),redacted:!0,original:h}):{text:h}})},e.demoCount=()=>e.demoParts().filter(p=>p.redacted).length,e.cards=[{key:"repositories",total:0,label:"repositories anonymized"},{key:"users",total:0,label:"researchers"},{key:"pageViews",total:0,label:"page views"},{key:"pullRequests",total:0,label:"pull requests"}],e.statsEmpty=()=>!!e.stat&&e.cards.every(p=>!p.total);function r(){t.get("/api/stat/").then(p=>{e.stat=p.data,e.cards[0].total=p.data.nbRepositories,e.cards[1].total=p.data.nbUsers,e.cards[2].total=p.data.nbPageViews,e.cards[3].total=p.data.nbPullRequests}).catch(()=>{})}r();function d(p){let u={series:p,bars:[],viewW:100,deltaToday:0,pctChange:0,pctAbs:0,isUp:!0};if(!p||p.length<2)return u;let y=new Array(p.length-1);for(let S=1;S=2){let S=y[m-2];S&&(u.pctChange=(u.deltaToday-S)/S*100)}return u.pctAbs=Math.round(Math.abs(u.pctChange)),u.isUp=u.pctChange>=0,u}e.history={repositories:d([]),users:d([]),pageViews:d([]),pullRequests:d([])},t.get("/api/stat/history?days=60").then(p=>{let u=p.data||[];e.history={repositories:d(u.map(y=>y.nbRepositories||0)),users:d(u.map(y=>y.nbUsers||0)),pageViews:d(u.map(y=>y.nbPageViews||0)),pullRequests:d(u.map(y=>y.nbPullRequests||0))}}).catch(()=>{})},Lc=function(e,t,s,i,o,r){let d=Ct();e.on("routeLeave",function(){$('[data-toggle="tooltip"]').tooltip("dispose")}),e.watch("user.status",()=>{e.user==null&&s.url("/")}),e.user==null&&s.url("/"),d.timeout(()=>{$('[data-toggle="tooltip"]').tooltip()},250),e.quotaExpanded=!1,e.closeQuota=()=>{e.quotaExpanded=!1,tt(()=>document.querySelector(".dashboard-quota > summary")?.focus())},Ut()(document,"click",C=>{e.quotaExpanded&&!C.target.closest?.(".dashboard-quota")&&(e.quotaExpanded=!1)}),e.filtersExpanded=!1,e.projectView="all",e.selectedProject=null,e.projectName="",e.nameSaving=!1,e.nameError="",e.nameMessage="",e.needsAttention=C=>C.status==="error"||C._broken||u(C.status)==="progress"&&C._stale,e.attentionCount=()=>e.dashboardTotals?.attention??e.items.filter(e.needsAttention).length,e.hasProjects=()=>(e.dashboardTotals?.total??e.items.length)>0,e.setProjectView=C=>{e.projectView=C,C==="attention"&&(e.filters.status.error=!0,e.filters.status.progress=!0)},e.idleText=C=>{let L=va(C?.anonymizeDate||C?.lastView)||"";return/ ago$/.test(L)?"No activity for "+L.replace(/ ago$/,""):"No activity since "+L.replace(", "+new Date().getFullYear(),"")},e.projectDetailsId=C=>"project-details-"+encodeURIComponent(C._type+":"+(C._id||C._source||"unknown")),e.showProjectDetails=async C=>{e.selectedProject=C,e.projectName=C.projectName||"",e.nameError="",e.nameMessage="",await tt();let L=document.getElementById(e.projectDetailsId(C));L?.focus(),L?.scrollIntoView?.({block:"nearest"})},e.closeProjectDetails=C=>{e.selectedProject=null,tt(()=>document.querySelector(`[data-project-actions="${encodeURIComponent(C._type+":"+C._id)}"]`)?.focus())},e.saveProjectName=async C=>{if(e.nameSaving||!C._id)return;let L=e.projectName.trim();if(L.length>100){e.nameError="Use 100 characters or fewer.";return}e.nameSaving=!0,e.nameError="",e.nameMessage="";try{let z=await t.post("/api/user/project-name",{type:C._type,id:C._id,name:L});C.projectName=z.data.name,C._label=C.projectName||C._fallbackLabel,e.selectedProject===C&&(e.nameMessage=L?"Project name saved.":"Default project name restored."),E||(e.dashboardCursor=null,await V(),e.selectedProject===C&&(e.selectedProject=e.items.find(K=>K._type===C._type&&K._id===C._id)||null))}catch{e.selectedProject===C&&(e.nameError="The project name could not be saved. Try again.")}finally{e.nameSaving=!1}},e.copyingId=null,e.copyLink=async C=>{if(!C._viewUrl||e.copyingId)return;let L=new URL(C._viewUrl,o.location.origin).href;e.copyingId=C._type+":"+C._id;try{await Wa(L),e.addToast({title:"Link copied",body:"The anonymous link is ready to share."})}catch{e.addToast({title:"Copy this anonymous link",body:L})}finally{e.copyingId=null}},e.items=[],e.search="",e.loading=!0,e.statusKeyLabels={ready:"Ready",progress:"Preparing",error:"Error",expired:"Expiring / expired",removed:"Removing / removed"};let p=["queue","download","downloaded","preparing","anonymizing"];function u(C){return C==="ready"||C==="error"?C:C==="expired"||C==="expiring"?"expired":C==="removed"||C==="removing"?"removed":(p.indexOf(C)>-1,"progress")}let y=7200*1e3,m="dashboard.filterPrefs",b={typeFilter:"all",filters:{status:{ready:!0,progress:!0,error:!0,expired:!0,removed:!1}},orderBy:"-anonymizeDate"},h=loadFilterPrefs(m)||{};e.typeFilter=h.typeFilter||b.typeFilter,e.filters={status:Object.assign({},b.filters.status,h.filters&&h.filters.status||{})},e.orderBy=h.orderBy||b.orderBy;let w={_name:{label:"Anonymous ID",defaultDesc:!1},_label:{label:"Project",defaultDesc:!1},anonymizeDate:{label:"Anonymize date",defaultDesc:!0},status:{label:"Status",defaultDesc:!1},lastView:{label:"Last view",defaultDesc:!0},pageView:{label:"Views",defaultDesc:!0},"options.expirationDate":{label:"Expiration",defaultDesc:!1}};e.sortFields=w,e.sortField=()=>e.orderBy.replace(/^-/,""),e.sortDesc=()=>e.orderBy.charAt(0)==="-",e.sortLabel=()=>{let C=w[e.sortField()];return C?C.label:"Custom"},e.isSortedBy=C=>e.sortField()===C,e.setSort=(C,L)=>{typeof L!="boolean"&&(L=e.isSortedBy(C)?!e.sortDesc():!!(w[C]&&w[C].defaultDesc)),e.orderBy=(L?"-":"")+C},e.toggleSortDirection=()=>{e.setSort(e.sortField(),!e.sortDesc())},e.watchGroup(["typeFilter","orderBy"],()=>{saveFilterPrefs(m,{typeFilter:e.typeFilter,filters:e.filters,orderBy:e.orderBy})}),e.watch("filters",()=>{saveFilterPrefs(m,{typeFilter:e.typeFilter,filters:e.filters,orderBy:e.orderBy})},!0),r.load().then(C=>{e.quota=C},console.error);function R(C,L,z,K,ie,se){C.pageView||(C.pageView=0),C.lastView||(C.lastView=""),C.options=C.options||{},C.options.terms=(C.options.terms||[]).filter(he=>he),C._id=L||"",C._source=K,C._broken=!L,C._name=L||K||"(unnamed)",C._fallbackLabel=C._type==="gist"?"Gist "+(L||K||"without an ID"):K||z||C._name,C._label=C.projectName||C._fallbackLabel,C._editUrl=L?ie:null,C._viewUrl=L?se:null,C._broken&&(C.status="error",C.statusMessage="incomplete_record"),C._statusKey=u(C.status);let Y=C.anonymizeDate||C.lastView;if(C._stale=C._statusKey==="progress"&&!!Y&&Date.now()-new Date(Y).getTime()>y,C.status==="expired"||C.status==="expiring")C._expiry={kind:"expired",date:C.options.expirationDate},C._expiry.label=ba(C.options.expirationDate)||void 0;else if(C.status!=="ready")C._expiry={kind:"none"};else if(C.options.expirationMode==="never"||!C.options.expirationDate)C._expiry={kind:"never"};else{C._expiry={kind:"date",date:C.options.expirationDate};let he=new Date(C.options.expirationDate).getTime()-Date.now();if(he>0&&he<=168*3600*1e3){let Se=Math.max(1,Math.round(he/36e5)),Ue=Math.round(he/864e5);C._expiry.soon=Se<48?"in "+Se+(Se===1?" hour":" hours"):"in "+Ue+" days"}}return C}function S(C){return t.get(C).then(L=>L.data||[],L=>(console.error(L),[]))}function N(){return e.loading=!0,i.all([S("/api/user/anonymized_repositories"),S("/api/user/anonymized_pull_requests"),S("/api/user/anonymized_gists")]).then(C=>{let L=C[0],z=C[1],K=C[2],ie=[];L.forEach(se=>{se._type="repo";let Y=se.source||{};ie.push(R(se,se.repoId,se.repoId,Y.fullName,"/anonymize/"+se.repoId,"/r/"+se.repoId+"/"))}),z.forEach(se=>{se._type="pr";let Y=se.source||{};ie.push(R(se,se.pullRequestId,se.pullRequestId,Y.repositoryFullName?Y.repositoryFullName+"#"+Y.pullRequestId:void 0,"/pull-request-anonymize/"+se.pullRequestId,"/pr/"+se.pullRequestId+"/"))}),K.forEach(se=>{se._type="gist";let Y=se.source||{};ie.push(R(se,se.gistId,se.gistId,Y.gistId,"/gist-anonymize/"+se.gistId,"/gist/"+se.gistId+"/"))}),e.items=ie,e.removedCount=ie.filter(se=>se._statusKey==="removed").length,e.loading=!1})}let v=0,E=!1;e.dashboardCursor=null,e.dashboardError="";function M(C){let L=C.source||{};return C._type==="repo"?R(C,C.repoId,C.repoId,L.fullName,"/anonymize/"+C.repoId,"/r/"+C.repoId+"/"):C._type==="pr"?R(C,C.pullRequestId,C.pullRequestId,L.repositoryFullName?L.repositoryFullName+"#"+L.pullRequestId:void 0,"/pull-request-anonymize/"+C.pullRequestId,"/pr/"+C.pullRequestId+"/"):R(C,C.gistId,C.gistId,L.gistId,"/gist-anonymize/"+C.gistId,"/gist/"+C.gistId+"/")}function V(C=!1){if(E)return N();let L=++v;return e.loading=!C,e.loadingMore=C,e.dashboardError="",t.get("/api/user/dashboard",{params:{q:e.search,type:e.typeFilter,sort:e.orderBy,statuses:Object.keys(e.filters.status).filter(z=>e.filters.status[z]!==!1).join(",")||"none",attention:String(e.projectView==="attention"),cursor:C?e.dashboardCursor:void 0}}).then(z=>{if(L===v){if(!Array.isArray(z.data?.items))return E=!0,N();e.items=(C?e.items:[]).concat(z.data.items.map(M)),e.dashboardCursor=z.data.cursor,e.dashboardTotals=z.data,C||te()}},z=>{if(L===v){if(z.status===404)return E=!0,N();e.dashboardError="Projects could not be loaded. Please try again."}}).finally(()=>{L===v&&(e.loading=!1,e.loadingMore=!1)})}e.loadMoreProjects=()=>V(!0);let _;e.watchGroup(["search","typeFilter","orderBy","projectView"],()=>{E||(_&&d.timeout.cancel(_),_=d.timeout(()=>V(),150))},!1),e.watch("filters",()=>{E||V()},!0,!1),e.on("dispose",()=>{v++}),V(),e.openItem=(C,L)=>{if(!C._viewUrl)return;let z=L&&L.target;z&&z.closest&&z.closest("a, button, .dropdown, input")||(o.location.href=C._viewUrl)},e.hiddenStatusCount=()=>Object.keys(e.filters.status).filter(C=>e.filters.status[C]===!1).length,e.hasHiddenStatus=()=>e.hiddenStatusCount()>0;let G=()=>Object.keys(e.statusKeyLabels);e.onlyRemovedShown=()=>G().every(C=>C==="removed"==(e.filters.status[C]!==!1)),e.isActiveDefault=()=>G().every(C=>C==="removed"==(e.filters.status[C]===!1)),e.statusView=()=>e.projectView==="attention"?"attention":e.onlyRemovedShown()?"removed":e.filters.status.removed===!1?"active":"custom",e.setStatusView=C=>{if(C==="attention")return e.setProjectView("attention");e.projectView="all",G().forEach(L=>{e.filters.status[L]=C==="removed"?L==="removed":L!=="removed"})},e.statusChipKeys=()=>{let C=e.statusView();return C==="removed"?[]:G().filter(L=>e.filters.status[L]===!1&&!(L==="removed"&&C!=="custom"))},e.removedCount=null;function te(){if(E){e.removedCount=e.items.filter(L=>L._statusKey==="removed").length;return}let C=e.dashboardTotals;!C||e.projectView!=="all"||e.search.trim()||e.typeFilter!=="all"||(e.isActiveDefault()?e.removedCount=Math.max(0,C.total-C.filtered):e.onlyRemovedShown()&&(e.removedCount=C.filtered))}e.showViewTabs=()=>e.statusView()!=="active"||e.attentionCount()>0||e.removedCount>0||e.removedCount==null&&!!e.dashboardTotals&&e.dashboardTotals.total>e.dashboardTotals.filtered,e.hasActiveFilters=()=>e.projectView!=="all"||e.typeFilter!=="all"||e.search.trim().length>0||Object.keys(e.filters.status).some(C=>e.filters.status[C]===!1),e.showClearFilters=()=>e.search.trim().length>0||e.typeFilter!=="all"||e.statusChipKeys().length>0,e.isPlainView=()=>!e.showClearFilters(),e.clearFilters=()=>{let C=e.statusView();e.typeFilter="all",e.search="",e.setStatusView(C==="removed"?"removed":"active")};function X(C,L,z,K){t.get("/api/repo/"+C).then(async ie=>{let se=K!==void 0&&K!==ie.data.status;for(let Y of e.items)if(Y._type==="repo"&&Y.repoId==C){se=se||Y.status!==ie.data.status;let he=e.needsAttention(Y);Y.status=ie.data.status,Y.statusMessage=ie.data.statusMessage,Y._statusKey=u(Y.status),Y._statusKey!=="progress"&&(Y._stale=!1);let Se=e.needsAttention(Y);e.dashboardTotals&&he!==Se&&(e.dashboardTotals.attention=Math.max(0,e.dashboardTotals.attention+(Se?1:-1)));break}if(se&&!E){e.dashboardCursor=null;let Y=e.selectedProject;await V(),Y&&e.selectedProject===Y&&(e.selectedProject=e.items.find(he=>he._type===Y._type&&he._id===Y._id)||null)}if(ie.data.status=="ready"||ie.data.status=="error"||ie.data.status=="removed"||ie.data.status=="expired"){L(ie.data);return}d.timeout(()=>X(C,L,z,ie.data.status),2500)},z)}let O=C=>C==="repo"?"repository":C==="gist"?"gist":"pull request",U=C=>C==="repo"?"/api/repo":C==="gist"?"/api/gist":"/api/pr";e.removeItem=C=>{let L=O(C._type);if(confirm(`Are you sure that you want to remove the ${L} ${C._id}?`)){let z=st({title:`Removing ${C._id}...`,date:new Date,body:`The ${L} ${C._id} is going to be removed.`});e.addToast(z);let K=`${U(C._type)}/${C._id}`;t.delete(K).then(()=>{C._type==="repo"?X(C._id,()=>{z.title=`${C._id} is removed.`,z.body=`The ${L} ${C._id} is removed.`},void 0,C.status):(z.title=`${C._id} is removed.`,z.body=`The ${L} ${C._id} is removed.`,V())},ie=>{z.title=`Error during the removal of ${C._id}.`,z.body=ie.body,V()})}},e.refreshItem=C=>{let L=O(C._type),z=st({title:`Refreshing ${C._id}...`,date:new Date,body:`The ${L} ${C._id} is going to be refreshed.`});e.addToast(z);let K=se=>{z.title=`Error during the refresh of ${C._id}.`,z.body=se.data?.error||se.body||"The refresh could not be completed. Please try again.",V()},ie=`${U(C._type)}/${C._id}/refresh`;t.post(ie).then(()=>{C._type==="repo"?X(C._id,se=>{if(se.status!=="ready"){K({body:se.statusMessage||`The repository is ${se.status}.`});return}z.title=`${C._id} is refreshed.`,z.body=`The ${L} ${C._id} is refreshed.`},K,C.status):(z.title=`${C._id} is refreshed.`,z.body=`The ${L} ${C._id} is refreshed.`,V())},K)},e.extendItem=C=>{let L=O(C._type),z=st({title:`Extending ${C._id}...`,date:new Date,body:`The expiration of ${L} ${C._id} is being extended.`});e.addToast(z);let K=`${U(C._type)}/${C._id}/extend`;t.post(K).then(ie=>{let se=ie?.data?.expirationDate?` until ${new Date(ie.data.expirationDate).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}`:"";C._type==="repo"?X(C._id,()=>{z.title=`${C._id} is extended.`,z.body=`${L} ${C._id} is extended${se}.`},void 0,C.status):(z.title=`${C._id} is extended.`,z.body=`${L} ${C._id} is extended${se}.`,V())},ie=>{z.title=`Error during the extension of ${C._id}.`;let se=ie.data&&ie.data.error;z.body=se||ie.body,se&&Object.prototype.hasOwnProperty.call(Kn.ERRORS,se)&&(z.body=Kn.ERRORS[se]),V()})},e.itemFilter=C=>{if(e.projectView==="attention"&&!e.needsAttention(C)||e.typeFilter!=="all"&&C._type!==e.typeFilter||e.filters.status[C._statusKey]===!1)return!1;let L=e.search.trim().toLowerCase();return!!(L.length==0||C._label&&String(C._label).toLowerCase().indexOf(L)>-1||C._source&&String(C._source).toLowerCase().indexOf(L)>-1||C._id&&String(C._id).toLowerCase().indexOf(L)>-1||C.conference&&String(C.conference).toLowerCase().indexOf(L)>-1)}};var Fc=function(e,t,s){let i=Ct();e.repoId=s.repoId,e.reviewUrl=window.location.origin+"/r/"+encodeURIComponent(s.repoId)+"/",e.repo=null,e.progress=0,e.rateLimitResetAt=0,e.rateLimitCountdown="",e.shareUrl=(window.location?.origin||"")+"/r/"+encodeURIComponent(e.repoId)+"/",e.copied=!1;let o=null;e.copyShareUrl=async()=>{try{await Wa(e.shareUrl),e.copied=!0,o&&i.timeout.cancel(o),o=i.timeout(()=>{e.copied=!1},2e3)}catch{e.addToast?.({title:"Copy this anonymous link",body:e.shareUrl})}},e.selectShareUrl=m=>{let b=window.getSelection?.();if(!b||!m?.target)return;let h=document.createRange();h.selectNodeContents(m.target),b.removeAllRanges(),b.addRange(h)};var r=null;let d=null,p=!1;function u(m){e.rateLimitResetAt=m,r&&i.interval.cancel(r);function b(){var h=Math.max(0,Math.ceil((m-Date.now())/1e3));if(h<=0)e.rateLimitCountdown="",e.rateLimitResetAt=0,i.interval.cancel(r),r=null;else{var w=Math.floor(h/60),R=h%60;e.rateLimitCountdown=w>0?w+"m "+R+"s":R+"s"}}b(),r=i.interval(b,1e3)}e.on("dispose",function(){p=!0,r&&i.interval.cancel(r),d&&i.timeout.cancel(d)});function y(m){if(!m)return m;var b=m.match(/^rate_limited:(\d+)$/);return b?(u(parseInt(b[1],10)),null):(e.rateLimitResetAt=0,m)}e.getStatus=()=>{p||t.get("/api/repo/"+e.repoId,{repoId:e.repoId,repoUrl:e.repoUrl}).then(m=>{if(!p){e.repo=m.data,m.data.rateLimitResetAt?u(m.data.rateLimitResetAt):e.repo.statusMessage=y(e.repo.statusMessage),e.repo.status=="ready"?e.progress=100:e.repo.status=="queue"?e.progress=10:e.repo.status=="downloaded"?e.progress=50:e.repo.status=="download"||e.repo.status=="preparing"?e.progress=25:e.repo.status=="anonymizing"&&(e.progress=75);var b=!["ready","removed","expired"].includes(e.repo.status);e.repo.status=="error"&&!e.rateLimitResetAt&&(b=!1),b&&(d=i.timeout(e.getStatus,2e3))}},m=>{e.error=m.data.error})},e.getStatus()},dr=function(e,t,s,i,o,r,d){Oc(),e.renderRedacted=_o,e.sourceUrl="",e.workspaceOpen=!1,e.sourceUrlError="",e.previewStatus="idle",e.sourceLoading=!1,e.mobilePane="settings";let p=window.matchMedia?.("(max-width: 767px)");e.mobileWorkspace=!!p?.matches,p?.addEventListener&&Ut()(p,"change",k=>{e.mobileWorkspace=k.matches}),e.selectMobilePane=k=>{e.mobilePane=k};let u=0,y=!1,m=new Set,b=(k,I=!1)=>!y&&k.generation===u&&k.url===e.sourceUrl.trim()&&k.connection===e.githubConnection&&(!I||k.branch===e.source.branch),h=()=>{let k={generation:u,url:e.sourceUrl.trim(),connection:e.githubConnection,branch:e.source.branch};return m.add(k),e.sourceLoading=!0,k},w=k=>{m.delete(k),y||(e.sourceLoading=[...m].some(I=>b(I)))};e.on("dispose",()=>{y=!0,u++});let R=null,S=k=>k.gistId&&!k.repo?"gist:"+k.gistId.toLowerCase():(k.owner+"/"+k.repo).toLowerCase()+(k.pullRequestId?"/pull/"+k.pullRequestId:""),N=ga(e,["sourceUrl","terms","repoId","pullRequestId","gistId","source","options","conference","githubConnection"],"anonymize:"+(o.path?.()||"")),v=null,E=null,M=null;e.hostingReview=!1,e.previewExpanded=!1,e.taskValidationError="",e.editRepository=()=>{e.mobilePane="settings",e.previewExpanded=!1,tt(()=>document.querySelector(".anonymize-fields .is-invalid")?.focus())},e.submitRepository=k=>{if(e.taskValidationError="",!(e.sourceLoading||e.billingBusy||e.hostingSaving||e.billingPending)){if(ei()||e.anonymize?.invalid||e.sourceUrlError){e.taskValidationError="Check the highlighted fields before continuing.",e.editRepository();return}return e.hostingNeedsPayment()?e.checkoutRepository(Gi(e.hostingChoice())?e.hostingChoice():""):e.anonymizeRepo(k)}},e.hostingPayment=!1,e.hostingAlternatives=!1,e.hostingPrice=k=>k.amount==null?"Price shown at checkout":new Intl.NumberFormat(void 0,{style:"currency",currency:k.currency,minimumFractionDigits:0,maximumFractionDigits:2}).format(k.amount/100)+(k.interval==="year"?" billed annually":" billed monthly"),e.hostingPlan="",e.hostingSaving=!1,e.selectedHostingPlan=()=>e.authorPlans().find(k=>k.id===e.hostingPlan)||e.hostingSubscriptionPlan?.();let V=()=>t.get("/api/user/quota").then(k=>{e.hostingQuota=k.data});Ki(e,t,async()=>{await V(),e.hostingQuotaBlocked=!1},{confirmedMessage:"Hosting status refreshed. Your draft is ready to continue."}),V().catch(()=>{}),e.authorPlans=()=>(e.billing?.plans||[]).filter(k=>["author_monthly","author_annual"].includes(k.id)),e.conferenceHosting=()=>!!(e.conference&&e.conference_data?.hosting),e.hasAuthorHosting=()=>["author_monthly","author_annual"].includes(e.billing?.allowance?.plan),e.hostingNeedsPayment=()=>!e.billing?.enabled||e.detectedType!=="repo"||e.hasAuthorHosting()||e.isUpdate&&e.role!=="owner"?!1:!!(e.options?.expirationMode==="never"&&!e._existingNever&&!e.repositoryGrants("repo_never").length||!e.conferenceHosting()&&e.hostingQuotaBlocked),e.repositoryGrants=k=>(e.billing?.grants||[]).filter(I=>I.planId===k&&I.scope===`repo:${e.repoId}`&&["active","paid","past_due"].includes(I.status)&&new Date(I.until).getTime()>Date.now()),e.repositoryAddonPlans=()=>(e.billing?.plans||[]).filter(k=>Gi(k.id)&&(["repo_extend","repo_pack"].includes(k.id)||!e.repositoryGrants(k.id).length)),e.hostingOneTimePlans=()=>{let k=I=>I.map(B=>(e.billing?.plans||[]).find(j=>j.id===B&&!e.repositoryGrants(B).length)).filter(Boolean);return e.options?.expirationMode==="never"&&!e._existingNever&&!e.repositoryGrants("repo_never").length?k(["repo_never"]):e.hostingQuotaBlocked&&!e.conferenceHosting()?k(["repo_slot","repo_pack"]):[]},e.hostingOneTime=()=>e.hostingOneTimePlans()[0];let _=["free","repo_slot"];e.liveUpdatesIncluded=()=>{if(!e.billing?.enabled||e.detectedType!=="repo"||e.isUpdate&&e.role!=="owner"||e.conferenceHosting()||e.hasAuthorHosting())return!0;let k=e.billing?.allowance?.plan;return k&&!_.includes(k)?!0:e.repositoryGrants("author_pass").length>0||e.repositoryGrants("repo_pack").length>0},e.liveUpdatesPrice=()=>{let k=(e.billing?.plans||[]).find(I=>I.id==="author_pass");return k?.amount!=null?e.billingAmount(k):""},e.showHostingOptions=()=>{e.mobilePane="settings",tt(()=>document.getElementById("repository-hosting")?.scrollIntoView({block:"start",behavior:"smooth"}))},e.neverExpireTag=()=>{if(e.hasAuthorHosting())return"Included in your subscription";if(e.repositoryGrants("repo_never").length)return"Paid for this repository";let k=(e.billing?.plans||[]).find(I=>I.id==="repo_never");return k?.amount!=null?`${e.billingAmount(k)} once, or with a subscription`:"Subscription or one-time add-on"},e.hostingCycle="author_annual",e.hostingSubscriptionPlan=()=>e.authorPlans().find(k=>k.id===e.hostingCycle)||e.authorPlans().find(k=>k.interval==="year")||e.authorPlans()[0],e.hostingAnnualSavings=()=>{let k=e.authorPlans().find(B=>B.interval==="month")?.amount,I=e.authorPlans().find(B=>B.interval==="year")?.amount;return k&&I&&Ie.hostingOneTimePlans().concat(e.authorPlans().length?[e.hostingSubscriptionPlan()]:[]),e.hostingOptionName=k=>({repo_slot:"Add this repository",repo_pack:"Paper pack",repo_never:"Never expire",author_annual:"Author subscription",author_monthly:"Author subscription"})[k.id]||k.name,e.hostingOptionBlurb=k=>({repo_slot:"Hosted outside your free repositories. Refresh it by hand.",repo_pack:"Adds automatic updates for 180 days and keeps the link online for a year.",repo_never:"This link never expires. No subscription."})[k.id]||`${k.repositories} repositories, ${e.billingBytes(k.storage)}, automatic updates and links that never expire.`,e.hostingChoice=()=>{let k=e.hostingOneTimePlans();return k.some(I=>I.id===e.hostingPlan)||e.authorPlans().some(I=>I.id===e.hostingPlan)?e.hostingPlan:k[0]?.id||e.hostingSubscriptionPlan()?.id||""},e.checkoutRepository=async(k="")=>{if(!(e.hostingSaving||e.billingBusy||!e.billing?.csrf||e.sourceLoading)){e.hostingSaving=!0,e.billingError="";try{let I=N.checkpoint(),B=JSON.stringify(I);(!E||B!==M)&&(E=(await t.post("/api/billing/draft",{path:o.path(),values:I},{headers:{"x-csrf-token":e.billing.csrf}})).data.id,M=B);let j=e.authorPlans().find(ue=>ue.id===e.hostingPlan)||e.hostingSubscriptionPlan();if(!k&&!j)throw new Error("No author plan available");await e.checkout(k||j.id,k?e.repoId:"",{draftId:E})}catch{e.billingError="Your draft could not be saved for checkout. Your form is unchanged. Please try again."}finally{e.hostingSaving=!1}}},e.useDatedHosting=()=>{e.options.expirationMode="remove"},e.discardDraft=async()=>{N.discard(),e.workspaceOpen=!!e.sourceUrl,e.error=null,e.sourceUrl?await e.urlSelected(!0):(u++,e.sourceLoading=!1,e.detectedType=null,e.details=null,e.sourceUrlError="",Kt.cancel(),Tn.cancel(),On.cancel(),e.previewStatus="idle")},e.githubConnection=void 0,e.githubConnections=null,e.gistOAuthRequired=!1,e.gistAppRequired=!1;let G=()=>{let k={};for(let I of["sourceUrl","terms","repoId","pullRequestId","gistId","source","options","conference","githubConnection"])k[I]=e[I];sessionStorage.setItem("github-access-draft",JSON.stringify({path:o.path(),savedAt:Date.now(),draft:k}))};e.connectGistApp=()=>{G(),window.location.href="/github/app/login?returnTo="+encodeURIComponent(o.path())},e.connectGistOAuth=()=>{G(),window.location.href="/github/login?returnTo="+encodeURIComponent(o.path())},e.grantGitHubAccess=()=>{G();let k=o.path(),I=he(e.sourceUrl)||"",B=e.githubConnections?.appConnected?"/github/app/install":"/github/app/login";window.location.href=B+"?returnTo="+encodeURIComponent(k)+"&repository="+encodeURIComponent(I)+"&install=1"},e.chooseGitHubConnection=async k=>{e.githubConnection=k,e.readme="",e.sourceUrl&&await Ue()},e.detectedType=null,e.repoId="",e.pullRequestId="",e.gistId="",e.terms="",e.defaultTerms="",e.branches=[],e.source={branch:"",commit:""},e.options={expirationMode:"remove",expirationDate:new Date,update:!1,image:!0,pdf:!0,notebook:!0,link:!0,body:!0,title:!0,origin:!1,diff:!0,content:!0,comments:!0,username:!0,date:!0};function te(){let k=new Date;return k.setMonth(k.getMonth()+6),k}e.options.expirationDate=te();function X(k){let I=k.getFullYear(),B=String(k.getMonth()+1).padStart(2,"0"),j=String(k.getDate()).padStart(2,"0");return`${I}-${B}-${j}`}e.minExpirationDate=X(new Date);let O=()=>{let k=new Date,I=new Date(k);if(I.setFullYear(I.getFullYear()+1),e.billing?.enabled&&e.detectedType==="repo"&&!e.hasAuthorHosting()){I=new Date(k),I.setMonth(I.getMonth()+(e.billing.freeExpirationMonths||5));for(let ue of e.repositoryGrants("repo_extend"))new Date(ue.until)>I&&(I=new Date(ue.until));e.conference_data?.endDate&&new Date(e.conference_data.endDate)>I&&(I=new Date(e.conference_data.endDate)),e._savedExpirationDate&&e._savedExpirationDate>I&&(I=new Date(e._savedExpirationDate));let B=e.options?.expirationDate,j=e._savedExpirationDate&&B instanceof Date&&B.getTime()===e._savedExpirationDate.getTime();B instanceof Date&&B>I&&!j&&(e.options.expirationDate=new Date(I))}e.maxExpirationDate=X(I)};O(),e.watch(()=>[e.billing,e.repoId,e.conference_data,e.isUpdate,e._savedExpirationDate,e.options?.expirationMode,e.detectedType],O,!0,!1),e.anonymize_readme="",e.readme="",e.isUpdate=!1,e.userRepos=[],e.userReposStatus="idle",e.userRepoFilter="",e.loadUserRepos=(k=!1)=>{e.userReposStatus!=="loading"&&(e.userReposStatus="loading",t.get("/api/user/all_repositories",k?{params:{force:"1"}}:{}).then(I=>{if(y)return;let B=Array.isArray(I.data)?I.data.filter(j=>j&&j.fullName):[];e.userRepos=B.sort((j,ue)=>j.fullName.localeCompare(ue.fullName,void 0,{sensitivity:"base"})),e.userReposStatus="ready"},()=>{y||(e.userReposStatus="error")}))},e.filteredUserRepos=()=>{let k=String(e.userRepoFilter||"").trim().toLowerCase(),I=e.userRepos||[];return k?I.filter(B=>B.fullName.toLowerCase().includes(k)):I},e.selectUserRepo=k=>{if(k?.fullName)return e.sourceUrl="https://github.com/"+k.fullName,e.urlSelected()},!i.repoId&&!i.pullRequestId&&!i.gistId&&Promise.resolve().then(()=>{y||e.loadUserRepos()}),e.previousConfigurations=[],e.previousConfigurationId="";let U,C=k=>String(k||"").replace(/\/$/,"").replace(/\.git$/i,"").toLowerCase();async function L(){if(e.isUpdate||i.repoId||i.pullRequestId||i.gistId)return;let k={generation:u,url:e.sourceUrl.trim(),connection:e.githubConnection};try{U||(U=t.get("/api/user/anonymized_repositories").then(j=>j.data));let I=await U;if(!b(k))return;let B=C(he(k.url));e.previousConfigurations=I.filter(j=>j.repoId&&j.options&&C(j.source?.fullName)===B).sort((j,ue)=>(Date.parse(ue.anonymizeDate)||0)-(Date.parse(j.anonymizeDate)||0)),e.previousConfigurationId=e.previousConfigurations[0]?.repoId||""}catch{U=void 0}}e.sourceSummary=()=>{let k=String(e.sourceUrl||""),I=/github\.com\/([^/\s]+\/[^/\s]+)\/pull\/(\d+)/i.exec(k);return I?I[1]+" \xB7 PR #"+I[2]:(I=/gist\.github\.com\/([^/\s]+)\/([0-9a-f]{8,})/i.exec(k),I?I[1]+" \xB7 gist "+(I[2].length>12?I[2].slice(0,7)+"\u2026"+I[2].slice(-4):I[2]):"")},e.previewId=()=>e.detectedType==="pr"?e.pullRequestId:e.detectedType==="gist"?e.gistId:e.repoId,e.previewPath=()=>{let k=e.previewId();return k?(e.detectedType==="pr"?"/pr/":e.detectedType==="gist"?"/gist/":"/r/")+encodeURIComponent(k)+"/":""},e.previewUrl=()=>{let k=e.previewPath();return k?"anonymous.4open.science"+k.replace(/\/$/,""):""},e.previewRedactions=()=>{let k=j=>typeof j=="string"?(j.match(Zo)||[]).length:0;if(e.detectedType==="repo")return e.previewViewer.redactionCount();let I=e.detectedType==="pr"?ks:Cs,B=0;return I.forEach(j=>{B+=k(j)}),B};let z=(k,I)=>k.localeCompare(I,void 0,{sensitivity:"base"}),K=k=>k.slice(k.lastIndexOf("/")+1),ie={key:null,files:[]};e.previewTreeFiles=()=>{if(!e.preserve.commit||!me)return[];let k=e.preserve.commit+"\0"+e.terms+"\0"+bs.size+"\0"+me.files.length;if(ie.key===k)return ie.files;let I=me.files.map(B=>{let j=e.previewPathName(B),ue=j.lastIndexOf("/");return{name:j.slice(ue+1),path:ue<0?"":j.slice(0,ue),size:0,sourcePath:B}});return ie={key:k,files:I},I},e.selectPreviewPath=k=>{let I=e.previewTreeFiles().find(B=>"/"+(B.path?B.path+"/":"")+B.name===k);I&&e.openPreviewFile(I.sourcePath)},e.existingConfigurationUrl=()=>{let k=e.previousConfigurations.find(I=>I.repoId===e.previousConfigurationId);return k?"/anonymize/"+encodeURIComponent(k.repoId):null};function se(k){t.get("/api/user/default").then(I=>{let B=I.data;B.terms&&(e.defaultTerms=B.terms.join(` -`)),e.options=Object.assign({},e.options,B.options),e.options.expirationDate=B.options&&B.options.expirationDate?new Date(B.options.expirationDate):te(),!i.repoId&&!i.pullRequestId&&!i.gistId&&!e.anonymize?.terms?.dirty&&(e.terms=e.defaultTerms),k&&k()})}function Y(k,I,B){e.anonymize&&e.anonymize[k]&&e.anonymize[k].setValidity(I,B)}function he(k){try{let I=parseGithubUrl(k);if(I&&I.owner&&I.repo)return I.owner+"/"+I.repo}catch{}return null}e.accessRepairAllowed=!1,e.repairingGitHubAccess=!1,e.accessRepairMessage="",e.repairGitHubAccess=async()=>{if(!e.accessRepairAllowed||e.repairingGitHubAccess||!e.githubConnections?.appEnabled||!i.repoId||e.role!=="owner"||e.githubConnection!=="github-app"||he(e.sourceUrl)!==e._originalFullName)return;e.repairingGitHubAccess=!0,e.accessRepairMessage="";let k=h();try{let I=await t.get("/github/connections");if(e.githubConnections=I.data,!I.data.appEnabled)return;let B=await t.post("/github/connections/migrate",{type:"repository",id:i.repoId,connection:"github-app"},{headers:{"X-CSRF-Token":I.data.csrf}});if(!b(k))return;e.error=null,B.data.fullName&&(e._originalFullName=B.data.fullName,e.source.fullName=B.data.fullName,e.sourceUrl="https://github.com/"+B.data.fullName),e.accessRepairMessage="GitHub access repaired. Your anonymous URL and published commit are unchanged.",await e.urlSelected(!0)}catch{b(k)&&(e.accessRepairMessage="Unable to repair GitHub access. Check the App's repository permissions in Manage access, then retry. Your published snapshot has not been replaced.")}finally{e.repairingGitHubAccess=!1,w(k)}},e.reconnectingSource=!1,e.reconnectRepositoryId=void 0,e.reconnectSource=async()=>{if(confirm("Reconnect to the repository currently at this GitHub URL? Review its branch and commit before saving. Saving will replace the published snapshot.")){e.reconnectingSource=!0,e.reconnectRepositoryId=void 0,e.source.commit="",e.source.branch="",e.readme="",e.branches=[];try{await Qe()}catch{}}};function Se(){return e.reconnectingSource||!e.isUpdate||!e._originalRepositoryID?void 0:he(e.sourceUrl)===e._originalFullName?e._originalRepositoryID:void 0}async function Ue(){e._preservingDraft=!0;try{await e.urlSelected(!0)}finally{e._preservingDraft=!1}}async function Be(){let k=new URLSearchParams(window.location.search).get("billingDraft");if(k){N.restore();try{let B=(await t.get("/api/billing/draft/"+encodeURIComponent(k))).data;if(B.path!==o.path())throw new Error("Wrong task");v=B.values.conference||null;for(let j of["sourceUrl","terms","repoId","source","options","conference","githubConnection"])Object.prototype.hasOwnProperty.call(B.values,j)&&(e[j]=B.values[j]);return e.options?.expirationDate&&(e.options.expirationDate=new Date(e.options.expirationDate)),E=B.id,M=JSON.stringify(N.checkpoint()),e.draftRestored=!0,e.hostingReview=!0,e.sourceUrl&&await Ue(),o.replace?.(o.path()),!0}catch{e.billingError="The checkout draft could not be restored. Retry by reloading this page; any local draft is still available."}}let I;try{I=JSON.parse(sessionStorage.getItem("github-access-draft")||"null")}catch{return!1}if(!I||I.path!==o.path()||Date.now()-I.savedAt>=30*6e4)return N.restore()?(e.sourceUrl&&await Ue(),!0):!1;N.restore();for(let B of["sourceUrl","terms","repoId","pullRequestId","gistId","source","options","conference","githubConnection"])Object.prototype.hasOwnProperty.call(I.draft,B)&&(e[B]=I.draft[B]);return e.options.expirationDate&&(e.options.expirationDate=new Date(e.options.expirationDate)),await Ue(),sessionStorage.removeItem("github-access-draft"),!0}se(()=>{!i.repoId&&!i.pullRequestId&&!i.gistId&&d(Be,0),i.repoId&&i.repoId!=""&&(e.isUpdate=!0,e.detectedType="repo",e.repoId=i.repoId,t.get("/api/repo/"+e.repoId).then(async k=>{e.accessRepairAllowed=!["removed","archived","preparing","queue","download","removing","expiring"].includes(k.data.status),e.githubConnection=k.data.connection||"oauth",e.sourceUrl="https://github.com/"+k.data.source.fullName,e._originalFullName=k.data.source.fullName,e.terms=k.data.options.terms.filter(I=>I).join(` -`),e.source=k.data.source,e.role=k.data.role||"owner",e._existingNever=k.data.options.expirationMode==="never",e._savedExpirationDate=k.data.options.expirationDate?new Date(k.data.options.expirationDate):null,e.coauthors=k.data.coauthors||[],e._originalBranch=k.data.source.branch,e.options=Object.assign({},e.options,k.data.options),e.conference=k.data.conference,e._originalConference=k.data.conference,e.repositoryID=k.data.source.repositoryID,e._originalRepositoryID=k.data.source.repositoryID,k.data.options.expirationDate&&(e.options.expirationDate=new Date(k.data.options.expirationDate)),R=S(parseGithubUrl(e.sourceUrl)),!await Be()&&(await Promise.all([Qe(),He()]),ws())},()=>{o.url("/404")})),i.pullRequestId&&i.pullRequestId!=""&&(e.isUpdate=!0,e.detectedType="pr",e.pullRequestId=i.pullRequestId,t.get("/api/pr/"+e.pullRequestId).then(async k=>{if(e.githubConnection=k.data.connection||"oauth",e.sourceUrl="https://github.com/"+k.data.source.repositoryFullName+"/pull/"+k.data.source.pullRequestId,e.terms=k.data.options.terms.filter(I=>I).join(` -`),e.source=k.data.source,e.options=Object.assign({},e.options,k.data.options),e.conference=k.data.conference,e._originalConference=k.data.conference,k.data.options.expirationDate&&(e.options.expirationDate=new Date(k.data.options.expirationDate)),R=S(parseGithubUrl(e.sourceUrl)),!await Be())try{await Qa()}catch{}},()=>{o.url("/404")})),i.gistId&&i.gistId!=""&&(e.isUpdate=!0,e.detectedType="gist",e.gistId=i.gistId,t.get("/api/gist/"+e.gistId).then(async k=>{e.sourceUrl="https://gist.github.com/"+k.data.source.gistId,e.terms=k.data.options.terms.filter(I=>I).join(` -`),e.source=k.data.source,e.options=Object.assign({},e.options,k.data.options),e.conference=k.data.conference,e._originalConference=k.data.conference,k.data.options.expirationDate&&(e.options.expirationDate=new Date(k.data.options.expirationDate)),R=S(parseGithubUrl(e.sourceUrl)),!await Be()&&await Za()},()=>{o.url("/404")}))}),t.get("/github/connections").then(k=>{e.githubConnections=k.data,!i.repoId&&!i.pullRequestId&&!i.gistId&&e.githubConnection===void 0&&k.data.appEnabled&&k.data.appConnected&&(e.githubConnection="github-app",e.sourceUrl&&e.workspaceOpen&&Ue())}).catch(()=>{}),e.urlSelected=async(k=!1)=>{let I=++u;e.previousConfigurations=[],e.previousConfigurationId="";let B;try{B=parseGithubUrl(e.sourceUrl.trim())}catch{e.sourceLoading=!1,Kt.cancel(),Tn.cancel(),On.cancel(),e.previewStatus="idle",e.sourceUrlError=e.sourceUrl?"Please provide a valid GitHub URL.":"",Y("sourceUrl","github",!1);return}let j=S(B),ue=k||R===j;R=j,e.sourceUrlError="",Y("sourceUrl","github",!0);let ye=document.activeElement?.id==="sourceUrl-landing";e.workspaceOpen=!0,setTimeout(()=>{let Ke=window.document.getElementById("sourceUrl");if(Ke){try{Ke.setSelectionRange(0,0)}catch{}Ke.scrollLeft=0}},50),ye&&d(()=>document.getElementById("sourceUrl")?.focus(),0),e.reconnectingSource=!1,e.reconnectRepositoryId=void 0,!ue&&!e.isUpdate&&(e.repoId="",e.pullRequestId="",e.gistId=""),e.details=null,e.branches=[],ue||(e.source={type:"GitHubStream",branch:"",commit:""}),Kt.cancel(),Tn.cancel(),On.cancel(),ks.clear(),Cs.clear(),e.previewStatus="idle",e.anonymize_readme="",e.readme="",lt(),e.detectedType=null,e.gistOAuthRequired=!1,e.gistAppRequired=!1,e._preservingDraft=ue;try{B.gistId&&!B.repo?(e.detectedType="gist",e.source={gistId:B.gistId},await Za()):B.pullRequestId?(e.detectedType="pr",e.source={repositoryFullName:B.owner+"/"+B.repo,pullRequestId:B.pullRequestId},await Qa()):(e.detectedType="repo",L(),await Promise.all([Qe(),He()]),ws())}catch{}finally{I===u&&(e._preservingDraft=!1)}$('[data-toggle="tooltip"]').tooltip()},$('[data-toggle="tooltip"]').tooltip(),e.watch("source.branch",async()=>{if(e.detectedType!=="repo")return;let k=e.branches.filter(B=>B.name==e.source.branch)[0];if(!k)return;!(!e.reconnectingSource&&e.isUpdate&&e._originalBranch===e.source.branch&&e.source.commit)&&!(e._preservingDraft&&e.source.commit)&&(e.source.commit=k.commit),e.readme=k.readme,await He(),ws()}),e.getBranches=async k=>{let I=parseGithubUrl(e.sourceUrl),B=h();try{let j=await t.get(`/api/repo/${I.owner}/${I.repo}/branches`,{params:{reconnect:e.reconnectingSource?"1":void 0,anonymizedRepoId:e.isUpdate&&i.repoId&&he(e.sourceUrl)===e._originalFullName?i.repoId:void 0,connection:e.githubConnection,force:k===!0||e.reconnectingSource?"1":"0",repositoryID:Se()}});if(!b(B))return;e.branches=j.data,e.sourceUnreachable=!1,e.source.branch||(e.source.branch=e.details.defaultBranch);let ue=e.branches.filter(ye=>ye.name==e.source.branch);ue.length>0&&(!(!e.reconnectingSource&&!k&&e.isUpdate&&!e.options.update&&e._originalBranch===e.source.branch&&e.source.commit)&&!(e._preservingDraft&&e.source.commit)&&(e.source.commit=ue[0].commit),e.readme=ue[0].readme,await He(k))}catch(j){if(!b(B))return;e.branches=[],e.sourceUnreachable=j&&(j.status===404||j.data&&j.data.error==="repo_not_found");let ue=j&&j.data&&j.data.error||(j&&j.status===404?"repo_not_found":"unknown_error");r("ERRORS."+ue).then(ye=>{e.toasts=e.toasts||[],e.addToast({title:"Error",date:new Date,body:ye}),e.error=ye},console.error),typeof Y=="function"&&Y("sourceUrl","missing",!1)}finally{w(B)}};async function Qe(){let k=parseGithubUrl(e.sourceUrl),I=h();try{Es();let B=await t.get(`/api/repo/${k.owner}/${k.repo}/`,{params:{reconnect:e.reconnectingSource?"1":void 0,anonymizedRepoId:e.isUpdate&&i.repoId&&he(e.sourceUrl)===e._originalFullName?i.repoId:void 0,connection:e.githubConnection,repositoryID:Se(),force:"1"}});if(!b(I))return;e.details=B.data,e.reconnectingSource&&(e.reconnectRepositoryId=e.details.externalId),e.details&&e.details.id&&(e.repositoryID=e.details.id),e.repoId||(e.repoId=e.details.repo+"-"+generateRandomId(4)),await e.getBranches(e.reconnectingSource)}catch(B){if(!b(I))return;throw B.data&&(r("ERRORS."+B.data.error).then(j=>{e.addToast({title:"Error",date:new Date,body:j}),e.error=j},console.error),Ss(B.data.error)),Y("sourceUrl","missing",!1),B}finally{w(I)}}async function He(k){if(e.readme&&!k)return e.readme;let I=parseGithubUrl(e.sourceUrl),B=h();try{let j=await t.get(`/api/repo/${I.owner}/${I.repo}/readme`,{params:{reconnect:e.reconnectingSource?"1":void 0,anonymizedRepoId:e.isUpdate&&i.repoId&&he(e.sourceUrl)===e._originalFullName?i.repoId:void 0,connection:e.githubConnection,force:k===!0?"1":"0",branch:e.source.branch,repositoryID:Se()}});b(B,!0)&&(e.readme=j.data)}catch{b(B,!0)&&(e.readme="")}finally{w(B)}}let et={magicalBraces:!0},Re=k=>k.startsWith("/")&&!k.endsWith("/")&&zn(vs(k.slice(1),et),et)===k.slice(1),Fe=()=>Object.keys(e.preserve.picked).filter(k=>e.preserve.picked[k]).sort().map(k=>"/"+zn(k,et)),W=k=>"/"+zn(k,et)+"/**",fe=k=>"!/"+zn(k,et)+"/",de=()=>String(e.preserve.patterns||"").split(` -`).map(k=>k.trim()).filter(Boolean),ce=null,me=null,Me=new Set,A=0,T=null,F=()=>!1;function J(){let k=A+"\0"+e.preserve.patterns;if(k!==T){T=k;try{F=ja(Ha([...Fe(),...de()]))}catch{F=()=>!1}}return F}function H(k){let I=new Map([["",{dirs:[],files:[]}]]);for(let B of k){let j=B.split("/"),ue="";for(let ye=0;yeI.startsWith(k+"/"))),ce.descendants.get(k)}let le=k=>J()(k);function ne(k){let I=Z(k),B=0;for(let j of I)le(j)&&B++;return B===0?"none":B===I.length?"all":"some"}e.preserve={open:!1,loading:!1,error:"",truncated:!1,commit:"",search:"",expanded:{},picked:{},patterns:"",patternsOpen:!1},e.preserveSummary=()=>{let k=(e.options?.preserveFiles||[]).map(I=>String(I).trim()).filter(Boolean).map(I=>Re(I)?vs(I.slice(1),et):I);return k.length?k.slice(0,2).join(", ")+(k.length>2?` and ${k.length-2} more`:""):"None. Every file is redacted."};async function oe(){let k=e.source?.commit;if(!(ce&&e.preserve.commit===k)){e.preserve.loading=!0,e.preserve.error="",ce=null,me=null;try{let I=parseGithubUrl(e.sourceUrl),B=await t.get(`/api/repo/${I.owner}/${I.repo}/tree`,{params:{commit:k,connection:e.githubConnection,anonymizedRepoId:e.isUpdate&&i.repoId&&he(e.sourceUrl)===e._originalFullName?i.repoId:void 0,repositoryID:Se()}});if(e.source?.commit!==k)return;let j=Array.isArray(B.data.binaryFiles)?B.data.binaryFiles:[];ce=dn(H(B.data.files||[])),me=j.length?dn(H([...B.data.files||[],...j])):ce,Me=dn(new Set(j)),e.preserve.commit=k,e.preserve.truncated=!!B.data.truncated,e.previewFile||Kt()}catch{e.preserve.error="The file list could not be loaded from GitHub. You can still use patterns.",e.preserve.patternsOpen=!0}finally{e.preserve.loading=!1}}}e.watch("source.commit",k=>{e.previewFile&&e.openPreviewFile(""),e.detectedType==="repo"&&k&&e.sourceUrl&&oe().catch(()=>{})}),e.openPreserveFiles=()=>{let k={},I=[];for(let j of e.options?.preserveFiles||[]){let ue=String(j).trim();ue&&(!I.length&&Re(ue)?k[vs(ue.slice(1),et)]=!0:I.push(ue))}let B={};for(let j of Object.keys(k)){let ue=j.split("/");for(let ye=1;ye0}),e.mobileWorkspace&&(e.mobilePane="settings"),A++,d(()=>{let j=document.getElementById("preserve-files-dialog");j?.showModal&&!j.open&&j.showModal(),document.getElementById("preserve-files-search")?.focus()},0),oe()},e.closePreserveFiles=()=>{document.getElementById("preserve-files-dialog")?.close?.(),e.preserve.open=!1},e.savePreserveFiles=()=>{e.options.preserveFiles=Ha([...Fe(),...de()]),e.closePreserveFiles()},e.preserveRows=()=>{if(!ce)return[];let k=J(),I=(ye,Ke,qt)=>{let bt=!!e.preserve.picked[ye],Xn=k(ye);return{kind:"file",path:ye,label:qt,depth:Ke,state:Xn?"all":"none",locked:!bt&&Xn,note:!bt&&Xn?"matched by a pattern":bt&&!Xn?"excluded by a pattern":""}},B=String(e.preserve.search||"").trim().toLowerCase();if(B)return ce.files.filter(ye=>ye.toLowerCase().includes(B)).slice(0,300).map(ye=>I(ye,0,ye));let j=[],ue=(ye,Ke)=>{let qt=ce.dirs.get(ye);for(let bt of qt.dirs){let Xn=!!e.preserve.expanded[bt],xa=de().includes(W(bt));j.push({kind:"dir",path:bt,label:bt.slice(ye?ye.length+1:0)+"/",depth:Ke,open:Xn,state:ne(bt),locked:!1,note:xa?"whole folder":""}),Xn&&ue(bt,Ke+1)}for(let bt of qt.files)j.push(I(bt,Ke,bt.slice(ye?ye.length+1:0)))};return ue("",0),j},e.preserveCount=()=>ce?ce.files.filter(le).length:0,e.togglePreserveDir=k=>{e.preserve.expanded[k]=!e.preserve.expanded[k]},e.togglePreserveFile=k=>{e.preserve.picked[k]=!e.preserve.picked[k],A++},e.togglePreserveFolder=k=>{let I=W(k),B=fe(k),j=de().filter(ye=>ye!==I&&ye!==B),ue=ne(k)==="all"||de().includes(I);for(let ye of Z(k))e.preserve.picked[ye]=!1;A++,e.preserve.patterns=(ue?j:[...j,I]).join(` -`),ue&&Z(k).some(le)&&(e.preserve.patterns=[...j,B].join(` -`))};let ee=/^readme(\.[^/]*)?$/i,ke=[".md",".markdown",".mdown",".mkdn",".rst",".txt",""],pe=["README.md","README","README.markdown","README.rst","README.txt","readme.md"],Ce=k=>{let I=K(k),B=I.indexOf("."),j=ke.indexOf(B===-1?"":I.slice(B).toLowerCase());return j===-1?ke.length:j},Pe=()=>!!ce&&!!e.preserve.commit&&e.preserve.commit===e.source?.commit;e.readmePath=()=>{if(!Pe())return"";for(let k of[".github","","docs"]){let I=(ce.dirs.get(k)?.files||[]).filter(B=>ee.test(K(B)));if(I.length)return I.sort((B,j)=>Ce(B)-Ce(j)||z(B,j))[0]}return""},e.readmeName=()=>K(e.readmePath())||"README.md";let Ve={key:null,fn:()=>!1},Ge=()=>{let k=(e.options?.preserveFiles||[]).map(B=>String(B).trim()).filter(Boolean),I=k.join(` -`);if(I!==Ve.key){let B=()=>!1;try{k.length&&(B=ja(k))}catch{}Ve={key:I,fn:B}}return Ve.fn};e.pathPreserved=k=>!!k&&Ge()(k),e.readmePreserved=()=>{if(e.detectedType!=="repo")return!1;let k=Ge();if(Pe()){let I=e.readmePath();return!!I&&k(I)}return pe.some(I=>k(I))},e.previewPreserved=()=>e.detectedType==="repo"&&(e.previewFile?e.pathPreserved(e.previewFile):e.readmePreserved());function ze(){let k={terms:e.terms?e.terms.split(` -`):[],filePath:e.previewOpenPath()||"README.md",preserveFiles:e.options.preserveFiles||[],image:!!e.options.image,link:!!e.options.link,repoId:e.repoId};e.source&&e.source.branch&&(k.branchName=e.source.branch);try{let I=parseGithubUrl(e.sourceUrl);k.repoName=`${I.owner}/${I.repo}`}catch{}return k}function we(k,I,B){let j=null,ue=0,ye=()=>{if(e.detectedType!==k)return;j&&d.cancel(j);let Ke=++ue;e.previewStatus="loading",j=d(()=>{j=null;let qt=I();if(!qt){e.previewStatus="idle";return}t.post("/api/anonymize-preview",qt).then(bt=>{Ke===ue&&(B(bt.data,qt),e.previewStatus="ready")}).catch(()=>{Ke===ue&&(e.previewStatus="error")})},200)};return ye.cancel=()=>{ue++,j&&d.cancel(j),j=null},e.on("dispose",ye.cancel),ye}e.retryPreview=()=>{e.detectedType==="repo"&&(e.previewFile&&typeof at!="string"?ft(e.previewFile):Kt()),e.detectedType==="pr"&&Tn(),e.detectedType==="gist"&&On()};let be=dn(qo(e));Object.defineProperty(e,"previewViewer",{get:()=>be}),ma(be,e),Object.assign(be,{options:{},files:[],paths:[],content:null,type:"loading",sidebarHidden:!1,sidebarCollapsed:!0,moreOpen:!1,tocOpen:!1,gotoOpen:!1,mdFindOpen:!1,mdFindQuery:"",mdFindTotal:0,mdFindIndex:0}),be.preview=!0,be.fileSize=k=>k===be.filePath&&typeof at=="string"?new Blob([at]).size:!e.previewFile&&e.readme?new Blob([e.readme]).size:null,be.openPreserveFiles=()=>e.openPreserveFiles(),be.previewPreserved=()=>e.previewPreserved(),be.retryContent=()=>e.retryPreview();let ot=k=>Me.has(k)||/\.(pdf|png|jpe?g|gif|svg|ico|bmp|tiff?|webp|avif|heic|heif|mp4|webm|mp3|wav|zip|bin)$/i.test(k),rt=(k="")=>({path:k,loading:!1,note:"",loadError:""});e.previewFile="",e.previewDoc=rt();let yt=0,at=null;e.previewOpenPath=()=>e.previewFile||e.readmePath(),e.openPreviewFile=k=>{if(k=k||"",k&&k===e.readmePath()&&(k=""),yt++,at=null,Yn(),Kt.cancel(),e.previewFile=k,e.previewDoc=rt(k),be.sidebarCollapsed=!0,be.content=null,!k){e.readme?Kt():e.previewStatus="idle";return}if(ot(k)){cr("binary"),e.previewStatus="ready";return}ft(k)};function lt(){yt++,at=null,e.previewFile="",e.previewDoc=rt(),be.sidebarCollapsed=!0,be.content=null}function ft(k){let I=++yt;at=null,Object.assign(e.previewDoc,{loading:!0,loadError:""}),e.previewStatus="loading";let B;try{B=parseGithubUrl(e.sourceUrl)}catch{B=null}if(!B||!e.source?.commit){Object.assign(e.previewDoc,{loading:!1,loadError:"The repository is still loading. Try again in a moment."}),e.previewStatus="error";return}t.get(`/api/repo/${B.owner}/${B.repo}/file`,{params:{commit:e.source.commit,path:k,connection:e.githubConnection,anonymizedRepoId:e.isUpdate&&i.repoId&&he(e.sourceUrl)===e._originalFullName?i.repoId:void 0,repositoryID:Se()},transformResponse:j=>j}).then(j=>{if(I!==yt)return;e.previewDoc.loading=!1;let ue=typeof j.headers=="function"&&j.headers("content-type")||"";if(/json/i.test(ue)){let ye=null;try{ye=JSON.parse(j.data)}catch{}if(ye&&ye.binary===!0){cr("binary"),e.previewStatus="ready";return}}at=typeof j.data=="string"?j.data:"",Kt()},j=>{if(I!==yt)return;e.previewDoc.loading=!1;let ue=ar(j);if(ue==="file_too_big"){cr("too_big"),e.previewStatus="ready";return}e.previewDoc.loadError=Kn.ERRORS[ue]||"GitHub did not return this file.",e.previewStatus="error"})}let Vt;function Yn(){Vt&&window.URL.revokeObjectURL(Vt),Vt=void 0,be.url=void 0}e.on("dispose",Yn);function cr(k){Yn(),e.previewDoc.note=k,be.prepareFile(e.previewPathName(e.previewOpenPath()||e.readmeName())),be.type=k==="too_big"?"error":"binary",be.content=k==="too_big"?"file_too_big":"binary"}function Qp(k){try{let I=parseGithubUrl(e.sourceUrl),B=e.source.branch||e.details&&e.details.defaultBranch||"main",j=k&&k.includes("/")?k.slice(0,k.lastIndexOf("/")+1):"";return`https://github.com/${I.owner}/${I.repo}/raw/${B}/${j}`}catch{return""}}let Ja=we("repo",()=>e.previewFile?typeof at!="string"?null:{content:at,options:ze()}:e.readme?{content:e.readme,options:ze()}:null,k=>{if(typeof k?.content!="string")throw Error("Invalid preview response");Yn(),window.URL?.createObjectURL&&(be.url=Vt=window.URL.createObjectURL(new Blob([k.content],{type:"text/plain"})));let I=e.previewOpenPath()||e.readmeName();be.prepareFile(e.previewPathName(I)),be.fileBaseUrl=Qp(I),be.renderFileContent(k.content,be.type,be.fileBaseUrl,"text/plain"),e.previewFile||(e.anonymize_readme=k.content)}),Kt=()=>{e.previewFile&&typeof at!="string"||Ja()};Kt.cancel=Ja.cancel;let bs=st(new Map),pr=new Set,fr=new Set,Zs="",xs=null,xo=()=>String(e.terms||"").split(` -`).filter(k=>k.trim());function Zp(){xs=null;let k=xo(),I=k.join(` +Contact: jane.smith@mit.edu`,e.demoTerms="Jane Smith, Smith, MIT CSAIL, jane.smith@mit.edu",e.demoParts=function(){let p=(e.demoTerms||"").split(/[,\n]/).map(h=>h.trim()).filter(Boolean).sort((h,w)=>w.length-h.length),u=h=>h.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");if(!p.length)return[{text:e.demoText}];let y=new RegExp("("+p.map(u).join("|")+")","gi"),m={},b=0;return(e.demoText||"").split(y).filter(h=>h!=="").map(h=>{let w=p.find(R=>R.toLowerCase()===h.toLowerCase());return w?(m[w.toLowerCase()]||(m[w.toLowerCase()]=++b),{text:String(m[w.toLowerCase()]),redacted:!0,original:h}):{text:h}})},e.demoCount=()=>e.demoParts().filter(p=>p.redacted).length,e.cards=[{key:"repositories",total:0,label:"repositories anonymized"},{key:"users",total:0,label:"researchers"},{key:"pageViews",total:0,label:"page views"},{key:"pullRequests",total:0,label:"pull requests"}],e.statsEmpty=()=>!!e.stat&&e.cards.every(p=>!p.total);function r(){t.get("/api/stat/").then(p=>{e.stat=p.data,e.cards[0].total=p.data.nbRepositories,e.cards[1].total=p.data.nbUsers,e.cards[2].total=p.data.nbPageViews,e.cards[3].total=p.data.nbPullRequests}).catch(()=>{})}r();function d(p){let u={series:p,bars:[],viewW:100,deltaToday:0,pctChange:0,pctAbs:0,isUp:!0};if(!p||p.length<2)return u;let y=new Array(p.length-1);for(let S=1;S=2){let S=y[m-2];S&&(u.pctChange=(u.deltaToday-S)/S*100)}return u.pctAbs=Math.round(Math.abs(u.pctChange)),u.isUp=u.pctChange>=0,u}e.history={repositories:d([]),users:d([]),pageViews:d([]),pullRequests:d([])},t.get("/api/stat/history?days=60").then(p=>{let u=p.data||[];e.history={repositories:d(u.map(y=>y.nbRepositories||0)),users:d(u.map(y=>y.nbUsers||0)),pageViews:d(u.map(y=>y.nbPageViews||0)),pullRequests:d(u.map(y=>y.nbPullRequests||0))}}).catch(()=>{})},Fc=function(e,t,s,i,o,r){let d=Ct();e.on("routeLeave",function(){$('[data-toggle="tooltip"]').tooltip("dispose")}),e.watch("user.status",()=>{e.user==null&&s.url("/")}),e.user==null&&s.url("/"),d.timeout(()=>{$('[data-toggle="tooltip"]').tooltip()},250),e.quotaExpanded=!1,e.closeQuota=()=>{e.quotaExpanded=!1,tt(()=>document.querySelector(".dashboard-quota > summary")?.focus())},Bt()(document,"click",C=>{e.quotaExpanded&&!C.target.closest?.(".dashboard-quota")&&(e.quotaExpanded=!1)}),e.filtersExpanded=!1,e.projectView="all",e.selectedProject=null,e.projectName="",e.nameSaving=!1,e.nameError="",e.nameMessage="",e.needsAttention=C=>C.status==="error"||C._broken||u(C.status)==="progress"&&C._stale,e.attentionCount=()=>e.dashboardTotals?.attention??e.items.filter(e.needsAttention).length,e.hasProjects=()=>(e.dashboardTotals?.total??e.items.length)>0,e.setProjectView=C=>{e.projectView=C,C==="attention"&&(e.filters.status.error=!0,e.filters.status.progress=!0)},e.idleText=C=>{let L=va(C?.anonymizeDate||C?.lastView)||"";return/ ago$/.test(L)?"No activity for "+L.replace(/ ago$/,""):"No activity since "+L.replace(", "+new Date().getFullYear(),"")},e.projectDetailsId=C=>"project-details-"+encodeURIComponent(C._type+":"+(C._id||C._source||"unknown")),e.showProjectDetails=async C=>{e.selectedProject=C,e.projectName=C.projectName||"",e.nameError="",e.nameMessage="",await tt();let L=document.getElementById(e.projectDetailsId(C));L?.focus(),L?.scrollIntoView?.({block:"nearest"})},e.closeProjectDetails=C=>{e.selectedProject=null,tt(()=>document.querySelector(`[data-project-actions="${encodeURIComponent(C._type+":"+C._id)}"]`)?.focus())},e.saveProjectName=async C=>{if(e.nameSaving||!C._id)return;let L=e.projectName.trim();if(L.length>100){e.nameError="Use 100 characters or fewer.";return}e.nameSaving=!0,e.nameError="",e.nameMessage="";try{let z=await t.post("/api/user/project-name",{type:C._type,id:C._id,name:L});C.projectName=z.data.name,C._label=C.projectName||C._fallbackLabel,e.selectedProject===C&&(e.nameMessage=L?"Project name saved.":"Default project name restored."),E||(e.dashboardCursor=null,await V(),e.selectedProject===C&&(e.selectedProject=e.items.find(K=>K._type===C._type&&K._id===C._id)||null))}catch{e.selectedProject===C&&(e.nameError="The project name could not be saved. Try again.")}finally{e.nameSaving=!1}},e.copyingId=null,e.copyLink=async C=>{if(!C._viewUrl||e.copyingId)return;let L=new URL(C._viewUrl,o.location.origin).href;e.copyingId=C._type+":"+C._id;try{await Wa(L),e.addToast({title:"Link copied",body:"The anonymous link is ready to share."})}catch{e.addToast({title:"Copy this anonymous link",body:L})}finally{e.copyingId=null}},e.items=[],e.search="",e.loading=!0,e.statusKeyLabels={ready:"Ready",progress:"Preparing",error:"Error",expired:"Expiring / expired",removed:"Removing / removed"};let p=["queue","download","downloaded","preparing","anonymizing"];function u(C){return C==="ready"||C==="error"?C:C==="expired"||C==="expiring"?"expired":C==="removed"||C==="removing"?"removed":(p.indexOf(C)>-1,"progress")}let y=7200*1e3,m="dashboard.filterPrefs",b={typeFilter:"all",filters:{status:{ready:!0,progress:!0,error:!0,expired:!0,removed:!1}},orderBy:"-anonymizeDate"},h=loadFilterPrefs(m)||{};e.typeFilter=h.typeFilter||b.typeFilter,e.filters={status:Object.assign({},b.filters.status,h.filters&&h.filters.status||{})},e.orderBy=h.orderBy||b.orderBy;let w={_name:{label:"Anonymous ID",defaultDesc:!1},_label:{label:"Project",defaultDesc:!1},anonymizeDate:{label:"Anonymize date",defaultDesc:!0},status:{label:"Status",defaultDesc:!1},lastView:{label:"Last view",defaultDesc:!0},pageView:{label:"Views",defaultDesc:!0},"options.expirationDate":{label:"Expiration",defaultDesc:!1}};e.sortFields=w,e.sortField=()=>e.orderBy.replace(/^-/,""),e.sortDesc=()=>e.orderBy.charAt(0)==="-",e.sortLabel=()=>{let C=w[e.sortField()];return C?C.label:"Custom"},e.isSortedBy=C=>e.sortField()===C,e.setSort=(C,L)=>{typeof L!="boolean"&&(L=e.isSortedBy(C)?!e.sortDesc():!!(w[C]&&w[C].defaultDesc)),e.orderBy=(L?"-":"")+C},e.toggleSortDirection=()=>{e.setSort(e.sortField(),!e.sortDesc())},e.watchGroup(["typeFilter","orderBy"],()=>{saveFilterPrefs(m,{typeFilter:e.typeFilter,filters:e.filters,orderBy:e.orderBy})}),e.watch("filters",()=>{saveFilterPrefs(m,{typeFilter:e.typeFilter,filters:e.filters,orderBy:e.orderBy})},!0),r.load().then(C=>{e.quota=C},console.error);function R(C,L,z,K,ie,se){C.pageView||(C.pageView=0),C.lastView||(C.lastView=""),C.options=C.options||{},C.options.terms=(C.options.terms||[]).filter(he=>he),C._id=L||"",C._source=K,C._broken=!L,C._name=L||K||"(unnamed)",C._fallbackLabel=C._type==="gist"?"Gist "+(L||K||"without an ID"):K||z||C._name,C._label=C.projectName||C._fallbackLabel,C._editUrl=L?ie:null,C._viewUrl=L?se:null,C._broken&&(C.status="error",C.statusMessage="incomplete_record"),C._statusKey=u(C.status);let Y=C.anonymizeDate||C.lastView;if(C._stale=C._statusKey==="progress"&&!!Y&&Date.now()-new Date(Y).getTime()>y,C.status==="expired"||C.status==="expiring")C._expiry={kind:"expired",date:C.options.expirationDate},C._expiry.label=ba(C.options.expirationDate)||void 0;else if(C.status!=="ready")C._expiry={kind:"none"};else if(C.options.expirationMode==="never"||!C.options.expirationDate)C._expiry={kind:"never"};else{C._expiry={kind:"date",date:C.options.expirationDate};let he=new Date(C.options.expirationDate).getTime()-Date.now();if(he>0&&he<=168*3600*1e3){let Se=Math.max(1,Math.round(he/36e5)),Ue=Math.round(he/864e5);C._expiry.soon=Se<48?"in "+Se+(Se===1?" hour":" hours"):"in "+Ue+" days"}}return C}function S(C){return t.get(C).then(L=>L.data||[],L=>(console.error(L),[]))}function N(){return e.loading=!0,i.all([S("/api/user/anonymized_repositories"),S("/api/user/anonymized_pull_requests"),S("/api/user/anonymized_gists")]).then(C=>{let L=C[0],z=C[1],K=C[2],ie=[];L.forEach(se=>{se._type="repo";let Y=se.source||{};ie.push(R(se,se.repoId,se.repoId,Y.fullName,"/anonymize/"+se.repoId,"/r/"+se.repoId+"/"))}),z.forEach(se=>{se._type="pr";let Y=se.source||{};ie.push(R(se,se.pullRequestId,se.pullRequestId,Y.repositoryFullName?Y.repositoryFullName+"#"+Y.pullRequestId:void 0,"/pull-request-anonymize/"+se.pullRequestId,"/pr/"+se.pullRequestId+"/"))}),K.forEach(se=>{se._type="gist";let Y=se.source||{};ie.push(R(se,se.gistId,se.gistId,Y.gistId,"/gist-anonymize/"+se.gistId,"/gist/"+se.gistId+"/"))}),e.items=ie,e.removedCount=ie.filter(se=>se._statusKey==="removed").length,e.loading=!1})}let v=0,E=!1;e.dashboardCursor=null,e.dashboardError="";function M(C){let L=C.source||{};return C._type==="repo"?R(C,C.repoId,C.repoId,L.fullName,"/anonymize/"+C.repoId,"/r/"+C.repoId+"/"):C._type==="pr"?R(C,C.pullRequestId,C.pullRequestId,L.repositoryFullName?L.repositoryFullName+"#"+L.pullRequestId:void 0,"/pull-request-anonymize/"+C.pullRequestId,"/pr/"+C.pullRequestId+"/"):R(C,C.gistId,C.gistId,L.gistId,"/gist-anonymize/"+C.gistId,"/gist/"+C.gistId+"/")}function V(C=!1){if(E)return N();let L=++v;return e.loading=!C,e.loadingMore=C,e.dashboardError="",t.get("/api/user/dashboard",{params:{q:e.search,type:e.typeFilter,sort:e.orderBy,statuses:Object.keys(e.filters.status).filter(z=>e.filters.status[z]!==!1).join(",")||"none",attention:String(e.projectView==="attention"),cursor:C?e.dashboardCursor:void 0}}).then(z=>{if(L===v){if(!Array.isArray(z.data?.items))return E=!0,N();e.items=(C?e.items:[]).concat(z.data.items.map(M)),e.dashboardCursor=z.data.cursor,e.dashboardTotals=z.data,C||te()}},z=>{if(L===v){if(z.status===404)return E=!0,N();e.dashboardError="Projects could not be loaded. Please try again."}}).finally(()=>{L===v&&(e.loading=!1,e.loadingMore=!1)})}e.loadMoreProjects=()=>V(!0);let _;e.watchGroup(["search","typeFilter","orderBy","projectView"],()=>{E||(_&&d.timeout.cancel(_),_=d.timeout(()=>V(),150))},!1),e.watch("filters",()=>{E||V()},!0,!1),e.on("dispose",()=>{v++}),V(),e.openItem=(C,L)=>{if(!C._viewUrl)return;let z=L&&L.target;z&&z.closest&&z.closest("a, button, .dropdown, input")||(o.location.href=C._viewUrl)},e.hiddenStatusCount=()=>Object.keys(e.filters.status).filter(C=>e.filters.status[C]===!1).length,e.hasHiddenStatus=()=>e.hiddenStatusCount()>0;let G=()=>Object.keys(e.statusKeyLabels);e.onlyRemovedShown=()=>G().every(C=>C==="removed"==(e.filters.status[C]!==!1)),e.isActiveDefault=()=>G().every(C=>C==="removed"==(e.filters.status[C]===!1)),e.statusView=()=>e.projectView==="attention"?"attention":e.onlyRemovedShown()?"removed":e.filters.status.removed===!1?"active":"custom",e.setStatusView=C=>{if(C==="attention")return e.setProjectView("attention");e.projectView="all",G().forEach(L=>{e.filters.status[L]=C==="removed"?L==="removed":L!=="removed"})},e.statusChipKeys=()=>{let C=e.statusView();return C==="removed"?[]:G().filter(L=>e.filters.status[L]===!1&&!(L==="removed"&&C!=="custom"))},e.removedCount=null;function te(){if(E){e.removedCount=e.items.filter(L=>L._statusKey==="removed").length;return}let C=e.dashboardTotals;!C||e.projectView!=="all"||e.search.trim()||e.typeFilter!=="all"||(e.isActiveDefault()?e.removedCount=Math.max(0,C.total-C.filtered):e.onlyRemovedShown()&&(e.removedCount=C.filtered))}e.showViewTabs=()=>e.statusView()!=="active"||e.attentionCount()>0||e.removedCount>0||e.removedCount==null&&!!e.dashboardTotals&&e.dashboardTotals.total>e.dashboardTotals.filtered,e.hasActiveFilters=()=>e.projectView!=="all"||e.typeFilter!=="all"||e.search.trim().length>0||Object.keys(e.filters.status).some(C=>e.filters.status[C]===!1),e.showClearFilters=()=>e.search.trim().length>0||e.typeFilter!=="all"||e.statusChipKeys().length>0,e.isPlainView=()=>!e.showClearFilters(),e.clearFilters=()=>{let C=e.statusView();e.typeFilter="all",e.search="",e.setStatusView(C==="removed"?"removed":"active")};function X(C,L,z,K){t.get("/api/repo/"+C).then(async ie=>{let se=K!==void 0&&K!==ie.data.status;for(let Y of e.items)if(Y._type==="repo"&&Y.repoId==C){se=se||Y.status!==ie.data.status;let he=e.needsAttention(Y);Y.status=ie.data.status,Y.statusMessage=ie.data.statusMessage,Y._statusKey=u(Y.status),Y._statusKey!=="progress"&&(Y._stale=!1);let Se=e.needsAttention(Y);e.dashboardTotals&&he!==Se&&(e.dashboardTotals.attention=Math.max(0,e.dashboardTotals.attention+(Se?1:-1)));break}if(se&&!E){e.dashboardCursor=null;let Y=e.selectedProject;await V(),Y&&e.selectedProject===Y&&(e.selectedProject=e.items.find(he=>he._type===Y._type&&he._id===Y._id)||null)}if(ie.data.status=="ready"||ie.data.status=="error"||ie.data.status=="removed"||ie.data.status=="expired"){L(ie.data);return}d.timeout(()=>X(C,L,z,ie.data.status),2500)},z)}let O=C=>C==="repo"?"repository":C==="gist"?"gist":"pull request",U=C=>C==="repo"?"/api/repo":C==="gist"?"/api/gist":"/api/pr";e.removeItem=C=>{let L=O(C._type);if(confirm(`Are you sure that you want to remove the ${L} ${C._id}?`)){let z=st({title:`Removing ${C._id}...`,date:new Date,body:`The ${L} ${C._id} is going to be removed.`});e.addToast(z);let K=`${U(C._type)}/${C._id}`;t.delete(K).then(()=>{C._type==="repo"?X(C._id,()=>{z.title=`${C._id} is removed.`,z.body=`The ${L} ${C._id} is removed.`},void 0,C.status):(z.title=`${C._id} is removed.`,z.body=`The ${L} ${C._id} is removed.`,V())},ie=>{z.title=`Error during the removal of ${C._id}.`,z.body=ie.body,V()})}},e.refreshItem=C=>{let L=O(C._type),z=st({title:`Refreshing ${C._id}...`,date:new Date,body:`The ${L} ${C._id} is going to be refreshed.`});e.addToast(z);let K=se=>{z.title=`Error during the refresh of ${C._id}.`,z.body=se.data?.error||se.body||"The refresh could not be completed. Please try again.",V()},ie=`${U(C._type)}/${C._id}/refresh`;t.post(ie).then(()=>{C._type==="repo"?X(C._id,se=>{if(se.status!=="ready"){K({body:se.statusMessage||`The repository is ${se.status}.`});return}z.title=`${C._id} is refreshed.`,z.body=`The ${L} ${C._id} is refreshed.`},K,C.status):(z.title=`${C._id} is refreshed.`,z.body=`The ${L} ${C._id} is refreshed.`,V())},K)},e.extendItem=C=>{let L=O(C._type),z=st({title:`Extending ${C._id}...`,date:new Date,body:`The expiration of ${L} ${C._id} is being extended.`});e.addToast(z);let K=`${U(C._type)}/${C._id}/extend`;t.post(K).then(ie=>{let se=ie?.data?.expirationDate?` until ${new Date(ie.data.expirationDate).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}`:"";C._type==="repo"?X(C._id,()=>{z.title=`${C._id} is extended.`,z.body=`${L} ${C._id} is extended${se}.`},void 0,C.status):(z.title=`${C._id} is extended.`,z.body=`${L} ${C._id} is extended${se}.`,V())},ie=>{z.title=`Error during the extension of ${C._id}.`;let se=ie.data&&ie.data.error;z.body=se||ie.body,se&&Object.prototype.hasOwnProperty.call(Kn.ERRORS,se)&&(z.body=Kn.ERRORS[se]),V()})},e.itemFilter=C=>{if(e.projectView==="attention"&&!e.needsAttention(C)||e.typeFilter!=="all"&&C._type!==e.typeFilter||e.filters.status[C._statusKey]===!1)return!1;let L=e.search.trim().toLowerCase();return!!(L.length==0||C._label&&String(C._label).toLowerCase().indexOf(L)>-1||C._source&&String(C._source).toLowerCase().indexOf(L)>-1||C._id&&String(C._id).toLowerCase().indexOf(L)>-1||C.conference&&String(C.conference).toLowerCase().indexOf(L)>-1)}};var Uc=function(e,t,s){let i=Ct();e.repoId=s.repoId,e.reviewUrl=window.location.origin+"/r/"+encodeURIComponent(s.repoId)+"/",e.repo=null,e.progress=0,e.rateLimitResetAt=0,e.rateLimitCountdown="",e.shareUrl=(window.location?.origin||"")+"/r/"+encodeURIComponent(e.repoId)+"/",e.copied=!1;let o=null;e.copyShareUrl=async()=>{try{await Wa(e.shareUrl),e.copied=!0,o&&i.timeout.cancel(o),o=i.timeout(()=>{e.copied=!1},2e3)}catch{e.addToast?.({title:"Copy this anonymous link",body:e.shareUrl})}},e.selectShareUrl=m=>{let b=window.getSelection?.();if(!b||!m?.target)return;let h=document.createRange();h.selectNodeContents(m.target),b.removeAllRanges(),b.addRange(h)};var r=null;let d=null,p=!1;function u(m){e.rateLimitResetAt=m,r&&i.interval.cancel(r);function b(){var h=Math.max(0,Math.ceil((m-Date.now())/1e3));if(h<=0)e.rateLimitCountdown="",e.rateLimitResetAt=0,i.interval.cancel(r),r=null;else{var w=Math.floor(h/60),R=h%60;e.rateLimitCountdown=w>0?w+"m "+R+"s":R+"s"}}b(),r=i.interval(b,1e3)}e.on("dispose",function(){p=!0,r&&i.interval.cancel(r),d&&i.timeout.cancel(d)});function y(m){if(!m)return m;var b=m.match(/^rate_limited:(\d+)$/);return b?(u(parseInt(b[1],10)),null):(e.rateLimitResetAt=0,m)}e.getStatus=()=>{p||t.get("/api/repo/"+e.repoId,{repoId:e.repoId,repoUrl:e.repoUrl}).then(m=>{if(!p){e.repo=m.data,m.data.rateLimitResetAt?u(m.data.rateLimitResetAt):e.repo.statusMessage=y(e.repo.statusMessage),e.repo.status=="ready"?e.progress=100:e.repo.status=="queue"?e.progress=10:e.repo.status=="downloaded"?e.progress=50:e.repo.status=="download"||e.repo.status=="preparing"?e.progress=25:e.repo.status=="anonymizing"&&(e.progress=75);var b=!["ready","removed","expired"].includes(e.repo.status);e.repo.status=="error"&&!e.rateLimitResetAt&&(b=!1),b&&(d=i.timeout(e.getStatus,2e3))}},m=>{e.error=m.data.error})},e.getStatus()},dr=function(e,t,s,i,o,r,d){Ic(),e.renderRedacted=_o,e.sourceUrl="",e.workspaceOpen=!1,e.sourceUrlError="",e.previewStatus="idle",e.sourceLoading=!1,e.mobilePane="settings";let p=window.matchMedia?.("(max-width: 767px)");e.mobileWorkspace=!!p?.matches,p?.addEventListener&&Bt()(p,"change",k=>{e.mobileWorkspace=k.matches}),e.selectMobilePane=k=>{e.mobilePane=k};let u=0,y=!1,m=new Set,b=(k,I=!1)=>!y&&k.generation===u&&k.url===e.sourceUrl.trim()&&k.connection===e.githubConnection&&(!I||k.branch===e.source.branch),h=()=>{let k={generation:u,url:e.sourceUrl.trim(),connection:e.githubConnection,branch:e.source.branch};return m.add(k),e.sourceLoading=!0,k},w=k=>{m.delete(k),y||(e.sourceLoading=[...m].some(I=>b(I)))};e.on("dispose",()=>{y=!0,u++});let R=null,S=k=>k.gistId&&!k.repo?"gist:"+k.gistId.toLowerCase():(k.owner+"/"+k.repo).toLowerCase()+(k.pullRequestId?"/pull/"+k.pullRequestId:""),N=ga(e,["sourceUrl","terms","repoId","pullRequestId","gistId","source","options","conference","githubConnection"],"anonymize:"+(o.path?.()||"")),v=null,E=null,M=null;e.hostingReview=!1,e.previewExpanded=!1,e.taskValidationError="",e.editRepository=()=>{e.mobilePane="settings",e.previewExpanded=!1,tt(()=>document.querySelector(".anonymize-fields .is-invalid")?.focus())},e.submitRepository=k=>{if(e.taskValidationError="",!(e.sourceLoading||e.billingBusy||e.hostingSaving||e.billingPending)){if(ei()||e.anonymize?.invalid||e.sourceUrlError){e.taskValidationError="Check the highlighted fields before continuing.",e.editRepository();return}return e.hostingNeedsPayment()?e.checkoutRepository(Gi(e.hostingChoice())?e.hostingChoice():""):e.anonymizeRepo(k)}},e.hostingPayment=!1,e.hostingAlternatives=!1,e.hostingPrice=k=>k.amount==null?"Price shown at checkout":new Intl.NumberFormat(void 0,{style:"currency",currency:k.currency,minimumFractionDigits:0,maximumFractionDigits:2}).format(k.amount/100)+(k.interval==="year"?" billed annually":" billed monthly"),e.hostingPlan="",e.hostingSaving=!1,e.selectedHostingPlan=()=>e.authorPlans().find(k=>k.id===e.hostingPlan)||e.hostingSubscriptionPlan?.();let V=()=>t.get("/api/user/quota").then(k=>{e.hostingQuota=k.data});Ki(e,t,async()=>{await V(),e.hostingQuotaBlocked=!1},{confirmedMessage:"Hosting status refreshed. Your draft is ready to continue."}),V().catch(()=>{}),e.authorPlans=()=>(e.billing?.plans||[]).filter(k=>["author_monthly","author_annual"].includes(k.id)),e.conferenceHosting=()=>!!(e.conference&&e.conference_data?.hosting),e.hasAuthorHosting=()=>["author_monthly","author_annual"].includes(e.billing?.allowance?.plan),e.hostingNeedsPayment=()=>!e.billing?.enabled||e.detectedType!=="repo"||e.hasAuthorHosting()||e.isUpdate&&e.role!=="owner"?!1:!!(e.options?.expirationMode==="never"&&!e._existingNever&&!e.repositoryGrants("repo_never").length||!e.conferenceHosting()&&e.hostingQuotaBlocked),e.repositoryGrants=k=>(e.billing?.grants||[]).filter(I=>I.planId===k&&I.scope===`repo:${e.repoId}`&&["active","paid","past_due"].includes(I.status)&&new Date(I.until).getTime()>Date.now()),e.repositoryAddonPlans=()=>(e.billing?.plans||[]).filter(k=>Gi(k.id)&&(["repo_extend","repo_pack"].includes(k.id)||!e.repositoryGrants(k.id).length)),e.hostingOneTimePlans=()=>{let k=I=>I.map(B=>(e.billing?.plans||[]).find(j=>j.id===B&&!e.repositoryGrants(B).length)).filter(Boolean);return e.options?.expirationMode==="never"&&!e._existingNever&&!e.repositoryGrants("repo_never").length?k(["repo_never"]):e.hostingQuotaBlocked&&!e.conferenceHosting()?k(["repo_slot","repo_pack"]):[]},e.hostingOneTime=()=>e.hostingOneTimePlans()[0];let _=["free","repo_slot"];e.liveUpdatesIncluded=()=>{if(!e.billing?.enabled||e.detectedType!=="repo"||e.isUpdate&&e.role!=="owner"||e.conferenceHosting()||e.hasAuthorHosting())return!0;let k=e.billing?.allowance?.plan;return k&&!_.includes(k)?!0:e.repositoryGrants("author_pass").length>0||e.repositoryGrants("repo_pack").length>0},e.liveUpdatesPrice=()=>{let k=(e.billing?.plans||[]).find(I=>I.id==="author_pass");return k?.amount!=null?e.billingAmount(k):""},e.showHostingOptions=()=>{e.mobilePane="settings",tt(()=>document.getElementById("repository-hosting")?.scrollIntoView({block:"start",behavior:"smooth"}))},e.neverExpireTag=()=>{if(e.hasAuthorHosting())return"Included in your subscription";if(e.repositoryGrants("repo_never").length)return"Paid for this repository";let k=(e.billing?.plans||[]).find(I=>I.id==="repo_never");return k?.amount!=null?`${e.billingAmount(k)} once, or with a subscription`:"Subscription or one-time add-on"},e.hostingCycle="author_annual",e.hostingSubscriptionPlan=()=>e.authorPlans().find(k=>k.id===e.hostingCycle)||e.authorPlans().find(k=>k.interval==="year")||e.authorPlans()[0],e.hostingAnnualSavings=()=>{let k=e.authorPlans().find(B=>B.interval==="month")?.amount,I=e.authorPlans().find(B=>B.interval==="year")?.amount;return k&&I&&Ie.hostingOneTimePlans().concat(e.authorPlans().length?[e.hostingSubscriptionPlan()]:[]),e.hostingOptionName=k=>({repo_slot:"Add this repository",repo_pack:"Paper pack",repo_never:"Never expire",author_annual:"Author subscription",author_monthly:"Author subscription"})[k.id]||k.name,e.hostingOptionBlurb=k=>({repo_slot:"Hosted outside your free repositories. Refresh it by hand.",repo_pack:"Adds automatic updates for 180 days and keeps the link online for a year.",repo_never:"This link never expires. No subscription."})[k.id]||`${k.repositories} repositories, ${e.billingBytes(k.storage)}, automatic updates and links that never expire.`,e.hostingChoice=()=>{let k=e.hostingOneTimePlans();return k.some(I=>I.id===e.hostingPlan)||e.authorPlans().some(I=>I.id===e.hostingPlan)?e.hostingPlan:k[0]?.id||e.hostingSubscriptionPlan()?.id||""},e.checkoutRepository=async(k="")=>{if(!(e.hostingSaving||e.billingBusy||!e.billing?.csrf||e.sourceLoading)){e.hostingSaving=!0,e.billingError="";try{let I=N.checkpoint(),B=JSON.stringify(I);(!E||B!==M)&&(E=(await t.post("/api/billing/draft",{path:o.path(),values:I},{headers:{"x-csrf-token":e.billing.csrf}})).data.id,M=B);let j=e.authorPlans().find(ue=>ue.id===e.hostingPlan)||e.hostingSubscriptionPlan();if(!k&&!j)throw new Error("No author plan available");await e.checkout(k||j.id,k?e.repoId:"",{draftId:E})}catch{e.billingError="Your draft could not be saved for checkout. Your form is unchanged. Please try again."}finally{e.hostingSaving=!1}}},e.useDatedHosting=()=>{e.options.expirationMode="remove"},e.discardDraft=async()=>{N.discard(),e.workspaceOpen=!!e.sourceUrl,e.error=null,e.sourceUrl?await e.urlSelected(!0):(u++,e.sourceLoading=!1,e.detectedType=null,e.details=null,e.sourceUrlError="",Yt.cancel(),Tn.cancel(),On.cancel(),e.previewStatus="idle")},e.githubConnection=void 0,e.githubConnections=null,e.gistOAuthRequired=!1,e.gistAppRequired=!1;let G=()=>{let k={};for(let I of["sourceUrl","terms","repoId","pullRequestId","gistId","source","options","conference","githubConnection"])k[I]=e[I];sessionStorage.setItem("github-access-draft",JSON.stringify({path:o.path(),savedAt:Date.now(),draft:k}))};e.connectGistApp=()=>{G(),window.location.href="/github/app/login?returnTo="+encodeURIComponent(o.path())},e.connectGistOAuth=()=>{G(),window.location.href="/github/login?returnTo="+encodeURIComponent(o.path())},e.grantGitHubAccess=()=>{G();let k=o.path(),I=he(e.sourceUrl)||"",B=e.githubConnections?.appConnected?"/github/app/install":"/github/app/login";window.location.href=B+"?returnTo="+encodeURIComponent(k)+"&repository="+encodeURIComponent(I)+"&install=1"},e.chooseGitHubConnection=async k=>{e.githubConnection=k,e.readme="",e.sourceUrl&&await Ue()},e.detectedType=null,e.repoId="",e.pullRequestId="",e.gistId="",e.terms="",e.defaultTerms="",e.branches=[],e.source={branch:"",commit:""},e.options={expirationMode:"remove",expirationDate:new Date,update:!1,image:!0,pdf:!0,notebook:!0,link:!0,body:!0,title:!0,origin:!1,diff:!0,content:!0,comments:!0,username:!0,date:!0};function te(){let k=new Date;return k.setMonth(k.getMonth()+6),k}e.options.expirationDate=te();function X(k){let I=k.getFullYear(),B=String(k.getMonth()+1).padStart(2,"0"),j=String(k.getDate()).padStart(2,"0");return`${I}-${B}-${j}`}e.minExpirationDate=X(new Date);let O=()=>{let k=new Date,I=new Date(k);if(I.setFullYear(I.getFullYear()+1),e.billing?.enabled&&e.detectedType==="repo"&&!e.hasAuthorHosting()){I=new Date(k),I.setMonth(I.getMonth()+(e.billing.freeExpirationMonths||5));for(let ue of e.repositoryGrants("repo_extend"))new Date(ue.until)>I&&(I=new Date(ue.until));e.conference_data?.endDate&&new Date(e.conference_data.endDate)>I&&(I=new Date(e.conference_data.endDate)),e._savedExpirationDate&&e._savedExpirationDate>I&&(I=new Date(e._savedExpirationDate));let B=e.options?.expirationDate,j=e._savedExpirationDate&&B instanceof Date&&B.getTime()===e._savedExpirationDate.getTime();B instanceof Date&&B>I&&!j&&(e.options.expirationDate=new Date(I))}e.maxExpirationDate=X(I)};O(),e.watch(()=>[e.billing,e.repoId,e.conference_data,e.isUpdate,e._savedExpirationDate,e.options?.expirationMode,e.detectedType],O,!0,!1),e.anonymize_readme="",e.readme="",e.isUpdate=!1,e.userRepos=[],e.userReposStatus="idle",e.userRepoFilter="",e.loadUserRepos=(k=!1)=>{e.userReposStatus!=="loading"&&(e.userReposStatus="loading",t.get("/api/user/all_repositories",k?{params:{force:"1"}}:{}).then(I=>{if(y)return;let B=Array.isArray(I.data)?I.data.filter(j=>j&&j.fullName):[];e.userRepos=B.sort((j,ue)=>j.fullName.localeCompare(ue.fullName,void 0,{sensitivity:"base"})),e.userReposStatus="ready"},()=>{y||(e.userReposStatus="error")}))},e.filteredUserRepos=()=>{let k=String(e.userRepoFilter||"").trim().toLowerCase(),I=e.userRepos||[];return k?I.filter(B=>B.fullName.toLowerCase().includes(k)):I},e.selectUserRepo=k=>{if(k?.fullName)return e.sourceUrl="https://github.com/"+k.fullName,e.urlSelected()},!i.repoId&&!i.pullRequestId&&!i.gistId&&Promise.resolve().then(()=>{y||e.loadUserRepos()}),e.previousConfigurations=[],e.previousConfigurationId="";let U,C=k=>String(k||"").replace(/\/$/,"").replace(/\.git$/i,"").toLowerCase();async function L(){if(e.isUpdate||i.repoId||i.pullRequestId||i.gistId)return;let k={generation:u,url:e.sourceUrl.trim(),connection:e.githubConnection};try{U||(U=t.get("/api/user/anonymized_repositories").then(j=>j.data));let I=await U;if(!b(k))return;let B=C(he(k.url));e.previousConfigurations=I.filter(j=>j.repoId&&j.options&&C(j.source?.fullName)===B).sort((j,ue)=>(Date.parse(ue.anonymizeDate)||0)-(Date.parse(j.anonymizeDate)||0)),e.previousConfigurationId=e.previousConfigurations[0]?.repoId||""}catch{U=void 0}}e.sourceSummary=()=>{let k=String(e.sourceUrl||""),I=/github\.com\/([^/\s]+\/[^/\s]+)\/pull\/(\d+)/i.exec(k);return I?I[1]+" \xB7 PR #"+I[2]:(I=/gist\.github\.com\/([^/\s]+)\/([0-9a-f]{8,})/i.exec(k),I?I[1]+" \xB7 gist "+(I[2].length>12?I[2].slice(0,7)+"\u2026"+I[2].slice(-4):I[2]):"")},e.previewId=()=>e.detectedType==="pr"?e.pullRequestId:e.detectedType==="gist"?e.gistId:e.repoId,e.previewPath=()=>{let k=e.previewId();return k?(e.detectedType==="pr"?"/pr/":e.detectedType==="gist"?"/gist/":"/r/")+encodeURIComponent(k)+"/":""},e.previewUrl=()=>{let k=e.previewPath();return k?"anonymous.4open.science"+k.replace(/\/$/,""):""},e.previewRedactions=()=>{let k=j=>typeof j=="string"?(j.match(Zo)||[]).length:0;if(e.detectedType==="repo")return e.previewViewer.redactionCount();let I=e.detectedType==="pr"?ks:Cs,B=0;return I.forEach(j=>{B+=k(j)}),B};let z=(k,I)=>k.localeCompare(I,void 0,{sensitivity:"base"}),K=k=>k.slice(k.lastIndexOf("/")+1),ie={key:null,files:[]};e.previewTreeFiles=()=>{if(!e.preserve.commit||!ve)return[];let k=e.preserve.commit+"\0"+e.terms+"\0"+bs.size+"\0"+ve.files.length;if(ie.key===k)return ie.files;let I=ve.files.map(B=>{let j=e.previewPathName(B),ue=j.lastIndexOf("/");return{name:j.slice(ue+1),path:ue<0?"":j.slice(0,ue),size:0,sourcePath:B}});return ie={key:k,files:I},I},e.selectPreviewPath=k=>{let I=e.previewTreeFiles().find(B=>"/"+(B.path?B.path+"/":"")+B.name===k);I&&e.openPreviewFile(I.sourcePath)},e.existingConfigurationUrl=()=>{let k=e.previousConfigurations.find(I=>I.repoId===e.previousConfigurationId);return k?"/anonymize/"+encodeURIComponent(k.repoId):null};function se(k){t.get("/api/user/default").then(I=>{let B=I.data;B.terms&&(e.defaultTerms=B.terms.join(` +`)),e.options=Object.assign({},e.options,B.options),e.options.expirationDate=B.options&&B.options.expirationDate?new Date(B.options.expirationDate):te(),!i.repoId&&!i.pullRequestId&&!i.gistId&&!e.anonymize?.terms?.dirty&&(e.terms=e.defaultTerms),k&&k()})}function Y(k,I,B){e.anonymize&&e.anonymize[k]&&e.anonymize[k].setValidity(I,B)}function he(k){try{let I=parseGithubUrl(k);if(I&&I.owner&&I.repo)return I.owner+"/"+I.repo}catch{}return null}e.accessRepairAllowed=!1,e.repairingGitHubAccess=!1,e.accessRepairMessage="",e.repairGitHubAccess=async()=>{if(!e.accessRepairAllowed||e.repairingGitHubAccess||!e.githubConnections?.appEnabled||!i.repoId||e.role!=="owner"||e.githubConnection!=="github-app"||he(e.sourceUrl)!==e._originalFullName)return;e.repairingGitHubAccess=!0,e.accessRepairMessage="";let k=h();try{let I=await t.get("/github/connections");if(e.githubConnections=I.data,!I.data.appEnabled)return;let B=await t.post("/github/connections/migrate",{type:"repository",id:i.repoId,connection:"github-app"},{headers:{"X-CSRF-Token":I.data.csrf}});if(!b(k))return;e.error=null,B.data.fullName&&(e._originalFullName=B.data.fullName,e.source.fullName=B.data.fullName,e.sourceUrl="https://github.com/"+B.data.fullName),e.accessRepairMessage="GitHub access repaired. Your anonymous URL and published commit are unchanged.",await e.urlSelected(!0)}catch{b(k)&&(e.accessRepairMessage="Unable to repair GitHub access. Check the App's repository permissions in Manage access, then retry. Your published snapshot has not been replaced.")}finally{e.repairingGitHubAccess=!1,w(k)}},e.reconnectingSource=!1,e.reconnectRepositoryId=void 0,e.reconnectSource=async()=>{if(confirm("Reconnect to the repository currently at this GitHub URL? Review its branch and commit before saving. Saving will replace the published snapshot.")){e.reconnectingSource=!0,e.reconnectRepositoryId=void 0,e.source.commit="",e.source.branch="",e.readme="",e.branches=[];try{await Je()}catch{}}};function Se(){return e.reconnectingSource||!e.isUpdate||!e._originalRepositoryID?void 0:he(e.sourceUrl)===e._originalFullName?e._originalRepositoryID:void 0}async function Ue(){e._preservingDraft=!0;try{await e.urlSelected(!0)}finally{e._preservingDraft=!1}}async function Be(){let k=new URLSearchParams(window.location.search).get("billingDraft");if(k){N.restore();try{let B=(await t.get("/api/billing/draft/"+encodeURIComponent(k))).data;if(B.path!==o.path())throw new Error("Wrong task");v=B.values.conference||null;for(let j of["sourceUrl","terms","repoId","source","options","conference","githubConnection"])Object.prototype.hasOwnProperty.call(B.values,j)&&(e[j]=B.values[j]);return e.options?.expirationDate&&(e.options.expirationDate=new Date(e.options.expirationDate)),E=B.id,M=JSON.stringify(N.checkpoint()),e.draftRestored=!0,e.hostingReview=!0,e.sourceUrl&&await Ue(),o.replace?.(o.path()),!0}catch{e.billingError="The checkout draft could not be restored. Retry by reloading this page; any local draft is still available."}}let I;try{I=JSON.parse(sessionStorage.getItem("github-access-draft")||"null")}catch{return!1}if(!I||I.path!==o.path()||Date.now()-I.savedAt>=30*6e4)return N.restore()?(e.sourceUrl&&await Ue(),!0):!1;N.restore();for(let B of["sourceUrl","terms","repoId","pullRequestId","gistId","source","options","conference","githubConnection"])Object.prototype.hasOwnProperty.call(I.draft,B)&&(e[B]=I.draft[B]);return e.options.expirationDate&&(e.options.expirationDate=new Date(e.options.expirationDate)),await Ue(),sessionStorage.removeItem("github-access-draft"),!0}se(()=>{!i.repoId&&!i.pullRequestId&&!i.gistId&&d(Be,0),i.repoId&&i.repoId!=""&&(e.isUpdate=!0,e.detectedType="repo",e.repoId=i.repoId,t.get("/api/repo/"+e.repoId).then(async k=>{e.accessRepairAllowed=!["removed","archived","preparing","queue","download","removing","expiring"].includes(k.data.status),e.githubConnection=k.data.connection||"oauth",e.sourceUrl="https://github.com/"+k.data.source.fullName,e._originalFullName=k.data.source.fullName,e.terms=k.data.options.terms.filter(I=>I).join(` +`),e.source=k.data.source,e.role=k.data.role||"owner",e._existingNever=k.data.options.expirationMode==="never",e._savedExpirationDate=k.data.options.expirationDate?new Date(k.data.options.expirationDate):null,e.coauthors=k.data.coauthors||[],e._originalBranch=k.data.source.branch,e.options=Object.assign({},e.options,k.data.options),e.conference=k.data.conference,e._originalConference=k.data.conference,e.repositoryID=k.data.source.repositoryID,e._originalRepositoryID=k.data.source.repositoryID,k.data.options.expirationDate&&(e.options.expirationDate=new Date(k.data.options.expirationDate)),R=S(parseGithubUrl(e.sourceUrl)),!await Be()&&(await Promise.all([Je(),He()]),ws())},()=>{o.url("/404")})),i.pullRequestId&&i.pullRequestId!=""&&(e.isUpdate=!0,e.detectedType="pr",e.pullRequestId=i.pullRequestId,t.get("/api/pr/"+e.pullRequestId).then(async k=>{if(e.githubConnection=k.data.connection||"oauth",e.sourceUrl="https://github.com/"+k.data.source.repositoryFullName+"/pull/"+k.data.source.pullRequestId,e.terms=k.data.options.terms.filter(I=>I).join(` +`),e.source=k.data.source,e.options=Object.assign({},e.options,k.data.options),e.conference=k.data.conference,e._originalConference=k.data.conference,k.data.options.expirationDate&&(e.options.expirationDate=new Date(k.data.options.expirationDate)),R=S(parseGithubUrl(e.sourceUrl)),!await Be())try{await Ja()}catch{}},()=>{o.url("/404")})),i.gistId&&i.gistId!=""&&(e.isUpdate=!0,e.detectedType="gist",e.gistId=i.gistId,t.get("/api/gist/"+e.gistId).then(async k=>{e.sourceUrl="https://gist.github.com/"+k.data.source.gistId,e.terms=k.data.options.terms.filter(I=>I).join(` +`),e.source=k.data.source,e.options=Object.assign({},e.options,k.data.options),e.conference=k.data.conference,e._originalConference=k.data.conference,k.data.options.expirationDate&&(e.options.expirationDate=new Date(k.data.options.expirationDate)),R=S(parseGithubUrl(e.sourceUrl)),!await Be()&&await Za()},()=>{o.url("/404")}))}),t.get("/github/connections").then(k=>{e.githubConnections=k.data,!i.repoId&&!i.pullRequestId&&!i.gistId&&e.githubConnection===void 0&&k.data.appEnabled&&k.data.appConnected&&(e.githubConnection="github-app",e.sourceUrl&&e.workspaceOpen&&Ue())}).catch(()=>{}),e.urlSelected=async(k=!1)=>{let I=++u;e.previousConfigurations=[],e.previousConfigurationId="";let B;try{B=parseGithubUrl(e.sourceUrl.trim())}catch{e.sourceLoading=!1,Yt.cancel(),Tn.cancel(),On.cancel(),e.previewStatus="idle",e.sourceUrlError=e.sourceUrl?"Please provide a valid GitHub URL.":"",Y("sourceUrl","github",!1);return}let j=S(B),ue=k||R===j;R=j,e.sourceUrlError="",Y("sourceUrl","github",!0);let ye=document.activeElement?.id==="sourceUrl-landing";e.workspaceOpen=!0,setTimeout(()=>{let Ke=window.document.getElementById("sourceUrl");if(Ke){try{Ke.setSelectionRange(0,0)}catch{}Ke.scrollLeft=0}},50),ye&&d(()=>document.getElementById("sourceUrl")?.focus(),0),e.reconnectingSource=!1,e.reconnectRepositoryId=void 0,!ue&&!e.isUpdate&&(e.repoId="",e.pullRequestId="",e.gistId=""),e.details=null,e.branches=[],ue||(e.source={type:"GitHubStream",branch:"",commit:""}),Yt.cancel(),Tn.cancel(),On.cancel(),ks.clear(),Cs.clear(),e.previewStatus="idle",e.anonymize_readme="",e.readme="",lt(),e.detectedType=null,e.gistOAuthRequired=!1,e.gistAppRequired=!1,e._preservingDraft=ue;try{B.gistId&&!B.repo?(e.detectedType="gist",e.source={gistId:B.gistId},await Za()):B.pullRequestId?(e.detectedType="pr",e.source={repositoryFullName:B.owner+"/"+B.repo,pullRequestId:B.pullRequestId},await Ja()):(e.detectedType="repo",L(),await Promise.all([Je(),He()]),ws())}catch{}finally{I===u&&(e._preservingDraft=!1)}$('[data-toggle="tooltip"]').tooltip()},$('[data-toggle="tooltip"]').tooltip(),e.watch("source.branch",async()=>{if(e.detectedType!=="repo")return;let k=e.branches.filter(B=>B.name==e.source.branch)[0];if(!k)return;!(!e.reconnectingSource&&e.isUpdate&&e._originalBranch===e.source.branch&&e.source.commit)&&!(e._preservingDraft&&e.source.commit)&&(e.source.commit=k.commit),e.readme=k.readme,await He(),ws()}),e.getBranches=async k=>{let I=parseGithubUrl(e.sourceUrl),B=h();try{let j=await t.get(`/api/repo/${I.owner}/${I.repo}/branches`,{params:{reconnect:e.reconnectingSource?"1":void 0,anonymizedRepoId:e.isUpdate&&i.repoId&&he(e.sourceUrl)===e._originalFullName?i.repoId:void 0,connection:e.githubConnection,force:k===!0||e.reconnectingSource?"1":"0",repositoryID:Se()}});if(!b(B))return;e.branches=j.data,e.sourceUnreachable=!1,e.source.branch||(e.source.branch=e.details.defaultBranch);let ue=e.branches.filter(ye=>ye.name==e.source.branch);ue.length>0&&(!(!e.reconnectingSource&&!k&&e.isUpdate&&!e.options.update&&e._originalBranch===e.source.branch&&e.source.commit)&&!(e._preservingDraft&&e.source.commit)&&(e.source.commit=ue[0].commit),e.readme=ue[0].readme,await He(k))}catch(j){if(!b(B))return;e.branches=[],e.sourceUnreachable=j&&(j.status===404||j.data&&j.data.error==="repo_not_found");let ue=j&&j.data&&j.data.error||(j&&j.status===404?"repo_not_found":"unknown_error");r("ERRORS."+ue).then(ye=>{e.toasts=e.toasts||[],e.addToast({title:"Error",date:new Date,body:ye}),e.error=ye},console.error),typeof Y=="function"&&Y("sourceUrl","missing",!1)}finally{w(B)}};async function Je(){let k=parseGithubUrl(e.sourceUrl),I=h();try{Es();let B=await t.get(`/api/repo/${k.owner}/${k.repo}/`,{params:{reconnect:e.reconnectingSource?"1":void 0,anonymizedRepoId:e.isUpdate&&i.repoId&&he(e.sourceUrl)===e._originalFullName?i.repoId:void 0,connection:e.githubConnection,repositoryID:Se(),force:"1"}});if(!b(I))return;e.details=B.data,e.reconnectingSource&&(e.reconnectRepositoryId=e.details.externalId),e.details&&e.details.id&&(e.repositoryID=e.details.id),e.repoId||(e.repoId=e.details.repo+"-"+generateRandomId(4)),await e.getBranches(e.reconnectingSource)}catch(B){if(!b(I))return;throw B.data&&(r("ERRORS."+B.data.error).then(j=>{e.addToast({title:"Error",date:new Date,body:j}),e.error=j},console.error),Ss(B.data.error)),Y("sourceUrl","missing",!1),B}finally{w(I)}}async function He(k){if(e.readme&&!k)return e.readme;let I=parseGithubUrl(e.sourceUrl),B=h();try{let j=await t.get(`/api/repo/${I.owner}/${I.repo}/readme`,{params:{reconnect:e.reconnectingSource?"1":void 0,anonymizedRepoId:e.isUpdate&&i.repoId&&he(e.sourceUrl)===e._originalFullName?i.repoId:void 0,connection:e.githubConnection,force:k===!0?"1":"0",branch:e.source.branch,repositoryID:Se()}});b(B,!0)&&(e.readme=j.data)}catch{b(B,!0)&&(e.readme="")}finally{w(B)}}let et={magicalBraces:!0},Re=k=>k.startsWith("/")&&!k.endsWith("/")&&zn(vs(k.slice(1),et),et)===k.slice(1),Fe=()=>Object.keys(e.preserve.picked).filter(k=>e.preserve.picked[k]).sort().map(k=>"/"+zn(k,et)),W=k=>"/"+zn(k,et)+"/**",fe=k=>"!/"+zn(k,et)+"/",de=()=>String(e.preserve.patterns||"").split(` +`).map(k=>k.trim()).filter(Boolean),ce=null,ve=null,Me=new Set,P=0,T=null,F=()=>!1;function Q(){let k=P+"\0"+e.preserve.patterns;if(k!==T){T=k;try{F=ja(Ha([...Fe(),...de()]))}catch{F=()=>!1}}return F}function H(k){let I=new Map([["",{dirs:[],files:[]}]]);for(let B of k){let j=B.split("/"),ue="";for(let ye=0;yeI.startsWith(k+"/"))),ce.descendants.get(k)}let le=k=>Q()(k);function ne(k){let I=x(k),B=0;for(let j of I)le(j)&&B++;return B===0?"none":B===I.length?"all":"some"}e.preserve={open:!1,loading:!1,error:"",truncated:!1,commit:"",search:"",expanded:{},picked:{},patterns:"",patternsOpen:!1},e.preserveSummary=()=>{let k=(e.options?.preserveFiles||[]).map(I=>String(I).trim()).filter(Boolean).map(I=>Re(I)?vs(I.slice(1),et):I);return k.length?k.slice(0,2).join(", ")+(k.length>2?` and ${k.length-2} more`:""):"None. Every file is redacted."};async function oe(){let k=e.source?.commit;if(!(ce&&e.preserve.commit===k)){e.preserve.loading=!0,e.preserve.error="",ce=null,ve=null;try{let I=parseGithubUrl(e.sourceUrl),B=await t.get(`/api/repo/${I.owner}/${I.repo}/tree`,{params:{commit:k,connection:e.githubConnection,anonymizedRepoId:e.isUpdate&&i.repoId&&he(e.sourceUrl)===e._originalFullName?i.repoId:void 0,repositoryID:Se()}});if(e.source?.commit!==k)return;let j=Array.isArray(B.data.binaryFiles)?B.data.binaryFiles:[];ce=un(H(B.data.files||[])),ve=j.length?un(H([...B.data.files||[],...j])):ce,Me=un(new Set(j)),e.preserve.commit=k,e.preserve.truncated=!!B.data.truncated,e.previewFile||Yt()}catch{e.preserve.error="The file list could not be loaded from GitHub. You can still use patterns.",e.preserve.patternsOpen=!0}finally{e.preserve.loading=!1}}}e.watch("source.commit",k=>{e.previewFile&&e.openPreviewFile(""),e.detectedType==="repo"&&k&&e.sourceUrl&&oe().catch(()=>{})}),e.openPreserveFiles=()=>{let k={},I=[];for(let j of e.options?.preserveFiles||[]){let ue=String(j).trim();ue&&(!I.length&&Re(ue)?k[vs(ue.slice(1),et)]=!0:I.push(ue))}let B={};for(let j of Object.keys(k)){let ue=j.split("/");for(let ye=1;ye0}),e.mobileWorkspace&&(e.mobilePane="settings"),P++,d(()=>{let j=document.getElementById("preserve-files-dialog");j?.showModal&&!j.open&&j.showModal(),document.getElementById("preserve-files-search")?.focus()},0),oe()},e.closePreserveFiles=()=>{document.getElementById("preserve-files-dialog")?.close?.(),e.preserve.open=!1},e.savePreserveFiles=()=>{e.options.preserveFiles=Ha([...Fe(),...de()]),e.closePreserveFiles()},e.preserveRows=()=>{if(!ce)return[];let k=Q(),I=(ye,Ke,qt)=>{let bt=!!e.preserve.picked[ye],Xn=k(ye);return{kind:"file",path:ye,label:qt,depth:Ke,state:Xn?"all":"none",locked:!bt&&Xn,note:!bt&&Xn?"matched by a pattern":bt&&!Xn?"excluded by a pattern":""}},B=String(e.preserve.search||"").trim().toLowerCase();if(B)return ce.files.filter(ye=>ye.toLowerCase().includes(B)).slice(0,300).map(ye=>I(ye,0,ye));let j=[],ue=(ye,Ke)=>{let qt=ce.dirs.get(ye);for(let bt of qt.dirs){let Xn=!!e.preserve.expanded[bt],xa=de().includes(W(bt));j.push({kind:"dir",path:bt,label:bt.slice(ye?ye.length+1:0)+"/",depth:Ke,open:Xn,state:ne(bt),locked:!1,note:xa?"whole folder":""}),Xn&&ue(bt,Ke+1)}for(let bt of qt.files)j.push(I(bt,Ke,bt.slice(ye?ye.length+1:0)))};return ue("",0),j},e.preserveCount=()=>ce?ce.files.filter(le).length:0,e.togglePreserveDir=k=>{e.preserve.expanded[k]=!e.preserve.expanded[k]},e.togglePreserveFile=k=>{e.preserve.picked[k]=!e.preserve.picked[k],P++},e.togglePreserveFolder=k=>{let I=W(k),B=fe(k),j=de().filter(ye=>ye!==I&&ye!==B),ue=ne(k)==="all"||de().includes(I);for(let ye of x(k))e.preserve.picked[ye]=!1;P++,e.preserve.patterns=(ue?j:[...j,I]).join(` +`),ue&&x(k).some(le)&&(e.preserve.patterns=[...j,B].join(` +`))};let ee=/^readme(\.[^/]*)?$/i,ke=[".md",".markdown",".mdown",".mkdn",".rst",".txt",""],pe=["README.md","README","README.markdown","README.rst","README.txt","readme.md"],Ee=k=>{let I=K(k),B=I.indexOf("."),j=ke.indexOf(B===-1?"":I.slice(B).toLowerCase());return j===-1?ke.length:j},Ae=()=>!!ce&&!!e.preserve.commit&&e.preserve.commit===e.source?.commit;e.readmePath=()=>{if(!Ae())return"";for(let k of[".github","","docs"]){let I=(ce.dirs.get(k)?.files||[]).filter(B=>ee.test(K(B)));if(I.length)return I.sort((B,j)=>Ee(B)-Ee(j)||z(B,j))[0]}return""},e.readmeName=()=>K(e.readmePath())||"README.md";let Ve={key:null,fn:()=>!1},Ge=()=>{let k=(e.options?.preserveFiles||[]).map(B=>String(B).trim()).filter(Boolean),I=k.join(` +`);if(I!==Ve.key){let B=()=>!1;try{k.length&&(B=ja(k))}catch{}Ve={key:I,fn:B}}return Ve.fn};e.pathPreserved=k=>!!k&&Ge()(k),e.readmePreserved=()=>{if(e.detectedType!=="repo")return!1;let k=Ge();if(Ae()){let I=e.readmePath();return!!I&&k(I)}return pe.some(I=>k(I))},e.previewPreserved=()=>e.detectedType==="repo"&&(e.previewFile?e.pathPreserved(e.previewFile):e.readmePreserved());function ze(){let k={terms:e.terms?e.terms.split(` +`):[],filePath:e.previewOpenPath()||"README.md",preserveFiles:e.options.preserveFiles||[],image:!!e.options.image,link:!!e.options.link,repoId:e.repoId};e.source&&e.source.branch&&(k.branchName=e.source.branch);try{let I=parseGithubUrl(e.sourceUrl);k.repoName=`${I.owner}/${I.repo}`}catch{}return k}function we(k,I,B){let j=null,ue=0,ye=()=>{if(e.detectedType!==k)return;j&&d.cancel(j);let Ke=++ue;e.previewStatus="loading",j=d(()=>{j=null;let qt=I();if(!qt){e.previewStatus="idle";return}t.post("/api/anonymize-preview",qt).then(bt=>{Ke===ue&&(B(bt.data,qt),e.previewStatus="ready")}).catch(()=>{Ke===ue&&(e.previewStatus="error")})},200)};return ye.cancel=()=>{ue++,j&&d.cancel(j),j=null},e.on("dispose",ye.cancel),ye}e.retryPreview=()=>{e.detectedType==="repo"&&(e.previewFile&&typeof at!="string"?ft(e.previewFile):Yt()),e.detectedType==="pr"&&Tn(),e.detectedType==="gist"&&On()};let be=un(qo(e));Object.defineProperty(e,"previewViewer",{get:()=>be}),ma(be,e),Object.assign(be,{options:{},files:[],paths:[],content:null,type:"loading",sidebarHidden:!1,sidebarCollapsed:!0,moreOpen:!1,tocOpen:!1,gotoOpen:!1,mdFindOpen:!1,mdFindQuery:"",mdFindTotal:0,mdFindIndex:0}),be.preview=!0,be.fileSize=k=>k===be.filePath&&typeof at=="string"?new Blob([at]).size:!e.previewFile&&e.readme?new Blob([e.readme]).size:null,be.openPreserveFiles=()=>e.openPreserveFiles(),be.previewPreserved=()=>e.previewPreserved(),be.retryContent=()=>e.retryPreview();let ot=k=>Me.has(k)||/\.(pdf|png|jpe?g|gif|svg|ico|bmp|tiff?|webp|avif|heic|heif|mp4|webm|mp3|wav|zip|bin)$/i.test(k),rt=(k="")=>({path:k,loading:!1,note:"",loadError:""});e.previewFile="",e.previewDoc=rt();let yt=0,at=null;e.previewOpenPath=()=>e.previewFile||e.readmePath(),e.openPreviewFile=k=>{if(k=k||"",k&&k===e.readmePath()&&(k=""),yt++,at=null,Yn(),Yt.cancel(),e.previewFile=k,e.previewDoc=rt(k),be.sidebarCollapsed=!0,be.content=null,!k){e.readme?Yt():e.previewStatus="idle";return}if(ot(k)){cr("binary"),e.previewStatus="ready";return}ft(k)};function lt(){yt++,at=null,e.previewFile="",e.previewDoc=rt(),be.sidebarCollapsed=!0,be.content=null}function ft(k){let I=++yt;at=null,Object.assign(e.previewDoc,{loading:!0,loadError:""}),e.previewStatus="loading";let B;try{B=parseGithubUrl(e.sourceUrl)}catch{B=null}if(!B||!e.source?.commit){Object.assign(e.previewDoc,{loading:!1,loadError:"The repository is still loading. Try again in a moment."}),e.previewStatus="error";return}t.get(`/api/repo/${B.owner}/${B.repo}/file`,{params:{commit:e.source.commit,path:k,connection:e.githubConnection,anonymizedRepoId:e.isUpdate&&i.repoId&&he(e.sourceUrl)===e._originalFullName?i.repoId:void 0,repositoryID:Se()},transformResponse:j=>j}).then(j=>{if(I!==yt)return;e.previewDoc.loading=!1;let ue=typeof j.headers=="function"&&j.headers("content-type")||"";if(/json/i.test(ue)){let ye=null;try{ye=JSON.parse(j.data)}catch{}if(ye&&ye.binary===!0){cr("binary"),e.previewStatus="ready";return}}at=typeof j.data=="string"?j.data:"",Yt()},j=>{if(I!==yt)return;e.previewDoc.loading=!1;let ue=ar(j);if(ue==="file_too_big"){cr("too_big"),e.previewStatus="ready";return}e.previewDoc.loadError=Kn.ERRORS[ue]||"GitHub did not return this file.",e.previewStatus="error"})}let Vt;function Yn(){Vt&&window.URL.revokeObjectURL(Vt),Vt=void 0,be.url=void 0}e.on("dispose",Yn);function cr(k){Yn(),e.previewDoc.note=k,be.prepareFile(e.previewPathName(e.previewOpenPath()||e.readmeName())),be.type=k==="too_big"?"error":"binary",be.content=k==="too_big"?"file_too_big":"binary"}function xp(k){try{let I=parseGithubUrl(e.sourceUrl),B=e.source.branch||e.details&&e.details.defaultBranch||"main",j=k&&k.includes("/")?k.slice(0,k.lastIndexOf("/")+1):"";return`https://github.com/${I.owner}/${I.repo}/raw/${B}/${j}`}catch{return""}}let Qa=we("repo",()=>e.previewFile?typeof at!="string"?null:{content:at,options:ze()}:e.readme?{content:e.readme,options:ze()}:null,k=>{if(typeof k?.content!="string")throw Error("Invalid preview response");Yn(),window.URL?.createObjectURL&&(be.url=Vt=window.URL.createObjectURL(new Blob([k.content],{type:"text/plain"})));let I=e.previewOpenPath()||e.readmeName();be.prepareFile(e.previewPathName(I)),be.fileBaseUrl=xp(I),be.renderFileContent(k.content,be.type,be.fileBaseUrl,"text/plain"),e.previewFile||(e.anonymize_readme=k.content)}),Yt=()=>{e.previewFile&&typeof at!="string"||Qa()};Yt.cancel=Qa.cancel;let bs=st(new Map),pr=new Set,fr=new Set,Zs="",xs=null,xo=()=>String(e.terms||"").split(` +`).filter(k=>k.trim());function ef(){xs=null;let k=xo(),I=k.join(` `);I!==Zs&&(bs.clear(),fr.clear(),Zs=I);let B=[...pr].filter(j=>!bs.has(j));if(pr.clear(),!(!B.length||!k.length))for(let j=0;j{if(Zs!==I||xo().join(` `)!==I)return;let Ke=ye.data?.contents;if(!Array.isArray(Ke)||Ke.length!==ue.length)throw Error("Invalid preview response");ue.forEach((qt,bt)=>bs.set(qt,typeof Ke[bt]=="string"?Ke[bt]:qt))}).catch(()=>{Zs===I&&ue.forEach(ye=>fr.add(ye))})}}e.previewName=k=>{if(!k||!xo().length)return k;if(Zs===xo().join(` -`)){if(bs.has(k))return bs.get(k);if(fr.has(k))return k}return pr.add(k),xs||(xs=d(Zp,120)),k},e.previewPathName=k=>{k=String(k||"");let I=k.lastIndexOf("/");return I<0?e.previewName(k):e.previewName(k.slice(0,I))+"/"+e.previewName(k.slice(I+1))},e.watch(()=>[e.repoId,e.previewPathName(e.previewOpenPath()||e.readmeName()),e.previewTreeFiles()],()=>{be.repoId=e.repoId||"repository",be.filePath=e.previewPathName(e.previewOpenPath()||e.readmeName()),be.paths=be.filePath.split("/"),be.files=e.previewTreeFiles(),be.loadedFolders=Object.fromEntries([...me?.dirs.keys()||[]].map(k=>[e.previewName(k),!0]))},!0),e.on("dispose",()=>{xs&&d.cancel(xs)});function ws(){!e.anonymize||!e.anonymize.terms||Kt()}async function Qa(){let k=parseGithubUrl(e.sourceUrl),I=h();try{Es();let B=await t.get(`/api/pr/${k.owner}/${k.repo}/${k.pullRequestId}`,{params:{connection:e.githubConnection}});if(!b(I))return;e.details=B.data,e.pullRequestId||(e.pullRequestId=k.repo+"-PR"+k.pullRequestId+"-"+generateRandomId(4))}catch(B){if(!b(I))return;throw B.data&&(r("ERRORS."+B.data.error).then(j=>{e.addToast({title:"Error",date:new Date,body:j}),e.error=j},console.error),Ss(B.data.error)),Y("sourceUrl","missing",!1),B}finally{w(I)}}let ks=st(new Map);function xp(){let k=new Set,I=e.details&&e.details.pullRequest;if(!I)return k;typeof I.title=="string"&&k.add(I.title),typeof I.body=="string"&&k.add(I.body),typeof I.diff=="string"&&k.add(I.diff);let B=I.comments||[];for(let j of B)typeof j.author=="string"&&k.add(j.author),typeof j.body=="string"&&k.add(j.body);return k}let Tn=we("pr",()=>{let k=xp(),I=Array.from(k);return I.length===0?null:{contents:I,options:ze()}},(k,I)=>{if(!Array.isArray(k?.contents)||k.contents.length!==I.contents.length||k.contents.some(ue=>typeof ue!="string"))throw Error("Invalid preview response");let B=I.contents,j=new Map;for(let ue=0;ueks.set(ye,ue))});e.anonymizePrContent=function(k){return k&&(ks.has(k)?ks.get(k):"")};async function Za(){let k=parseGithubUrl(e.sourceUrl),I=h();try{Es(),e.gistOAuthRequired=!1,e.gistAppRequired=!1;let B=await t.get(`/api/gist/source/${k.gistId}`);if(!b(I))return;e.details=B.data,e.gistId||(e.gistId="gist-"+k.gistId.substring(0,6)+"-"+generateRandomId(4))}catch(B){if(!b(I))return;if(B.data?.error==="github_app_reconnect_required"){e.gistAppRequired=!0,Y("sourceUrl","missing",!1);return}if(B.data?.error==="github_oauth_required"){e.gistOAuthRequired=!0,Y("sourceUrl","missing",!1);return}throw B.data&&(r("ERRORS."+B.data.error).then(j=>{e.addToast({title:"Error",date:new Date,body:j}),e.error=j},console.error),Ss(B.data.error)),Y("sourceUrl","missing",!1),B}finally{w(I)}}let Cs=st(new Map);function ef(){let k=new Set,I=e.details&&e.details.gist;if(!I)return k;typeof I.description=="string"&&k.add(I.description),typeof I.ownerLogin=="string"&&k.add(I.ownerLogin);let B=I.files||[];for(let ue of B)typeof ue.filename=="string"&&k.add(ue.filename),typeof ue.content=="string"&&k.add(ue.content);let j=I.comments||[];for(let ue of j)typeof ue.author=="string"&&k.add(ue.author),typeof ue.body=="string"&&k.add(ue.body);return k}let On=we("gist",()=>{let k=ef(),I=Array.from(k);return I.length===0?null:{contents:I,options:ze()}},(k,I)=>{if(!Array.isArray(k?.contents)||k.contents.length!==I.contents.length||k.contents.some(ue=>typeof ue!="string"))throw Error("Invalid preview response");let B=I.contents,j=new Map;for(let ue=0;ueCs.set(ye,ue)),hr()});e.anonymizeGistContent=function(k){return k&&(Cs.has(k)?Cs.get(k):"")},e.previewGistFiles=[];function hr(){let k=e.details&&e.details.gist&&e.details.gist.files||[];e.previewGistFiles=k.map(I=>({filename:e.anonymizeGistContent(I.filename),content:e.anonymizeGistContent(I.content),language:I.language}))}e.watch("details.gist.files",hr,!0),e.watch("terms",hr);function tf(){let k=e.conference;if(e.conference_data=null,!k)return;let I=k===v||e.isUpdate&&k===e._originalConference;k!==v&&(v=null),t.get("/api/conferences/"+k).then(B=>{e.conference===k&&(e.conference_data=B.data,e.conference_data.startDate=new Date(e.conference_data.startDate),e.conference_data.endDate=new Date(e.conference_data.endDate),!I&&(e.options.expirationDate=new Date(e.conference_data.endDate),e.options.expirationMode="remove",e.options.update=e.conference_data.options.update,e.options.image=e.conference_data.options.image,e.options.pdf=e.conference_data.options.pdf,e.options.notebook=e.conference_data.options.notebook,e.options.link=e.conference_data.options.link))},()=>{e.conference===k&&(e.conference_data=null)})}function Es(){Y("repoId","used",!0),Y("repoId","format",!0),Y("pullRequestId","used",!0),Y("pullRequestId","format",!0),Y("gistId","used",!0),Y("gistId","format",!0),Y("sourceUrl","used",!0),Y("sourceUrl","missing",!0),Y("sourceUrl","access",!0),Y("sourceUrl","github",!0),Y("commit","exists",!0),Y("conference","activated",!0),Y("terms","format",!0),e.termHints=[]}function ei(){if(e.detectedType==="repo"&&e.options.expirationMode==="never")return!1;let k=e.anonymize&&e.anonymize.expirationDate;return!e.options.expirationDate||k&&k.invalid?(k&&k.setDirty&&k.setDirty(),e.error="Please choose a valid expiration date.",!0):!1}function Ss(k){let I=e.detectedType==="pr"?"pullRequestId":e.detectedType==="gist"?"gistId":"repoId";switch(k){case"repoId_already_used":Y(I,"used",!1);break;case"invalid_repoId":Y(I,"format",!1);break;case"options_not_provided":Y(I,"format",!1);break;case"repo_already_anonymized":Y("sourceUrl","used",!1);break;case"invalid_terms_format":Y("terms","format",!1);break;case"repo_not_found":Y("sourceUrl","missing",!1);break;case"repo_not_accessible":Y("sourceUrl","access",!1);break;case"commit_not_found":Y("commit","exists",!1);break;case"conf_not_activated":Y("conference","activated",!1);break}}e.coauthors=e.coauthors||[],e.coauthorResults=[],e.coauthorError="",e.searchCoauthors=()=>{let k=(e.coauthorSearch||"").trim();if(e.coauthorError="",k.length<2){e.coauthorResults=[];return}t.get("/api/user/search/github-users",{params:{q:k}}).then(I=>{let B=new Set((e.coauthors||[]).map(j=>(j.username||"").toLowerCase()));e.coauthorResults=(I.data||[]).filter(j=>!B.has((j.username||"").toLowerCase()))},()=>{e.coauthorResults=[]})},e.addCoauthor=(k,I)=>{I&&I.preventDefault(),!(!k||!k.username)&&t.post("/api/repo/"+e.repoId+"/coauthors",{username:k.username}).then(B=>{e.coauthors=B.data||[],e.coauthorResults=[],e.coauthorSearch="",e.coauthorError=""},B=>{let j=B&&B.data&&B.data.error||"unknown_error";e.coauthorError=j})},e.removeCoauthor=k=>{!k||!k.username||confirm("Remove co-author "+k.username+"?")&&t.delete("/api/repo/"+e.repoId+"/coauthors/"+encodeURIComponent(k.username)).then(I=>{e.coauthors=I.data||[]},I=>{let B=I&&I.data&&I.data.error||"unknown_error";e.coauthorError=B})},e.anonymizeRepo=k=>{if(e.sourceLoading){e.error="Wait for the source to finish loading before saving.";return}if(e.reconnectingSource&&!e.reconnectRepositoryId)return;if(ei()){e.editRepository();return}if(e.anonymize?.invalid||e.sourceUrlError){e.editRepository(),e.error="Please correct the highlighted fields before saving.";return}if(e.hostingNeedsPayment()&&e.options.expirationMode==="never"){e.hostingReview=!0,tt(()=>document.getElementById("repository-hosting")?.scrollIntoView({block:"center"}));return}let I=k.currentTarget||k.target.closest?.("button")||k.target;I.disabled=!0;let B=parseGithubUrl(e.sourceUrl),j={repoId:e.repoId,terms:e.terms.trim().split(` +`)){if(bs.has(k))return bs.get(k);if(fr.has(k))return k}return pr.add(k),xs||(xs=d(ef,120)),k},e.previewPathName=k=>{k=String(k||"");let I=k.lastIndexOf("/");return I<0?e.previewName(k):e.previewName(k.slice(0,I))+"/"+e.previewName(k.slice(I+1))},e.watch(()=>[e.repoId,e.previewPathName(e.previewOpenPath()||e.readmeName()),e.previewTreeFiles()],()=>{be.repoId=e.repoId||"repository",be.filePath=e.previewPathName(e.previewOpenPath()||e.readmeName()),be.paths=be.filePath.split("/"),be.files=e.previewTreeFiles(),be.loadedFolders=Object.fromEntries([...ve?.dirs.keys()||[]].map(k=>[e.previewName(k),!0]))},!0),e.on("dispose",()=>{xs&&d.cancel(xs)});function ws(){!e.anonymize||!e.anonymize.terms||Yt()}async function Ja(){let k=parseGithubUrl(e.sourceUrl),I=h();try{Es();let B=await t.get(`/api/pr/${k.owner}/${k.repo}/${k.pullRequestId}`,{params:{connection:e.githubConnection}});if(!b(I))return;e.details=B.data,e.pullRequestId||(e.pullRequestId=k.repo+"-PR"+k.pullRequestId+"-"+generateRandomId(4))}catch(B){if(!b(I))return;throw B.data&&(r("ERRORS."+B.data.error).then(j=>{e.addToast({title:"Error",date:new Date,body:j}),e.error=j},console.error),Ss(B.data.error)),Y("sourceUrl","missing",!1),B}finally{w(I)}}let ks=st(new Map);function tf(){let k=new Set,I=e.details&&e.details.pullRequest;if(!I)return k;typeof I.title=="string"&&k.add(I.title),typeof I.body=="string"&&k.add(I.body),typeof I.diff=="string"&&k.add(I.diff);let B=I.comments||[];for(let j of B)typeof j.author=="string"&&k.add(j.author),typeof j.body=="string"&&k.add(j.body);return k}let Tn=we("pr",()=>{let k=tf(),I=Array.from(k);return I.length===0?null:{contents:I,options:ze()}},(k,I)=>{if(!Array.isArray(k?.contents)||k.contents.length!==I.contents.length||k.contents.some(ue=>typeof ue!="string"))throw Error("Invalid preview response");let B=I.contents,j=new Map;for(let ue=0;ueks.set(ye,ue))});e.anonymizePrContent=function(k){return k&&(ks.has(k)?ks.get(k):"")};async function Za(){let k=parseGithubUrl(e.sourceUrl),I=h();try{Es(),e.gistOAuthRequired=!1,e.gistAppRequired=!1;let B=await t.get(`/api/gist/source/${k.gistId}`);if(!b(I))return;e.details=B.data,e.gistId||(e.gistId="gist-"+k.gistId.substring(0,6)+"-"+generateRandomId(4))}catch(B){if(!b(I))return;if(B.data?.error==="github_app_reconnect_required"){e.gistAppRequired=!0,Y("sourceUrl","missing",!1);return}if(B.data?.error==="github_oauth_required"){e.gistOAuthRequired=!0,Y("sourceUrl","missing",!1);return}throw B.data&&(r("ERRORS."+B.data.error).then(j=>{e.addToast({title:"Error",date:new Date,body:j}),e.error=j},console.error),Ss(B.data.error)),Y("sourceUrl","missing",!1),B}finally{w(I)}}let Cs=st(new Map);function nf(){let k=new Set,I=e.details&&e.details.gist;if(!I)return k;typeof I.description=="string"&&k.add(I.description),typeof I.ownerLogin=="string"&&k.add(I.ownerLogin);let B=I.files||[];for(let ue of B)typeof ue.filename=="string"&&k.add(ue.filename),typeof ue.content=="string"&&k.add(ue.content);let j=I.comments||[];for(let ue of j)typeof ue.author=="string"&&k.add(ue.author),typeof ue.body=="string"&&k.add(ue.body);return k}let On=we("gist",()=>{let k=nf(),I=Array.from(k);return I.length===0?null:{contents:I,options:ze()}},(k,I)=>{if(!Array.isArray(k?.contents)||k.contents.length!==I.contents.length||k.contents.some(ue=>typeof ue!="string"))throw Error("Invalid preview response");let B=I.contents,j=new Map;for(let ue=0;ueCs.set(ye,ue)),hr()});e.anonymizeGistContent=function(k){return k&&(Cs.has(k)?Cs.get(k):"")},e.previewGistFiles=[];function hr(){let k=e.details&&e.details.gist&&e.details.gist.files||[];e.previewGistFiles=k.map(I=>({filename:e.anonymizeGistContent(I.filename),content:e.anonymizeGistContent(I.content),language:I.language}))}e.watch("details.gist.files",hr,!0),e.watch("terms",hr);function sf(){let k=e.conference;if(e.conference_data=null,!k)return;let I=k===v||e.isUpdate&&k===e._originalConference;k!==v&&(v=null),t.get("/api/conferences/"+k).then(B=>{e.conference===k&&(e.conference_data=B.data,e.conference_data.startDate=new Date(e.conference_data.startDate),e.conference_data.endDate=new Date(e.conference_data.endDate),!I&&(e.options.expirationDate=new Date(e.conference_data.endDate),e.options.expirationMode="remove",e.options.update=e.conference_data.options.update,e.options.image=e.conference_data.options.image,e.options.pdf=e.conference_data.options.pdf,e.options.notebook=e.conference_data.options.notebook,e.options.link=e.conference_data.options.link))},()=>{e.conference===k&&(e.conference_data=null)})}function Es(){Y("repoId","used",!0),Y("repoId","format",!0),Y("pullRequestId","used",!0),Y("pullRequestId","format",!0),Y("gistId","used",!0),Y("gistId","format",!0),Y("sourceUrl","used",!0),Y("sourceUrl","missing",!0),Y("sourceUrl","access",!0),Y("sourceUrl","github",!0),Y("commit","exists",!0),Y("conference","activated",!0),Y("terms","format",!0),e.termHints=[]}function ei(){if(e.detectedType==="repo"&&e.options.expirationMode==="never")return!1;let k=e.anonymize&&e.anonymize.expirationDate;return!e.options.expirationDate||k&&k.invalid?(k&&k.setDirty&&k.setDirty(),e.error="Please choose a valid expiration date.",!0):!1}function Ss(k){let I=e.detectedType==="pr"?"pullRequestId":e.detectedType==="gist"?"gistId":"repoId";switch(k){case"repoId_already_used":Y(I,"used",!1);break;case"invalid_repoId":Y(I,"format",!1);break;case"options_not_provided":Y(I,"format",!1);break;case"repo_already_anonymized":Y("sourceUrl","used",!1);break;case"invalid_terms_format":Y("terms","format",!1);break;case"repo_not_found":Y("sourceUrl","missing",!1);break;case"repo_not_accessible":Y("sourceUrl","access",!1);break;case"commit_not_found":Y("commit","exists",!1);break;case"conf_not_activated":Y("conference","activated",!1);break}}e.coauthors=e.coauthors||[],e.coauthorResults=[],e.coauthorError="",e.searchCoauthors=()=>{let k=(e.coauthorSearch||"").trim();if(e.coauthorError="",k.length<2){e.coauthorResults=[];return}t.get("/api/user/search/github-users",{params:{q:k}}).then(I=>{let B=new Set((e.coauthors||[]).map(j=>(j.username||"").toLowerCase()));e.coauthorResults=(I.data||[]).filter(j=>!B.has((j.username||"").toLowerCase()))},()=>{e.coauthorResults=[]})},e.addCoauthor=(k,I)=>{I&&I.preventDefault(),!(!k||!k.username)&&t.post("/api/repo/"+e.repoId+"/coauthors",{username:k.username}).then(B=>{e.coauthors=B.data||[],e.coauthorResults=[],e.coauthorSearch="",e.coauthorError=""},B=>{let j=B&&B.data&&B.data.error||"unknown_error";e.coauthorError=j})},e.removeCoauthor=k=>{!k||!k.username||confirm("Remove co-author "+k.username+"?")&&t.delete("/api/repo/"+e.repoId+"/coauthors/"+encodeURIComponent(k.username)).then(I=>{e.coauthors=I.data||[]},I=>{let B=I&&I.data&&I.data.error||"unknown_error";e.coauthorError=B})},e.anonymizeRepo=k=>{if(e.sourceLoading){e.error="Wait for the source to finish loading before saving.";return}if(e.reconnectingSource&&!e.reconnectRepositoryId)return;if(ei()){e.editRepository();return}if(e.anonymize?.invalid||e.sourceUrlError){e.editRepository(),e.error="Please correct the highlighted fields before saving.";return}if(e.hostingNeedsPayment()&&e.options.expirationMode==="never"){e.hostingReview=!0,tt(()=>document.getElementById("repository-hosting")?.scrollIntoView({block:"center"}));return}let I=k.currentTarget||k.target.closest?.("button")||k.target;I.disabled=!0;let B=parseGithubUrl(e.sourceUrl),j={repoId:e.repoId,terms:e.terms.trim().split(` `).filter(ye=>ye),connection:e.githubConnection,fullName:`${B.owner}/${B.repo}`,repository:e.sourceUrl,reconnectRepositoryId:e.reconnectRepositoryId,options:e.options,source:e.source,conference:e.conference};e.details&&(j.options.pageSource=e.details.pageSource),Es();let ue=e.isUpdate?"/api/repo/"+e.repoId:"/api/repo/";t.post(ue,j,{headers:{"Content-Type":"application/json"}}).then(()=>{N.clear(),window.location.href="/status/"+e.repoId},ye=>{if(ye.data){let Ke=["quota_exceeded","subscription_required_for_never_expiration"].includes(ye.data.error);Ke||r("ERRORS."+ye.data.error).then(qt=>{e.error=qt},console.error),Ss(ye.data.error),Ke&&(ye.data.error==="subscription_required_for_never_expiration"&&(e._existingNever=!1),e.hostingQuotaBlocked=!0,e.hostingReview=!0,tt(()=>document.getElementById("repository-hosting")?.scrollIntoView({block:"center"})))}}).finally(()=>{I.disabled=!1})},e.anonymizeGist=k=>{if(e.sourceLoading){e.error="Wait for the source to finish loading before saving.";return}if(ei())return;if(e.anonymize?.invalid||e.sourceUrlError){e.error="Please correct the highlighted fields before saving.";return}let I=k.currentTarget||k.target.closest?.("button")||k.target;I.disabled=!0;let B=parseGithubUrl(e.sourceUrl),j={gistId:e.gistId,terms:e.terms.trim().split(` `).filter(ye=>ye),source:{gistId:B.gistId},options:e.options,conference:e.conference};Es();let ue=e.isUpdate?"/api/gist/"+e.gistId:"/api/gist/";t.post(ue,j,{headers:{"Content-Type":"application/json"}}).then(()=>{N.clear(),window.location.href="/gist/"+e.gistId},ye=>{ye.data&&(r("ERRORS."+ye.data.error).then(Ke=>{e.error=Ke},console.error),Ss(ye.data.error))}).finally(()=>{I.disabled=!1})},e.anonymizePullRequest=k=>{if(e.sourceLoading){e.error="Wait for the source to finish loading before saving.";return}if(ei())return;if(e.anonymize?.invalid||e.sourceUrlError){e.error="Please correct the highlighted fields before saving.";return}let I=k.currentTarget||k.target.closest?.("button")||k.target;I.disabled=!0;let B=parseGithubUrl(e.sourceUrl),j={pullRequestId:e.pullRequestId,connection:e.githubConnection,terms:e.terms.trim().split(` -`).filter(ye=>ye),source:{repositoryFullName:`${B.owner}/${B.repo}`,pullRequestId:B.pullRequestId},options:e.options,conference:e.conference};Es();let ue=e.isUpdate?"/api/pr/"+e.pullRequestId:"/api/pr/";t.post(ue,j,{headers:{"Content-Type":"application/json"}}).then(()=>{N.clear(),window.location.href="/pr/"+e.pullRequestId},ye=>{ye.data&&(r("ERRORS."+ye.data.error).then(Ke=>{e.error=Ke},console.error),Ss(ye.data.error))}).finally(()=>{I.disabled=!1})},e.watch("conference",()=>{tf()}),e.termHints=[],e.matchTermAsWritten=k=>{e.terms=Dc(e.terms,k)},e.watch("options.preserveFiles",()=>{e.detectedType==="repo"&&Kt()}),e.watch("terms",()=>{e.termHints=Ac(e.terms),e.detectedType==="repo"&&ws(),e.detectedType==="pr"&&Tn(),e.detectedType==="gist"&&On()}),e.watch("options.image",()=>{e.detectedType==="repo"&&ws(),e.detectedType==="pr"&&Tn(),e.detectedType==="gist"&&On()}),e.watch("options.link",()=>{e.detectedType==="repo"&&ws(),e.detectedType==="pr"&&Tn(),e.detectedType==="gist"&&On()}),e.watch("details",()=>{e.detectedType==="pr"&&Tn(),e.detectedType==="gist"&&On()},!0)},Ka=function(e,t,s,i,o,r){ma(e);let d=Ct();Oc();let p=Ut(),u=0,y=null,m=null;e.fileLoadingSlow=!1,e.fileReceivedBytes=0;function b(){y&&(y.resolve(),y=null),m&&(d.timeout.cancel(m),m=null)}let h=!1;e.on("dispose",()=>{h=!0,u++,b(),w&&w.resolve()}),e.files=[],e.isMac=/Mac|iPhone|iPad|iPod/.test(navigator.platform||navigator.userAgent),e.fileSearchQuery="",e.fileSearchResults=null,e.fileSearchLoading=!1,p(document,"click",O=>{e.symbolsOpen&&!O.target.closest?.(".symbols")&&(e.symbolsOpen=!1),e.moreOpen&&!O.target.closest?.(".tb-more")&&(e.moreOpen=!1),e.tocOpen&&!O.target.closest?.(".tb-toc-m")&&(e.tocOpen=!1),e.gotoOpen&&O.target.isConnected&&!O.target.closest?.(".goto-pop, .btn-goto, .tb-more")&&(e.gotoOpen=!1),e.accountOpen&&!O.target.closest?.(".acct")&&(e.accountOpen=!1),e.helpOpen&&!O.target.closest?.(".vb-help")&&(e.helpOpen=!1)}),p(document,"keydown",O=>{O.key==="Escape"&&(e.symbolsOpen=!1,e.moreOpen=!1,e.tocOpen=!1,e.gotoOpen=!1,e.accountOpen=!1,e.helpOpen=!1),(O.ctrlKey||O.metaKey)&&!O.altKey&&O.key&&O.key.toLowerCase()==="f"&&e.type==="html"&&window.document.querySelector(".reading-layout")&&(O.preventDefault(),e.toggleMdFind(!0))}),p(document,"keydown",function(O){if((O.metaKey||O.ctrlKey)&&O.key==="k"){O.preventDefault();var U=document.querySelector(".tree-search-input");U&&(U.focus(),U.select())}});var w=null;e.onFileSearchChange=function(){w&&(w.resolve(),w=null);let O=e.fileSearchQuery;if(!O||O.length<2){e.fileSearchResults=null,e.fileSearchLoading=!1;return}e.fileSearchLoading=!0;let U=r.defer();w=U,t.get(`/api/repo/${e.repoId}/files/search?q=${encodeURIComponent(O)}`,{timeout:U.promise}).then(function(C){if(!(h||w!==U)){w=null,e.fileSearchLoading=!1;var L={};e.files.forEach(function(Fe){L[(Fe.path||"")+"/"+Fe.name]=!0});for(var z=[],K={},ie=0;ie0&&e.files.push.apply(e.files,z);for(var Qe=[],He=0;He0&&e.files.push.apply(e.files,Qe),e.fileSearchResults=C.data}},function(){!h&&w===U&&(w=null,e.fileSearchLoading=!1,e.fileSearchResults=[])})},e.on("routeUpdate",function(O,U){if(e.repoId!=i.repoId)return X();if((i.path||"")!=e.filePath){window.matchMedia?.("(max-width: 767px)").matches&&(e.sidebarCollapsed=!0),e.filePath=i.path||"",e.paths=e.filePath.split("/").filter(C=>C&&C.trim().length>0),te();for(let C=0;C0?e.paths.slice(0,C).join("/"):"";e.files.some(K=>K.path===L)||e.getFiles(L)}}});function R(){if(e.paths[0]!="")return;let O=["readme.md","readme.txt","readme.org","readme.1st","readme"],U={};for(let L of e.files)L.name.toLowerCase().indexOf("readme")>-1&&(U[L.name.toLowerCase()]=L.name);let C=null;for(let L of O)if(U[L]){C=L;break}if(!C&&Object.keys(U).length>0&&(C=Object.keys(U)[0]),C){let L=s.url();L[L.length-1]!="/"&&(L+="/"),s.url(L+encodePathForUrl(U[C]))}}e.fileCounts=null;let S=0,N=new Set,v=!1;e.getFiles=function(O,U=!1){let C=e.repoId,L=S;return t.get(`/api/repo/${e.repoId}/files/?path=${encodeURIComponent(O)}&v=${e.options.lastUpdateDate}`).then(function(z){if(h||C!==e.repoId||L!==S)return[];let K=O||"";return e.files=e.files.filter(ie=>ie.path!==K),e.files.push(...z.data),e.loadedFolders={...e.loadedFolders,[K]:!0},E(K,L),z.data},function(z){if(h||C!==e.repoId||L!==S)return[];U||(e.type="error",e.content=ar(z),e.files=[])})};function E(O,U){if(v||N.has(O))return;N.add(O);let C=e.repoId;t.get(`/api/repo/${e.repoId}/files/counts?path=${encodeURIComponent(O)}`).then(function(L){h||C!==e.repoId||U!==S||(e.fileCounts={...e.fileCounts,...L.data})},function(){h||C!==e.repoId||U!==S||(v=!0)})}function M(){return e.files.filter(O=>O.name==e.paths[e.paths.length-1]&&O.path==e.paths.slice(0,e.paths.length-1).join("/"))[0]}var V=null;e.on("dispose",function(){V&&d.interval.cancel(V)});function _(O){if(h)return;let U=e.repoId;t.get(`/api/repo/${e.repoId}/options`).then(C=>{if(!(h||U!==e.repoId)){if(e.options=C.data,e.options.url){window.location=e.options.url;return}O&&O(C.data)}},C=>{if(!(h||U!==e.repoId)){var L=C.data||{};if(L.error==="rate_limited"&&L.resetAt){let K=function(){var ie=Math.max(0,Math.ceil((e.rateLimitResetAt-Date.now())/1e3));if(ie<=0)e.rateLimitCountdown="",e.rateLimitResetAt=0,V&&(d.interval.cancel(V),V=null),_(O);else{var se=Math.floor(ie/60),Y=ie%60;e.rateLimitCountdown=se>0?se+"m "+Y+"s":Y+"s"}};var z=K;e.type="rate_limited",e.rateLimitResetAt=L.resetAt,V&&d.interval.cancel(V),K(),V=d.interval(K,1e3)}else L.error==="repository_not_ready"?(e.type="loading",d.timeout(function(){_(O)},3e3)):(e.type="error",e.content=ar(C))}})}function G(O,U){let C=u;if(!O){e.type="error",e.content="no_file_selected";return}let L=e.type;(L==="code"||L==="text")&&ni().catch(()=>{}),e.type="loading",e.content="loading",e.fileLoadingSlow=!1,e.fileReceivedBytes=0;let z=r.defer();y=z,m=d.timeout(()=>{!h&&C===u&&e.type==="loading"&&(e.fileLoadingSlow=!0)},1500);let K=U&&U.sha||"0";t.get(`/api/repo/${e.repoId}/file/${encodePathForUrl(O)}?v=`+K,{timeout:z.promise,onDownloadProgress:ie=>{!h&&C===u&&(e.fileReceivedBytes=ie)},transformResponse:ie=>ie}).then(ie=>{h||C!==u||(b(),e.renderFileContent(ie.data,L,s.url()+"/../",ie.headers("content-type")))},ie=>{h||C!==u||(b(),e.type="error",e.content=ar(ie))})}function te(){u++,b(),e.content="",e.file=M();let O="0";e.file&&e.file.sha&&(O=e.file.sha),e.url=`/api/repo/${e.repoId}/file/${encodePathForUrl(e.filePath)}?v=${O}`;let U=e.filePath.substring(0,e.filePath.lastIndexOf("/")+1);if(e.fileBaseUrl=`/api/repo/${e.repoId}/file/${U?encodePathForUrl(U):""}`,e.showSource=!1,e.imageSize="",e.allowScripts=!1,e.prepareFile(e.filePath),e.type=="pdf"){e.content="pdf";return}if(e.type=="media"||e.type=="audio"){e.content=e.type;return}G(e.filePath,e.file)}e.isSourceAccessError=()=>["repo_not_found","token_expired","github_app_access_required","github_app_reconnect_required","repo_saml_enforcement","repo_access_limited"].includes(e.content),e.retryContent=()=>X();function X(){u++,b(),e.files=[],e.loadedFolders={},e.content=null,e.fileCounts=null,S++,N=new Set,v=!1,e.fileSearchQuery="",e.onFileSearchChange(),e.repoId=i.repoId,e.type="loading",e.filePath=i.path||"",e.paths=e.filePath.split("/");let O=e.repoId;_(function(U){if(e.filePath){te();let L=[...new Set(e.paths.map((z,K)=>e.paths.slice(0,K).join("/")))];r.all(L.map(z=>e.getFiles(z,!0)));return}var C=r.resolve();for(let L=0;L0?e.paths.slice(0,L).join("/"):"";C=C.then(function(){return e.getFiles(z)}).then(function(){if(e.type==="error")return r.reject("error")})}C.then(function(){h||O!==e.repoId||(e.files.length==1&&e.files[0].name==""?(e.files=[],e.type="empty"):(R(),te()))})})}X()},Uc=function(e,t,s,i,o){async function r(u){t.get(`/api/pr/${e.pullRequestId}/options`).then(y=>{if(e.options=y.data,e.options.url){window.location=e.options.url;return}u&&u(y.data)},y=>{e.type="error",e.content=y.data.error})}async function d(u){t.get(`/api/pr/${e.pullRequestId}/content`).then(y=>{e.details=y.data,e.tabState={active:y.data.diff?"diff":"comments"},u&&u(y.data)},y=>{e.type="error",e.content=y.data.error})}function p(){e.pullRequestId=i.pullRequestId,e.type="loading",r(u=>{d()})}p()},Bc=function(e,t,s,i,o){async function r(u){t.get(`/api/gist/${e.gistId}/options`).then(y=>{if(e.options=y.data,e.options.url){window.location=e.options.url;return}u&&u(y.data)},y=>{e.type="error",e.content=y.data.error})}async function d(u){t.get(`/api/gist/${e.gistId}/content`).then(y=>{e.details=y.data;let m=y.data&&y.data.files&&y.data.files.length;e.tabState={active:m?"files":"comments"},u&&u(y.data)},y=>{e.type="error",e.content=y.data.error})}function p(){e.gistId=i.gistId,e.type="loading",r(()=>{d()})}p()},zc=function(e,t,s){e.watch("user.status",()=>{e.user==null&&s.url("/")}),e.user==null&&s.url("/"),e.conferences=[],e.loading=!0,e.error="",e.search="";let i="conferences.filterPrefs",o={filters:{status:{ready:!0,expired:!1,removed:!1}},orderBy:"name"},r=loadFilterPrefs(i)||{};e.filters={status:Object.assign({},o.filters.status,r.filters&&r.filters.status||{})},e.orderBy=r.orderBy||o.orderBy,e.watch("orderBy",()=>{saveFilterPrefs(i,{filters:e.filters,orderBy:e.orderBy})}),e.watch("filters",()=>{saveFilterPrefs(i,{filters:e.filters,orderBy:e.orderBy})},!0),e.removeConference=function(d){if(!d.removing&&confirm(`Are you sure that you want to remove the conference ${d.name}? All the repositories linked to this conference will expire.`)){d.removing=!0;let p=st({title:`Removing ${d.name}...`,date:new Date,body:`The conference ${d.name} is going to be removed.`});e.addToast(p),t.delete(`/api/conferences/${d.conferenceID}`).then(()=>{p.title=`${d.name} is removed.`,p.body=`The conference ${d.name} is removed.`,e.loadConferences()}).catch(()=>{p.title="Unable to remove conference",p.body="Please try again. The conference has not been removed."}).finally(()=>{d.removing=!1})}},e.loadConferences=()=>(e.loading=!0,e.error="",t.get("/api/conferences/").then(d=>{e.conferences=d.data||[]},d=>{e.error="Unable to load your conferences. Please try again."}).finally(()=>{e.loading=!1})),e.loadConferences(),e.conferenceFilter=d=>{if(e.filters.status[d.status]==!1)return!1;let p=e.search.trim().toLowerCase();return!!(!p||(d.name||"").toLowerCase().includes(p)||(d.conferenceID||"").toLowerCase().includes(p))}},Ya=function(e,t,s,i){e.watch("user.status",()=>{e.user==null&&s.url("/")}),e.user==null&&s.url("/");let o=()=>{for(let[h,w,R]of[["startDate","Starts","startDate"],["endDate","Ends","endDate"]]){let S=document.getElementById(h);if(!S)continue;let N=S.parentElement.querySelector(":scope > .date-echo");N||(N=document.createElement("p"),N.className="date-echo",N.setAttribute("aria-live","polite"),S.insertAdjacentElement("afterend",N));let v=ya(e.options?.[R]);N.textContent=v?w+" "+v:"",N.hidden=!v}};typeof e.watchGroup=="function"&&e.watchGroup(["options.startDate","options.endDate"],()=>tt(o));let r=(h=20)=>{let w=document.querySelector("input#name.form-control"),R=document.querySelector("input#conferenceID.form-control");R&&(R.placeholder="e.g. ICSE27"),w?w.placeholder="e.g. ICSE 2027":h>0&&setTimeout(()=>r(h-1),50)};setTimeout(()=>r(),0),e.plans=[],e.plansLoaded=!1,e.conferenceBilling=null,Wi(t).then(h=>{e.conferenceBilling=h.data}).catch(()=>{}),e.conferenceTiers=()=>e.plans.filter(h=>h.id!=="free_conference").map(h=>{let w=(e.conferenceBilling?.plans||[]).find(R=>R.id===h.id)||{};return{...h,storage:h.storagePerRepo,...w,id:h.id,name:h.name}}),e.conferenceAudience=h=>({conference_workshop:"Workshops and small venues",conference:"A typical conference",conference_large:"Large or multi-track venues"})[h]||"",e.conferencePlanName=h=>Hc(h),e.conferenceAmount=(h,w=h?.amount)=>new Intl.NumberFormat(void 0,{style:"currency",currency:h?.currency||"eur",minimumFractionDigits:w%100?2:0,maximumFractionDigits:2}).format(w/100),e.conferenceBytes=h=>{let w=Number(h)||0,R=Math.min(4,Math.floor(Math.log2(Math.max(w,1))/10));return`${new Intl.NumberFormat(void 0,{maximumFractionDigits:1}).format(w/1024**R)} ${["B","KB","MB","GB","TB"][R]}`},e.editionMode=!1,e.saving=!1,e.error="";function d(){return t.get("/api/conferences/"+i.conferenceId).then(h=>{e.options={...e.options,...h.data,billing:h.data.billing||{}},e.options.startDate=new Date(e.options.startDate),e.options.endDate=new Date(e.options.endDate)})}i.conferenceId&&(e.editionMode=!0,d());function p(){t.get("/api/conferences/plans").then(h=>{e.plans=h.data,e.plansLoaded=!0,!e.editionMode&&e.plans.length&&!e.plans.some(w=>w.id==e.options.plan.planID)&&(e.options.plan.planID=(e.plans.find(w=>w.id==="conference")||e.plans[0]).id),e.plan=e.plans.filter(w=>w.id==e.options.plan.planID)[0]})}p();let u=new Date;u.setDate(1),u.setMonth(u.getMonth()+1);let y=new Date(u);y.setTime(u.getTime()+179*864e5),e.options={billing:{},startDate:u,endDate:y,plan:{planID:"free_conference"},options:{link:!0,image:!0,pdf:!0,notebook:!0,update:!0,page:!0}},e.plan=null,e.watch("options.plan.planID",()=>{e.plan=e.plans.filter(h=>h.id==e.options.plan.planID)[0]});function m(){e.conference.name.setValidity("required",!0),e.conference.conferenceID.setValidity("pattern",!0),e.conference.conferenceID.setValidity("required",!0),e.conference.conferenceID.setValidity("used",!0),e.conference.startDate.setValidity("required",!0),e.conference.startDate.setValidity("invalid",!0),e.conference.endDate.setValidity("required",!0),e.conference.endDate.setValidity("invalid",!0),e.conference.setValidity("error",!0)}function b(h){switch(h){case"conf_name_missing":e.conference.name.setValidity("required",!1);break;case"conf_id_missing":e.conference.conferenceID.setValidity("required",!1);break;case"conf_id_format":e.conference.conferenceID.setValidity("pattern",!1);break;case"conf_id_used":e.conference.conferenceID.setValidity("used",!1);break;case"conf_start_date_missing":e.conference.startDate.setValidity("required",!1);break;case"conf_end_date_missing":e.conference.endDate.setValidity("required",!1);break;case"conf_start_date_invalid":e.conference.startDate.setValidity("invalid",!1);break;case"conf_end_date_invalid":e.conference.endDate.setValidity("invalid",!1);break;default:e.conference.setValidity("error",!1);break}}e.submit=function(){if(e.saving)return;e.saving=!0,e.error="";let h=JSON.parse(JSON.stringify(e.options)),w=st({title:`Creating ${h.name}...`,date:new Date,body:`The conference ${h.conferenceID} is in creation.`});e.editionMode&&(w.title=`Updating ${h.name}...`,w.body=`The conference '${h.conferenceID}' is updating.`),e.addToast(w),m(),t.post("/api/conferences/"+(e.editionMode?h.conferenceID:""),h).then(()=>{e.editionMode?(w.title=`${h.name} updated`,w.body=`The conference '${h.conferenceID}' is updated.`):(w.title=`${h.name} created`,w.body=`The conference '${h.conferenceID}' is created.`),s.url("/conference/"+h.conferenceID)},R=>{b(R.data?.error),e.error="Unable to save the conference. Please correct any highlighted fields and try again.",e.removeToast(w)}).finally(()=>{e.saving=!1})}};function Hc(e){return{free_conference:"Free (no longer offered to new conferences)",conference_workshop:"Workshop package",conference:"Conference package",conference_large:"Large conference package",premium_conference:"Premium (legacy)",unlimited_conference:"Unlimited (legacy)"}[e]||e||"Free"}var jc=function(e,t,s,i){Ki(e,t,()=>p(),{confirmedMessage:"Payment status checked. Your conference is ready for submissions once payment is confirmed."}),e.conferencePlanName=u=>Hc(u),e.watch("user.status",()=>{e.user==null&&s.url("/")}),e.user==null&&s.url("/"),e.conference=null,e.search="",e.filters={status:{ready:!0,preparing:!0,error:!0,expired:!0,removed:!1}},e.orderBy="-anonymizeDate";let o=Xi,r=["ready","preparing","error","expired","removed"],d={current:u=>u!=="removed",attention:u=>u==="error",removed:u=>u==="removed"};e.confView=()=>Object.keys(d).find(u=>r.every(y=>d[u](y)===(e.filters.status[y]!==!1)))||"custom",e.setConfView=u=>{r.forEach(y=>{e.filters.status[y]=(d[u]||d.current)(y)})},e.confCount=u=>(e.conference?.repositories||[]).filter(y=>d[u](o(y.status))).length,e.copyingId=null,e.copyRepoLink=async u=>{if(!u?.repoId||e.copyingId)return;let y=new URL("/r/"+u.repoId+"/",window.location.origin).href;e.copyingId=u.repoId;try{await Wa(y),e.addToast({title:"Link copied",body:"The anonymous link is ready to share."})}catch{e.addToast({title:"Copy this anonymous link",body:y})}finally{e.copyingId=null}},e.extendingId=null,e.extendRepo=u=>{!u?.repoId||e.extendingId||(e.extendingId=u.repoId,t.post("/api/repo/"+u.repoId+"/extend").then(y=>{let m=y?.data?.expirationDate?` until ${new Date(y.data.expirationDate).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}`:"";e.addToast({title:`${u.repoId} is extended.`,body:`Reviewers can open it again${m}.`}),u.status="ready",y?.data?.expirationDate&&(u.options={...u.options||{},expirationDate:y.data.expirationDate}),e.extendingId=null},y=>{let m=y?.status||y?.data?.status;e.addToast({title:`Couldn't extend ${u.repoId}.`,body:m===401||m===403?"Only the repository's authors can extend this link. Ask them to extend it from My work.":"Try again in a moment."}),e.extendingId=null}))},e.repoFiler=u=>{if(e.filters.status[o(u.status)]==!1)return!1;let y=e.search.trim().toLowerCase();return!!(!y||(u.source?.fullName||"").toLowerCase().includes(y)||(u.repoId||"").toLowerCase().includes(y))};function p(){t.get("/api/conferences/"+i.conferenceId).then(u=>{e.conference=u.data})}p()},Gc=function(e,t){e.notificationEmail="",e.emailSaved=!1,e.saveNotificationEmail=async()=>{e.busy=!0,e.emailSaved=!1,e.connectionError="";try{let s=await t.post("/github/connections/email",{email:e.notificationEmail},{headers:{"X-CSRF-Token":e.connections.csrf}});e.notificationEmail=s.data.notificationEmail,e.user&&(e.user.notificationEmail=s.data.notificationEmail),e.emailSaved=!0}catch(s){e.connectionError=s.data?.error||"Unable to save email address."}finally{e.busy=!1}},e.connections=null,e.connectionError="",e.busy=!1,e.loadConnections=()=>t.get("/github/connections").then(s=>{e.connections=s.data,e.notificationEmail=s.data.notificationEmail||""}).catch(s=>{e.connectionError=s.data?.error||"Unable to load connections."}),e.changeConnection=async(s,i,o)=>{e.busy=!0,e.connectionError="";try{let r=await t.post("/github/connections/migrate",{type:s.type,id:s.id,connection:i,preview:o},{headers:{"X-CSRF-Token":e.connections.csrf}});o?s.eligible=r.data.eligible:await e.loadConnections()}catch(r){e.connectionError=r.data?.error||"Unable to change connection."}finally{e.busy=!1}},e.disconnectOAuth=async()=>{e.busy=!0;try{await t.post("/github/connections/disconnect-oauth",{},{headers:{"X-CSRF-Token":e.connections.csrf}}),await e.loadConnections()}catch(s){e.connectionError=s.data?.error||"Unable to disconnect OAuth."}finally{e.busy=!1}},e.loadConnections()},Wc=function(e,t){e.accountRecovery=!1,t.get("/github/account-recovery").then(s=>{e.accountRecovery=s.data.required}).catch(()=>{})};typeof document<"u"&&document.addEventListener("scroll",e=>{let t=e.target;!t||!t.classList||!t.classList.contains("repo-picker-list")||t.classList.toggle("is-end",t.scrollTop+t.clientHeight>=t.scrollHeight-2)},!0);var Kc=[{path:"/review-link",template:"partials/reviewConsent.htm",title:"Artifact consent \u2013 Anonymous GitHub",setup:(e,t)=>ol(e,t)},{path:"/connections",template:"partials/connections.htm",title:"GitHub connections \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Gc(e,t.http)},{path:"/signin",template:"partials/signin.htm",title:"Sign in \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Wc(e,t.http)},{path:"/",template:"partials/home.htm",title:"Anonymous GitHub \u2013 Share the code, not the author",preserveExplorer:!1,setup:(e,t)=>$c(e,t.http,t.location,t.window,t.timeout)},{path:"/dashboard",template:"partials/dashboard.htm",title:"Your anonymizations \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Lc(e,t.http,t.location,t.promises,t.window,t.quotaService)},{path:"/pr-dashboard",redirect:"/dashboard"},{path:"/anonymize/:repoId?",template:"partials/anonymize.htm",title:"New anonymization \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>dr(e,t.http,t.html,t.params,t.location,t.translate,t.timeout)},{path:"/pull-request-anonymize/:pullRequestId?",template:"partials/anonymize.htm",title:"Anonymize a pull request \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>dr(e,t.http,t.html,t.params,t.location,t.translate,t.timeout)},{path:"/gist-anonymize/:gistId?",template:"partials/anonymize.htm",title:"Anonymize a gist \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>dr(e,t.http,t.html,t.params,t.location,t.translate,t.timeout)},{path:"/status/:repoId",template:"partials/status.htm",title:"Repository status \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Fc(e,t.http,t.params)},{path:"/conferences",template:"partials/conferences.htm",title:"Your conferences \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>zc(e,t.http,t.location)},{path:"/conference/new",template:"partials/newConference.htm",title:"New conference \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Ya(e,t.http,t.location,t.params)},{path:"/conference/:conferenceId/edit",template:"partials/newConference.htm",title:"Edit conference \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Ya(e,t.http,t.location,t.params)},{path:"/conference/:conferenceId",template:"partials/conference.htm",title:"Conference \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>jc(e,t.http,t.location,t.params)},{path:"/faq",template:"partials/faq.htm",title:"FAQ \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Vc(e,t.http)},{path:"/profile",template:"partials/profile.htm",title:"Your settings \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>qc(e,t.http,t.translate,t.timeout,t.quotaService)},{path:"/claim",template:"partials/claim.htm",title:"Claim an anonymization \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>_c(e,t.http,t.location)},{path:"/pr/:pullRequestId/:path(.*)*",template:"partials/pullRequest.htm",title:"Anonymous pull request \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Uc(e,t.http,t.location,t.params,t.html)},{path:"/gist/:gistId/:path(.*)*",template:"partials/gist.htm",title:"Anonymous gist \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Bc(e,t.http,t.location,t.params,t.html)},{path:"/r/:repoId/:path(.*)*",template:"partials/explorer.htm",title:"Anonymous repository \u2013 Anonymous GitHub",preserveExplorer:!0,setup:(e,t)=>Ka(e,t.http,t.location,t.params,t.html,t.promises)},{path:"/repository/:repoId/:path(.*)*",template:"partials/explorer.htm",title:"Anonymous repository \u2013 Anonymous GitHub",preserveExplorer:!0,setup:(e,t)=>Ka(e,t.http,t.location,t.params,t.html,t.promises)},{path:"/admin/",template:"partials/admin/overview.htm",title:"Admin \xB7 Overview \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>ju(e,t.http,t.location,t.interval)},{path:"/admin/repositories",template:"partials/admin/repositories.htm",title:"Admin \xB7 Repositories \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Lu(e,t.http,t.location)},{path:"/admin/users",template:"partials/admin/users.htm",title:"Admin \xB7 Users \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Fu(e,t.http,t.location)},{path:"/admin/users/:username",template:"partials/admin/user.htm",title:"Admin \xB7 User details \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Uu(e,t.http,t.location,t.params)},{path:"/admin/conferences",template:"partials/admin/conferences.htm",title:"Admin \xB7 Conferences \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Bu(e,t.http,t.location)},{path:"/admin/billing",template:"partials/admin/billing.htm",title:"Admin \xB7 Billing \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Wu(e,t.http,t.location)},{path:"/admin/queues",template:"partials/admin/queues.htm",title:"Admin \xB7 Queues \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>zu(e,t.http,t.location,t.interval,t.timeout)},{path:"/admin/errors",template:"partials/admin/errors.htm",title:"Admin \xB7 Errors \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Hu(e,t.http,t.location,t.interval)},{path:"/404",template:"partials/404.htm",title:"Page not found \u2013 Anonymous GitHub",preserveExplorer:!1,setup:()=>{}},{path:"/:pathMatch(.*)*",template:"partials/404.htm",title:"Page not found \u2013 Anonymous GitHub",setup:()=>{}}];var bv={class:"container py-4",style:{"max-width":"48rem","overflow-wrap":"anywhere"}},wv={key:0},kv={key:1,role:"alert"},Cv={key:2,role:"status"},Ev={key:0},Sv={key:1},Nv=["disabled"],Rv=["disabled"],Pv=["disabled"],Av={key:5,class:"mt-4","aria-labelledby":"review-policy-title"},Dv={id:"review-policy-title"},Tv={key:0,role:"alert"},Ov=["disabled"],Iv=["disabled"],Mv=["disabled"],Vv={key:6,role:"status"};function Yc(e,t){return a(),l("section",bv,[t[12]||(t[12]=n("a",{href:"/"},"Anonymous GitHub",-1)),t[13]||(t[13]=n("h1",{class:"mt-3"},"Approve artifact access",-1)),t[14]||(t[14]=n("p",null,"This records your approval as the repository owner or an authorized co-author.",-1)),e.user?.username?f("v-if",!0):(a(),l("p",wv,[...t[6]||(t[6]=[g("Sign in first, then reopen the artifact link from your submission. ",-1),n("a",{href:"/signin"},"Sign in",-1)])])),e.error?(a(),l("p",kv,c(e.error),1)):f("v-if",!0),e.saved?(a(),l("p",Cv,[t[7]||(t[7]=g("Consent recorded. ",-1)),e.handoffEnabled?(a(),l("span",Ev,"Continue to review to finish linking.")):(a(),l("span",Sv,"Artifact linking is not complete. Return to your submission to check its status."))])):f("v-if",!0),e.saved&&e.handoffEnabled?(a(),l("button",{key:3,class:"btn btn-primary",type:"button",onClick:t[0]||(t[0]=(...s)=>e.continueReview&&e.continueReview(...s)),disabled:e.busy},"Continue to review",8,Nv)):f("v-if",!0),e.user?.username&&!e.saved?(a(),l("form",{key:4,onSubmit:t[2]||(t[2]=ae((...s)=>e.loadPreview&&e.loadPreview(...s),["prevent"]))},[t[8]||(t[8]=n("label",{for:"review-repository"},"Anonymous repository ID",-1)),D(n("input",{id:"review-repository",class:"form-control","onUpdate:modelValue":t[1]||(t[1]=s=>e.repositoryId=s),maxlength:"128",autocomplete:"off",disabled:e.busy||e.uncertain,"aria-describedby":"review-repository-help"},null,8,Rv),[[pt,e.repositoryId]]),t[9]||(t[9]=n("p",{id:"review-repository-help"},"Use the ID after /r/ in the anonymous repository URL.",-1)),n("button",{type:"submit",class:"btn btn-primary",disabled:e.busy||e.uncertain},"Preview access and retention",8,Pv)],32)):f("v-if",!0),e.preview&&!e.saved?(a(),l("section",Av,[n("h2",Dv,c(e.preview.repositoryName),1),n("p",null,"Access: "+c(e.preview.policy.access==="anonymous-link"?"Anyone with the anonymous link":"Restricted review access")+".",1),n("p",null,"Retain until "+c(e.preview.policy.retainUntil)+". Policy version "+c(e.preview.policy.version)+".",1),e.expired?(a(),l("p",Tv,"This preview expired. Open a new artifact link from your submission.")):f("v-if",!0),n("div",null,[n("label",null,[D(n("input",{type:"checkbox","onUpdate:modelValue":t[3]||(t[3]=s=>e.acceptAccess=s),disabled:e.busy||e.uncertain||e.expired},null,8,Ov),[[sa,e.acceptAccess]]),t[10]||(t[10]=g(" I approve the access policy above.",-1))])]),n("div",null,[n("label",null,[D(n("input",{type:"checkbox","onUpdate:modelValue":t[4]||(t[4]=s=>e.acceptRetention=s),disabled:e.busy||e.uncertain||e.expired},null,8,Iv),[[sa,e.acceptRetention]]),t[11]||(t[11]=g(" I approve retention until the date above.",-1))])]),n("button",{class:"btn btn-primary",type:"button",onClick:t[5]||(t[5]=(...s)=>e.confirmConsent&&e.confirmConsent(...s)),disabled:e.busy||e.expired||!e.acceptAccess||!e.acceptRetention},c(e.uncertain?"Retry confirmation":"Confirm consent"),9,Mv)])):f("v-if",!0),e.busy?(a(),l("p",Vv,"Waiting for the server\u2026")):f("v-if",!0)])}var qv={class:"container paper-page connections-page"},_v={key:0,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},$v={key:1,role:"status"},Lv=["disabled"],Fv={key:3},Uv={key:0,class:"connection-resources"},Bv=["disabled"],zv=["disabled"],Hv={key:0,role:"status"},jv={class:"connections-grid"},Gv={key:0},Wv={class:"connection-title"},Kv={key:0,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},Yv={class:"connection-actions"},Xv={key:0,class:"btn btn-ink",target:"_self",href:"/github/app/install"},Jv=["disabled"],Qv={key:1,class:"connection-installations"},Zv={key:0},xv=["href"],ey={class:"sr-only"},ty={class:"connection-title"},ny={key:0,target:"_self",href:"/github/login",class:"btn btn-outline-ink"},sy={key:1,class:"connection-revoke"},oy={key:0},iy=["disabled"],ry={class:"connection-resources"},ay={class:"connection-title"},ly={class:"connection-count"},dy={key:0,class:"connection-empty"},uy={class:"connection-resource-name"},cy={key:0,class:"connection-resource-actions"},py=["disabled","onClick"],fy=["disabled","onClick"],hy={key:1,class:"connection-help",role:"status"},my=["disabled","onClick"];function Xc(e,t){return a(),l("div",qv,[t[27]||(t[27]=Ee('
My work \xA0/\xA0 GitHub connections

GitHub connections

Manage how GitHub shares your code. Your anonymizations and URLs stay the same.

',2)),e.connectionError?(a(),l("p",_v,c(e.connectionError),1)):f("v-if",!0),!e.connections&&!e.connectionError?(a(),l("p",$v,"Loading your connections\u2026")):f("v-if",!0),!e.connections&&e.connectionError?(a(),l("button",{key:2,class:"btn btn-outline-ink",disabled:e.busy,onClick:t[0]||(t[0]=s=>e.loadConnections())},"Try again",8,Lv)):f("v-if",!0),e.connections?(a(),l("div",Fv,[e.connections.emailNotificationsEnabled?(a(),l("section",Uv,[t[6]||(t[6]=n("h2",null,"Email alerts",-1)),t[7]||(t[7]=n("p",null,"We will email you if your GitHub connection stops working or a repository becomes inaccessible. Your address is never shown on anonymous pages.",-1)),n("form",{onSubmit:t[2]||(t[2]=ae(s=>e.saveNotificationEmail(),["prevent"]))},[t[5]||(t[5]=n("label",{for:"notification-email"},"Email address",-1)),D(n("input",{id:"notification-email",class:"form-control",type:"email",autocomplete:"email",maxlength:"254",required:"","onUpdate:modelValue":t[1]||(t[1]=s=>e.notificationEmail=s),disabled:e.busy},null,8,Bv),[[pt,e.notificationEmail]]),n("button",{class:"btn btn-ink mt-2",type:"submit",disabled:e.busy},"Save email address",8,zv),e.emailSaved?(a(),l("p",Hv,"Email address saved.")):f("v-if",!0)],32)])):f("v-if",!0),n("div",jv,[e.connections.appEnabled?(a(),l("section",Gv,[t[15]||(t[15]=n("div",{class:"connection-top"},[n("i",{class:"fab fa-github","aria-hidden":"true"}),n("span",{class:"connection-badge"},"Recommended")],-1)),n("div",Wv,[t[8]||(t[8]=n("h2",null,"GitHub App",-1)),n("span",{class:P(["connection-status",{"is-connected":e.connections.appConnected&&!e.connections.appError}])},c(e.connections.appError?"Needs attention":e.connections.appConnected?"Connected":"Not connected"),3)]),t[16]||(t[16]=n("p",null,"Read-only access to gists and the repositories you choose.",-1)),e.connections.appError?(a(),l("p",Kv,c(e.connections.appError)+". Reconnect to restore access.",1)):f("v-if",!0),n("div",Yv,[e.connections.appConnected&&!e.connections.appError?(a(),l("a",Xv,[...t[9]||(t[9]=[g("Manage repository access ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-external-link"})],-1)])])):f("v-if",!0),n("a",{class:P(e.connections.appConnected&&!e.connections.appError?"connection-link":"btn btn-ink"),target:"_self",href:"/github/app/login"},c(e.connections.appConnected?"Reconnect account":"Connect GitHub account"),3),e.connections.appConnected?(a(),l("button",{key:1,class:"connection-link connection-refresh",title:"Refresh access",disabled:e.busy,onClick:t[3]||(t[3]=s=>e.loadConnections())},[...t[10]||(t[10]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),n("span",{class:"sr-only"},"Refresh access",-1)])],8,Jv)):f("v-if",!0)]),t[17]||(t[17]=n("p",{class:"connection-help"},"Choose repositories on GitHub. Organization access may need an administrator's approval.",-1)),e.connections.installations?.length?(a(),l("ul",Qv,[(a(!0),l(q,null,x(e.connections.installations,s=>(a(),l("li",{key:s.id},[n("div",null,[t[11]||(t[11]=n("span",{class:"connection-label"},"Installed on",-1)),t[12]||(t[12]=g()),n("strong",null,c(s.account),1),s.suspended?(a(),l("span",Zv," \xB7 Suspended")):f("v-if",!0)]),e.connections.installations.length>1?(a(),l("a",{key:0,target:"_self",href:"/github/app/install?installationId="+s.id},[t[13]||(t[13]=g("Manage access ",-1)),n("span",ey,"for "+c(s.account),1),t[14]||(t[14]=g(" \u2192",-1))],8,xv)):f("v-if",!0)]))),128))])):f("v-if",!0)])):f("v-if",!0),n("section",null,[t[20]||(t[20]=n("div",{class:"connection-top"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-key"})]),n("span",{class:"connection-badge connection-badge-muted"},"Legacy")],-1)),n("div",ty,[t[18]||(t[18]=n("h2",null,"GitHub OAuth",-1)),n("span",{class:P(["connection-status",{"is-connected":e.connections.oauthConnected}])},c(e.connections.oauthConnected?"Connected":"Not connected"),3)]),t[21]||(t[21]=n("p",null,"For existing OAuth anonymizations.",-1)),t[22]||(t[22]=n("p",{class:"connection-help"},"This connection uses GitHub's broader repository permissions. Existing work keeps using it until you switch below.",-1)),e.connections.oauthEnabled?(a(),l("a",ny,c(e.connections.oauthConnected?"Reconnect OAuth":"Connect legacy OAuth"),1)):f("v-if",!0),e.connections.oauthConnected?(a(),l("div",sy,[e.connections.gistCount?(a(),l("p",oy,c(e.connections.gistCount)+" gist(s) use your GitHub App connection when available.",1)):f("v-if",!0),t[19]||(t[19]=n("p",null,"Switch all dependent repositories before revoking access. Gists can use your GitHub App connection.",-1)),e.connections.appConnected?(a(),l("button",{key:1,class:"btn btn-sm btn-outline-danger connection-danger",disabled:e.busy||e.connections.resources.some(s=>s.connection==="oauth"),onClick:t[4]||(t[4]=s=>e.disconnectOAuth())},"Revoke OAuth access",8,iy)):f("v-if",!0)])):f("v-if",!0)])]),n("section",ry,[n("div",ay,[t[23]||(t[23]=n("h2",null,"Repository connections",-1)),n("span",ly,c(e.connections.resources?.length||0)+" "+c((e.connections.resources?.length||0)===1?"resource":"resources"),1)]),t[25]||(t[25]=n("p",null,"Check access, then switch each resource to the GitHub App. After reinstalling the App, reconnect existing resources here to keep their anonymous URLs and published snapshots.",-1)),e.connections.resources?.length?f("v-if",!0):(a(),l("div",dy,[...t[24]||(t[24]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})],-1),n("div",null,[n("h3",null,"No repository connections yet"),n("p",null,"Your repositories and pull requests will appear here once you anonymize them.")],-1),n("a",{class:"connection-link",href:"/anonymize"},"New anonymization \u2192",-1)])])),(a(!0),l(q,null,x(e.connections.resources,s=>(a(),l("div",{class:"connection-resource",key:s.type+s.id},[n("div",uy,[n("strong",null,c(s.name||s.id),1),n("small",null,c(s.type)+" \xB7 "+c(s.id),1)]),n("span",{class:P(["connection-badge",{"connection-badge-muted":s.connection==="oauth"}])},c(s.connection==="github-app"?"Read-only App":"Legacy OAuth"),3),!["archived","removed","preparing","queue","removing","expiring"].includes(s.status)&&(s.status!=="download"||s.type==="pull-request"&&(!s.statusDate||new Date(s.statusDate).getTime()<=Date.now()-3e5))&&e.connections.appEnabled&&e.connections.appConnected?(a(),l("div",cy,[n("button",{class:"btn btn-outline-ink",disabled:e.busy,onClick:i=>e.changeConnection(s,"github-app",!0)},"Check read-only access",8,py),s.eligible?(a(),l("button",{key:0,class:"btn btn-ink",disabled:e.busy,onClick:i=>e.changeConnection(s,"github-app",!1)},c(s.connection==="github-app"?"Reconnect read-only access":"Switch to read-only access"),9,fy)):f("v-if",!0),s.eligible===!1?(a(),l("span",hy,"Access unavailable. Allow this repository on GitHub, then check again.")):f("v-if",!0)])):f("v-if",!0),!["archived","removed","preparing","queue","removing","expiring"].includes(s.status)&&(s.status!=="download"||s.type==="pull-request"&&(!s.statusDate||new Date(s.statusDate).getTime()<=Date.now()-3e5))&&s.connection==="github-app"&&e.connections.oauthConnected?(a(),l("button",{key:1,class:"connection-link",disabled:e.busy,onClick:i=>e.changeConnection(s,"oauth",!1)},"Use OAuth",8,my)):f("v-if",!0)]))),128)),t[26]||(t[26]=n("p",{class:"connection-footnote"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-info"})]),g(" Removing access stops new fetches from GitHub. Published content keeps its current expiration and removal settings.")],-1))])])):f("v-if",!0)])}var gy={class:"container paper-page auth-page"},vy={class:"auth-layout"},yy={class:"auth-options"},by={key:0},wy={key:0,class:"btn btn-ink auth-continue",target:"_self",href:"/github/login?recover=1"},ky={key:1},Cy={key:1,class:"auth-card"},Ey={key:2,class:"auth-legacy"},Sy={key:3,role:"status"};function Jc(e,t){let s=Xe("partial-view");return a(),l(q,null,[n("div",gy,[n("div",vy,[t[4]||(t[4]=Ee('
Your research, ready for review

Your code.
Your identity,
protected.
Sign in to GitHub

Sign in to create and manage your anonymizations.

',1)),n("div",yy,[e.accountRecovery?(a(),l("section",by,[t[0]||(t[0]=n("h2",null,"Verify your existing account",-1)),t[1]||(t[1]=n("p",null,"We found an existing account. Verify it with your previous GitHub connection to keep your anonymizations. Future sign-ins will use the GitHub App.",-1)),e.site_options?.GITHUB_OAUTH_ENABLED?(a(),l("a",wy,"Verify with previous GitHub connection")):(a(),l("p",ky,"Account verification is currently unavailable. Please try again later."))])):f("v-if",!0),e.site_options?.GITHUB_APP_ENABLED&&!e.accountRecovery?(a(),l("section",Cy,[...t[2]||(t[2]=[Ee('

Continue with GitHub

Connect through the GitHub App with read-only repository access.

  • You choose which repositories to share
  • No permission to write to your code
Sign in with GitHubYour existing anonymizations and connections stay with your account.',5)])])):f("v-if",!0),!e.site_options?.GITHUB_APP_ENABLED&&e.site_options?.GITHUB_OAUTH_ENABLED&&!e.accountRecovery?(a(),l("section",Ey,[...t[3]||(t[3]=[n("div",{class:"connection-title"},[n("h2",null,"Continue with GitHub")],-1),n("p",null,"Sign in to access your account. GitHub OAuth includes write access to private repositories.",-1),n("a",{class:"connection-link",target:"_self",href:"/github/login"},[g("Sign in with GitHub "),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-arrow-right"})])],-1)])])):f("v-if",!0),e.site_options&&!e.site_options.GITHUB_APP_ENABLED&&!e.site_options.GITHUB_OAUTH_ENABLED?(a(),l("p",Sy,"GitHub sign-in is currently unavailable. Please try again later.")):f("v-if",!0)])])]),Oe(s,{name:"partials/footer.htm",state:e.viewState},null,8,["state"])],64)}function Qc(e,t){let s=Xe("partial-view");return a(),l(q,null,[t[0]||(t[0]=Ee('
Error \xB7 404

This link
isn\u2019t here.

The anonymous mirror you\u2019re looking for has expired, been removed by its owner, or never existed. If you received this URL from an author, ask them to re-issue it.

',1)),Oe(s,{name:"partials/footer.htm",state:e.viewState},null,8,["state"])],64)}var Ny={class:"container paper-page admin-page"},Ry={class:"seg-bar"},Py={class:"seg-filter",role:"radiogroup","aria-label":"Filter by status"},Ay=["aria-checked"],Dy={class:"count"},Ty=["aria-checked"],Oy={class:"count"},Iy=["aria-checked"],My={class:"count"},Vy=["aria-checked"],qy={class:"count"},_y=["aria-checked"],$y={class:"count"},Ly=["aria-checked"],Fy={class:"count"},Uy={class:"seg-countline",role:"status"},By={key:0,class:"alert alert-danger",style:{margin:"8px 0"}},zy={class:"w-100 admin-filter-toolbar","aria-label":"Conferences","accept-charset":"UTF-8"},Hy={class:"admin-filter-row"},jy={class:"search-wrap"},Gy={type:"search",class:"form-control",placeholder:"Search conferences\u2026",autocomplete:"off"},Wy={key:0,class:"admin-search-hint"},Ky={key:1,class:"admin-filter-inline","aria-label":"Pagination"},Yy=["disabled"],Xy={style:{"font-family":"var(--font-mono)","font-size":"12px",color:"var(--ink-muted)"}},Jy=["disabled"],Qy={key:0,class:"admin-filter-row"},Zy={class:"admin-active-chips"},xy={class:"key"},eb=["onClick"],tb={class:"paper-table paper-table-conferences w-100",role:"table","aria-label":"Conferences"},sb={key:0,class:"paper-table-head",role:"row"},ob={role:"columnheader"},ib={role:"columnheader"},rb={role:"columnheader"},ab={class:"paper-table-row",role:"row"},lb={class:"cell-anon",role:"cell"},db={class:"anon-text"},ub=["textContent","href"],cb={class:"anon-sub"},pb={class:"cell-status",role:"cell"},fb=["textContent"],hb={class:"cell-views num",role:"cell"},mb=["textContent","href"],gb={class:"cell-expires",role:"cell"},vb={class:"cell-actions",role:"cell"},yb={class:"dropdown"},bb={class:"dropdown-menu dropdown-menu-right"},wb=["href"],kb=["href"],Cb=["href"],Eb=["onClick"],Sb={key:1,class:"paper-table-empty"},Nb={class:"admin-toolbar",style:{"justify-content":"space-between","border-bottom":"none"}},Rb={key:0,class:"pagination-compact"},Pb=["disabled"],Ab=["max"],Db=["disabled"],Tb={class:"admin-filter-inline"},Ob={class:"form-control form-control-sm"};function Zc(e,t){let s=Ae("field"),i=Ae("form");return a(),l("div",Ny,[t[55]||(t[55]=Ee('
Admin \xA0/\xA0 Conferences

Conferences

',3)),n("div",Ry,[n("div",Py,[n("button",{type:"button",role:"radio",class:P(["seg-chip",{active:e.segView()==="all"}]),"aria-checked":e.segView()==="all",onClick:t[0]||(t[0]=o=>e.setSegView("all"))},[t[14]||(t[14]=g("All ",-1)),n("span",Dy,c(e.fmt?.number(e.segCount("all"))),1)],10,Ay),n("button",{type:"button",role:"radio",class:P(["seg-chip",{active:e.segView()==="ready","is-empty":!e.segCount("ready")}]),"aria-checked":e.segView()==="ready",onClick:t[1]||(t[1]=o=>e.setSegView("ready"))},[t[15]||(t[15]=n("span",{class:"seg-dot ok","aria-hidden":"true"},null,-1)),t[16]||(t[16]=g("Ready ",-1)),n("span",Oy,c(e.fmt?.number(e.segCount("ready"))),1)],10,Ty),n("button",{type:"button",role:"radio",class:P(["seg-chip",{active:e.segView()==="preparing","is-empty":!e.segCount("preparing")}]),"aria-checked":e.segView()==="preparing",onClick:t[2]||(t[2]=o=>e.setSegView("preparing"))},[t[17]||(t[17]=n("span",{class:"seg-dot warn","aria-hidden":"true"},null,-1)),t[18]||(t[18]=g("Preparing ",-1)),n("span",My,c(e.fmt?.number(e.segCount("preparing"))),1)],10,Iy),n("button",{type:"button",role:"radio",class:P(["seg-chip",{active:e.segView()==="error","is-empty":!e.segCount("error")}]),"aria-checked":e.segView()==="error",onClick:t[3]||(t[3]=o=>e.setSegView("error"))},[t[19]||(t[19]=n("span",{class:"seg-dot bad","aria-hidden":"true"},null,-1)),t[20]||(t[20]=g("Error ",-1)),n("span",qy,c(e.fmt?.number(e.segCount("error"))),1)],10,Vy),n("button",{type:"button",role:"radio",class:P(["seg-chip",{active:e.segView()==="expired","is-empty":!e.segCount("expired")}]),"aria-checked":e.segView()==="expired",onClick:t[4]||(t[4]=o=>e.setSegView("expired"))},[t[21]||(t[21]=n("span",{class:"seg-dot off","aria-hidden":"true"},null,-1)),t[22]||(t[22]=g("Expired ",-1)),n("span",$y,c(e.fmt?.number(e.segCount("expired"))),1)],10,_y),n("button",{type:"button",role:"radio",class:P(["seg-chip",{active:e.segView()==="removed","is-empty":!e.segCount("removed")}]),"aria-checked":e.segView()==="removed",onClick:t[5]||(t[5]=o=>e.setSegView("removed"))},[t[23]||(t[23]=n("span",{class:"seg-dot off","aria-hidden":"true"},null,-1)),t[24]||(t[24]=g("Removed ",-1)),n("span",Fy,c(e.fmt?.number(e.segCount("removed"))),1)],10,Ly)]),n("p",Uy,[n("strong",null,c(e.total>=0?e.fmt.number(e.total):"\u2026"),1),t[25]||(t[25]=g(" shown",-1))])]),e.fetchError?(a(),l("div",By,[t[26]||(t[26]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),g(" "+c(e.fetchError),1)])):f("v-if",!0),D((a(),l("form",zy,[n("div",Hy,[n("div",jy,[D(n("input",Gy,null,512),[[s,{state:e.viewState,set:o=>{e.query.search=o},value:e.query?.search,form:null,options:{}}]]),e.query?.search?f("v-if",!0):(a(),l("span",Wy,"/"))]),t[30]||(t[30]=n("span",{class:"admin-filter-spacer"},null,-1)),e.total>0?(a(),l("button",{key:0,class:"btn btn-sm",type:"button",onClick:t[6]||(t[6]=o=>e.exportCsv())},[...t[27]||(t[27]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-export"})],-1),g(" Export",-1)])])):f("v-if",!0),e.totalPage>1?(a(),l("span",Ky,[n("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[7]||(t[7]=o=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1,"aria-label":"Previous page"},[...t[28]||(t[28]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1)])],8,Yy),n("span",Xy,c(e.query?.page)+"/"+c(e.totalPage||1),1),n("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[8]||(t[8]=o=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage,"aria-label":"Next page"},[...t[29]||(t[29]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,Jy)])):f("v-if",!0)]),e.chips?.length?(a(),l("div",Qy,[n("div",Zy,[(a(!0),l(q,null,x(e.chips,(o,r)=>(a(),l("span",{class:"admin-active-chip",key:o?.key},[n("span",xy,c(o?.label),1),n("span",null,c(o?.value),1),n("button",{type:"button",onClick:d=>e.clearFilter(o.key),"aria-label":"Clear filter"},[...t[31]||(t[31]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])],8,eb)]))),128))])])):f("v-if",!0)])),[[i,e.viewState]]),n("div",tb,[e.total!==0?(a(),l("div",sb,[n("div",ob,[n("button",{type:"button",class:P(["sortable",{active:e.query?.sort=="name"}]),onClick:t[9]||(t[9]=o=>e.sortBy("name"))},[t[33]||(t[33]=g("Conference ",-1)),e.sortIcon("name")?(a(),l("svg",{key:0,class:P(["ui-icon sort-direction",{ascending:e.sortIcon("name")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[32]||(t[32]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)]),n("div",ib,[n("button",{type:"button",class:P(["sortable",{active:e.query?.sort=="status"}]),onClick:t[10]||(t[10]=o=>e.sortBy("status"))},[t[35]||(t[35]=g("Status ",-1)),e.sortIcon("status")?(a(),l("svg",{key:0,class:P(["ui-icon sort-direction",{ascending:e.sortIcon("status")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[34]||(t[34]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)]),t[38]||(t[38]=n("div",{role:"columnheader",class:"num"},"Repos",-1)),n("div",rb,[n("button",{type:"button",class:P(["sortable",{active:e.query?.sort=="startDate"}]),onClick:t[11]||(t[11]=o=>e.sortBy("startDate"))},[t[37]||(t[37]=g("Window ",-1)),e.sortIcon("startDate")?(a(),l("svg",{key:0,class:P(["ui-icon sort-direction",{ascending:e.sortIcon("startDate")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[36]||(t[36]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)]),t[39]||(t[39]=n("div",{role:"columnheader","aria-label":"Actions"},null,-1))])):f("v-if",!0),(a(!0),l(q,null,x(e.filteredConferences,(o,r)=>(a(),l("div",ab,[n("div",lb,[t[40]||(t[40]=n("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Conference"},[n("use",{href:"#project-icon-conference"})],-1)),n("div",db,[n("a",{class:"repo-name",textContent:c(o?.name),href:e.safeUrl("/conference/"+o?.conferenceID)},null,8,ub),n("div",cb,[n("span",null,c(o?.conferenceID),1),n("span",null,c(e.fmt?.money(o?.price||0)),1)])])]),n("div",pb,[n("span",{class:P(["status-dot","st-"+(o?.status||"unknown")])},null,2),n("span",{textContent:c(e.fmt?.statusLabel(o?.status))},null,8,fb)]),n("div",hb,[t[41]||(t[41]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})],-1)),n("a",{title:"Show repositories in this conference",textContent:c(e.fmt?.number(o?.repositories?.length||0)),href:e.safeUrl("/admin/?conference="+o?.conferenceID)},null,8,mb)]),n("div",gb,[t[42]||(t[42]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),g(" "+c(e.fmt?.date(o?.startDate))+" \u2013 "+c(e.fmt?.date(o?.endDate)),1)]),n("div",vb,[n("div",yb,[t[48]||(t[48]=n("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-more"})])],-1)),n("div",bb,[n("a",{class:"dropdown-item",href:e.safeUrl("/conference/"+o?.conferenceID+"/edit")},[...t[43]||(t[43]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),g(" Edit",-1)])],8,wb),n("a",{class:"dropdown-item",href:e.safeUrl("/conference/"+o?.conferenceID+"/")},[...t[44]||(t[44]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),g(" View",-1)])],8,kb),n("a",{class:"dropdown-item",href:e.safeUrl("/admin/?conference="+o?.conferenceID)},[...t[45]||(t[45]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})],-1),g(" View repositories",-1)])],8,Cb),t[47]||(t[47]=n("div",{class:"dropdown-divider"},null,-1)),D(n("a",{class:"dropdown-item text-danger",href:"#",onClick:ae(d=>e.removeConference(o),["prevent"])},[...t[46]||(t[46]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1),g(" Remove",-1)])],8,Eb),[[Q,o?.status!="removed"]])])])])]))),256)),e.filteredConferences?.length==0?(a(),l("div",Sb,[t[49]||(t[49]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1)),n("span",null,c(e.total?"No conferences match the current filters.":"No conferences yet."),1)])):f("v-if",!0)]),n("div",Nb,[t[54]||(t[54]=n("span",{"aria-hidden":"true"},null,-1)),e.totalPage>1?(a(),l("div",Rb,[n("button",{class:"btn btn-sm",onClick:t[12]||(t[12]=o=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1},[...t[50]||(t[50]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1),g(" Previous",-1)])],8,Pb),D(n("input",{type:"number",class:"form-control form-control-sm",min:"1",style:{width:"56px"},max:e.totalPage},null,8,Ab),[[s,{state:e.viewState,set:o=>{e.query.page=o},value:e.query?.page,form:null,options:{}}]]),n("span",null,"of "+c(e.totalPage),1),n("button",{class:"btn btn-sm",onClick:t[13]||(t[13]=o=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage},[...t[51]||(t[51]=[g("Next ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,Db)])):f("v-if",!0),n("span",Tb,[t[53]||(t[53]=n("label",null,"Per page",-1)),D((a(),l("select",Ob,[...t[52]||(t[52]=[Ee('',5)])])),[[s,{state:e.viewState,set:o=>{e.query.limit=o},value:e.query?.limit,form:null,options:{}}]])])])])}var Ib={class:"container paper-page admin-page errors-page"},Mb={class:"errors-header"},Vb={class:"errors-actions"},qb={class:"kpi-grid"},_b={class:"kpi-card"},$b={class:"kpi-value"},Lb={key:0},Fb={key:1},Ub={key:2},Bb=["aria-pressed"],zb={class:"kpi-value"},Hb={class:"kpi-sub"},jb=["aria-pressed"],Gb={class:"kpi-value"},Wb={class:"kpi-sub"},Kb=["aria-pressed"],Yb={class:"kpi-value"},Xb={class:"kpi-sub"},Jb={class:"kpi-value"},Qb={class:"kpi-sub"},Zb={key:0,class:"dropped-warn"},xb={class:"volume-chart"},e1={class:"volume-head"},t1={class:"volume-legend"},n1={key:0},s1={key:1},o1={key:2},i1={class:"volume-bars"},r1=["title"],a1={class:"errors-toolbar","aria-label":"Error filters"},l1={class:"seg-filter",role:"radiogroup","aria-label":"Filter by severity"},d1=["aria-checked"],u1={class:"count"},c1=["aria-checked"],p1={class:"count"},f1=["aria-checked"],h1={class:"count"},m1=["aria-checked"],g1={class:"count"},v1={class:"search-wrap"},y1={type:"search",class:"form-control",placeholder:"Search errors\u2026",title:"Search messages, or filter with code:repo_not_found module:route status:>=400",autocomplete:"off"},b1={key:0,class:"filter-count"},w1={class:"select-wrap"},k1={class:"form-control form-control-sm"},C1={class:"select-wrap"},E1={class:"form-control form-control-sm"},S1={class:"autoref"},N1={type:"checkbox"},R1={key:0,class:"admin-empty"},P1={key:1,class:"errors-pager"},A1={key:2,class:"errors-list"},D1={key:0,class:"errors-group-head"},T1={class:"errors-group-count"},O1={key:0,class:"errors-group-note"},I1=["onClick"],M1={class:"col-when"},V1={class:"when-rel"},q1={class:"when-abs"},_1={class:"col-sev"},$1={class:"sev-label"},L1={class:"col-mod"},F1={class:"pill pill-module"},U1={class:"col-msg"},B1={class:"msg-code"},z1={key:0,class:"msg-context"},H1={key:1,class:"msg-detail"},j1=["title"],G1={class:"col-count"},W1={key:0,class:"count-pill"},K1={key:1,class:"count-pill count-pill-muted"},Y1={class:"col-status"},X1=["title"],J1={key:1,class:"status-empty",title:"No HTTP status for this event"},Q1={key:0,class:"errors-row-detail"},Z1={class:"detail-tabs"},x1=["onClick"],ew=["onClick"],tw=["onClick"],nw={class:"detail-body"},sw={class:"detail-main"},ow={key:0},iw={key:1,class:"stack-pre"},rw={key:2,class:"related-list"},aw={class:"when-abs"},lw={class:"msg-url"},dw={class:"detail-actions"},uw=["onClick"],cw=["onClick"],pw={key:0,class:"copy-hint"},fw={class:"detail-aside"},hw={class:"aside-block"},mw=["title"],gw={class:"aside-block"},vw=["title"],yw={class:"aside-block"},bw={class:"aside-value"},ww={key:0,class:"aside-sub"},kw={key:0,class:"aside-block"},Cw=["href"],Ew={key:1,class:"aside-block"},Sw={class:"aside-value mono"};function xc(e,t){let s=Ae("field"),i=Ae("form");return a(),l("div",Ib,[t[49]||(t[49]=n("div",{class:"paper-crumbs"},[g("Admin \xA0/\xA0 "),n("span",{class:"here"},"Errors")],-1)),n("header",Mb,[t[16]||(t[16]=n("h1",{class:"paper-page-title"},"Errors",-1)),n("div",Vb,[n("button",{class:"btn btn-sm",type:"button",onClick:t[0]||(t[0]=o=>e.exportCsv())},[...t[14]||(t[14]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-export"})],-1),g(" Export CSV",-1)])]),n("button",{class:"btn btn-sm btn-outline-danger",type:"button",onClick:t[1]||(t[1]=o=>e.clearAll())},[...t[15]||(t[15]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1),g(" Clear all",-1)])])])]),t[50]||(t[50]=Ee('',1)),n("section",qb,[n("div",_b,[t[17]||(t[17]=n("div",{class:"kpi-label"},"Occurrences \xB7 24h",-1)),n("div",$b,c(e.fmt?.number(e.stats?.last24h??0)),1),n("div",{class:P(["kpi-sub",{up:e.stats?.delta>0,down:e.stats?.delta<0}])},[e.stats?.prev24h>=20?(a(),l("span",Lb,c((e.stats?.last24h??0)-(e.stats?.prev24h??0)>=0?"+":"")+c(Math.round(((e.stats?.last24h??0)-(e.stats?.prev24h??0))/e.stats.prev24h*100))+"% vs yesterday",1)):e.stats?.prev24h!==void 0?(a(),l("span",Fb,c(e.fmt?.number(e.stats?.prev24h??0))+" in prior 24h",1)):f("v-if",!0),e.stats?.prev24h?f("v-if",!0):(a(),l("span",Ub,"no prior baseline"))],2)]),n("div",{class:P(["kpi-card kpi-error kpi-filter",{"is-selected":e.query?.bucket==="error"}]),role:"button",tabindex:"0","aria-pressed":e.query?.bucket==="error",title:"Show only errors (5xx)",onClick:t[2]||(t[2]=o=>e.setBucket(e.query?.bucket==="error"?"":"error")),onKeydown:t[3]||(t[3]=kt(ae(o=>e.setBucket(e.query?.bucket==="error"?"":"error"),["prevent"]),["enter"]))},[t[18]||(t[18]=n("div",{class:"kpi-label"},"Error",-1)),n("div",zb,c(e.fmt?.number(e.stats?.severity?.error??0)),1),n("div",Hb,"5xx \xB7 "+c(e.stats?.unique?.error)+" unique",1)],42,Bb),n("div",{class:P(["kpi-card kpi-warn kpi-filter",{"is-selected":e.query?.bucket==="warn"}]),role:"button",tabindex:"0","aria-pressed":e.query?.bucket==="warn",title:"Show only warnings (4xx, aborted requests)",onClick:t[4]||(t[4]=o=>e.setBucket(e.query?.bucket==="warn"?"":"warn")),onKeydown:t[5]||(t[5]=kt(ae(o=>e.setBucket(e.query?.bucket==="warn"?"":"warn"),["prevent"]),["enter"]))},[t[19]||(t[19]=n("div",{class:"kpi-label"},"Warning",-1)),n("div",Gb,c(e.fmt?.number(e.stats?.severity?.warn??0)),1),n("div",Wb,"4xx, aborted \xB7 "+c(e.stats?.unique?.warn)+" unique",1)],42,jb),n("div",{class:P(["kpi-card kpi-info kpi-filter",{"is-selected":e.query?.bucket==="info"}]),role:"button",tabindex:"0","aria-pressed":e.query?.bucket==="info",title:"Show only info events",onClick:t[6]||(t[6]=o=>e.setBucket(e.query?.bucket==="info"?"":"info")),onKeydown:t[7]||(t[7]=kt(ae(o=>e.setBucket(e.query?.bucket==="info"?"":"info"),["prevent"]),["enter"]))},[t[20]||(t[20]=n("div",{class:"kpi-label"},"Info",-1)),n("div",Yb,c(e.fmt?.number(e.stats?.severity?.info??0)),1),n("div",Xb,"Auth, 404 \xB7 "+c(e.stats?.unique?.info)+" unique",1)],42,Kb),n("div",{class:P(["kpi-card",{"kpi-error":e.stats?.dropped>0}])},[t[21]||(t[21]=n("div",{class:"kpi-label"},"Distinct errors stored",-1)),n("div",Jb,c(e.fmt?.number(e.total)),1),n("div",Qb,[g(" all time \xB7 cap "+c(e.fmt?.number(e.cap))+" \xB7 "+c(e.available?"live":"redis off")+" ",1),e.stats?.dropped>0?(a(),l("span",Zb," \xB7 "+c(e.stats?.dropped)+" dropped",1)):f("v-if",!0)])],2)]),n("section",xb,[n("div",e1,[t[25]||(t[25]=n("span",{class:"volume-title"},"Volume \xB7 24h \xB7 1h buckets",-1)),n("span",t1,[e.stats?.severity?.error?(a(),l("span",n1,[...t[22]||(t[22]=[n("span",{class:"dot dot-error"},null,-1),g("Error",-1)])])):f("v-if",!0),e.stats?.severity?.warn?(a(),l("span",s1,[...t[23]||(t[23]=[n("span",{class:"dot dot-warn"},null,-1),g("Warning",-1)])])):f("v-if",!0),e.stats?.severity?.info?(a(),l("span",o1,[...t[24]||(t[24]=[n("span",{class:"dot dot-info"},null,-1),g("Info",-1)])])):f("v-if",!0)])]),n("div",i1,[(a(!0),l(q,null,x(e.stats?.buckets,(o,r)=>(a(),l("div",{class:"volume-bar",key:r,title:e.bucketTitle(o)},[n("span",{class:"seg seg-error",style:Ie({height:e.barPx(o,"error")+"px"})},null,4),n("span",{class:"seg seg-warn",style:Ie({height:e.barPx(o,"warn")+"px"})},null,4),n("span",{class:"seg seg-info",style:Ie({height:e.barPx(o,"info")+"px"})},null,4)],8,r1))),128))]),t[26]||(t[26]=n("div",{class:"volume-axis","aria-hidden":"true"},[n("span",null,"24h ago"),n("span",null,"12h ago"),n("span",null,"now")],-1))]),D((a(),l("form",a1,[n("div",l1,[n("button",{type:"button",role:"radio",class:P(["seg-chip",{active:(e.query?.bucket||"")===""}]),"aria-checked":(e.query?.bucket||"")==="",onClick:t[8]||(t[8]=o=>e.setBucket(""))},[t[27]||(t[27]=g("All ",-1)),n("span",u1,c(e.fmt?.number((e.stats?.severity?.error??0)+(e.stats?.severity?.warn??0)+(e.stats?.severity?.info??0))),1)],10,d1),n("button",{type:"button",role:"radio",class:P(["seg-chip",{active:(e.query?.bucket||"")==="error","is-empty":!e.stats?.severity?.error}]),"aria-checked":(e.query?.bucket||"")==="error",onClick:t[9]||(t[9]=o=>e.setBucket("error"))},[t[28]||(t[28]=n("span",{class:"seg-dot bad","aria-hidden":"true"},null,-1)),t[29]||(t[29]=g("Error ",-1)),n("span",p1,c(e.fmt?.number(e.stats?.severity?.error??0)),1)],10,c1),n("button",{type:"button",role:"radio",class:P(["seg-chip",{active:(e.query?.bucket||"")==="warn","is-empty":!e.stats?.severity?.warn}]),"aria-checked":(e.query?.bucket||"")==="warn",onClick:t[10]||(t[10]=o=>e.setBucket("warn"))},[t[30]||(t[30]=n("span",{class:"seg-dot warn","aria-hidden":"true"},null,-1)),t[31]||(t[31]=g("Warning ",-1)),n("span",h1,c(e.fmt?.number(e.stats?.severity?.warn??0)),1)],10,f1),n("button",{type:"button",role:"radio",class:P(["seg-chip",{active:(e.query?.bucket||"")==="info","is-empty":!e.stats?.severity?.info}]),"aria-checked":(e.query?.bucket||"")==="info",onClick:t[11]||(t[11]=o=>e.setBucket("info"))},[t[32]||(t[32]=n("span",{class:"seg-dot off","aria-hidden":"true"},null,-1)),t[33]||(t[33]=g("Info ",-1)),n("span",g1,c(e.fmt?.number(e.stats?.severity?.info??0)),1)],10,m1)]),n("div",v1,[t[34]||(t[34]=n("svg",{class:"ui-icon search-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-search"})],-1)),D(n("input",y1,null,512),[[s,{state:e.viewState,set:o=>{e.query.search=o},value:e.query?.search,form:null,options:{}}]]),e.parsedFilterCount?(a(),l("span",b1,c(e.parsedFilterCount)+" filter"+c(e.parsedFilterCount>1?"s":""),1)):f("v-if",!0)]),n("div",w1,[t[36]||(t[36]=n("label",null,"Sort",-1)),D((a(),l("select",k1,[...t[35]||(t[35]=[n("option",{value:"recent"},"Most recent",-1),n("option",{value:"count"},"Most frequent",-1)])])),[[s,{state:e.viewState,set:o=>{e.query.sort=o},value:e.query?.sort,form:null,options:{}}]])]),n("div",C1,[t[38]||(t[38]=n("label",{title:"Rows are always sectioned by severity. This merges repeated events inside each section."},"Merge",-1)),D((a(),l("select",E1,[...t[37]||(t[37]=[n("option",{value:""},"Don't merge",-1),n("option",{value:"code"},"Same error",-1),n("option",{value:"module"},"Same module",-1)])])),[[s,{state:e.viewState,set:o=>{e.query.group=o},value:e.query?.group,form:null,options:{}}]])]),n("label",S1,[D(n("input",N1,null,512),[[s,{state:e.viewState,set:o=>{e.query.autoRefresh=o},value:e.query?.autoRefresh,form:null,options:{}}]]),t[39]||(t[39]=n("span",{class:"auto-refresh-label"},"Auto-refresh",-1))]),n("button",{class:"btn btn-sm btn-icon",type:"button",title:"Refresh now",onClick:t[12]||(t[12]=o=>e.refreshNow()),"aria-label":"Refresh"},[...t[40]||(t[40]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1)])])])),[[i,e.viewState]]),e.visible?.length?f("v-if",!0):(a(),l("div",R1,"No errors captured.")),e.canLoadMore()&&e.visible?.length?(a(),l("div",P1,[n("span",null,c(e.query?.group&&e.visible?.length!==e.entries?.length?e.fmt?.number(e.visible?.length)+(e.visible?.length===1?" group":" groups")+" from ":"")+c(e.fmt?.number(e.entries?.length))+" of "+c(e.fmt?.number(e.total))+" stored errors loaded",1),n("button",{class:"btn btn-sm",type:"button",onClick:t[13]||(t[13]=o=>e.loadMore())},"Load 250 older")])):f("v-if",!0),e.visible?.length?(a(),l("div",A1,[t[48]||(t[48]=Ee('
WhenSeverityModuleMessageTotalStatus
',1)),(a(!0),l(q,null,x(e.visible,(o,r)=>(a(),l(q,{key:o?._key},[r===0||e.visible[r-1]?._bucket!==o?._bucket?(a(),l("div",D1,[n("span",{class:P(["sev-dot","sev-"+o?._bucket])},null,2),g(c(o?._bucket==="error"?"Error":o?._bucket==="warn"?"Warning":"Info"),1),n("span",T1,c(e.fmt?.number(e.visible.filter(d=>d?._bucket===o?._bucket).length)),1),r===0?(a(),l("span",O1,"By severity \xB7 "+c(e.query?.group==="code"?"repeats merged by error \xB7 ":e.query?.group==="module"?"repeats merged by module \xB7 ":"")+c(e.query?.sort==="count"?"most frequent first":"most recent first"),1)):f("v-if",!0)])):f("v-if",!0),n("div",{class:P(["errors-row",{open:e.expanded[o?._key]}])},[n("div",{class:"errors-row-main",onClick:d=>e.toggle(o)},[n("div",M1,[n("div",V1,c(e.relTime(o?.ts)),1),n("div",q1,c(e.absTimeShort(o?.ts)),1)]),n("div",_1,[n("span",{class:P(["sev-dot","sev-"+o?._bucket])},null,2),n("span",$1,c(o?._bucket==="error"?"Error":o?._bucket==="warn"?"Warning":"Info"),1)]),n("div",L1,[n("span",F1,c(o?.module),1)]),n("div",U1,[n("strong",B1,c(o?.displayMessage),1),o?.displayContext&&o?.displayContext!==o?.displayMessage?(a(),l("span",z1,c(o?.displayContext),1)):f("v-if",!0),o?._detail?(a(),l("span",H1,c(o?._detail),1)):f("v-if",!0),o?._url?(a(),l("div",{key:2,class:"msg-url",title:o?._url},c(o?._url),9,j1)):f("v-if",!0)]),n("div",G1,[o?.count>1?(a(),l("span",W1,"\xD7"+c(o?.count),1)):f("v-if",!0),o?.count===1?(a(),l("span",K1,"\xD71")):f("v-if",!0)]),n("div",Y1,[o?._status?(a(),l("span",{key:0,class:P(["status-pill",String(o?._status).match(/^[23]/)?"status-neutral":"status-"+o?._bucket]),title:String(o?._status).match(/^2/)&&o?._bucket==="warn"?"Client closed the connection":null},c(String(o?._status).match(/^2/)&&o?._bucket==="warn"?"\u2014":o?._status),11,X1)):f("v-if",!0),o?._status?f("v-if",!0):(a(),l("span",J1,"\u2014"))])],8,I1),e.expanded[o?._key]?(a(),l("div",Q1,[n("div",Z1,[n("button",{type:"button",class:P({active:e.detailTab[o?._key]==="raw"||!e.detailTab[o?._key]}),onClick:d=>e.detailTab[o._key]="raw"},"Raw",10,x1),o?._stack?(a(),l("button",{key:0,type:"button",class:P({active:e.detailTab[o?._key]==="stack"}),onClick:d=>e.detailTab[o._key]="stack"},"Stack",10,ew)):f("v-if",!0),o?.count>1?(a(),l("button",{key:1,type:"button",class:P({active:e.detailTab[o?._key]==="related"}),onClick:d=>e.detailTab[o._key]="related"},"Related ("+c(o?.count)+")",11,tw)):f("v-if",!0)]),n("div",nw,[n("div",sw,[(e.detailTab[o?._key]||"raw")==="raw"?(a(),l("pre",ow,c(o?._detailJson),1)):f("v-if",!0),e.detailTab[o?._key]==="stack"?(a(),l("pre",iw,c(o?._stack),1)):f("v-if",!0),e.detailTab[o?._key]==="related"?(a(),l("div",rw,[(a(!0),l(q,null,x(o?._related,(d,p)=>(a(),l("div",{class:"related-row",key:p},[n("span",aw,c(e.absTimeShort(d?.ts)),1),n("span",lw,c(d?._url),1),d?._status?(a(),l("span",{key:0,class:P(["status-pill","status-"+d?._bucket])},c(d?._status),3)):f("v-if",!0)]))),128))])):f("v-if",!0),n("div",dw,[n("button",{class:"btn btn-sm",type:"button",title:"Copy a curl that reproduces the request",onClick:d=>e.copyCurl(o)},[...t[41]||(t[41]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-code"})],-1),g(" Copy curl",-1)])],8,uw),n("button",{class:"btn btn-sm",type:"button",onClick:d=>e.copyJson(o)},[...t[42]||(t[42]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-clipboard"})],-1),g(" Copy JSON",-1)])],8,cw),e.copyHint?(a(),l("span",pw,c(e.copyHint),1)):f("v-if",!0)])]),n("aside",fw,[n("div",hw,[t[43]||(t[43]=n("div",{class:"aside-label"},"First seen",-1)),n("div",{class:"aside-value",title:e.absTime(o?._firstSeen)},c(e.relTime(o?._firstSeen)),9,mw)]),n("div",gw,[t[44]||(t[44]=n("div",{class:"aside-label"},"Last seen",-1)),n("div",{class:"aside-value",title:e.absTime(o?.ts)},c(e.relTime(o?.ts)),9,vw)]),n("div",yw,[t[45]||(t[45]=n("div",{class:"aside-label"},"Occurrences",-1)),n("div",bw,[g(c(o?.count),1),o?._lastHourCount?(a(),l("span",ww," \xB7 "+c(o?._lastHourCount)+" this hour",1)):f("v-if",!0)])]),o?._repoId?(a(),l("div",kw,[t[46]||(t[46]=n("div",{class:"aside-label"},"Repository",-1)),n("a",{class:"aside-value",href:e.safeUrl("/r/"+o?._repoId)},c(o?._repoId),9,Cw)])):f("v-if",!0),o?._url?(a(),l("div",Ew,[t[47]||(t[47]=n("div",{class:"aside-label"},"URL",-1)),n("div",Sw,c(o?._url),1)])):f("v-if",!0)])])])):f("v-if",!0)],2)],64))),128))])):f("v-if",!0)])}var Nw={class:"container paper-page admin-page overview-page"},Rw={key:0,class:"admin-empty"},Pw={key:1,class:"alert alert-danger",style:{margin:"12px 0"}},Aw={class:"ov-views",role:"tablist","aria-label":"Overview sections"},Dw=["aria-selected","onClick"],Tw={key:2},Ow={key:0,class:"ov-health",role:"status"},Iw={class:"ov-kpi-row"},Mw={class:"ov-kpi-card"},Vw={class:"ov-kpi-value"},qw={class:"ov-kpi-sub"},_w={class:"ov-kpi-card"},$w={class:"ov-kpi-sub"},Lw={class:"ov-kpi-card"},Fw={class:"ov-kpi-sub"},Uw={class:"ov-kpi-card"},Bw={class:"ov-kpi-sub"},zw={class:"ov-kpi-card"},Hw={class:"ov-kpi-value"},jw={class:"ov-kpi-sub"},Gw={class:"ov-daily-row"},Ww={class:"ov-daily-card"},Kw={class:"ov-daily-value"},Yw={class:"ov-daily-card"},Xw={class:"ov-daily-value"},Jw={class:"ov-daily-sub"},Qw={class:"ov-daily-card"},Zw={class:"ov-daily-value"},xw={class:"ov-chart-card"},ek={class:"ov-chart-head"},tk={class:"ov-chart-legends"},nk={class:"ov-chart-legend"},sk={key:0,class:"ov-legend-missing"},ok={key:0,class:"ov-spark-bars ov-has-axis"},ik={class:"ov-yaxis","aria-hidden":"true"},rk=["data-tip","aria-label"],ak={key:1,class:"ov-spark-x"},lk={class:"ov-chart-card"},dk={class:"ov-chart-head"},uk={class:"ov-chart-legends"},ck={class:"ov-chart-legend"},pk={key:0,class:"ov-legend-missing"},fk={key:0,class:"ov-spark-bars ov-has-axis"},hk={class:"ov-yaxis","aria-hidden":"true"},mk=["data-tip","aria-label"],gk={key:1,class:"ov-spark-x"},vk={key:0,class:"ov-chart-card"},yk={class:"ov-chart-head"},bk={class:"ov-chart-legends"},wk={class:"ov-chart-legend"},kk={key:0,class:"ov-legend-missing"},Ck={key:0,class:"ov-spark-bars ov-spark-step ov-has-axis"},Ek={class:"ov-yaxis","aria-hidden":"true"},Sk=["viewBox","aria-label"],Nk=["d"],Rk=["d"],Pk={key:1,class:"ov-spark-x"},Ak={class:"ov-chart-card"},Dk={class:"ov-chart-head"},Tk={class:"ov-chart-legends"},Ok={class:"ov-chart-legend"},Ik={key:0,class:"ov-legend-missing"},Mk={key:0,class:"ov-spark-bars ov-has-axis"},Vk={class:"ov-yaxis","aria-hidden":"true"},qk=["data-tip","aria-label"],_k={key:1,class:"ov-spark-x"},$k={class:"ov-triple-row"},Lk={class:"ov-panel-card"},Fk={class:"ov-panel-head"},Uk={class:"ov-panel-meta"},Bk={class:"ov-stacked-bar"},zk={class:"ov-bar-legend"},Hk={href:"/admin/repositories",class:"ov-legend-item"},jk={class:"ov-legend-n"},Gk={href:"/admin/repositories",class:"ov-legend-item"},Wk={class:"ov-legend-n"},Kk={href:"/admin/repositories",class:"ov-legend-item"},Yk={class:"ov-legend-n"},Xk={href:"/admin/repositories",class:"ov-legend-item"},Jk={class:"ov-legend-n"},Qk={href:"/admin/repositories",class:"ov-legend-item"},Zk={class:"ov-legend-n"},xk={class:"ov-panel-card"},e0={class:"ov-panel-head"},t0={class:"ov-panel-meta"},n0={class:"ov-error-bars"},s0={class:"ov-ebar-row"},o0={class:"ov-ebar-track"},i0={class:"ov-ebar-n"},r0={class:"ov-ebar-row"},a0={class:"ov-ebar-track"},l0={class:"ov-ebar-n"},d0={key:0,class:"ov-ehours",role:"img","aria-label":"Errors per hour over the last 24 hours"},u0={class:"ov-ehours-legend"},c0={class:"ov-ehours-note"},p0={class:"ov-ehours-bars"},f0=["title"],h0={key:0,class:"ov-ehours-zero"},m0={class:"ov-ebar-note"},g0={key:0,class:"ov-panel-foot"},v0={href:"/admin/errors"},y0={class:"ov-panel-card"},b0={class:"ov-routes-table"},w0={class:"ov-route-row",href:"/admin/queues"},k0={class:"ov-route-n"},C0={class:"ov-route-n"},E0={class:"ov-route-row",href:"/admin/queues"},S0={class:"ov-route-n"},N0={class:"ov-route-n"},R0={class:"ov-route-row",href:"/admin/queues"},P0={class:"ov-route-n"},A0={class:"ov-route-n"},D0={class:"ov-services-card"},T0={class:"ov-services-head"},O0={class:"ov-panel-meta"},I0={class:"ov-services-grid"},M0={class:"ov-svc"},V0={class:"ov-svc-info"},q0={class:"ov-svc-meta"},_0={class:"ov-svc"},$0={class:"ov-svc-info"},L0={key:0,class:"ov-svc-meta"},F0={key:1,class:"ov-svc-meta"},U0={class:"ov-svc"},B0={class:"ov-svc-info"},z0={key:0,class:"ov-svc-meta"},H0={key:1,class:"ov-svc-meta"},j0={class:"ov-svc"},G0={class:"ov-svc-info"},W0={key:0,class:"ov-svc-meta"},K0={key:1,class:"ov-svc-meta"},Y0={class:"ov-svc"},X0=["title"],J0={class:"ov-svc-info"},Q0={class:"ov-svc-meta"},Z0={class:"ov-panel-card ov-cache","aria-labelledby":"cache-heading"},x0={class:"ov-panel-head ov-performance-head"},e2={class:"ov-performance-window"},t2={key:0,class:"ov-performance-message ov-performance-warning",role:"alert"},n2={key:1,class:"ov-performance-empty",role:"status"},s2={key:0,class:"ov-performance-note"},o2={key:1,class:"ov-performance-note"},i2={key:2,class:"ov-performance-message ov-performance-warning",role:"status"},r2={key:3,class:"ov-metrics-scroll",tabindex:"0",role:"region","aria-label":"Cache storage budgets"},a2={class:"ov-metrics-table"},l2={scope:"row",class:"ov-event-name"},d2=["title"],u2={key:0,class:"ov-metric-bad-text"},c2={key:1,class:"budget-bar","aria-hidden":"true"},p2={class:"num"},f2={class:"num"},h2={class:"num"},m2={class:"num"},g2={key:4,class:"ov-cache-rates"},v2={key:5,class:"ov-metrics-scroll",tabindex:"0",role:"region","aria-label":"Cache events and processing durations"},y2={class:"ov-metrics-table"},b2={scope:"row",class:"ov-event-name"},w2={class:"ov-event-traffic"},k2={class:"num"},C2={class:"num"},E2={key:6,class:"ov-performance-empty",role:"status"},S2={class:"ov-performance-note"},N2={class:"ov-panel-card ov-performance","aria-labelledby":"performance-heading"},R2={class:"ov-panel-head ov-performance-head"},P2={class:"ov-performance-window"},A2={key:0,class:"ov-performance-message ov-performance-warning",role:"alert"},D2={key:1,class:"ov-performance-empty",role:"status"},T2={key:2},O2={id:"performance-routes",role:"region","aria-label":"Routes"},I2={key:0,class:"ov-metrics-scroll",tabindex:"0",role:"region","aria-label":"Route latency metrics, scroll for more columns"},M2={class:"ov-metrics-table"},V2={scope:"row",class:"ov-metric-name"},q2={class:"num"},_2={class:"num"},$2={class:"num"},L2={class:"num"},F2={class:"num"},U2={key:1,class:"ov-performance-empty"},B2={id:"performance-processes",role:"region","aria-label":"Processes"},z2={key:0,class:"ov-performance-message ov-performance-warning",role:"status"},H2={key:1,class:"ov-metrics-scroll",tabindex:"0",role:"region","aria-label":"Process resource metrics, scroll for more columns"},j2={class:"ov-metrics-table"},G2={scope:"row",class:"ov-metric-name"},W2={key:0,class:"ov-metric-warn"},K2={class:"num"},Y2={class:"num"},X2={class:"num"},J2={class:"num"},Q2={class:"num"},Z2={class:"num"},x2={class:"num"},eC={class:"num"},tC={id:"performance-stages",role:"region","aria-label":"Work stages"},nC={key:0,class:"ov-metrics-scroll",tabindex:"0",role:"region","aria-label":"Work stage metrics, scroll for more columns"},sC={class:"ov-metrics-table"},oC={scope:"row",class:"ov-metric-name"},iC={class:"num"},rC={class:"num"},aC={class:"num"},lC={key:1,class:"ov-performance-empty"};function ep(e,t){return a(),l("div",Nw,[t[95]||(t[95]=Ee('
Admin \xA0/\xA0 Overview

Overview

Live \xB7 refreshes every 30s
',2)),e.loading?(a(),l("div",Rw,"Loading overview\u2026")):f("v-if",!0),e.error?(a(),l("div",Pw,[t[8]||(t[8]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),g(" "+c(e.error),1)])):f("v-if",!0),n("div",Aw,[(a(),l(q,null,x([{id:"summary",label:"Summary"},{id:"performance",label:"Performance"},{id:"cache",label:"Cache"}],s=>n("button",{type:"button",role:"tab",key:s.id,"aria-selected":e.ovView===s.id?"true":"false",class:P({active:e.ovView===s.id}),onClick:i=>e.setOvView(s.id)},c(s.label),11,Dw)),64))]),e.data?D((a(),l("div",Tw,[e.data?.system?.memPercent>90||e.data?.system?.diskPercent>90?(a(),l("div",Ow,[t[10]||(t[10]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),n("span",null,[t[9]||(t[9]=n("b",null,"Server needs attention.",-1)),g(" "+c(e.healthAlert()),1)])])):f("v-if",!0),f(" \u2500\u2500 Top KPI row \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),n("section",Iw,[n("div",Mw,[t[11]||(t[11]=n("div",{class:"ov-kpi-label"},"Live repositories",-1)),n("div",Vw,c(e.humanNum((e.data?.repos?.statusBreakdown||[]).filter(s=>s._id!=="removed"&&s._id!=="expired").reduce((s,i)=>s+(i.count||0),0))),1),n("div",qw,c(e.humanNum(((e.data?.repos?.statusBreakdown||[]).find(s=>s._id==="removed")||{}).count||0))+" removed \xB7 "+c(e.humanNum(e.data?.repos?.total))+" total",1)]),n("div",_w,[t[12]||(t[12]=n("div",{class:"ov-kpi-label"},"CPU",-1)),n("div",{class:P(["ov-kpi-value",{"ov-val-warn":e.data?.system?.cpuPercent>=75}])},c(e.data?.system?.cpuPercent)+"%",3),n("div",{class:P(["ov-meter",{warn:e.data?.system?.cpuPercent>=75,crit:e.data?.system?.cpuPercent>90}])},[n("span",{style:Ie({width:Math.min(100,e.data?.system?.cpuPercent||0)+"%"})},null,4)],2),n("div",$w,[e.data?.system?.cpuPercent>=75?(a(),l("b",{key:0,class:P(["ov-flag",{critical:e.data?.system?.cpuPercent>90}])},c(e.data?.system?.cpuPercent>90?"Critical":"High")+" \xB7 ",3)):f("v-if",!0),g(c(e.data?.system?.cpuCount)+" cores \xB7 load "+c(e.data?.system?.loadAvg?.[0]?.toFixed(1)),1)])]),n("div",Lw,[t[13]||(t[13]=n("div",{class:"ov-kpi-label"},"Memory",-1)),n("div",{class:P(["ov-kpi-value",{"ov-val-warn":e.data?.system?.memPercent>=75}])},c(e.data?.system?.memPercent)+"%",3),n("div",{class:P(["ov-meter",{warn:e.data?.system?.memPercent>=75,crit:e.data?.system?.memPercent>90}])},[n("span",{style:Ie({width:Math.min(100,e.data?.system?.memPercent||0)+"%"})},null,4)],2),n("div",Fw,[e.data?.system?.memPercent>=75?(a(),l("b",{key:0,class:P(["ov-flag",{critical:e.data?.system?.memPercent>90}])},c(e.data?.system?.memPercent>90?"Critical":"High")+" \xB7 ",3)):f("v-if",!0),g(c(e.humanBytes(e.data?.system?.memUsed).replace(/\s*GB$/,""))+" / "+c(e.humanBytes(e.data?.system?.memTotal)),1)])]),n("div",Uw,[t[14]||(t[14]=n("div",{class:"ov-kpi-label"},"Disk",-1)),n("div",{class:P(["ov-kpi-value",{"ov-val-warn":e.data?.system?.diskPercent>=75}])},c(e.data?.system?.diskPercent)+"%",3),n("div",{class:P(["ov-meter",{warn:e.data?.system?.diskPercent>=75,crit:e.data?.system?.diskPercent>90}])},[n("span",{style:Ie({width:Math.min(100,e.data?.system?.diskPercent||0)+"%"})},null,4)],2),n("div",Bw,[e.data?.system?.diskPercent>=75?(a(),l("b",{key:0,class:P(["ov-flag",{critical:e.data?.system?.diskPercent>90}])},c(e.data?.system?.diskPercent>90?"Critical":"High")+" \xB7 ",3)):f("v-if",!0),g(c(e.humanBytes(e.data?.system?.diskUsed).replace(/\s*GB$/,""))+" / "+c(e.humanBytes(e.data?.system?.diskTotal)),1),e.data?.system?.diskMount&&e.data.system.diskMount!=="/"?(a(),l(q,{key:1},[g(" \xB7 "+c(e.data?.system?.diskMount),1)],64)):f("v-if",!0)])]),n("div",zw,[t[15]||(t[15]=n("div",{class:"ov-kpi-label"},"Uptime",-1)),n("div",Hw,c(e.humanDuration(e.data?.system?.uptime)),1),n("div",jw,c(e.data?.system?.nodeVersion)+" \xB7 "+c(e.data?.system?.platform),1)])]),f(" \u2500\u2500 Daily activity highlights \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),n("section",Gw,[n("div",Ww,[t[16]||(t[16]=n("div",{class:"ov-daily-label"},"New repos today",-1)),n("div",Kw,c(e.fmt?.number(e.data?.daily?.today?.repositories||0)),1),t[17]||(t[17]=n("div",{class:"ov-daily-sub"},"so far today",-1))]),n("div",Yw,[t[18]||(t[18]=n("div",{class:"ov-daily-label"},"New users today",-1)),n("div",Xw,c(e.fmt?.number(e.data?.daily?.today?.users||0)),1),n("div",Jw,c(e.fmt?.number(e.data?.users?.total))+" total \xB7 +"+c(e.fmt?.number(e.usersGained()))+" in 30 days",1)]),n("div",Qw,[t[19]||(t[19]=n("div",{class:"ov-daily-label"},"Page views today",-1)),n("div",Zw,c(e.fmt?.number(e.data?.daily?.today?.pageViews||0)),1),t[20]||(t[20]=n("div",{class:"ov-daily-sub"},"so far today",-1))])]),f(" \u2500\u2500 Daily charts \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),n("section",{class:P(["ov-chart-row",{"is-three":e.usersTiny()}])},[n("div",xw,[n("div",ek,[t[23]||(t[23]=n("span",{class:"ov-chart-title"},"Daily page views \xB7 30d",-1)),n("span",tk,[n("span",nk,[t[21]||(t[21]=n("span",{class:"ov-dot-legend ov-dot-accent"},null,-1)),g("views/day \xB7 peak "+c(e.fmt?.number(e.historyMax("dailyPageViews"))),1)]),e.historyHasMissing()?(a(),l("span",sk,[...t[22]||(t[22]=[n("span",{class:"ov-swatch-missing","aria-hidden":"true"},null,-1),g("No data",-1)])])):f("v-if",!0)])]),e.data?.history?.length?(a(),l("div",ok,[n("div",ik,[n("span",null,c(e.fmt?.number(e.axisMax("dailyPageViews"))),1),n("span",null,c(e.fmt?.number(e.axisMax("dailyPageViews")/2)),1),t[24]||(t[24]=n("span",null,"0",-1))]),(a(!0),l(q,null,x(e.data?.history,(s,i)=>(a(),l("div",{class:P(["ov-spark-col has-tip",{"is-missing":s?._empty}]),key:i,"data-tip":s?._empty?e.historyLabel(s)+": no data":e.historyLabel(s)+": +"+e.fmt?.number(s?.dailyPageViews)+(s?.dailyPageViews===1?" view":" views"),"aria-label":s?._empty?e.historyLabel(s)+": no data":e.historyLabel(s)+": +"+e.fmt?.number(s?.dailyPageViews)+(s?.dailyPageViews===1?" view":" views")},[n("span",{class:"ov-spark-fill",style:Ie({height:e.historyBarH(s,"dailyPageViews")+"px"})},null,4)],10,rk))),128))])):f("v-if",!0),e.data?.history?.length?(a(),l("div",ak,[n("span",null,c(e.historyLabel(e.data?.history[0])),1),n("span",null,c(e.historyLabel(e.data?.history[Math?.floor(e.data?.history?.length/2)])),1),n("span",null,c(e.historyLabel(e.data?.history[e.data?.history?.length-1])),1)])):f("v-if",!0)]),n("div",lk,[n("div",dk,[t[27]||(t[27]=n("span",{class:"ov-chart-title"},"New repos \xB7 30d",-1)),n("span",uk,[n("span",ck,[t[25]||(t[25]=n("span",{class:"ov-dot-legend ov-dot-ok-fill"},null,-1)),g("repos/day \xB7 peak "+c(e.fmt?.number(e.historyMax("dailyRepositories"))),1)]),e.historyHasMissing()?(a(),l("span",pk,[...t[26]||(t[26]=[n("span",{class:"ov-swatch-missing","aria-hidden":"true"},null,-1),g("No data",-1)])])):f("v-if",!0)])]),e.data?.history?.length?(a(),l("div",fk,[n("div",hk,[n("span",null,c(e.fmt?.number(e.axisMax("dailyRepositories"))),1),n("span",null,c(e.fmt?.number(e.axisMax("dailyRepositories")/2)),1),t[28]||(t[28]=n("span",null,"0",-1))]),(a(!0),l(q,null,x(e.data?.history,(s,i)=>(a(),l("div",{class:P(["ov-spark-col has-tip",{"is-missing":s?._empty}]),key:i,"data-tip":s?._empty?e.historyLabel(s)+": no data":e.historyLabel(s)+": +"+e.fmt?.number(s?.dailyRepositories)+(s?.dailyRepositories===1?" repo":" repos"),"aria-label":s?._empty?e.historyLabel(s)+": no data":e.historyLabel(s)+": +"+e.fmt?.number(s?.dailyRepositories)+(s?.dailyRepositories===1?" repo":" repos")},[n("span",{class:"ov-spark-fill ov-spark-fill-alt",style:Ie({height:e.historyBarH(s,"dailyRepositories")+"px"})},null,4)],10,mk))),128))])):f("v-if",!0),e.data?.history?.length?(a(),l("div",gk,[n("span",null,c(e.historyLabel(e.data?.history[0])),1),n("span",null,c(e.historyLabel(e.data?.history[Math?.floor(e.data?.history?.length/2)])),1),n("span",null,c(e.historyLabel(e.data?.history[e.data?.history?.length-1])),1)])):f("v-if",!0)]),e.usersTiny()?f("v-if",!0):(a(),l("div",vk,[n("div",yk,[t[31]||(t[31]=n("span",{class:"ov-chart-title"},"Users \xB7 30d",-1)),n("span",bk,[n("span",wk,[t[29]||(t[29]=n("span",{class:"ov-dot-legend ov-dot-user-fill"},null,-1)),g("total users \xB7 "+c(e.fmt?.number(e.historyRange("nbUsers").max))+" now \xB7 +"+c(e.fmt?.number(Math.max(0,e.historyRange("nbUsers").max-e.usersFirst())))+" in 30 days",1)]),e.historyHasMissing()?(a(),l("span",kk,[...t[30]||(t[30]=[n("span",{class:"ov-swatch-missing","aria-hidden":"true"},null,-1),g("No data",-1)])])):f("v-if",!0)])]),e.data?.history?.length?(a(),l("div",Ck,[n("div",Ek,[n("span",null,c(e.fmt?.number(e.userAxis().hi)),1),n("span",null,c(e.fmt?.number((e.userAxis().hi+e.userAxis().lo)/2)),1),n("span",null,c(e.fmt?.number(e.userAxis().lo)),1)]),(a(),l("svg",{class:"ov-step-svg",viewBox:"0 0 "+e.data.history.length+" 140",preserveAspectRatio:"none",role:"img","aria-label":"Total users over 30 days, from "+e.fmt?.number(e.usersFirst())+" to "+e.fmt?.number(e.historyRange("nbUsers").max)},[e.userAxis().lo===0?(a(),l("path",{key:0,class:"ov-step-area",d:e.userStepPath(!0)},null,8,Nk)):f("v-if",!0),n("path",{class:"ov-step-line",d:e.userStepPath(!1),"vector-effect":"non-scaling-stroke"},null,8,Rk)],8,Sk)),e.firstDataIndex()>0?(a(),l("div",{key:0,class:"ov-step-missing",style:Ie({width:e.firstDataIndex()/e.data.history.length*100+"%"})},null,4)):f("v-if",!0)])):f("v-if",!0),e.data?.history?.length?(a(),l("div",Pk,[n("span",null,c(e.historyLabel(e.data?.history[0])),1),n("span",null,c(e.historyLabel(e.data?.history[Math?.floor(e.data?.history?.length/2)])),1),n("span",null,c(e.historyLabel(e.data?.history[e.data?.history?.length-1])),1)])):f("v-if",!0)])),n("div",Ak,[n("div",Dk,[t[34]||(t[34]=n("span",{class:"ov-chart-title"},"New users \xB7 30d",-1)),n("span",Tk,[n("span",Ok,[t[32]||(t[32]=n("span",{class:"ov-dot-legend ov-dot-new-user-fill"},null,-1)),g("users/day \xB7 peak "+c(e.fmt?.number(e.historyMax("dailyUsers"))),1)]),e.historyHasMissing()?(a(),l("span",Ik,[...t[33]||(t[33]=[n("span",{class:"ov-swatch-missing","aria-hidden":"true"},null,-1),g("No data",-1)])])):f("v-if",!0)])]),e.data?.history?.length?(a(),l("div",Mk,[n("div",Vk,[n("span",null,c(e.fmt?.number(e.axisMax("dailyUsers"))),1),n("span",null,c(e.fmt?.number(e.axisMax("dailyUsers")/2)),1),t[35]||(t[35]=n("span",null,"0",-1))]),(a(!0),l(q,null,x(e.data?.history,(s,i)=>(a(),l("div",{class:P(["ov-spark-col has-tip",{"is-missing":s?._empty}]),key:i,"data-tip":s?._empty?e.historyLabel(s)+": no data":e.historyLabel(s)+": +"+e.fmt?.number(s?.dailyUsers)+(s?.dailyUsers===1?" user":" users"),"aria-label":s?._empty?e.historyLabel(s)+": no data":e.historyLabel(s)+": +"+e.fmt?.number(s?.dailyUsers)+(s?.dailyUsers===1?" user":" users")},[n("span",{class:"ov-spark-fill ov-spark-fill-new-user",style:Ie({height:e.historyBarH(s,"dailyUsers")+"px"})},null,4)],10,qk))),128))])):f("v-if",!0),e.data?.history?.length?(a(),l("div",_k,[n("span",null,c(e.historyLabel(e.data?.history[0])),1),n("span",null,c(e.historyLabel(e.data?.history[Math?.floor(e.data?.history?.length/2)])),1),n("span",null,c(e.historyLabel(e.data?.history[e.data?.history?.length-1])),1)])):f("v-if",!0)])],2),f(" \u2500\u2500 Three-panel row: Status / Errors / Queues \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),n("section",$k,[f(" Repo status breakdown "),n("div",Lk,[n("div",Fk,[t[36]||(t[36]=n("span",{class:"ov-panel-title"},"Repo status",-1)),n("span",Uk,c(e.fmt?.number(e.data?.repos?.total))+" total",1)]),n("div",Bk,[e.barPct("ready")>0?(a(),l("span",{key:0,class:"ov-bar-seg ov-bar-ready",title:"Ready",style:Ie({width:e.barPct("ready")+"%"})},null,4)):f("v-if",!0),e.barPct("preparing")>0?(a(),l("span",{key:1,class:"ov-bar-seg ov-bar-preparing",title:"Preparing",style:Ie({width:e.barPct("preparing")+"%"})},null,4)):f("v-if",!0),e.barPct("error")>0?(a(),l("span",{key:2,class:"ov-bar-seg ov-bar-error",title:"Error",style:Ie({width:e.barPct("error")+"%"})},null,4)):f("v-if",!0),e.barPct("expired")>0?(a(),l("span",{key:3,class:"ov-bar-seg ov-bar-expired",title:"Expiring / expired",style:Ie({width:e.barPct("expired")+"%"})},null,4)):f("v-if",!0),e.barPct("removed")>0?(a(),l("span",{key:4,class:"ov-bar-seg ov-bar-removed",title:"Removing / removed",style:Ie({width:e.barPct("removed")+"%"})},null,4)):f("v-if",!0)]),n("div",zk,[n("a",Hk,[t[37]||(t[37]=n("span",{class:"ov-swatch ov-bar-ready"},null,-1)),t[38]||(t[38]=g(" Ready ",-1)),n("span",jk,c(e.fmt?.number(e.statusCount("ready"))),1)]),n("a",Gk,[t[39]||(t[39]=n("span",{class:"ov-swatch ov-bar-preparing"},null,-1)),t[40]||(t[40]=g(" Preparing ",-1)),n("span",Wk,c(e.fmt?.number(e.statusCount("preparing")+e.statusCount("download"))),1)]),n("a",Kk,[t[41]||(t[41]=n("span",{class:"ov-swatch ov-bar-error"},null,-1)),t[42]||(t[42]=g(" Error ",-1)),n("span",Yk,c(e.fmt?.number(e.statusCount("error"))),1)]),n("a",Xk,[t[43]||(t[43]=n("span",{class:"ov-swatch ov-bar-expired"},null,-1)),t[44]||(t[44]=g(" Expiring / expired ",-1)),n("span",Jk,c(e.fmt?.number(e.statusCount("expired")+e.statusCount("expiring"))),1)]),n("a",Qk,[t[45]||(t[45]=n("span",{class:"ov-swatch ov-bar-removed"},null,-1)),t[46]||(t[46]=g(" Removing / removed ",-1)),n("span",Zk,c(e.fmt?.number(e.statusCount("removed")+e.statusCount("removing"))),1)])])]),f(" Error breakdown "),n("div",xk,[n("div",e0,[t[47]||(t[47]=n("span",{class:"ov-panel-title"},"Errors \xB7 24h",-1)),n("span",t0,c(e.fmt?.number(e.realErrors()))+" "+c(e.realErrors()===1?"error":"errors"),1)]),n("div",n0,[n("div",s0,[t[48]||(t[48]=n("span",{class:"ov-ebar-label"},"Error",-1)),n("span",o0,[n("span",{class:"ov-ebar-fill ov-ebar-error",style:Ie({width:e.errPct("error")+"%"})},null,4)]),n("span",i0,c(e.data?.errors?.severity?.error),1)]),n("div",r0,[t[49]||(t[49]=n("span",{class:"ov-ebar-label"},"Warning",-1)),n("span",a0,[n("span",{class:"ov-ebar-fill ov-ebar-warn",style:Ie({width:e.errPct("warn")+"%"})},null,4)]),n("span",l0,c(e.data?.errors?.severity?.warn),1)]),e.errorHours().length?(a(),l("div",d0,[n("div",u0,[t[52]||(t[52]=n("span",{class:"ov-ehours-key"},[n("span",{class:"ov-ehours-swatch is-error","aria-hidden":"true"}),g("Error")],-1)),t[53]||(t[53]=n("span",{class:"ov-ehours-key"},[n("span",{class:"ov-ehours-swatch is-warn","aria-hidden":"true"}),g("Warning")],-1)),n("span",c0,[t[50]||(t[50]=g("Per hour",-1)),t[51]||(t[51]=n("span",{class:"seg-sep","aria-hidden":"true"},"\xB7",-1)),g("peak "+c(e.fmt?.number(e.errorHoursPeak())),1)])]),n("div",p0,[(a(!0),l(q,null,x(e.errorHours(),s=>(a(),l("span",{key:s.key,class:P({"is-bad":s.bad,"is-zero":s.zero}),title:s.title},[s.zero?(a(),l("i",h0)):(a(),l(q,{key:1},[s.errPct?(a(),l("i",{key:0,class:"ov-ehours-e",style:Ie({height:s.errPct+"%"})},null,4)):f("v-if",!0),s.warnPct?(a(),l("i",{key:1,class:"ov-ehours-w",style:Ie({height:s.warnPct+"%"})},null,4)):f("v-if",!0)],64))],10,f0))),128))]),t[54]||(t[54]=n("div",{class:"ov-ehours-x"},[n("span",null,"24h ago"),n("span",null,"now")],-1))])):f("v-if",!0),n("p",m0,"Info "+c(e.fmt?.number(e.data?.errors?.severity?.info||0))+" \xB7 logged, not counted as errors",1)]),e.data?.repos?.recentErrors24h?(a(),l("div",g0,[n("a",v0,c(e.data?.repos?.recentErrors24h)+" repos in error state \u2192",1)])):f("v-if",!0)]),f(" Top routes / queues "),n("div",y0,[t[59]||(t[59]=n("div",{class:"ov-panel-head"},[n("span",{class:"ov-panel-title"},"Queues"),n("span",{class:"ov-panel-meta"},"by state")],-1)),n("div",b0,[t[58]||(t[58]=Ee('
QueueActiveWaitFailed
',1)),n("a",w0,[t[55]||(t[55]=n("span",{class:"ov-route-name"},"Download",-1)),n("span",k0,c(e.data?.queues?.download?.active),1),n("span",C0,c(e.data?.queues?.download?.waiting),1),n("span",{class:P(["ov-route-n ov-route-lat",{"ov-n-bad":e.data?.queues?.download?.failed>0}])},c(e.data?.queues?.download?.failed),3)]),n("a",E0,[t[56]||(t[56]=n("span",{class:"ov-route-name"},"Remove",-1)),n("span",S0,c(e.data?.queues?.remove?.active),1),n("span",N0,c(e.data?.queues?.remove?.waiting),1),n("span",{class:P(["ov-route-n ov-route-lat",{"ov-n-bad":e.data?.queues?.remove?.failed>0}])},c(e.data?.queues?.remove?.failed),3)]),n("a",R0,[t[57]||(t[57]=n("span",{class:"ov-route-name"},"Cache cleanup",-1)),n("span",P0,c(e.data?.queues?.cache?.active),1),n("span",A0,c(e.data?.queues?.cache?.waiting),1),n("span",{class:P(["ov-route-n ov-route-lat",{"ov-n-bad":e.data?.queues?.cache?.failed>0}])},c(e.data?.queues?.cache?.failed),3)])])])]),f(" \u2500\u2500 Services bar \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),n("section",D0,[n("div",T0,[t[60]||(t[60]=n("span",{class:"ov-panel-title"},"Services",-1)),n("span",O0,"5 services \xB7 "+c(e.realErrors()>0?"1 needs attention":"all healthy"),1)]),n("div",I0,[n("div",M0,[t[62]||(t[62]=n("span",{class:"ov-svc-dot ov-dot-ok"},null,-1)),n("div",V0,[t[61]||(t[61]=n("span",{class:"ov-svc-name"},"web",-1)),n("span",q0,c(e.data?.system?.nodeVersion)+" \xB7 up "+c(e.humanDuration(e.data?.system?.uptime)),1)])]),n("div",_0,[n("span",{class:P(["ov-svc-dot",e.queueTotal(e.data?.queues?.download)>0?"ov-dot-ok":"ov-dot-idle"])},null,2),n("div",$0,[t[63]||(t[63]=n("span",{class:"ov-svc-name"},"download",-1)),e.queueTotal(e.data?.queues?.download)?(a(),l("span",L0,c(e.queueTotal(e.data?.queues?.download))+" "+c(e.queueTotal(e.data?.queues?.download)===1?"job":"jobs"),1)):f("v-if",!0),e.queueTotal(e.data?.queues?.download)?f("v-if",!0):(a(),l("span",F0,"idle"))])]),n("div",U0,[n("span",{class:P(["ov-svc-dot",e.queueTotal(e.data?.queues?.cache)>0?"ov-dot-ok":"ov-dot-idle"])},null,2),n("div",B0,[t[64]||(t[64]=n("span",{class:"ov-svc-name"},"cache",-1)),e.queueTotal(e.data?.queues?.cache)?(a(),l("span",z0,c(e.queueTotal(e.data?.queues?.cache))+" "+c(e.queueTotal(e.data?.queues?.cache)===1?"job":"jobs"),1)):f("v-if",!0),e.queueTotal(e.data?.queues?.cache)?f("v-if",!0):(a(),l("span",H0,"idle"))])]),n("div",j0,[n("span",{class:P(["ov-svc-dot",e.queueTotal(e.data?.queues?.remove)>0?"ov-dot-ok":"ov-dot-idle"])},null,2),n("div",G0,[t[65]||(t[65]=n("span",{class:"ov-svc-name"},"remove",-1)),e.queueTotal(e.data?.queues?.remove)?(a(),l("span",W0,c(e.queueTotal(e.data?.queues?.remove))+" "+c(e.queueTotal(e.data?.queues?.remove)===1?"job":"jobs"),1)):f("v-if",!0),e.queueTotal(e.data?.queues?.remove)?f("v-if",!0):(a(),l("span",K0,"idle"))])]),n("div",Y0,[n("span",{class:P(["ov-svc-dot",e.realErrors()>0?"ov-dot-warn":"ov-dot-ok"]),title:e.realErrors()>0?"Errors in the last 24 hours":"No errors in the last 24 hours"},null,10,X0),n("div",J0,[t[66]||(t[66]=n("span",{class:"ov-svc-name"},"errors",-1)),n("span",Q0,c(e.fmt?.number(e.realErrors()))+" / 24h",1)])])])])],512)),[[Q,e.ovView==="summary"]]):f("v-if",!0),D(n("section",Z0,[n("div",x0,[t[71]||(t[71]=n("div",null,[n("h2",{class:"ov-panel-title",id:"cache-heading"},"Cache"),n("p",{class:"ov-performance-note"},"Shared storage, repeated reads and anonymization work")],-1)),n("div",e2,[t[69]||(t[69]=n("label",{for:"cache-window"},"Time range",-1)),D(n("select",{id:"cache-window",class:"form-control form-control-sm","onUpdate:modelValue":t[0]||(t[0]=s=>e.cacheMinutes=s),onChange:t[1]||(t[1]=s=>e.loadCache())},[...t[67]||(t[67]=[n("option",{value:15},"Last 15 minutes",-1),n("option",{value:60},"Last hour",-1),n("option",{value:1440},"Last 24 hours",-1),n("option",{value:10080},"Last 7 days",-1)])],544),[[mn,e.cacheMinutes,void 0,{number:!0}]]),t[70]||(t[70]=n("label",{for:"cache-traffic"},"Traffic",-1)),D(n("select",{id:"cache-traffic",class:"form-control form-control-sm","onUpdate:modelValue":t[2]||(t[2]=s=>e.cacheTraffic=s)},[...t[68]||(t[68]=[Ee('',6)])],512),[[mn,e.cacheTraffic]])])]),e.cacheError?(a(),l("div",t2,[n("span",null,c(e.cacheError),1),n("button",{type:"button",class:"btn btn-sm",onClick:t[3]||(t[3]=s=>e.loadCache())},"Retry")])):f("v-if",!0),!e.cacheReport&&!e.cacheError?(a(),l("p",n2,"Loading cache monitoring\u2026")):f("v-if",!0),e.cacheReport?.available?(a(),l(q,{key:2},[e.cacheReport.enabled?f("v-if",!0):(a(),l("p",s2,"Shared blob storage is disabled. Inspection and legacy-cache activity are still measured.")),e.cacheReport.filesystemSupported?f("v-if",!0):(a(),l("p",o2,"Shared blobs require a local filesystem. The configured storage continues to use its existing cache.")),e.cacheReport.dropped?(a(),l("p",i2,c(e.cacheReport.dropped)+" telemetry events were dropped. Totals may be incomplete.",1)):f("v-if",!0),e.cacheReport.source?(a(),l("div",r2,[n("table",a2,[t[72]||(t[72]=n("caption",{class:"sr-only"},"Current shared-cache storage and byte budgets",-1)),t[73]||(t[73]=n("thead",null,[n("tr",null,[n("th",{scope:"col"},"Pool"),n("th",{scope:"col",class:"num"},"Allocated / budget"),n("th",{scope:"col",class:"num"},"Reserved for fills"),n("th",{scope:"col",class:"num"},"Original bytes"),n("th",{scope:"col",class:"num"},"Blobs"),n("th",{scope:"col",class:"num"},"Active readers")])],-1)),n("tbody",null,[(a(!0),l(q,null,x([{name:"Source blobs",data:e.cacheReport.source},{name:"Transformed output",data:e.cacheReport.results}],s=>D((a(),l("tr",{key:s.name},[n("th",l2,c(s.name),1),n("td",{class:P(["num budget-cell",{"is-over":s.data?.budgetBytes&&s.data?.allocatedBytes>s.data?.budgetBytes}]),title:s.data?.budgetBytes?Math.round(100*(s.data?.allocatedBytes||0)/s.data.budgetBytes)+"% of budget":null},[s.data?.budgetBytes&&s.data?.allocatedBytes>s.data?.budgetBytes?(a(),l("span",u2,"Over budget \xB7 ")):f("v-if",!0),g(c(e.humanBytes(s.data?.allocatedBytes))+" / "+c(e.humanBytes(s.data?.budgetBytes)),1),s.data?.budgetBytes?(a(),l("span",c2,[n("i",{style:Ie({width:Math.min(100,Math.round(100*(s.data?.allocatedBytes||0)/s.data.budgetBytes))+"%"})},null,4)])):f("v-if",!0)],10,d2),n("td",p2,c(e.humanBytes(s.data?.reservedBytes)),1),n("td",f2,c(e.humanBytes(s.data?.originalBytes)),1),n("td",h2,c(e.fmt?.number(s.data?.blobs)),1),n("td",m2,c(e.fmt?.number(s.data?.activeReaders)),1)])),[[Q,s.data]])),128))])])])):f("v-if",!0),e.cacheReport.source?(a(),l("dl",g2,[n("div",null,[t[74]||(t[74]=n("dt",null,"Source request hit rate",-1)),n("dd",null,c(e.cacheRate("source","count")),1)]),n("div",null,[t[75]||(t[75]=n("dt",null,"Source byte hit rate",-1)),n("dd",null,c(e.cacheRate("source","bytes")),1)]),n("div",null,[t[76]||(t[76]=n("dt",null,"Decision hit rate",-1)),n("dd",null,c(e.cacheRate("decision","count")),1)])])):f("v-if",!0),t[79]||(t[79]=n("p",{class:"ov-performance-note"},"Reuse counts measure consecutive reads of the same blob within each interval. Codec timings are elapsed stream time, not CPU time; eviction times measure how long a blob was idle. Known monitors are identified by request metadata; other automation may remain in file reads.",-1)),e.cacheRows().length?(a(),l("div",v2,[n("table",y2,[t[77]||(t[77]=n("caption",{class:"sr-only"},"Cache events for the selected time range and traffic",-1)),t[78]||(t[78]=n("thead",null,[n("tr",null,[n("th",{scope:"col"},"Event"),n("th",{scope:"col"},"Traffic"),n("th",{scope:"col",class:"num"},"Count"),n("th",{scope:"col",class:"num"},"Bytes"),n("th",{scope:"col",class:"num"},"Mean measured time"),n("th",{scope:"col",class:"num"},"p95 bound")])],-1)),n("tbody",null,[(a(!0),l(q,null,x(e.cacheRows(),s=>(a(),l("tr",{key:s.name+":"+s.traffic},[n("th",b2,c(e.cacheEventName(s.name)),1),n("td",w2,c(s.traffic),1),n("td",k2,c(e.fmt?.number(s.count)),1),n("td",C2,c(e.humanBytes(s.bytes)),1),n("td",{class:P(["num",{"ov-muted":!s.ms}])},c(s.ms?e.fmt.duration(s.ms/s.count):"Not timed"),3),n("td",{class:P(["num",{"ov-muted":!s.ms}])},c(e.cacheP95(s)),3)]))),128))])])])):(a(),l("p",E2,"No cache events in this time range for the selected traffic.")),n("p",S2,"Updated "+c(e.sampleAge(e.cacheReport))+" seconds ago. Minute history is retained for 48 hours; hourly history for 30 days.",1)],64)):f("v-if",!0)],512),[[Q,e.ovView==="cache"]]),D(n("section",N2,[n("div",R2,[t[84]||(t[84]=n("div",null,[n("h2",{class:"ov-panel-title",id:"performance-heading"},"Request performance"),n("p",{class:"ov-performance-note"},"Request latency and process health")],-1)),n("div",P2,[e.performance?.available?(a(),l(q,{key:0},[t[81]||(t[81]=n("label",{for:"performance-view"},"Show",-1)),D(n("select",{id:"performance-view",class:"form-control form-control-sm","onUpdate:modelValue":t[4]||(t[4]=s=>e.performanceTab=s),"aria-label":"Performance metrics"},[...t[80]||(t[80]=[n("option",{value:"routes"},"Routes",-1),n("option",{value:"processes"},"Processes",-1),n("option",{value:"stages"},"Work stages",-1)])],512),[[mn,e.performanceTab]])],64)):f("v-if",!0),t[83]||(t[83]=n("label",{for:"performance-window"},"Time range",-1)),D(n("select",{id:"performance-window",class:"form-control form-control-sm","onUpdate:modelValue":t[5]||(t[5]=s=>e.performanceMinutes=s),onChange:t[6]||(t[6]=s=>e.loadPerformance()),"aria-label":"Performance time range"},[...t[82]||(t[82]=[n("option",{value:15},"Last 15 minutes",-1),n("option",{value:60},"Last hour",-1)])],544),[[mn,e.performanceMinutes,void 0,{number:!0}]])])]),e.performanceError?(a(),l("div",A2,[t[85]||(t[85]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),n("span",null,c(e.performanceError),1),n("button",{type:"button",class:"btn btn-sm",onClick:t[7]||(t[7]=s=>e.loadPerformance())},"Retry")])):f("v-if",!0),!e.performance&&!e.performanceError?(a(),l("p",D2,"Loading performance monitoring\u2026")):f("v-if",!0),e.performance?.available?(a(),l("div",T2,[D(n("div",O2,[e.performance.routes?.length?(a(),l("div",I2,[n("table",M2,[t[86]||(t[86]=n("caption",{class:"sr-only"},"Route latency for the selected time range",-1)),t[87]||(t[87]=n("thead",null,[n("tr",null,[n("th",{scope:"col"},"Route"),n("th",{scope:"col",class:"num"},"Requests"),n("th",{scope:"col",class:"num"},"Average"),n("th",{scope:"col",class:"num"},"First byte p95"),n("th",{scope:"col",class:"num"},"p95"),n("th",{scope:"col",class:"num"},"p99"),n("th",{scope:"col",class:"num"},"Interrupted"),n("th",{scope:"col",class:"num"},"5xx"),n("th",{scope:"col",class:"num"},"Slow")])],-1)),n("tbody",null,[(a(!0),l(q,null,x(e.performance.routes,s=>(a(),l("tr",{key:s.service+s.method+s.route},[n("th",V2,[n("span",null,c(s.route),1),n("small",null,c(s.service)+" \xB7 "+c(s.method),1)]),n("td",q2,c(e.fmt.number(s.count)),1),n("td",_2,c(e.formatMs(s.avgMs)),1),n("td",$2,c(e.firstByteBound(s)),1),n("td",L2,c(e.latencyBound(s,"p95UpperMs")),1),n("td",F2,c(e.latencyBound(s,"p99UpperMs")),1),n("td",{class:P(["num",{"ov-metric-warn":s.aborted>0}])},c(e.fmt.number(s.aborted)),3),n("td",{class:P(["num",{"ov-metric-bad":s.errors>0}])},c(e.fmt.number(s.errors)),3),n("td",{class:P(["num",{"ov-metric-warn":s.slow>0}])},c(e.fmt.number(s.slow)),3)]))),128))])])])):(a(),l("p",U2,"No recorded requests in this time range yet."))],512),[[Q,e.performanceTab==="routes"]]),D(n("div",B2,[t[91]||(t[91]=n("p",{class:"ov-performance-note"},"API and streamer processes \xB7 latest sample per instance",-1)),e.performance.instances?.length?(a(),l("div",H2,[n("table",j2,[t[89]||(t[89]=n("caption",{class:"sr-only"},"API and streamer process resource usage",-1)),t[90]||(t[90]=n("thead",null,[n("tr",null,[n("th",{scope:"col"},"Process"),n("th",{scope:"col",class:"num"},"RSS / limit"),n("th",{scope:"col",class:"num"},"CPU"),n("th",{scope:"col",class:"num"},"Event loop p95"),n("th",{scope:"col",class:"num"},"Active requests"),n("th",{scope:"col",class:"num"},"Sockets / CLOSE_WAIT"),n("th",{scope:"col",class:"num"},"Workers / waiting"),n("th",{scope:"col",class:"num"},"Sample age"),n("th",{scope:"col",class:"num"},"Dropped batches / metrics")])],-1)),n("tbody",null,[(a(!0),l(q,null,x(e.performance.instances,s=>(a(),l("tr",{key:s.instance,class:P({"ov-metric-warning-row":e.performanceWarning(s)})},[n("th",G2,[n("span",null,c(s.instance),1),e.performanceWarning(s)?(a(),l("small",W2,[...t[88]||(t[88]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1),g(" Needs attention",-1)])])):f("v-if",!0)]),n("td",K2,[g(c(e.humanBytes(s.memory.rss))+" / "+c(e.humanBytes(s.memoryLimitBytes)),1),n("small",null,"Peak "+c(e.humanBytes(e.peakRss(s))),1)]),n("td",Y2,c(s.cpuPercent==null?"Unavailable":s.cpuPercent.toFixed(1)+"%"),1),n("td",X2,c(s.eventLoop?.p95Ms==null?"Not applicable":e.fmt.duration(s.eventLoop.p95Ms)),1),n("td",J2,c(s.activeRequests),1),n("td",Q2,c(s.sockets?.descriptors??"Unavailable")+" / "+c(s.sockets?.closeWait??"Unavailable"),1),n("td",Z2,c(s.workers?.running??0)+" / "+c(s.workers?.waiting??0),1),n("td",x2,c(e.sampleAge(s))+" s",1),n("td",eC,c(s.droppedBatches)+" / "+c(s.droppedMetrics),1)],2))),128))])])])):(a(),l("div",z2,"No recent process samples. Monitoring coverage is incomplete."))],512),[[Q,e.performanceTab==="processes"]]),D(n("div",tC,[e.performance.stages?.some(s=>s.metric!=="first_byte")?(a(),l("div",nC,[n("table",sC,[t[92]||(t[92]=n("caption",{class:"sr-only"},"Work stages and cache results",-1)),t[93]||(t[93]=n("thead",null,[n("tr",null,[n("th",{scope:"col"},"Work stage"),n("th",{scope:"col",class:"num"},"Samples"),n("th",{scope:"col",class:"num"},"Average"),n("th",{scope:"col",class:"num"},"p95")])],-1)),n("tbody",null,[(a(!0),l(q,null,x(e.performance.stages.filter(s=>s.metric!=="first_byte"),s=>(a(),l("tr",{key:s.service+s.metric},[n("th",oC,[n("span",null,c(s.metric),1),n("small",null,c(s.service),1)]),n("td",iC,c(e.fmt.number(s.count)),1),n("td",rC,c(e.formatMs(s.avgMs)),1),n("td",aC,c(e.latencyBound(s,"p95UpperMs")),1)]))),128))])])])):(a(),l("p",lC,"No recorded work stages or cache results in this time range yet."))],512),[[Q,e.performanceTab==="stages"]]),t[94]||(t[94]=n("details",{class:"ov-performance-help"},[n("summary",null,"How to read these metrics"),n("p",null,"Latency includes upstream waits and response transfer. Percentiles show histogram bucket upper bounds, not exact timings. Process rows marked \u201CNeeds attention\u201D have stale samples, dropped monitoring data, CLOSE_WAIT sockets, high event loop delay, or high memory usage.")],-1))])):f("v-if",!0)],512),[[Q,e.ovView==="performance"]])])}var dC={class:"container paper-page admin-page"},uC={class:"q-header"},cC={class:"q-header-actions"},pC={class:"q-cards"},fC=["aria-pressed","onKeydown","onClick"],hC={class:"q-card-head"},mC=["title"],gC=["textContent"],vC=["textContent"],yC={class:"q-card-sub"},bC={class:"q-card-failed"},wC={key:0,class:"q-card-bar"},kC={key:0,class:"q-detail"},CC={class:"q-throughput"},EC={class:"q-range-btns"},SC={class:"q-section-label"},NC={key:0,class:"q-section-right"},RC={class:"q-chart-wrap"},PC={key:0,class:"q-chart-empty"},AC={class:"q-stats-panel"},DC={class:"q-section-label"},TC={class:"q-stats-grid"},OC={class:"q-stat"},IC=["textContent"],MC={class:"q-stat"},VC=["textContent"],qC={class:"q-stat"},_C=["textContent"],$C={class:"q-stat"},LC=["textContent"],FC={class:"q-stat"},UC=["textContent"],BC={class:"q-stat"},zC=["textContent"],HC={class:"q-stats-actions"},jC=["disabled"],GC={class:"q-danger-group"},WC={class:"q-jobs"},KC={class:"q-jobs-header"},YC={class:"q-section-label"},XC={class:"seg-filter",role:"radiogroup","aria-label":"Filter jobs by state"},JC=["aria-checked"],QC={class:"count"},ZC=["aria-checked"],xC={class:"count"},eE=["aria-checked"],tE={class:"count"},nE=["aria-checked"],sE={class:"count"},oE=["aria-checked"],iE={class:"count"},rE=["aria-checked"],aE={class:"count"},lE={class:"q-search-row"},dE={type:"search",class:"form-control",placeholder:"Search by job/repo id\u2026",autocomplete:"off"},uE={class:"q-auto-refresh"},cE={type:"checkbox"},pE={key:0,class:"q-table"},fE=["onClick"],hE={class:"q-cell-state"},mE=["textContent"],gE=["textContent"],vE=["title"],yE=["textContent","href"],bE=["title","textContent"],wE=["textContent"],kE=["textContent"],CE={class:"q-cell-progress"},EE=["aria-label"],SE=["textContent"],NE={class:"q-cell-actions"},RE=["onClick"],PE=["onClick"],AE={key:0,class:"q-detail-row"},DE={colspan:"7"},TE={class:"q-job-detail"},OE={class:"q-job-detail-grid"},IE={class:"q-job-detail-item"},ME={class:"q-job-detail-value"},VE=["textContent","href"],qE={class:"q-job-detail-item"},_E={class:"q-job-detail-value"},$E=["textContent"],LE={key:0,class:"q-job-detail-item"},FE=["textContent"],UE={key:1,class:"q-job-detail-item"},BE=["textContent"],zE={key:2,class:"q-job-detail-item"},HE={class:"q-job-detail-value"},jE={key:3,class:"q-job-detail-item"},GE=["textContent"],WE={key:4,class:"q-job-detail-item"},KE=["textContent"],YE={key:5,class:"q-job-detail-item"},XE=["textContent"],JE={key:6,class:"q-job-detail-item"},QE=["textContent"],ZE={key:7,class:"q-job-detail-item"},xE=["textContent"],eS={key:0,class:"q-job-detail-error"},tS=["textContent"],nS={key:1},sS=["textContent"],oS={class:"q-job-detail-actions"},iS=["onClick"],rS=["onClick"],aS=["href"],lS={key:1,class:"paper-table-empty",style:{border:"1px solid var(--border-color)","border-radius":"10px",background:"var(--paper-card)"}},dS={key:0},uS={key:1};function tp(e,t){let s=Ae("field");return a(),l("div",dC,[t[71]||(t[71]=n("div",{class:"paper-crumbs"},[g("Admin \xA0/\xA0 "),n("span",{class:"here"},"Queues")],-1)),n("div",uC,[t[18]||(t[18]=n("h1",{class:"paper-page-title"},"Queues",-1)),n("div",cC,[n("button",{class:"btn btn-sm",onClick:t[0]||(t[0]=i=>e.pauseAll())},"Pause all queues")])]),t[72]||(t[72]=Ee('',1)),f(" Queue overview cards "),n("div",pC,[(a(!0),l(q,null,x(e.queueList,(i,o)=>(a(),l("div",{class:P(["q-card",{selected:e.selectedQueue==i?.key,paused:i?.paused}]),role:"button",tabindex:"0","aria-pressed":e.selectedQueue===i.key,onKeydown:[kt(ae(r=>e.selectQueue(i.key),["prevent"]),["enter"]),kt(ae(r=>e.selectQueue(i.key),["prevent"]),["space"])],onClick:r=>e.selectQueue(i.key)},[n("div",hC,[n("span",{class:P(["q-dot",{"q-dot-red":i?.paused||i?.counts?.failed>0,"q-dot-idle":!i?.counts?.active&&!i?.counts?.waiting}]),title:i?.paused?"Paused":i?.counts?.failed>0?i.counts.failed+" failed jobs":i?.counts?.active||i?.counts?.waiting?"Running":"Idle"},null,10,mC),n("span",{class:"q-card-name",textContent:c(i?.label)},null,8,gC)]),n("div",{class:"q-card-count",textContent:c((i?.counts?.waiting||0)+(i?.counts?.active||0)+(i?.counts?.delayed||0))},null,8,vC),n("div",yC,[n("span",null,[g("waiting \xB7 "+c(i?.counts?.active||0)+" active",1),i?.counts?.failed?(a(),l(q,{key:0},[t[19]||(t[19]=g(" \xB7 ",-1)),n("b",bC,c(i.counts.failed)+" failed",1)],64)):f("v-if",!0),i?.paused?(a(),l(q,{key:1},[t[20]||(t[20]=g(" \xB7 ",-1)),t[21]||(t[21]=n("b",{class:"q-card-failed"},"paused",-1))],64)):f("v-if",!0)]),i?.counts?.active?(a(),l("div",wC,[n("div",{class:"q-card-bar-fill",style:Ie({width:i?.counts?.active/((i?.counts?.waiting||0)+(i?.counts?.active||0)+(i?.counts?.delayed||0)||1)*100+"%"})},null,4)])):f("v-if",!0)])],42,fC))),256))]),f(" Detail: throughput chart + stats panel "),e.selectedStats?(a(),l("div",kC,[n("div",CC,[n("div",EC,[n("button",{class:P(["btn btn-sm",{active:e.range=="1h"}]),onClick:t[1]||(t[1]=i=>e.setRange("1h"))},"1h",2),n("button",{class:P(["btn btn-sm",{active:e.range=="6h"}]),onClick:t[2]||(t[2]=i=>e.setRange("6h"))},"6h",2),n("button",{class:P(["btn btn-sm",{active:e.range=="24h"}]),onClick:t[3]||(t[3]=i=>e.setRange("24h"))},"24h",2),n("button",{class:P(["btn btn-sm",{active:e.range=="7d"}]),onClick:t[4]||(t[4]=i=>e.setRange("7d"))},"7d",2)]),n("div",SC,[g("Throughput \xB7 "+c(e.selectedQueue)+" ",1),(e.selectedStats?.completed24h||0)+(e.selectedStats?.failed24h||0)>0?(a(),l("span",NC,[t[23]||(t[23]=n("span",{class:"q-legend-completed"},"\u25CF",-1)),t[24]||(t[24]=g(" Completed ",-1)),t[25]||(t[25]=n("span",{class:"q-legend-failed"},"\u25CF",-1)),t[26]||(t[26]=g(" Failed ",-1)),(e.selectedStats?.completed24h||0)+(e.selectedStats?.failed24h||0)>0?(a(),l(q,{key:0},[t[22]||(t[22]=n("span",{class:"q-legend-exec","aria-hidden":"true"},null,-1)),g(" Avg time \xB7 "+c(e.range),1)],64)):f("v-if",!0)])):f("v-if",!0)]),n("div",RC,[t[28]||(t[28]=n("canvas",{id:"q-throughput-chart",height:"180"},null,-1)),(e.selectedStats?.completed24h||0)+(e.selectedStats?.failed24h||0)===0?(a(),l("div",PC,[...t[27]||(t[27]=[n("strong",null,"No jobs processed in this window",-1),n("span",null,"Completed and failed jobs will chart here.",-1)])])):f("v-if",!0),t[29]||(t[29]=n("div",{id:"q-chart-tooltip",class:"q-chart-tooltip",style:{display:"none"}},null,-1)),t[30]||(t[30]=n("div",{id:"q-chart-crosshair",class:"q-chart-crosshair",style:{display:"none"}},null,-1))])]),n("div",AC,[n("div",DC,"Stats \xB7 "+c(e.selectedQueue),1),n("div",TC,[n("div",OC,[t[31]||(t[31]=n("div",{class:"q-stat-label"},"Waiting",-1)),n("div",{class:"q-stat-value",textContent:c(e.selectedStats?.counts?.waiting||0)},null,8,IC)]),n("div",MC,[t[32]||(t[32]=n("div",{class:"q-stat-label"},"Active",-1)),n("div",{class:"q-stat-value",textContent:c(e.selectedStats?.counts?.active||0)},null,8,VC)]),n("div",qC,[t[33]||(t[33]=n("div",{class:"q-stat-label"},"Completed (24h)",-1)),n("div",{class:"q-stat-value",textContent:c(e.fmt?.number(e.selectedStats?.completed24h))},null,8,_C)]),n("div",$C,[t[34]||(t[34]=n("div",{class:"q-stat-label"},"Failed (24h)",-1)),n("div",{class:"q-stat-value",textContent:c(e.selectedStats?.failed24h||0)},null,8,LC)]),n("div",FC,[t[35]||(t[35]=n("div",{class:"q-stat-label"},"Delayed",-1)),n("div",{class:"q-stat-value",textContent:c(e.selectedStats?.counts?.delayed||0)},null,8,UC)]),n("div",BC,[t[36]||(t[36]=n("div",{class:"q-stat-label"},"Workers",-1)),n("div",{class:"q-stat-value",textContent:c(e.selectedStats?.workers||0)},null,8,zC)])]),n("div",HC,[n("button",{class:"btn btn-sm",onClick:t[5]||(t[5]=i=>e.togglePause())},c(e.selectedStats?.paused?"Resume "+e.selectedQueue:"Pause "+e.selectedQueue),1),n("button",{class:"btn btn-sm",onClick:t[6]||(t[6]=i=>e.retryFailed()),disabled:!e.selectedStats?.counts?.failed},"Retry failed",8,jC),n("span",GC,[n("button",{class:"btn btn-sm btn-outline-danger",onClick:t[7]||(t[7]=i=>e.drainSelected())},"Drain"),n("button",{class:"btn btn-sm btn-outline-danger",onClick:t[8]||(t[8]=i=>e.emptyQueue())},"Empty")])])])])):f("v-if",!0),e.actionError?(a(),l("div",{key:1,class:"q-toast-error",onClick:t[9]||(t[9]=i=>e.actionError=null)},[t[37]||(t[37]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-info"})],-1)),g(" "+c(e.actionError),1)])):f("v-if",!0),f(" Jobs table "),n("div",WC,[n("div",KC,[n("div",YC,"All jobs \xB7 "+c(e.selectedQueue),1),n("div",XC,[n("button",{type:"button",role:"radio",class:P(["seg-chip",{active:e.segView()==="all"}]),"aria-checked":e.segView()==="all",onClick:t[10]||(t[10]=i=>e.setSegView("all"))},[t[38]||(t[38]=g("All ",-1)),n("span",QC,c(e.fmt?.number(e.segCount("all"))),1)],10,JC),n("button",{type:"button",role:"radio",class:P(["seg-chip",{active:e.segView()==="active","is-empty":!e.segCount("active")}]),"aria-checked":e.segView()==="active",onClick:t[11]||(t[11]=i=>e.setSegView("active"))},[t[39]||(t[39]=n("span",{class:"seg-dot ok","aria-hidden":"true"},null,-1)),t[40]||(t[40]=g("Active ",-1)),n("span",xC,c(e.fmt?.number(e.segCount("active"))),1)],10,ZC),n("button",{type:"button",role:"radio",class:P(["seg-chip",{active:e.segView()==="waiting","is-empty":!e.segCount("waiting")}]),"aria-checked":e.segView()==="waiting",onClick:t[12]||(t[12]=i=>e.setSegView("waiting"))},[t[41]||(t[41]=n("span",{class:"seg-dot warn","aria-hidden":"true"},null,-1)),t[42]||(t[42]=g("Waiting ",-1)),n("span",tE,c(e.fmt?.number(e.segCount("waiting"))),1)],10,eE),n("button",{type:"button",role:"radio",class:P(["seg-chip",{active:e.segView()==="delayed","is-empty":!e.segCount("delayed")}]),"aria-checked":e.segView()==="delayed",onClick:t[13]||(t[13]=i=>e.setSegView("delayed"))},[t[43]||(t[43]=n("span",{class:"seg-dot warn","aria-hidden":"true"},null,-1)),t[44]||(t[44]=g("Delayed ",-1)),n("span",sE,c(e.fmt?.number(e.segCount("delayed"))),1)],10,nE),n("button",{type:"button",role:"radio",class:P(["seg-chip",{active:e.segView()==="failed","is-empty":!e.segCount("failed")}]),"aria-checked":e.segView()==="failed",onClick:t[14]||(t[14]=i=>e.setSegView("failed"))},[t[45]||(t[45]=n("span",{class:"seg-dot bad","aria-hidden":"true"},null,-1)),t[46]||(t[46]=g("Failed ",-1)),n("span",iE,c(e.fmt?.number(e.segCount("failed"))),1)],10,oE),n("button",{type:"button",role:"radio",class:P(["seg-chip",{active:e.segView()==="completed","is-empty":!e.segCount("completed")}]),"aria-checked":e.segView()==="completed",onClick:t[15]||(t[15]=i=>e.setSegView("completed"))},[t[47]||(t[47]=n("span",{class:"seg-dot done","aria-hidden":"true"},null,-1)),t[48]||(t[48]=g("Completed ",-1)),n("span",aE,c(e.fmt?.number(e.segCount("completed"))),1)],10,rE)])]),n("div",lE,[D(n("input",dE,null,512),[[s,{state:e.viewState,set:i=>{e.query.search=i},value:e.query?.search,form:null,options:{}}]]),n("label",uE,[D(n("input",cE,null,512),[[s,{state:e.viewState,set:i=>{e.query.autoRefresh=i},value:e.query?.autoRefresh,form:null,options:{}}]]),t[49]||(t[49]=n("span",{class:"auto-refresh-label"},"Auto-refresh",-1))]),n("button",{class:"btn btn-sm btn-icon",type:"button",title:"Refresh now",onClick:t[16]||(t[16]=i=>e.refreshNow()),"aria-label":"Refresh"},[...t[50]||(t[50]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1)])])]),e.filteredJobs().length>0?(a(),l("table",pE,[t[69]||(t[69]=n("thead",null,[n("tr",null,[n("th",null,"State"),n("th",null,"Job"),n("th",null,"Detail"),n("th",null,"Attempts"),n("th",{class:"q-th-num"},"Duration"),n("th",null,"Progress"),n("th")])],-1)),(a(!0),l(q,null,x(e.filteredJobs(),(i,o)=>(a(),l("tbody",null,[n("tr",{style:{cursor:"pointer"},class:P({"q-row-failed":i?._state=="failed","q-row-expanded":e.expanded[i?.id]}),onClick:r=>e.toggleJob(i)},[n("td",hE,[n("span",{textContent:c(i?._state),class:P("q-state-badge q-state-"+i?._state)},null,10,mE),i?._state=="delayed"&&i?.delayUntil?(a(),l("span",{key:0,class:"q-delay-hint",textContent:c(e.delayCountdown(i?.delayUntil))},null,8,gE)):f("v-if",!0)]),n("td",{class:"q-cell-id",title:"job:"+i?.id+(i?.name&&i?.name!==i?.id?" \xB7 "+i.name:"")+(i?.data?.repoId&&i?.data?.repoId!==i?.id?" \xB7 "+i.data.repoId:"")},[(a(),l("svg",{class:P(["ui-icon q-chevron",{"q-chevron-open":e.expanded[i?.id]}]),"aria-hidden":"true"},[...t[51]||(t[51]=[n("use",{href:"#ui-icon-chevron-right"},null,-1)])],2)),n("a",{target:"_blank",class:"q-job-link",textContent:c(i?.data?.repoId||i?.id),onClick:t[17]||(t[17]=r=>r.stopPropagation()),href:e.safeUrl("/r/"+(i?.data?.repoId||i?.id))},null,8,yE)],8,vE),n("td",{class:P(["q-cell-detail",{"is-error":i?._state=="failed"}]),title:i?._state=="failed"?i?.failedReason:"",textContent:c(e.jobDetail(i))},null,10,bE),n("td",{class:"q-cell-num",textContent:c(i?.attemptsMade||1)},null,8,wE),n("td",{class:"q-cell-num q-cell-duration",textContent:c(e.jobDuration(i))},null,8,kE),n("td",CE,[n("div",{class:P(["q-progress-wrap",{"is-indeterminate":e.jobProgressPct(i)===null}]),"aria-label":e.jobProgressPct(i)===null?"Progress not reported":e.jobProgressPct(i)+"% done"},[n("div",{class:"q-progress-bar",style:Ie({"--pct":(e.jobProgressPct(i)||0)+"%"})},null,4),n("span",{class:"q-progress-label",textContent:c(e.jobProgressPct(i)===null?"\u2014":e.jobProgressPct(i)+"%")},null,8,SE)],10,EE)]),n("td",NE,[i?._state=="failed"?(a(),l("button",{key:0,class:"btn btn-sm btn-icon",title:"Retry",onClick:r=>{e.retryJob(i),r.stopPropagation()},"aria-label":"Retry job"},[...t[52]||(t[52]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1)])],8,RE)):f("v-if",!0),n("button",{class:"btn btn-sm btn-icon",title:"Remove","aria-label":"Remove job",onClick:r=>{e.removeJob(i),r.stopPropagation()}},[...t[53]||(t[53]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1)])],8,PE)])],10,fE),e.expanded[i?.id]?(a(),l("tr",AE,[n("td",DE,[n("div",TE,[n("div",OE,[n("div",IE,[t[54]||(t[54]=n("span",{class:"q-job-detail-label"},"Job id",-1)),n("span",ME,[n("a",{target:"_blank",textContent:c(i?.id),href:e.safeUrl("/r/"+i?.id)},null,8,VE)])]),n("div",qE,[t[55]||(t[55]=n("span",{class:"q-job-detail-label"},"State",-1)),n("span",_E,[n("span",{textContent:c(i?._state),class:P("q-state-badge q-state-"+i?._state)},null,10,$E)])]),i?.data?.repoId?(a(),l("div",LE,[t[56]||(t[56]=n("span",{class:"q-job-detail-label"},"Repo ID",-1)),n("span",{class:"q-job-detail-value",textContent:c(i?.data?.repoId)},null,8,FE)])):f("v-if",!0),i?.timestamp?(a(),l("div",UE,[t[57]||(t[57]=n("span",{class:"q-job-detail-label"},"Created",-1)),n("span",{class:"q-job-detail-value",textContent:c(e.humanTime(i?.timestamp))},null,8,BE)])):f("v-if",!0),i?._state=="delayed"&&i?.delayUntil?(a(),l("div",zE,[t[58]||(t[58]=n("span",{class:"q-job-detail-label"},"Retry at",-1)),n("span",HE,c(e.humanTime(i?.delayUntil))+" ("+c(e.delayCountdown(i?.delayUntil))+")",1)])):f("v-if",!0),i?.processedOn?(a(),l("div",jE,[t[59]||(t[59]=n("span",{class:"q-job-detail-label"},"Processed",-1)),n("span",{class:"q-job-detail-value",textContent:c(e.humanTime(i?.processedOn))},null,8,GE)])):f("v-if",!0),i?.finishedOn?(a(),l("div",WE,[t[60]||(t[60]=n("span",{class:"q-job-detail-label"},"Finished",-1)),n("span",{class:"q-job-detail-value",textContent:c(e.humanTime(i?.finishedOn))},null,8,KE)])):f("v-if",!0),i?.attemptsMade?(a(),l("div",YE,[t[61]||(t[61]=n("span",{class:"q-job-detail-label"},"Attempts",-1)),n("span",{class:"q-job-detail-value",textContent:c(i?.attemptsMade)},null,8,XE)])):f("v-if",!0),i?.progress&&i?.progress?.status?(a(),l("div",JE,[t[62]||(t[62]=n("span",{class:"q-job-detail-label"},"Status",-1)),n("span",{class:"q-job-detail-value",textContent:c(i?.progress?.status)},null,8,QE)])):f("v-if",!0),e.jobProgressPct(i)!==null?(a(),l("div",ZE,[t[63]||(t[63]=n("span",{class:"q-job-detail-label"},"Progress",-1)),n("span",{class:"q-job-detail-value",textContent:c(e.jobProgressPct(i)+"%")},null,8,xE)])):f("v-if",!0)]),i?.failedReason?(a(),l("div",eS,[t[64]||(t[64]=n("span",{class:"q-job-detail-label"},"Error",-1)),n("div",{class:"q-error-reason",textContent:c(i?.failedReason)},null,8,tS)])):f("v-if",!0),i?.stacktrace?.length?(a(),l("div",nS,[t[65]||(t[65]=n("span",{class:"q-job-detail-label"},"Stacktrace",-1)),(a(!0),l(q,null,x(i?.stacktrace,(r,d)=>(a(),l("pre",{class:"q-error-stack",key:d},[n("code",{textContent:c(r)},null,8,sS)]))),128))])):f("v-if",!0),n("div",oS,[i?._state=="failed"?(a(),l("button",{key:0,class:"btn btn-sm",onClick:r=>e.retryJob(i)},[...t[66]||(t[66]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),g(" Retry",-1)])],8,iS)):f("v-if",!0),n("button",{class:"btn btn-sm",onClick:r=>e.removeJob(i)},[...t[67]||(t[67]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1),g(" Remove",-1)])],8,rS),n("a",{class:"btn btn-sm",target:"_blank",href:e.safeUrl("/r/"+i?.id)},[...t[68]||(t[68]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-external-link"})],-1),g(" View repo",-1)])],8,aS)])])])])):f("v-if",!0)]))),256))])):f("v-if",!0),e.filteredJobs().length==0?(a(),l("div",lS,[t[70]||(t[70]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-check-circle"})],-1)),e.query?.search?f("v-if",!0):(a(),l("span",dS,"No jobs in the "+c(e.selectedQueue)+" queue.",1)),e.query?.search?(a(),l("span",uS,"No jobs match the current filters.")):f("v-if",!0)])):f("v-if",!0)])])}var cS={class:"container paper-page admin-page"},pS={class:"seg-bar"},fS={class:"seg-filter",role:"radiogroup","aria-label":"Filter by status"},hS=["aria-checked"],mS={class:"count"},gS=["aria-checked"],vS={class:"count"},yS=["aria-checked"],bS={class:"count"},wS=["aria-checked"],kS={class:"count"},CS=["aria-checked"],ES={class:"count"},SS=["aria-checked"],NS={class:"count"},RS={class:"seg-countline",role:"status"},PS={class:"seg-meta"},AS={key:0,class:"alert alert-danger",style:{margin:"8px 0"}},DS={class:"w-100 admin-filter-toolbar","aria-label":"Repositories","accept-charset":"UTF-8"},TS=["aria-expanded"],OS={class:"search-wrap"},IS={type:"search",class:"form-control","aria-label":"Search repositories",placeholder:"Search repositories\u2026",autocomplete:"off"},MS={key:0,class:"admin-search-hint"},VS={class:"admin-filter-inline"},qS={type:"text",class:"form-control form-control-sm",placeholder:"username"},_S={class:"admin-filter-inline"},$S={type:"text",class:"form-control form-control-sm",placeholder:"ID"},LS={key:0,class:"admin-filter-inline","aria-label":"Pagination"},FS=["disabled"],US={style:{"font-family":"var(--font-mono)","font-size":"12px",color:"var(--ink-muted)"}},BS=["disabled"],zS={key:0,class:"admin-filter-row"},HS={class:"admin-active-chips"},jS={class:"key"},GS=["onClick"],WS={key:1,class:"bulk-bar"},KS={class:"paper-table paper-table-repos has-bulk w-100",role:"table","aria-label":"Repositories"},YS={class:"paper-table-head",role:"row"},XS={role:"columnheader",style:{width:"28px"}},JS=["checked"],QS={role:"columnheader"},ZS={role:"columnheader"},xS={role:"columnheader",class:"num"},eN={role:"columnheader"},tN={role:"cell",style:{width:"28px"}},nN={type:"checkbox","aria-label":"Select repository"},sN={class:"cell-anon",role:"cell"},oN={class:"anon-text"},iN=["textContent","href"],rN=["title"],aN=["href"],lN=["textContent"],dN=["textContent"],uN=["data-meta-label"],cN=["title","textContent","href"],pN=["data-meta-label"],fN=["textContent","href"],hN=["data-meta-label"],mN={key:3,class:"meta-item"},gN={class:"meta-item"},vN={class:"cell-status",role:"cell"},yN={class:"status-line"},bN=["textContent"],wN=["textContent","title"],kN=["data-unit"],CN=["textContent"],EN={class:"cell-expires",role:"cell"},SN=["textContent"],NN={class:"cell-actions",role:"cell"},RN={class:"dropdown"},PN={class:"dropdown-menu dropdown-menu-right"},AN=["href"],DN=["href"],TN=["href"],ON=["onClick"],IN=["onClick"],MN=["onClick"],VN=["onClick"],qN=["onClick"],_N=["onClick"],$N={key:0,class:"paper-table-empty"},LN={class:"admin-toolbar",style:{"justify-content":"space-between","border-bottom":"none"}},FN={key:0,class:"pagination-compact"},UN=["disabled"],BN=["max"],zN=["disabled"],HN={class:"admin-filter-inline"},jN={class:"form-control form-control-sm"};function np(e,t){let s=Ae("field"),i=Ae("form");return a(),l("div",cS,[t[80]||(t[80]=Ee('
Admin \xA0/\xA0 Repositories

Repositories

',3)),n("div",pS,[n("div",fS,[n("button",{type:"button",role:"radio",class:P(["seg-chip",{active:e.segView()==="all"}]),"aria-checked":e.segView()==="all",onClick:t[0]||(t[0]=o=>e.setSegView("all"))},[t[21]||(t[21]=g("All ",-1)),n("span",mS,c(e.fmt?.number(e.segCount("all"))),1)],10,hS),n("button",{type:"button",role:"radio",class:P(["seg-chip",{active:e.segView()==="ready","is-empty":!e.segCount("ready")}]),"aria-checked":e.segView()==="ready",onClick:t[1]||(t[1]=o=>e.setSegView("ready"))},[t[22]||(t[22]=n("span",{class:"seg-dot ok","aria-hidden":"true"},null,-1)),t[23]||(t[23]=g("Ready ",-1)),n("span",vS,c(e.fmt?.number(e.segCount("ready"))),1)],10,gS),n("button",{type:"button",role:"radio",class:P(["seg-chip",{active:e.segView()==="preparing","is-empty":!e.segCount("preparing")}]),"aria-checked":e.segView()==="preparing",onClick:t[2]||(t[2]=o=>e.setSegView("preparing"))},[t[24]||(t[24]=n("span",{class:"seg-dot warn","aria-hidden":"true"},null,-1)),t[25]||(t[25]=g("Preparing ",-1)),n("span",bS,c(e.fmt?.number(e.segCount("preparing"))),1)],10,yS),n("button",{type:"button",role:"radio",class:P(["seg-chip",{active:e.segView()==="error","is-empty":!e.segCount("error")}]),"aria-checked":e.segView()==="error",onClick:t[3]||(t[3]=o=>e.setSegView("error"))},[t[26]||(t[26]=n("span",{class:"seg-dot bad","aria-hidden":"true"},null,-1)),t[27]||(t[27]=g("Error ",-1)),n("span",kS,c(e.fmt?.number(e.segCount("error"))),1)],10,wS),n("button",{type:"button",role:"radio",class:P(["seg-chip",{active:e.segView()==="expired","is-empty":!e.segCount("expired")}]),"aria-checked":e.segView()==="expired",onClick:t[4]||(t[4]=o=>e.setSegView("expired"))},[t[28]||(t[28]=n("span",{class:"seg-dot off","aria-hidden":"true"},null,-1)),t[29]||(t[29]=g("Expiring / expired ",-1)),n("span",ES,c(e.fmt?.number(e.segCount("expired"))),1)],10,CS),n("button",{type:"button",role:"radio",class:P(["seg-chip",{active:e.segView()==="removed","is-empty":!e.segCount("removed")}]),"aria-checked":e.segView()==="removed",onClick:t[5]||(t[5]=o=>e.setSegView("removed"))},[t[30]||(t[30]=n("span",{class:"seg-dot off","aria-hidden":"true"},null,-1)),t[31]||(t[31]=g("Removing / removed ",-1)),n("span",NS,c(e.fmt?.number(e.segCount("removed"))),1)],10,SS)]),n("p",RS,[n("strong",null,c(e.total>=0?e.fmt.number(e.total):"\u2026"),1),t[32]||(t[32]=g(" shown",-1)),t[33]||(t[33]=n("span",{class:"seg-sep"},"\xB7",-1)),n("span",PS,c(e.fmt?.humanFileSize(e.totalSize))+" on disk",1)])]),e.fetchError?(a(),l("div",AS,[t[34]||(t[34]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),g(" "+c(e.fetchError),1)])):f("v-if",!0),D((a(),l("form",DS,[f(" Row 1: search + scoped inputs + headline actions "),n("button",{type:"button",class:"btn btn-sm admin-filters-toggle",onClick:t[6]||(t[6]=o=>e.filtersOpen=!e.filtersOpen),"aria-expanded":e.filtersOpen?"true":"false"},"Filters",8,TS),n("div",{class:P(["admin-filter-row",{"is-open":e.filtersOpen}])},[n("div",OS,[D(n("input",IS,null,512),[[s,{state:e.viewState,set:o=>{e.query.search=o},value:e.query?.search,form:null,options:{}}]]),e.query?.search?f("v-if",!0):(a(),l("span",MS,"/"))]),n("span",VS,[t[35]||(t[35]=n("label",null,"Owner",-1)),D(n("input",qS,null,512),[[s,{state:e.viewState,set:o=>{e.query.owner=o},value:e.query?.owner,form:null,options:{}}]])]),n("span",_S,[t[36]||(t[36]=n("label",null,"Conference",-1)),D(n("input",$S,null,512),[[s,{state:e.viewState,set:o=>{e.query.conference=o},value:e.query?.conference,form:null,options:{}}]])]),t[40]||(t[40]=n("span",{class:"admin-filter-spacer"},null,-1)),n("button",{class:"btn btn-sm",type:"button",title:"Export current view to CSV",onClick:t[7]||(t[7]=o=>e.exportCsv())},[...t[37]||(t[37]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-export"})],-1),g(" Export",-1)])]),e.totalPage>1?(a(),l("span",LS,[n("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[8]||(t[8]=o=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1,"aria-label":"Previous page"},[...t[38]||(t[38]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1)])],8,FS),n("span",US,c(e.query?.page)+"/"+c(e.totalPage||1),1),n("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[9]||(t[9]=o=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage,"aria-label":"Next page"},[...t[39]||(t[39]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,BS)])):f("v-if",!0)],2),f(" Row 2: appears only when there are active filter chips "),e.chips?.length?(a(),l("div",zS,[n("div",HS,[(a(!0),l(q,null,x(e.chips,(o,r)=>(a(),l("span",{class:"admin-active-chip",key:o?.key},[n("span",jS,c(o?.label),1),n("span",null,c(o?.value),1),n("button",{type:"button","aria-label":"Remove filter",onClick:d=>e.clearFilter(o.key)},[...t[41]||(t[41]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])],8,GS)]))),128))])])):f("v-if",!0)])),[[i,e.viewState]]),e.selectedCount()>0?(a(),l("div",WS,[n("span",null,[n("strong",null,c(e.selectedCount()),1),t[42]||(t[42]=g(" selected",-1))]),n("button",{class:"btn btn-sm",type:"button",onClick:t[10]||(t[10]=o=>e.bulkRefresh())},[...t[43]||(t[43]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),g(" Force refresh",-1)])]),n("button",{class:"btn btn-sm text-danger",type:"button",onClick:t[11]||(t[11]=o=>e.bulkRemoveCache())},[...t[44]||(t[44]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-broom"})],-1),g(" Remove cache",-1)])]),n("button",{class:"btn btn-sm",type:"button",onClick:t[12]||(t[12]=o=>e.clearSelection())},"Clear")])):f("v-if",!0),n("div",KS,[n("div",YS,[n("div",XS,[n("input",{type:"checkbox","aria-label":"Select all on page",onClick:t[13]||(t[13]=o=>e.selectAllOnPage()),checked:e.allSelected},null,8,JS)]),n("div",QS,[n("button",{type:"button",class:P(["sortable",{active:e.query?.sort=="source.repositoryName"}]),onClick:t[14]||(t[14]=o=>e.sortBy("source.repositoryName"))},[t[46]||(t[46]=g("Repository ",-1)),e.sortIcon("source.repositoryName")?(a(),l("svg",{key:0,class:P(["ui-icon sort-direction",{ascending:e.sortIcon("source.repositoryName")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[45]||(t[45]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)]),n("div",ZS,[n("button",{type:"button",class:P(["sortable",{active:e.query?.sort=="status"}]),onClick:t[15]||(t[15]=o=>e.sortBy("status"))},[t[48]||(t[48]=g("Status ",-1)),e.sortIcon("status")?(a(),l("svg",{key:0,class:P(["ui-icon sort-direction",{ascending:e.sortIcon("status")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[47]||(t[47]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)]),n("div",xS,[n("button",{type:"button",class:P(["sortable",{active:e.query?.sort=="pageView"}]),onClick:t[16]||(t[16]=o=>e.sortBy("pageView"))},[t[50]||(t[50]=g("Views ",-1)),e.sortIcon("pageView")?(a(),l("svg",{key:0,class:P(["ui-icon sort-direction",{ascending:e.sortIcon("pageView")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[49]||(t[49]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)]),n("div",eN,[n("button",{type:"button",class:P(["sortable",{active:e.query?.sort=="anonymizeDate"}]),onClick:t[17]||(t[17]=o=>e.sortBy("anonymizeDate"))},[t[52]||(t[52]=g("Anonymized ",-1)),e.sortIcon("anonymizeDate")?(a(),l("svg",{key:0,class:P(["ui-icon sort-direction",{ascending:e.sortIcon("anonymizeDate")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[51]||(t[51]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)]),t[53]||(t[53]=n("div",{role:"columnheader","aria-label":"Actions"},null,-1))]),(a(!0),l(q,null,x(e.filteredRepositories,(o,r)=>(a(),l("div",{class:P(["paper-table-row",{"repo-inactive":o?.status=="expired"||o?.status=="removed","repo-error":o?.status=="error","row-selected":e.selected[o?.repoId]}]),role:"row"},[n("div",tN,[D(n("input",nN,null,512),[[s,{state:e.viewState,set:d=>{e.selected[o.repoId]=d},value:e.selected[o?.repoId],form:null,options:{}}]])]),n("div",sN,[t[56]||(t[56]=n("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Repository"},[n("use",{href:"#project-type-repo"})],-1)),n("div",oN,[n("a",{class:"repo-name",target:"_blank",textContent:c(o?.repoId),href:e.safeUrl("/r/"+o?.repoId)},null,8,iN),n("div",{class:"anon-sub anon-meta","data-meta-fit":"",title:[o?.source?.fullName||o?.source?.repositoryName,o?.options?.update?"branch "+o?.source?.branch:"commit "+o?.source?.commit?.substring(0,7),o?.conference?"conference "+o?.conference:"",o?.size?.storage>0?e.fmt?.humanFileSize(o?.size?.storage):"",e.fmt?.number(o?.options?.terms?.length)+(o?.options?.terms?.length===1?" term":" terms")].filter(Boolean).join(" \xB7 ")},[n("a",{class:"src-path",href:e.safeUrl("https://github.com/"+o?.source?.repositoryName+"/")},[(o?.source?.repositoryName||"").includes("/")?(a(),l("span",{key:0,class:"src-owner",textContent:c((d=>d.length>16?d.slice(0,14)+"\u2026":d)((o?.source?.repositoryName||"").split("/")[0]))},null,8,lN)):f("v-if",!0),n("span",{class:"src-repo",textContent:c((o?.source?.repositoryName||"").includes("/")?"/"+(o?.source?.repositoryName||"").split("/").slice(1).join("/"):o?.source?.repositoryName)},null,8,dN)],8,aN),o?.options?.update?f("v-if",!0):(a(),l("span",{key:0,class:"meta-item","data-meta-label":"commit "+(o?.source?.commit||"").substring(0,7)},[n("a",{class:"mono-hash",title:o?.source?.commit,textContent:c(o?.source?.commit?.substring(0,7)),href:e.safeUrl("https://github.com/"+o?.source?.fullName+"/tree/"+o?.source?.commit)},null,8,cN)],8,uN)),o?.options?.update?(a(),l("span",{key:1,class:"meta-item","data-meta-label":"branch "+(o?.source?.branch||"")},[n("a",{textContent:c(o?.source?.branch),href:e.safeUrl("https://github.com/"+o?.source?.fullName+"/tree/"+o?.source?.branch)},null,8,fN)],8,pN)):f("v-if",!0),o?.conference?(a(),l("span",{key:2,class:"meta-item meta-conf","data-meta-label":"conference "+o?.conference},[t[54]||(t[54]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-conference"})],-1)),g(" "+c(o?.conference),1)],8,hN)):f("v-if",!0),o?.size?.storage>0?(a(),l("span",mN,c(e.fmt?.humanFileSize(o?.size?.storage)),1)):f("v-if",!0),n("span",gN,c(e.fmt?.number(o?.options?.terms?.length))+" "+c(o?.options?.terms?.length===1?"term":"terms"),1),t[55]||(t[55]=n("span",{class:"meta-more",hidden:""},null,-1))],8,rN)])]),n("div",vN,[n("span",yN,[n("span",{class:P(["status-dot","st-"+(o?.status||"unknown")])},null,2),n("span",{textContent:c(e.fmt?.statusLabel(o?.status))},null,8,bN)]),o?.statusMessage?(a(),l("span",{key:0,class:"status-sub",textContent:c(e.fmt?.statusMsg(o?.statusMessage)),title:o?.statusMessage},null,8,wN)):f("v-if",!0)]),n("div",{class:"cell-views num",role:"cell","data-unit":(o?.pageView||0)===1?"view":"views"},[t[57]||(t[57]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1)),t[58]||(t[58]=g()),n("span",{textContent:c(e.fmt?.number(o?.pageView||0))},null,8,CN)],8,kN),n("div",EN,[t[59]||(t[59]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),t[60]||(t[60]=g()),n("span",{textContent:c((e.fmt?.humanTime(o?.anonymizeDate)||"").replace(/^on /,""))},null,8,SN)]),n("div",NN,[n("div",RN,[t[72]||(t[72]=n("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-more"})])],-1)),n("div",PN,[n("a",{class:"dropdown-item",href:e.safeUrl("/anonymize/"+o?.repoId)},[...t[61]||(t[61]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),g(" Edit",-1)])],8,AN),n("a",{class:"dropdown-item",href:e.safeUrl("/r/"+o?.repoId+"/")},[...t[62]||(t[62]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),g(" View repo",-1)])],8,DN),o?.options?.page&&o?.status=="ready"?(a(),l("a",{key:0,class:"dropdown-item",target:"_self",href:e.safeUrl("/w/"+o?.repoId+"/")},[...t[63]||(t[63]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-globe"})],-1),g(" View page",-1)])],8,TN)):f("v-if",!0),n("a",{class:"dropdown-item",href:"#",onClick:ae(d=>e.fetchGithubInfo(o),["prevent"])},[...t[64]||(t[64]=[n("i",{class:"fab fa-github"},null,-1),g(" Live GitHub info",-1)])],8,ON),t[70]||(t[70]=n("div",{class:"dropdown-divider"},null,-1)),D(n("a",{class:"dropdown-item",href:"#",onClick:ae(d=>e.updateRepository(o),["prevent"])},[...t[65]||(t[65]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),g(" Force update",-1)])],8,IN),[[Q,o?.status=="ready"||o?.status=="error"]]),D(n("a",{class:"dropdown-item",href:"#",onClick:ae(d=>e.updateRepository(o),["prevent"])},[...t[66]||(t[66]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-check-circle"})],-1),g(" Enable",-1)])],8,MN),[[Q,o?.status=="removed"]]),D(n("a",{class:"dropdown-item",href:"#",onClick:ae(d=>e.showStatusMessage(o),["prevent"])},[...t[67]||(t[67]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1),g(" View status message",-1)])],8,VN),[[Q,o?.statusMessage]]),t[71]||(t[71]=n("div",{class:"dropdown-divider"},null,-1)),n("a",{class:"dropdown-item",href:"#",onClick:ae(d=>e.removeCache(o),["prevent"])},[...t[68]||(t[68]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-broom"})],-1),g(" Remove cache",-1)])],8,qN),D(n("a",{class:"dropdown-item text-danger",href:"#",onClick:ae(d=>e.removeRepository(o),["prevent"])},[...t[69]||(t[69]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1),g(" Remove",-1)])],8,_N),[[Q,o?.status=="ready"]])])])])],2))),256)),e.filteredRepositories?.length==0?(a(),l("div",$N,[t[73]||(t[73]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1)),t[74]||(t[74]=n("span",null,"No repositories match the current filters.",-1)),e.query.ready&&e.query.expired&&e.query.removed&&e.query.error&&e.query.preparing?f("v-if",!0):(a(),l("button",{key:0,type:"button",class:"btn btn-sm btn-outline-ink",onClick:t[18]||(t[18]=o=>e.showAllStatuses())},"Show all statuses"))])):f("v-if",!0)]),n("div",LN,[t[79]||(t[79]=n("span",{"aria-hidden":"true"},null,-1)),e.totalPage>1?(a(),l("div",FN,[n("button",{class:"btn btn-sm",onClick:t[19]||(t[19]=o=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1},[...t[75]||(t[75]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1),g(" Previous ",-1)])],8,UN),D(n("input",{type:"number",class:"form-control form-control-sm",min:"1",style:{width:"56px"},"aria-label":"Page",max:e.totalPage},null,8,BN),[[s,{state:e.viewState,set:o=>{e.query.page=o},value:e.query?.page,form:null,options:{}}]]),n("span",null,"of "+c(e.totalPage),1),n("button",{class:"btn btn-sm",onClick:t[20]||(t[20]=o=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage},[...t[76]||(t[76]=[g(" Next ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,zN)])):f("v-if",!0),n("span",HN,[t[78]||(t[78]=n("label",null,"Per page",-1)),D((a(),l("select",jN,[...t[77]||(t[77]=[Ee('',5)])])),[[s,{state:e.viewState,set:o=>{e.query.limit=o},value:e.query?.limit,form:null,options:{}}]])])])])}var GN={class:"container paper-page admin-page"},WN={class:"paper-crumbs"},KN={class:"here"},YN={class:"paper-page-title"},XN={key:0,class:"user-detail-card"},JN={class:"user-header"},QN=["src"],ZN={class:"user-header-status"},xN={class:"status-dot-wrap"},eR=["textContent"],tR={key:0,class:"type-badge type-repo"},nR={class:"user-actions",style:{"margin-top":"4px"}},sR={class:"user-detail-grid"},oR={class:"detail-value mono-id"},iR={class:"detail-value"},rR=["href"],aR={class:"detail-value"},lR={class:"detail-value"},dR={key:0},uR={key:1,class:"text-muted"},cR={class:"detail-value"},pR={key:0,style:{"margin-top":"20px"}},fR={class:"paper-table w-100",style:{"margin-top":"10px"}},hR={class:"paper-table-row",style:{"grid-template-columns":"1fr 160px"}},mR={class:"cell-anon",role:"cell"},gR={class:"anon-text"},vR=["textContent"],yR={class:"cell-expires",role:"cell"},bR={key:1,class:"admin-section-header"},wR={class:"section-count"},kR={key:2,class:"user-detail-card"},CR={type:"text",class:"form-control",placeholder:"Token name (e.g. dev-laptop)",required:""},ER={key:0,class:"alert alert-warning",role:"alert"},SR={style:{"white-space":"pre-wrap","word-break":"break-all",margin:"8px 0 0","font-family":"var(--font-mono)","font-size":"0.85rem"}},NR={key:1,class:"paper-table w-100"},RR={class:"paper-table-row",role:"row",style:{"grid-template-columns":"1fr 200px 200px 80px"}},PR=["textContent"],AR=["textContent"],DR={role:"cell"},TR={key:0},OR={key:1,class:"text-muted"},IR={role:"cell"},MR=["onClick"],VR={key:2,class:"paper-table-empty"},qR={class:"admin-section-header"},_R={class:"section-count"},$R={class:"seg-bar"},LR={class:"seg-filter",role:"radiogroup","aria-label":"Filter by status"},FR=["aria-checked"],UR={class:"count"},BR=["aria-checked"],zR={class:"count"},HR=["aria-checked"],jR={class:"count"},GR=["aria-checked"],WR={class:"count"},KR=["aria-checked"],YR={class:"count"},XR=["aria-checked"],JR={class:"count"},QR={class:"seg-countline",role:"status"},ZR={class:"w-100 admin-filter-toolbar","aria-label":"Repositories","accept-charset":"UTF-8"},xR={class:"admin-filter-row"},e4={class:"search-wrap"},t4={type:"search",class:"form-control","aria-label":"Search repositories",placeholder:"Search repositories or errors\u2026",autocomplete:"off"},n4={key:3,class:"bulk-bar"},s4={class:"paper-table paper-table-repos has-bulk w-100",role:"table","aria-label":"Repositories"},o4={class:"paper-table-head",role:"row"},i4={role:"columnheader",style:{width:"28px"}},r4=["checked"],a4={role:"columnheader"},l4={role:"columnheader"},d4={role:"columnheader",class:"num"},u4={role:"columnheader"},c4={role:"cell",style:{width:"28px"}},p4={type:"checkbox","aria-label":"Select repository"},f4={class:"cell-anon",role:"cell"},h4={class:"anon-text"},m4=["textContent","href"],g4=["title"],v4=["href"],y4=["textContent"],b4=["textContent"],w4=["data-meta-label"],k4=["title","textContent","href"],C4=["data-meta-label"],E4=["textContent","href"],S4=["data-meta-label"],N4={key:3,class:"meta-item"},R4={class:"meta-item"},P4={class:"cell-status",role:"cell"},A4={class:"status-line"},D4=["textContent"],T4=["textContent","title"],O4=["data-unit","textContent"],I4=["textContent"],M4={class:"cell-actions",role:"cell"},V4={class:"dropdown"},q4={class:"dropdown-menu dropdown-menu-right"},_4=["href"],$4=["href"],L4=["href"],F4=["onClick"],U4=["onClick"],B4=["onClick"],z4=["onClick"],H4=["onClick"],j4=["onClick"],G4={key:0,class:"paper-table-empty"};function sp(e,t){let s=Ae("field"),i=Ae("form");return a(),l("div",GN,[n("div",WN,[t[23]||(t[23]=n("a",{href:"/admin/"},"Admin",-1)),t[24]||(t[24]=g(" \xA0/\xA0 ",-1)),t[25]||(t[25]=n("a",{href:"/admin/users"},"Users",-1)),t[26]||(t[26]=g(" \xA0/\xA0 ",-1)),n("span",KN,c(e.userInfo?.username||"Profile"),1)]),n("h1",YN,c(e.userInfo?.username||"User"),1),t[93]||(t[93]=Ee('',1)),e.userInfo?(a(),l("div",XN,[n("div",JN,[e.userInfo?.photo?(a(),l("img",{key:0,width:"56",height:"56",src:e.safeUrl(e.userInfo?.photo)},null,8,QN)):f("v-if",!0),n("div",null,[n("div",ZN,[n("span",xN,[n("span",{class:P(["status-dot","st-"+(e.userInfo?.status||"unknown")])},null,2),n("span",{textContent:c(e.fmt?.title(e.userInfo?.status))},null,8,eR)]),e.userInfo?.isAdmin?(a(),l("span",tR,"Admin")):f("v-if",!0)]),n("div",nR,[e.userInfo?.status!=="banned"&&e.userInfo?.username!==e.user?.username?(a(),l("button",{key:0,class:"btn btn-sm btn-outline-danger",onClick:t[0]||(t[0]=o=>e.banUser())},[...t[27]||(t[27]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-ban"})],-1),g(" Ban",-1)])])):f("v-if",!0),e.userInfo?.status==="banned"||e.userInfo?.status==="removed"?(a(),l("button",{key:1,class:"btn btn-sm",onClick:t[1]||(t[1]=o=>e.activateUser())},[...t[28]||(t[28]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-check-circle"})],-1),g(" Activate",-1)])])):f("v-if",!0),e.userInfo?.isAdmin?f("v-if",!0):(a(),l("button",{key:2,class:"btn btn-sm",onClick:t[2]||(t[2]=o=>e.promoteUser())},[...t[29]||(t[29]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-user-shield"})],-1),g(" Promote to admin",-1)])])),e.userInfo?.isAdmin&&e.userInfo?.username!==e.user?.username?(a(),l("button",{key:3,class:"btn btn-sm btn-outline-ink",onClick:t[3]||(t[3]=o=>e.demoteUser())},[...t[30]||(t[30]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-user-minus"})],-1),g(" Remove admin",-1)])])):f("v-if",!0)])])]),n("div",sR,[t[33]||(t[33]=n("div",{class:"detail-label"},"ID",-1)),n("div",oR,c(e.userInfo?._id),1),t[34]||(t[34]=n("div",{class:"detail-label"},"Email",-1)),n("div",{class:P(["detail-value",{"is-empty":!e.userInfo?.emails?.[0]?.email}])},c(e.userInfo?.emails?.[0]?.email||"Not shared"),3),t[35]||(t[35]=n("div",{class:"detail-label"},"Access token",-1)),n("div",{class:P(["detail-value",{"is-empty":!e.userInfo?.accessTokens?.github}]),style:{"font-family":"var(--font-mono)","font-size":"0.85rem"}},c(e.userInfo?.accessTokens?.github||"Not stored"),3),t[36]||(t[36]=n("div",{class:"detail-label"},"GitHub",-1)),n("div",iR,[n("a",{target:"_blank",href:e.safeUrl("https://github.com/"+e.userInfo?.username)},[t[31]||(t[31]=n("i",{class:"fab fa-github"},null,-1)),g(" "+c(e.userInfo?.username),1)],8,rR)]),t[37]||(t[37]=n("div",{class:"detail-label"},"Created",-1)),n("div",aR,c(e.fmt?.humanTime(e.userInfo?.dateOfEntry)),1),t[38]||(t[38]=n("div",{class:"detail-label"},"Last connection",-1)),n("div",lR,[e.userInfo?.accessTokenDates?.github?(a(),l("span",dR,c(e.fmt?.humanTime(e.userInfo?.accessTokenDates?.github)),1)):f("v-if",!0),e.userInfo?.accessTokenDates?.github?f("v-if",!0):(a(),l("span",uR,"Not recorded (GitHub App sign-in)"))]),t[39]||(t[39]=n("div",{class:"detail-label"},"GitHub repos",-1)),n("div",cR,[g(c(e.userInfo?.repositories?.length?e.userInfo.repositories.length+" repositories":"Not synced")+" ",1),e.userInfo?.repositories?.length?(a(),l("button",{key:0,class:"btn btn-sm ml-2",onClick:t[4]||(t[4]=o=>e.showRepos=!e.showRepos)},c(e.showRepos?"Hide repos":"Show repos"),1)):f("v-if",!0),n("button",{class:"btn btn-sm ml-1",onClick:t[5]||(t[5]=o=>e.getGitHubRepositories())},[...t[32]||(t[32]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),g(" Refresh ",-1)])])])]),e.showRepos?(a(),l("div",pR,[t[42]||(t[42]=n("div",{class:"paper-section-eyebrow"},"GitHub repositories",-1)),n("div",fR,[(a(!0),l(q,null,x(e.userInfo?.repositories,(o,r)=>(a(),l("div",hR,[n("div",mR,[t[40]||(t[40]=n("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Repository"},[n("use",{href:"#project-type-repo"})],-1)),n("div",gR,[n("span",{class:"repo-name",textContent:c(o?.name)},null,8,vR)])]),n("div",yR,[t[41]||(t[41]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-database"})],-1)),g(" "+c(e.fmt?.humanFileSize(o?.size)),1)])]))),256))])])):f("v-if",!0)])):f("v-if",!0),e.userInfo&&e.userInfo?.isAdmin&&e.user&&e.user?.username==e.userInfo?.username?(a(),l("div",bR,[t[43]||(t[43]=n("h2",null,[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-key"})]),g(" API tokens")],-1)),n("span",wR,c(e.tokens?.length),1)])):f("v-if",!0),e.userInfo&&e.userInfo?.isAdmin&&e.user&&e.user?.username==e.userInfo?.username?(a(),l("div",kR,[t[49]||(t[49]=n("p",{class:"paper-page-lede"},[g("Personal API tokens for this admin account. Send as "),n("code",null,"Authorization: Bearer "),g(" to authenticate without GitHub OAuth (useful for development).")],-1)),D((a(),l("form",{class:"d-flex",style:{gap:"8px","margin-bottom":"12px"},onSubmit:t[6]||(t[6]=ae(o=>e.submitForm(o,()=>{e.createToken()}),["prevent"]))},[D(n("input",CR,null,512),[[s,{state:e.viewState,set:o=>{e.tokenForm.name=o},value:e.tokenForm?.name,form:null,options:{}}]]),t[44]||(t[44]=n("button",{type:"submit",class:"btn btn-ink"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-plus"})]),g(" Generate")],-1))],32)),[[i,e.viewState]]),e.tokenForm?.plaintext?(a(),l("div",ER,[t[45]||(t[45]=n("strong",null,"Copy this token now \u2014 it will not be shown again:",-1)),n("pre",SR,c(e.tokenForm?.plaintext),1),n("button",{class:"btn btn-sm",onClick:t[7]||(t[7]=o=>e.tokenForm.plaintext=null)},"Dismiss")])):f("v-if",!0),e.tokens?.length?(a(),l("div",NR,[t[47]||(t[47]=n("div",{class:"paper-table-head",role:"row",style:{"grid-template-columns":"1fr 200px 200px 80px"}},[n("div",{role:"columnheader"},"Name"),n("div",{role:"columnheader"},"Created"),n("div",{role:"columnheader"},"Last used"),n("div",{role:"columnheader","aria-label":"Actions"})],-1)),(a(!0),l(q,null,x(e.tokens,(o,r)=>(a(),l("div",RR,[n("div",{role:"cell",textContent:c(o?.name)},null,8,PR),n("div",{role:"cell",textContent:c(e.fmt?.humanTime(o?.createdAt))},null,8,AR),n("div",DR,[o?.lastUsedAt?(a(),l("span",TR,c(e.fmt?.humanTime(o?.lastUsedAt)),1)):f("v-if",!0),o?.lastUsedAt?f("v-if",!0):(a(),l("span",OR,"never"))]),n("div",IR,[n("button",{class:"btn btn-sm text-danger btn-icon",title:"Revoke","aria-label":"Revoke token",onClick:d=>e.revokeToken(o)},[...t[46]||(t[46]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1)])],8,MR)])]))),256))])):f("v-if",!0),e.tokens?.length?f("v-if",!0):(a(),l("div",VR,[...t[48]||(t[48]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1),n("span",null,"No tokens yet.",-1)])]))])):f("v-if",!0),n("div",qR,[t[50]||(t[50]=n("h2",null,[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})]),g(" Anonymized repositories")],-1)),n("span",_R,c(e.repositories?.length),1)]),n("div",$R,[n("div",LR,[n("button",{type:"button",role:"radio",class:P(["seg-chip",{active:e.segView()==="all"}]),"aria-checked":e.segView()==="all",onClick:t[8]||(t[8]=o=>e.setSegView("all"))},[t[51]||(t[51]=g("All ",-1)),n("span",UR,c(e.fmt?.number(e.segCount("all"))),1)],10,FR),n("button",{type:"button",role:"radio",class:P(["seg-chip",{active:e.segView()==="ready","is-empty":!e.segCount("ready")}]),"aria-checked":e.segView()==="ready",onClick:t[9]||(t[9]=o=>e.setSegView("ready"))},[t[52]||(t[52]=n("span",{class:"seg-dot ok","aria-hidden":"true"},null,-1)),t[53]||(t[53]=g("Ready ",-1)),n("span",zR,c(e.fmt?.number(e.segCount("ready"))),1)],10,BR),n("button",{type:"button",role:"radio",class:P(["seg-chip",{active:e.segView()==="preparing","is-empty":!e.segCount("preparing")}]),"aria-checked":e.segView()==="preparing",onClick:t[10]||(t[10]=o=>e.setSegView("preparing"))},[t[54]||(t[54]=n("span",{class:"seg-dot warn","aria-hidden":"true"},null,-1)),t[55]||(t[55]=g("Preparing ",-1)),n("span",jR,c(e.fmt?.number(e.segCount("preparing"))),1)],10,HR),n("button",{type:"button",role:"radio",class:P(["seg-chip",{active:e.segView()==="error","is-empty":!e.segCount("error")}]),"aria-checked":e.segView()==="error",onClick:t[11]||(t[11]=o=>e.setSegView("error"))},[t[56]||(t[56]=n("span",{class:"seg-dot bad","aria-hidden":"true"},null,-1)),t[57]||(t[57]=g("Error ",-1)),n("span",WR,c(e.fmt?.number(e.segCount("error"))),1)],10,GR),n("button",{type:"button",role:"radio",class:P(["seg-chip",{active:e.segView()==="expired","is-empty":!e.segCount("expired")}]),"aria-checked":e.segView()==="expired",onClick:t[12]||(t[12]=o=>e.setSegView("expired"))},[t[58]||(t[58]=n("span",{class:"seg-dot off","aria-hidden":"true"},null,-1)),t[59]||(t[59]=g("Expiring / expired ",-1)),n("span",YR,c(e.fmt?.number(e.segCount("expired"))),1)],10,KR),n("button",{type:"button",role:"radio",class:P(["seg-chip",{active:e.segView()==="removed","is-empty":!e.segCount("removed")}]),"aria-checked":e.segView()==="removed",onClick:t[13]||(t[13]=o=>e.setSegView("removed"))},[t[60]||(t[60]=n("span",{class:"seg-dot off","aria-hidden":"true"},null,-1)),t[61]||(t[61]=g("Removing / removed ",-1)),n("span",JR,c(e.fmt?.number(e.segCount("removed"))),1)],10,XR)]),n("p",QR,[n("strong",null,c(e.fmt.number(e.filteredRepositories?.length||0)),1),t[62]||(t[62]=g(" shown",-1))])]),D((a(),l("form",ZR,[n("div",xR,[n("div",e4,[D(n("input",t4,null,512),[[s,{state:e.viewState,set:o=>{e.search=o},value:e.search,form:null,options:{}}]])]),t[64]||(t[64]=n("span",{class:"admin-filter-spacer"},null,-1)),n("button",{class:"btn btn-sm",type:"button",title:"Export current view to CSV",onClick:t[14]||(t[14]=o=>e.exportCsv())},[...t[63]||(t[63]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-export"})],-1),g(" Export",-1)])])])])),[[i,e.viewState]]),e.selectedCount()>0?(a(),l("div",n4,[n("span",null,[n("strong",null,c(e.selectedCount()),1),t[65]||(t[65]=g(" selected",-1))]),n("button",{class:"btn btn-sm",type:"button",onClick:t[15]||(t[15]=o=>e.bulkRefresh())},[...t[66]||(t[66]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),g(" Force refresh",-1)])]),n("button",{class:"btn btn-sm text-danger",type:"button",onClick:t[16]||(t[16]=o=>e.bulkRemoveCache())},[...t[67]||(t[67]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-broom"})],-1),g(" Remove cache",-1)])]),n("button",{class:"btn btn-sm",type:"button",onClick:t[17]||(t[17]=o=>e.clearSelection())},"Clear")])):f("v-if",!0),n("div",s4,[n("div",o4,[n("div",i4,[n("input",{type:"checkbox","aria-label":"Select all on page",onClick:t[18]||(t[18]=o=>e.selectAllOnPage()),checked:e.allSelected},null,8,r4)]),n("div",a4,[n("button",{type:"button",class:P(["sortable",{active:e.query?.sort=="source.repositoryName"}]),onClick:t[19]||(t[19]=o=>e.sortBy("source.repositoryName"))},[t[69]||(t[69]=g("Repository ",-1)),e.sortIcon("source.repositoryName")?(a(),l("svg",{key:0,class:P(["ui-icon sort-direction",{ascending:e.sortIcon("source.repositoryName")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[68]||(t[68]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)]),n("div",l4,[n("button",{type:"button",class:P(["sortable",{active:e.query?.sort=="status"}]),onClick:t[20]||(t[20]=o=>e.sortBy("status"))},[t[71]||(t[71]=g("Status ",-1)),e.sortIcon("status")?(a(),l("svg",{key:0,class:P(["ui-icon sort-direction",{ascending:e.sortIcon("status")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[70]||(t[70]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)]),n("div",d4,[n("button",{type:"button",class:P(["sortable",{active:e.query?.sort=="pageView"}]),onClick:t[21]||(t[21]=o=>e.sortBy("pageView"))},[t[73]||(t[73]=g("Views ",-1)),e.sortIcon("pageView")?(a(),l("svg",{key:0,class:P(["ui-icon sort-direction",{ascending:e.sortIcon("pageView")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[72]||(t[72]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)]),n("div",u4,[n("button",{type:"button",class:P(["sortable",{active:e.query?.sort=="anonymizeDate"}]),onClick:t[22]||(t[22]=o=>e.sortBy("anonymizeDate"))},[t[75]||(t[75]=g("Anonymized ",-1)),e.sortIcon("anonymizeDate")?(a(),l("svg",{key:0,class:P(["ui-icon sort-direction",{ascending:e.sortIcon("anonymizeDate")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[74]||(t[74]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)]),t[76]||(t[76]=n("div",{role:"columnheader","aria-label":"Actions"},null,-1))]),(a(!0),l(q,null,x(e.filteredRepositories,(o,r)=>(a(),l("div",{class:P(["paper-table-row",{"repo-inactive":o?.status=="expired"||o?.status=="removed","repo-error":o?.status=="error","row-selected":e.selected[o?.repoId]}]),role:"row"},[n("div",c4,[D(n("input",p4,null,512),[[s,{state:e.viewState,set:d=>{e.selected[o.repoId]=d},value:e.selected[o?.repoId],form:null,options:{}}]])]),n("div",f4,[t[79]||(t[79]=n("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Repository"},[n("use",{href:"#project-type-repo"})],-1)),n("div",h4,[n("a",{class:"repo-name",target:"_blank",textContent:c(o?.repoId),href:e.safeUrl("/r/"+o?.repoId)},null,8,m4),n("div",{class:"anon-sub anon-meta","data-meta-fit":"",title:[o?.source?.fullName||o?.source?.repositoryName,o?.options?.update?"branch "+o?.source?.branch:"commit "+o?.source?.commit?.substring(0,7),o?.conference?"conference "+o?.conference:"",o?.size?.storage>0?e.fmt?.humanFileSize(o?.size?.storage):"",e.fmt?.number(o?.options?.terms?.length)+(o?.options?.terms?.length===1?" term":" terms")].filter(Boolean).join(" \xB7 ")},[n("a",{class:"src-path",href:e.safeUrl("https://github.com/"+o?.source?.fullName+"/")},[(o?.source?.fullName||"").includes("/")?(a(),l("span",{key:0,class:"src-owner",textContent:c((d=>d.length>16?d.slice(0,14)+"\u2026":d)((o?.source?.fullName||"").split("/")[0]))},null,8,y4)):f("v-if",!0),n("span",{class:"src-repo",textContent:c((o?.source?.fullName||"").includes("/")?"/"+(o?.source?.fullName||"").split("/").slice(1).join("/"):o?.source?.fullName)},null,8,b4)],8,v4),o?.options?.update?f("v-if",!0):(a(),l("span",{key:0,class:"meta-item","data-meta-label":"commit "+(o?.source?.commit||"").substring(0,7)},[n("a",{class:"mono-hash",title:o?.source?.commit,textContent:c(o?.source?.commit?.substring(0,7)),href:e.safeUrl("https://github.com/"+o?.source?.fullName+"/tree/"+o?.source?.commit)},null,8,k4)],8,w4)),o?.options?.update?(a(),l("span",{key:1,class:"meta-item","data-meta-label":"branch "+(o?.source?.branch||"")},[n("a",{textContent:c(o?.source?.branch),href:e.safeUrl("https://github.com/"+o?.source?.fullName+"/tree/"+o?.source?.branch)},null,8,E4)],8,C4)):f("v-if",!0),o?.conference?(a(),l("span",{key:2,class:"meta-item meta-conf","data-meta-label":"conference "+o?.conference},[t[77]||(t[77]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-conference"})],-1)),g(" "+c(o?.conference),1)],8,S4)):f("v-if",!0),o?.size?.storage>0?(a(),l("span",N4,c(e.fmt?.humanFileSize(o?.size?.storage)),1)):f("v-if",!0),n("span",R4,c(e.fmt?.number(o?.options?.terms?.length))+" "+c(o?.options?.terms?.length===1?"term":"terms"),1),t[78]||(t[78]=n("span",{class:"meta-more",hidden:""},null,-1))],8,g4)])]),n("div",P4,[n("span",A4,[n("span",{class:P(["status-dot","st-"+(o?.status||"unknown")])},null,2),n("span",{textContent:c(e.fmt?.statusLabel(o?.status))},null,8,D4)]),o?.statusMessage?(a(),l("span",{key:0,class:"status-sub",textContent:c(e.fmt?.statusMsg(o?.statusMessage)),title:o?.statusMessage},null,8,T4)):f("v-if",!0)]),n("div",{class:"cell-views num",role:"cell","data-unit":(o?.pageView||0)===1?"view":"views",textContent:c(e.fmt?.number(o?.pageView||0))},null,8,O4),n("div",{class:"cell-expires",role:"cell",textContent:c(e.fmt?.humanTime(o?.anonymizeDate))},null,8,I4),n("div",M4,[n("div",V4,[t[91]||(t[91]=n("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-more"})])],-1)),n("div",q4,[n("a",{class:"dropdown-item",href:e.safeUrl("/anonymize/"+o?.repoId)},[...t[80]||(t[80]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),g(" Edit",-1)])],8,_4),n("a",{class:"dropdown-item",href:e.safeUrl("/r/"+o?.repoId+"/")},[...t[81]||(t[81]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),g(" View repo",-1)])],8,$4),o?.options?.page&&o?.status=="ready"?(a(),l("a",{key:0,class:"dropdown-item",target:"_self",href:e.safeUrl("/w/"+o?.repoId+"/")},[...t[82]||(t[82]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-globe"})],-1),g(" View page",-1)])],8,L4)):f("v-if",!0),n("a",{class:"dropdown-item",href:"#",onClick:ae(d=>e.fetchGithubInfo(o),["prevent"])},[...t[83]||(t[83]=[n("i",{class:"fab fa-github"},null,-1),g(" Live GitHub info",-1)])],8,F4),t[89]||(t[89]=n("div",{class:"dropdown-divider"},null,-1)),D(n("a",{class:"dropdown-item",href:"#",onClick:ae(d=>e.updateRepository(o),["prevent"])},[...t[84]||(t[84]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),g(" Force update",-1)])],8,U4),[[Q,o?.status=="ready"||o?.status=="error"]]),D(n("a",{class:"dropdown-item",href:"#",onClick:ae(d=>e.updateRepository(o),["prevent"])},[...t[85]||(t[85]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-check-circle"})],-1),g(" Enable",-1)])],8,B4),[[Q,o?.status=="removed"]]),D(n("a",{class:"dropdown-item",href:"#",onClick:ae(d=>e.showStatusMessage(o),["prevent"])},[...t[86]||(t[86]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1),g(" View status message",-1)])],8,z4),[[Q,o?.statusMessage]]),t[90]||(t[90]=n("div",{class:"dropdown-divider"},null,-1)),n("a",{class:"dropdown-item",href:"#",onClick:ae(d=>e.removeCache(o),["prevent"])},[...t[87]||(t[87]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-broom"})],-1),g(" Remove cache",-1)])],8,H4),D(n("a",{class:"dropdown-item text-danger",href:"#",onClick:ae(d=>e.removeRepository(o),["prevent"])},[...t[88]||(t[88]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1),g(" Remove",-1)])],8,j4),[[Q,o?.status=="ready"]])])])])],2))),256)),e.filteredRepositories?.length==0?(a(),l("div",G4,[...t[92]||(t[92]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1),n("span",null,"No repositories match the current filters.",-1)])])):f("v-if",!0)])])}var W4={class:"container paper-page admin-page"},K4={class:"seg-bar"},Y4={class:"seg-filter",role:"radiogroup","aria-label":"Filter by status"},X4=["aria-checked"],J4={class:"count"},Q4=["aria-checked"],Z4={class:"count"},x4=["aria-checked"],eP={class:"count"},tP=["aria-checked"],nP={class:"count"},sP={class:"seg-countline",role:"status"},oP={key:0,class:"alert alert-danger",style:{margin:"8px 0"}},iP={class:"w-100 admin-filter-toolbar","aria-label":"Users","accept-charset":"UTF-8"},rP={class:"admin-filter-row"},aP={class:"search-wrap"},lP={type:"search",class:"form-control","aria-label":"Search users",placeholder:"Search username or email\u2026",autocomplete:"off"},dP={key:0,class:"admin-search-hint"},uP={class:"admin-filter-inline"},cP={class:"form-control form-control-sm"},pP={key:0,class:"admin-filter-inline","aria-label":"Pagination"},fP=["disabled"],hP={style:{"font-family":"var(--font-mono)","font-size":"12px",color:"var(--ink-muted)"}},mP=["disabled"],gP={key:0,class:"admin-filter-row"},vP={class:"admin-active-chips"},yP={class:"key"},bP=["onClick"],wP={key:1,class:"bulk-bar"},kP={class:"paper-table w-100",role:"table","aria-label":"Users",style:{"--cols":"28px minmax(280px, 2.4fr) 100px 140px 140px 52px"}},CP={class:"paper-table-head admin-users-row",role:"row"},EP={role:"columnheader",style:{width:"28px"}},SP=["checked"],NP={role:"columnheader"},RP={role:"columnheader"},PP={role:"cell",style:{width:"28px"}},AP={type:"checkbox","aria-label":"Select user"},DP={class:"cell-anon",role:"cell"},TP=["src"],OP={key:1,class:"avatar-fallback","aria-hidden":"true"},IP={class:"anon-text"},MP={class:"user-name-line"},VP=["textContent","href"],qP=["href","title","aria-label"],_P={class:"anon-sub meta-dots"},$P=["title"],LP={key:1},FP={class:"cell-views num",role:"cell"},UP=["title","textContent","href"],BP={class:"cell-status",role:"cell"},zP=["textContent"],HP={class:"cell-status",role:"cell"},jP={key:0,class:"role-pill"},GP={key:1,class:"empty-dash"},WP={class:"cell-actions",role:"cell"},KP={class:"dropdown"},YP={class:"dropdown-menu dropdown-menu-right"},XP=["href"],JP=["href"],QP=["onClick"],ZP=["onClick"],xP={key:0,class:"paper-table-empty"},eA={class:"admin-toolbar",style:{"justify-content":"space-between","border-bottom":"none"}},tA={key:0,class:"pagination-compact"},nA=["disabled"],sA=["max"],oA=["disabled"],iA={class:"admin-filter-inline"},rA={class:"form-control form-control-sm"};function op(e,t){let s=Ae("field"),i=Ae("form");return a(),l("div",W4,[t[53]||(t[53]=Ee('
Admin \xA0/\xA0 Users

Users

',3)),n("div",K4,[n("div",Y4,[n("button",{type:"button",role:"radio",class:P(["seg-chip",{active:!e.query?.status}]),"aria-checked":!e.query?.status,onClick:t[0]||(t[0]=o=>{e.query.status="",e.query.page=1})},[t[14]||(t[14]=g("All ",-1)),n("span",J4,c(e.fmt?.number(e.statusCountFor("active")+e.statusCountFor("banned")+e.statusCountFor("removed"))),1)],10,X4),n("button",{type:"button",role:"radio",class:P(["seg-chip",{active:e.query?.status==="active","is-empty":!e.statusCountFor("active")}]),"aria-checked":e.query?.status==="active",onClick:t[1]||(t[1]=o=>{e.query.status="active",e.query.page=1})},[t[15]||(t[15]=n("span",{class:"seg-dot ok","aria-hidden":"true"},null,-1)),t[16]||(t[16]=g("Active ",-1)),n("span",Z4,c(e.fmt?.number(e.statusCountFor("active"))),1)],10,Q4),n("button",{type:"button",role:"radio",class:P(["seg-chip",{active:e.query?.status==="banned","is-empty":!e.statusCountFor("banned")}]),"aria-checked":e.query?.status==="banned",onClick:t[2]||(t[2]=o=>{e.query.status="banned",e.query.page=1})},[t[17]||(t[17]=n("span",{class:"seg-dot bad","aria-hidden":"true"},null,-1)),t[18]||(t[18]=g("Banned ",-1)),n("span",eP,c(e.fmt?.number(e.statusCountFor("banned"))),1)],10,x4),n("button",{type:"button",role:"radio",class:P(["seg-chip",{active:e.query?.status==="removed","is-empty":!e.statusCountFor("removed")}]),"aria-checked":e.query?.status==="removed",onClick:t[3]||(t[3]=o=>{e.query.status="removed",e.query.page=1})},[t[19]||(t[19]=n("span",{class:"seg-dot off","aria-hidden":"true"},null,-1)),t[20]||(t[20]=g("Removed ",-1)),n("span",nP,c(e.fmt?.number(e.statusCountFor("removed"))),1)],10,tP)]),n("p",sP,[n("strong",null,c(e.total>=0?e.fmt.number(e.total):"\u2026"),1),t[21]||(t[21]=g(" shown",-1))])]),e.fetchError?(a(),l("div",oP,[t[22]||(t[22]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),g(" "+c(e.fetchError),1)])):f("v-if",!0),D((a(),l("form",iP,[n("div",rP,[n("div",aP,[D(n("input",lP,null,512),[[s,{state:e.viewState,set:o=>{e.query.search=o},value:e.query?.search,form:null,options:{}}]]),e.query?.search?f("v-if",!0):(a(),l("span",dP,"/"))]),n("span",uP,[t[24]||(t[24]=n("label",null,"Role",-1)),D((a(),l("select",cP,[...t[23]||(t[23]=[n("option",{value:""},"Any",-1),n("option",{value:"admin"},"Admin",-1)])])),[[s,{state:e.viewState,set:o=>{e.query.role=o},value:e.query?.role,form:null,options:{}}]])]),t[28]||(t[28]=n("span",{class:"admin-filter-spacer"},null,-1)),n("button",{class:"btn btn-sm",type:"button",onClick:t[4]||(t[4]=o=>e.exportCsv())},[...t[25]||(t[25]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-export"})],-1),g(" Export",-1)])]),e.totalPage>1?(a(),l("span",pP,[n("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[5]||(t[5]=o=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1,"aria-label":"Previous page"},[...t[26]||(t[26]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1)])],8,fP),n("span",hP,c(e.query?.page)+"/"+c(e.totalPage||1),1),n("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[6]||(t[6]=o=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage,"aria-label":"Next page"},[...t[27]||(t[27]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,mP)])):f("v-if",!0)]),e.chips?.length?(a(),l("div",gP,[n("div",vP,[(a(!0),l(q,null,x(e.chips,(o,r)=>(a(),l("span",{class:"admin-active-chip",key:o?.key},[n("span",yP,c(o?.label),1),n("span",null,c(o?.value),1),n("button",{type:"button",onClick:d=>e.clearFilter(o.key),"aria-label":"Clear filter"},[...t[29]||(t[29]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])],8,bP)]))),128))])])):f("v-if",!0)])),[[i,e.viewState]]),e.selectedCount()>0?(a(),l("div",wP,[n("span",null,[n("strong",null,c(e.selectedCount()),1),t[30]||(t[30]=g(" selected",-1))]),n("button",{class:"btn btn-sm text-danger",type:"button",onClick:t[7]||(t[7]=o=>e.bulkBan())},[...t[31]||(t[31]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-ban"})],-1),g(" Ban",-1)])]),n("button",{class:"btn btn-sm",type:"button",onClick:t[8]||(t[8]=o=>{e.selected={},e.allSelected=!1})},"Clear")])):f("v-if",!0),n("div",kP,[n("div",CP,[n("div",EP,[n("input",{type:"checkbox","aria-label":"Select all on page",onClick:t[9]||(t[9]=o=>e.selectAllOnPage()),checked:e.allSelected},null,8,SP)]),n("div",NP,[n("button",{type:"button",class:P(["sortable",{active:e.query?.sort=="username"}]),onClick:t[10]||(t[10]=o=>e.sortBy("username"))},[t[33]||(t[33]=g("User ",-1)),e.sortIcon("username")?(a(),l("svg",{key:0,class:P(["ui-icon sort-direction",{ascending:e.sortIcon("username")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[32]||(t[32]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)]),t[36]||(t[36]=n("div",{role:"columnheader",class:"num",title:"Repositories discovered on the user's GitHub account"},"GitHub repos",-1)),n("div",RP,[n("button",{type:"button",class:P(["sortable",{active:e.query?.sort=="status"}]),onClick:t[11]||(t[11]=o=>e.sortBy("status"))},[t[35]||(t[35]=g("Status ",-1)),e.sortIcon("status")?(a(),l("svg",{key:0,class:P(["ui-icon sort-direction",{ascending:e.sortIcon("status")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[34]||(t[34]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)]),t[37]||(t[37]=n("div",{role:"columnheader"},"Role",-1)),t[38]||(t[38]=n("div",{role:"columnheader","aria-label":"Actions"},null,-1))]),(a(!0),l(q,null,x(e.filteredUsers,(o,r)=>(a(),l("div",{class:P(["paper-table-row admin-users-row",{"row-selected":e.selected[o?.username]}]),role:"row"},[n("div",PP,[D(n("input",AP,null,512),[[s,{state:e.viewState,set:d=>{e.selected[o.username]=d},value:e.selected[o?.username],form:null,options:{}}]])]),n("div",DP,[o?.photo?(a(),l("img",{key:0,width:"28",height:"28",class:"rounded-circle",style:{"flex-shrink":"0"},src:e.safeUrl(o?.photo)},null,8,TP)):(a(),l("span",OP,c((o?.username||"?").charAt(0).toUpperCase()),1)),n("div",IP,[n("span",MP,[n("a",{class:"repo-name",textContent:c(o?.username),href:e.safeUrl("/admin/users/"+o?.username)},null,8,VP),n("a",{class:"user-gh-link",target:"_blank",rel:"noopener",href:e.safeUrl("https://github.com/"+o?.username),title:o?.username+" on GitHub","aria-label":o?.username+" on GitHub"},[...t[39]||(t[39]=[n("i",{class:"fab fa-github","aria-hidden":"true"},null,-1)])],8,qP)]),n("div",_P,[o?.emails?.[0]?.email?(a(),l("span",{key:0,class:"meta-email meta-tail",title:o?.emails?.[0]?.email},c(o?.emails?.[0]?.email),9,$P)):f("v-if",!0),o?.dateOfEntry?(a(),l("span",LP,"Joined "+c(e.fmt?.humanTime(o?.dateOfEntry)),1)):f("v-if",!0)])])]),n("div",FP,[t[40]||(t[40]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})],-1)),n("a",{title:o?.repoCount?"Show this user\u2019s repositories":"Repositories not synced yet",textContent:c(o?.repoCount?e.fmt?.number(o.repoCount):"Not synced"),class:P({"is-unsynced":!o?.repoCount}),href:e.safeUrl("/admin/repositories?owner="+o?.username)},null,10,UP)]),n("div",BP,[n("span",{class:P(["status-dot","st-"+(o?.status||"unknown")])},null,2),n("span",{textContent:c(e.fmt?.title(o?.status))},null,8,zP)]),n("div",HP,[o?.isAdmin?(a(),l("span",jP,"Admin")):f("v-if",!0),o?.isAdmin?f("v-if",!0):(a(),l("span",GP,"\u2014"))]),n("div",WP,[n("div",KP,[t[46]||(t[46]=n("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-more"})])],-1)),n("div",YP,[n("a",{class:"dropdown-item",href:e.safeUrl("/admin/users/"+o?.username)},[...t[41]||(t[41]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),g(" View details",-1)])],8,XP),n("a",{class:"dropdown-item",href:e.safeUrl("/admin/repositories?owner="+o?.username)},[...t[42]||(t[42]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})],-1),g(" View repositories",-1)])],8,JP),t[45]||(t[45]=n("div",{class:"dropdown-divider"},null,-1)),D(n("a",{class:"dropdown-item text-danger",href:"#",onClick:ae(d=>e.banUser(o),["prevent"])},[...t[43]||(t[43]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-ban"})],-1),g(" Ban",-1)])],8,QP),[[Q,o?.status=="active"]]),D(n("a",{class:"dropdown-item",href:"#",onClick:ae(d=>e.activateUser(o),["prevent"])},[...t[44]||(t[44]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-check-circle"})],-1),g(" Activate",-1)])],8,ZP),[[Q,o?.status=="removed"||o?.status=="banned"]])])])])],2))),256)),e.filteredUsers?.length==0?(a(),l("div",xP,[...t[47]||(t[47]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1),n("span",null,"No users match the current filters.",-1)])])):f("v-if",!0)]),n("div",eA,[t[52]||(t[52]=n("span",{"aria-hidden":"true"},null,-1)),e.totalPage>1?(a(),l("div",tA,[n("button",{class:"btn btn-sm",onClick:t[12]||(t[12]=o=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1},[...t[48]||(t[48]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1),g(" Previous",-1)])],8,nA),D(n("input",{type:"number",class:"form-control form-control-sm",min:"1",style:{width:"56px"},max:e.totalPage},null,8,sA),[[s,{state:e.viewState,set:o=>{e.query.page=o},value:e.query?.page,form:null,options:{}}]]),n("span",null,"of "+c(e.totalPage),1),n("button",{class:"btn btn-sm",onClick:t[13]||(t[13]=o=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage},[...t[49]||(t[49]=[g("Next ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,oA)])):f("v-if",!0),n("span",iA,[t[51]||(t[51]=n("label",null,"Per page",-1)),D((a(),l("select",rA,[...t[50]||(t[50]=[n("option",{value:"10"},"10",-1),n("option",{value:"25"},"25",-1),n("option",{value:"50"},"50",-1),n("option",{value:"100"},"100",-1)])])),[[s,{state:e.viewState,set:o=>{e.query.limit=o},value:e.query?.limit,form:null,options:{}}]])])])])}var aA={class:"anonymize-landing"},lA={class:"anonymize-landing-inner"},dA={class:"form-group mt-4 mb-2"},uA={class:"source-url-label-row"},cA={key:0,class:"repo-access","aria-label":"GitHub access"},pA={key:0,class:"repo-access-switch",role:"group","aria-label":"Repository connection"},fA=["aria-pressed","disabled"],hA=["aria-pressed","disabled"],mA={key:1,class:"connection-badge"},gA={class:"landing-url-row"},vA={id:"sourceUrl-landing",onblur:"this.scrollLeft=0",type:"text",class:"form-control form-control-lg",placeholder:"https://github.com/owner/repository"},yA=["aria-disabled"],bA={key:0,class:"text-danger",role:"alert"},wA={class:"repo-picker","aria-labelledby":"repo-picker-title"},kA={class:"repo-picker-head"},CA={class:"repo-picker-title"},EA={key:0,class:"repo-picker-count","aria-live":"polite"},SA={key:0,class:"repo-picker-list","aria-busy":"true","aria-label":"Loading your repositories"},NA={class:"repo-picker-row is-skeleton","aria-hidden":"true"},RA={key:1,class:"repo-picker-list"},PA=["title"],AA={class:"repo-picker-owner"},DA={class:"repo-picker-repo"},TA=["onClick","aria-label"],OA={key:2,class:"repo-picker-state"},IA={key:3,class:"repo-picker-state"},MA={key:4,class:"repo-picker-state",role:"alert"},VA={key:5,class:"repo-access-details","aria-label":"GitHub access"},qA={class:"repo-access-main"},_A={class:"repo-access-controls"},$A={key:0,class:"access-q"},LA={key:2,class:"connection-link",href:"/connections"},FA={class:"repo-access-note"},UA={key:0},BA={class:"anonymize-workspace"},zA={class:"anonymize-topbar"},HA={class:"anonymize-topbar-inner"},jA={class:"paper-crumbs"},GA={class:"here"},WA={class:"anonymize-topbar-head"},KA={class:"paper-page-title anonymize-topbar-title"},YA={key:0},XA={key:1},JA={class:"paper-page-lede anonymize-topbar-lede"},QA={key:0,class:"task-trail flow-trail","aria-label":"Anonymization steps"},ZA={key:0,class:"alert alert-info",role:"status"},xA={key:1,class:"alert alert-info",role:"status"},eD={key:1},tD={class:"anonymize-mobile-tabs",role:"tablist","aria-label":"Anonymization workspace"},nD=["aria-selected","tabindex"],sD=["aria-selected","tabindex"],oD={class:"anonymize-split"},iD=["role","aria-labelledby"],rD={class:"form needs-validation paper-settings-main",name:"anonymize",novalidate:""},aD={class:"anonymize-fields"},lD={class:"paper-settings-section"},dD={class:"form-group"},uD={class:"source-url-label-row"},cD={key:0,class:"repo-access","aria-label":"GitHub access"},pD={key:0,class:"repo-access-switch",role:"group","aria-label":"Repository connection"},fD=["aria-pressed","disabled"],hD=["aria-pressed","disabled"],mD={key:1,class:"connection-badge"},gD=["disabled"],vD={key:0,class:"source-summary"},yD={class:"invalid-feedback"},bD={class:"invalid-feedback"},wD={class:"invalid-feedback"},kD={class:"invalid-feedback"},CD={key:0,class:"repo-access-details","aria-label":"Previous repository configuration"},ED={key:0,class:"form-group"},SD=["value"],ND={key:1},RD={class:"repo-access-controls"},PD=["href"],AD={key:1,class:"repo-access-details","aria-label":"GitHub access"},DD={class:"repo-access-main"},TD={class:"repo-access-controls"},OD={key:0,class:"access-q"},ID={key:2,class:"connection-link",href:"/connections"},MD={class:"repo-access-note"},VD={key:0},qD={key:1},_D=["open"],$D={key:0,class:"repair-step"},LD=["disabled"],FD={key:0,role:"status"},UD={class:"repair-step"},BD={key:0,role:"status"},zD={key:3,class:"form-grid-2"},HD={class:"form-group"},jD={class:"input-group"},GD={class:"form-control",id:"branch",name:"branch"},WD=["textContent","value"],KD={class:"input-group-append"},YD={class:"form-group"},XD=["disabled"],JD={class:"invalid-feedback"},QD={class:"invalid-feedback"},ZD={class:"form-check-input",type:"checkbox",id:"update",name:"update","aria-describedby":"update-help"},xD={class:"form-check-label",for:"update"},eT={key:0,class:"paid-tag"},tT={key:0,class:"form-text text-muted",id:"update-help"},nT={key:1,class:"form-text text-muted auto-update-paid",id:"update-help"},sT={class:"paper-settings-section"},oT={class:"form-group"},iT=["disabled"],rT={class:"form-text text-muted anon-url-echo"},aT={class:"anon-url-id"},lT={class:"invalid-feedback"},dT={class:"form-group"},uT=["disabled"],cT={class:"form-text text-muted anon-url-echo"},pT={class:"anon-url-id"},fT={class:"invalid-feedback"},hT={class:"form-group"},mT=["disabled"],gT={class:"form-text text-muted anon-url-echo"},vT={class:"anon-url-id"},yT={class:"invalid-feedback"},bT={class:"form-group"},wT=["rows"],kT={class:"redaction-syntax"},CT={class:"form-text text-muted"},ET=["onClick"],ST={key:0,class:"term-hint-more"},NT={class:"invalid-feedback"},RT={class:"preserve-row"},PT={class:"preserve-row-text"},AT={class:"preserve-row-value"},DT=["disabled"],TT={class:"preserve-tree"},OT={key:0,class:"preserve-status"},IT={key:1,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},MT=["aria-expanded","aria-label","onClick"],VT={key:1,class:"preserve-caret-space"},qT=["id","aria-label","checked",".indeterminate","disabled","onChange"],_T=["for","onClick"],$T={key:2,class:"preserve-note"},LT={key:0,class:"preserve-status"},FT={key:0,class:"preserve-status"},UT=["open"],BT={class:"preserve-foot"},zT={class:"preserve-count","aria-live":"polite"},HT={class:"preserve-actions"},jT={class:"paper-settings-section"},GT={class:"form-check"},WT={class:"form-check-input",type:"checkbox",id:"link",name:"link"},KT={class:"form-check"},YT={class:"form-check-input",type:"checkbox",id:"image",name:"image"},XT={class:"form-check"},JT={class:"form-check-input",type:"checkbox",id:"pdf",name:"pdf"},QT={class:"form-check"},ZT={class:"form-check-input",type:"checkbox",id:"notebook",name:"notebook"},xT={class:"form-check"},e3=["disabled"],t3={key:0,class:"form-text text-muted"},n3={key:1,class:"form-text text-muted"},s3={key:0,class:"form-text text-muted"},o3={class:"form-check"},i3={class:"form-check-input",type:"checkbox",id:"title-gist",name:"title-gist"},r3={class:"form-check"},a3={class:"form-check-input",type:"checkbox",id:"content-gist",name:"content-gist"},l3={class:"form-check"},d3={class:"form-check-input",type:"checkbox",id:"comments-gist",name:"comments-gist"},u3={class:"form-check"},c3={class:"form-check-input",type:"checkbox",id:"username-gist",name:"username-gist"},p3={class:"form-check"},f3={class:"form-check-input",type:"checkbox",id:"date-gist",name:"date-gist"},h3={class:"form-check"},m3={class:"form-check-input",type:"checkbox",id:"origin-gist",name:"origin-gist"},g3={class:"form-check"},v3={class:"form-check-input",type:"checkbox",id:"title",name:"title"},y3={class:"form-check"},b3={class:"form-check-input",type:"checkbox",id:"body",name:"body"},w3={class:"form-check"},k3={class:"form-check-input",type:"checkbox",id:"diff",name:"diff"},C3={class:"form-check"},E3={class:"form-check-input",type:"checkbox",id:"comments",name:"comments"},S3={class:"form-check"},N3={class:"form-check-input",type:"checkbox",id:"username",name:"username"},R3={class:"form-check"},P3={class:"form-check-input",type:"checkbox",id:"date",name:"date"},A3={class:"form-check"},D3={class:"form-check-input",type:"checkbox",id:"origin",name:"origin"},T3={class:"paper-settings-section hosting-settings",id:"repository-hosting","aria-labelledby":"hosting-heading"},O3={class:"form-group conference-field"},I3=["href"],M3={class:"invalid-feedback"},V3={class:"form-text text-muted"},q3={key:0,class:"hosting-usage"},_3={key:0},$3={key:1},L3={key:2},F3={key:1,class:"hosting-limit auto-update-note",role:"status"},U3={key:2,class:"hosting-payment"},B3={key:0,class:"hosting-limit",role:"status"},z3={key:1,class:"hosting-options"},H3={class:"hosting-options-title"},j3=["value","checked","onChange"],G3={class:"hosting-option-body"},W3={key:0,class:"hosting-cycle billing-toggle",role:"radiogroup","aria-label":"Billing frequency"},K3=["aria-checked","onClick"],Y3={key:0,class:"billing-toggle-save"},X3={class:"hosting-option-price"},J3={key:2,role:"status"},Q3={key:3,class:"hosting-terms"},Z3={key:4,class:"hosting-terms"},x3={key:5,class:"capacity-options"},eO=["disabled"],tO={key:3,class:"hosting-subhead"},nO={class:"expiration-choices"},sO={class:"expiration-choice"},oO=["checked","disabled"],iO={key:0,class:"dated-options"},rO={key:0,class:"hosting-date"},aO=["min","max"],lO={key:0,class:"date-echo","aria-live":"polite"},dO={class:"invalid-feedback"},uO={class:"invalid-feedback"},cO={class:"hosting-property"},pO={key:1,class:"expiration-choice"},fO=["checked","disabled"],hO={key:0},mO={key:4,class:"form-text text-muted"},gO={key:5,class:"inline-hosting"},vO={key:0,role:"alert",class:"text-danger"},yO={key:1,role:"alert",class:"text-danger"},bO=["disabled"],wO={key:2,role:"status"},kO={key:3,role:"status",class:"form-text text-muted"},CO={key:4,class:"hosting-terms"},EO={key:5,class:"hosting-terms"},SO={key:6,class:"repository-pass"},NO=["disabled","onClick"],RO={class:"paper-settings-section"},PO={class:"form-group"},AO={style:{position:"relative"}},DO={type:"text",id:"coauthorSearch",class:"form-control",placeholder:"Search GitHub username\u2026",autocomplete:"off"},TO={class:"dropdown-menu show",style:{display:"block","max-height":"220px","overflow-y":"auto",width:"100%"}},OO=["onClick"],IO=["src"],MO=["textContent"],VO=["textContent"],qO={class:"coauthor-list"},_O={class:"coauthor-row d-flex align-items-center",style:{padding:"6px 0",gap:"8px"}},$O=["src"],LO=["textContent","href"],FO=["onClick"],UO={class:"form-text text-muted"},BO=["textContent"],zO={class:"anonymize-submit-bar"},HO=["disabled"],jO=["disabled"],GO=["disabled"],WO=["disabled"],KO=["disabled"],YO=["disabled"],XO={key:5,class:"submit-reason",role:"status"},JO={key:6,class:"submit-reason",role:"status"},QO={key:7,class:"checkout-return-note"},ZO={key:8,class:"draft-status",role:"status"},xO={key:9,class:"draft-status"},eI=["role","aria-labelledby"],tI={class:"rp-caption"},nI=["aria-expanded"],sI=["title"],oI={class:"redact-slot","aria-hidden":"true"},iI={key:2,class:"rp-count rp-count-none"},rI=["href"],aI=["aria-pressed"],lI={class:"rp-open-icon",viewBox:"0 0 16 16","aria-hidden":"true"},dI={key:0,d:"M9.5 2.5h4v4M13.5 2.5 9 7M6.5 13.5h-4v-4M2.5 13.5 7 9"},uI={key:1,d:"M13.5 6.5h-4v-4M9.5 6.5 14 2M2.5 9.5h4v4M6.5 9.5 2 14"},cI={class:"rp-window"},pI={class:"rp-chrome","aria-hidden":"true"},fI={class:"rp-url"},hI={class:"rp-bar","aria-hidden":"true"},mI={key:0,class:"rp-bar-id"},gI={key:1,class:"rp-bar-kind"},vI={class:"leftCol-head"},yI={class:"leftCol-body"},bI={key:0,class:"rp-state rp-loading",role:"status"},wI={class:"rp-state-text"},kI={class:"rp-state rp-error",role:"alert"},CI={class:"rp-state-actions"},EI={key:1,class:"btn btn-outline-ink btn-sm",href:"/connections"},SI={key:2,class:"rp-state rp-error",role:"alert"},NI={class:"rp-state-actions"},RI={class:"rp-state rp-error",role:"alert"},PI={class:"rp-state-actions"},AI={class:"rp-state rp-error",role:"alert"},DI={class:"rp-state-actions"},TI={key:5,class:"rp-state rp-empty"},OI={key:7,class:"anonymize-preview-body"},II={class:"d-flex w-100 justify-content-between align-items-center flex-wrap"},MI={class:"pr-title mb-1"},VI={key:0},qI=["textContent"],_I={key:0},$I={key:1},LI={key:2},FI={class:"pr-comments mt-3"},UI={class:"pr-comment"},BI={class:"pr-comment-head"},zI=["textContent"],HI={key:0,class:"pr-comment-date"},jI={key:3},GI={class:"pr-comments"},WI={class:"pr-comment"},KI={class:"pr-comment-head"},YI={key:0,class:"pr-comment-author"},XI=["textContent"],JI=["textContent"],QI={key:0,class:"pr-comment-body"},ZI={key:8,class:"anonymize-preview-body"},xI={class:"d-flex w-100 justify-content-between align-items-center flex-wrap"},e5={class:"pr-title mb-1"},t5={key:0},n5=["textContent"],s5={key:0},o5={key:1,class:"pr-body"},i5={key:2,class:"paper-tabs",role:"tablist"},r5=["aria-selected","tabindex"],a5=["aria-selected","tabindex"],l5=["textContent"],d5={key:3,class:"anonymize-preview-status"},u5={class:"paper-tab-content"},c5={key:0,role:"tabpanel",id:"preview-pr-diff-panel","aria-labelledby":"preview-pr-diff-tab"},p5=["innerHTML"],f5={key:1,role:"tabpanel",id:"preview-pr-comments-panel","aria-labelledby":"preview-pr-comments-tab"},h5={class:"pr-comments"},m5={class:"pr-comment"},g5={class:"pr-comment-head"},v5={key:0,class:"pr-comment-author"},y5=["textContent"],b5=["textContent"],w5={key:0,class:"pr-comment-body"},k5={key:9,class:"rp-more"},C5=["href"],E5={key:2,class:"rp-more-btn is-hint","aria-hidden":"true"};function ip(e,t){let s=Xe("tree"),i=Xe("partial-view"),o=Xe("gist-file"),r=Xe("markdown"),d=Ae("field"),p=Ae("form");return a(),l("div",{class:P(["anonymize-page h-100",{"mobile-preview-active":e.mobilePane==="preview","preview-expanded":e.previewExpanded}])},[f(" ===== STATE 1: No URL \u2014 centered input ===== "),D(n("div",aA,[n("div",lA,[t[70]||(t[70]=Ee('
My work \xA0/\xA0 New anonymization

New anonymization

Paste a repository, pull request, or gist URL, or pick one of your repositories. You\u2019ll choose the terms to redact next.

  1. 1. Repository
  2. 2. Review and hosting
  3. 3. Review link
',2)),n("div",dA,[n("div",uA,[t[61]||(t[61]=n("label",{class:"paper-field-label",for:"sourceUrl-landing"},"Source URL",-1)),!e.sourceUrl&&e.githubConnections?.appEnabled&&e.githubConnections.appConnected&&e.githubConnections.oauthConnected?(a(),l("aside",cA,[!e.isUpdate&&e.detectedType!=="gist"?(a(),l("div",pA,[n("button",{type:"button","aria-pressed":e.githubConnection==="github-app",disabled:e.githubConnection==="github-app",onClick:t[0]||(t[0]=u=>e.chooseGitHubConnection("github-app"))},[...t[60]||(t[60]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1),g(),n("span",{class:"sr-only"},"Read-only ",-1),g("GitHub App",-1)])],8,fA),n("button",{type:"button","aria-pressed":e.githubConnection==="oauth",disabled:e.githubConnection==="oauth",onClick:t[1]||(t[1]=u=>e.chooseGitHubConnection("oauth"))},"Legacy OAuth",8,hA)])):f("v-if",!0),e.isUpdate||e.detectedType==="gist"?(a(),l("span",mA,c((e.detectedType==="gist"?e.githubConnections?.gistConnection==="github-app":e.githubConnection==="github-app")?"Read-only GitHub App":"Legacy OAuth"),1)):f("v-if",!0)])):f("v-if",!0)]),n("div",gA,[D(n("input",vA,null,512),[[d,{state:e.viewState,set:u=>{e.sourceUrl=u},value:e.sourceUrl,form:null,options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"},change:()=>{e.urlSelected()}}]]),n("button",{type:"button",class:"btn btn-primary landing-continue","aria-disabled":e.sourceUrl?.trim()?null:"true",onClick:t[2]||(t[2]=u=>e.sourceUrl?.trim()&&e.urlSelected())},"Continue",8,yA)])]),e.sourceUrlError?(a(),l("p",bA,c(e.sourceUrlError),1)):f("v-if",!0),t[71]||(t[71]=n("small",{class:"form-text landing-help",style:{color:"var(--ink-muted)"}}," Repository, pull request (\u2026/pull/42) and gist (gist.github.com/\u2026) URLs are all accepted. ",-1)),n("section",wA,[n("div",kA,[n("div",CA,[t[63]||(t[63]=n("h2",{id:"repo-picker-title"},"Your repositories",-1)),e.userReposStatus==="ready"&&e.userRepos.length>0?(a(),l("span",EA,[e.userRepoFilter&&e.filteredUserRepos().length!==e.userRepos.length?(a(),l(q,{key:0},[g(c(e.filteredUserRepos().length)+" of ",1)],64)):f("v-if",!0),g(c(e.userRepos.length)+" "+c(e.userRepos.length===1?"repository":"repositories"),1),t[62]||(t[62]=n("span",{class:"repo-picker-more"},[n("span",{class:"repo-picker-more-sep"}," \xB7 "),g("scroll for more")],-1))])):f("v-if",!0)]),e.userReposStatus==="ready"&&e.userRepos.length>0?D((a(),l("input",{key:0,type:"search",class:"form-control repo-picker-filter",placeholder:"Filter\u2026","aria-label":"Filter your repositories",autocomplete:"off","onUpdate:modelValue":t[3]||(t[3]=u=>e.userRepoFilter=u)},null,512)),[[pt,e.userRepoFilter]]):f("v-if",!0)]),e.userReposStatus==="loading"||e.userReposStatus==="idle"?(a(),l("ul",SA,[(a(),l(q,null,x([1,2,3,4],(u,y)=>n("li",NA,[n("span",{class:"skeleton skeleton-line",style:Ie({width:34+u*9+"%"})},null,4)])),64))])):f("v-if",!0),e.userReposStatus==="ready"&&e.filteredUserRepos().length>0?(a(),l("ul",RA,[(a(!0),l(q,null,x(e.filteredUserRepos(),(u,y)=>(a(),l("li",{key:u.id||u.fullName,class:"repo-picker-row"},[t[65]||(t[65]=n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})],-1)),n("span",{class:"repo-picker-name",title:u.fullName},[n("span",AA,[g(c(u.fullName.split("/")[0]),1),t[64]||(t[64]=n("span",{class:"repo-picker-slash"},"/",-1))]),n("span",DA,c(u.fullName.split("/").slice(1).join("/")),1)],8,PA),n("button",{type:"button",class:"btn btn-outline-ink btn-sm repo-picker-select",onClick:m=>e.selectUserRepo(u),"aria-label":"Select "+u.fullName},"Select",8,TA)]))),128))])):f("v-if",!0),e.userReposStatus==="ready"&&e.userRepos.length>0&&e.filteredUserRepos().length===0?(a(),l("p",OA,"No repository matches \u201C"+c(e.userRepoFilter)+"\u201D.",1)):f("v-if",!0),e.userReposStatus==="ready"&&e.userRepos.length===0?(a(),l("p",IA,"No repositories found for your GitHub account. Paste a URL above, or grant access below.")):f("v-if",!0),e.userReposStatus==="error"?(a(),l("p",MA,[t[66]||(t[66]=g("Your repositories could not be loaded. ",-1)),n("button",{type:"button",class:"task-text-button",onClick:t[4]||(t[4]=u=>e.loadUserRepos(!0))},"Try again")])):f("v-if",!0),!e.sourceUrl&&e.githubConnections?.appEnabled&&e.githubConnections.appConnected?(a(),l("aside",VA,[n("div",qA,[n("div",_A,[e.detectedType!=="gist"&&e.githubConnection!=="oauth"?(a(),l("span",$A,"Repository not listed?")):f("v-if",!0),e.detectedType!=="gist"&&e.githubConnection!=="oauth"?(a(),l("button",{key:1,type:"button",class:"btn btn-outline-ink",onClick:t[5]||(t[5]=u=>e.grantGitHubAccess())},[...t[67]||(t[67]=[g("Manage GitHub access ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-external-link"})],-1)])])):f("v-if",!0),e.isUpdate||e.detectedType==="gist"||e.githubConnection==="oauth"?(a(),l("a",LA,[...t[68]||(t[68]=[g("Manage GitHub access ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-external-link"})],-1)])])):f("v-if",!0)])]),n("div",FA,[e.error&&e.detectedType!=="gist"&&e.githubConnection==="github-app"?(a(),l("span",UA,"Signing in does not grant access to private repositories. Use Manage GitHub access to select this repository, then return here. Organization access may require administrator approval.")):f("v-if",!0),t[69]||(t[69]=n("span",null,[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-info"})]),g(" Anonymized content is public, even from private repositories.")],-1))])])):f("v-if",!0)])])],512),[[Q,!e.workspaceOpen&&!e.isUpdate]]),f(" ===== STATE 2: URL provided \u2014 form (left) + preview (right) ===== "),D(n("div",BA,[n("header",zA,[n("div",HA,[n("div",jA,[t[72]||(t[72]=n("a",{href:"/dashboard"},"My work",-1)),t[73]||(t[73]=g(" \xA0/\xA0 ",-1)),n("span",GA,c(e.isUpdate?"Edit anonymization":"New anonymization"),1)]),n("div",WA,[n("h1",KA,[e.isUpdate?f("v-if",!0):(a(),l("span",YA,"New anonymization")),e.isUpdate?(a(),l("span",XA,"Edit anonymization")):f("v-if",!0)]),D(n("span",{class:P(["type-badge",{"type-repo":e.detectedType==="repo","type-pr":e.detectedType==="pr","type-gist":e.detectedType==="gist"}])},c(e.detectedType==="repo"?"Repository":e.detectedType==="pr"?"Pull request":"Gist"),3),[[Q,e.detectedType]])]),n("p",JA,c(e.isUpdate?"Changes apply to the existing anonymous link; reviewers keep the same URL.":"Choose the terms to redact, what reviewers see, and when the link expires."),1),e.isUpdate?f("v-if",!0):(a(),l("ol",QA,[...t[74]||(t[74]=[n("li",null,"1. Repository",-1),n("li",{"aria-current":"step"},"2. Review and hosting",-1),n("li",null,"3. Review link",-1)])]))])]),e.detectedType==="gist"&&e.gistAppRequired?(a(),l("aside",ZA,[t[75]||(t[75]=n("p",null,"Reconnect your GitHub account to read this gist. Your draft will be restored when you return.",-1)),n("button",{type:"button",class:"btn btn-ink",onClick:t[6]||(t[6]=u=>e.connectGistApp())},"Connect GitHub App to access gists")])):f("v-if",!0),e.detectedType==="gist"&&e.gistOAuthRequired?(a(),l("aside",xA,[t[76]||(t[76]=n("p",null,"Connect GitHub OAuth to access gists. Your account and existing anonymizations stay the same, and your draft will be restored when you return.",-1)),t[77]||(t[77]=n("p",null,"GitHub's legacy OAuth connection includes write access to private repositories.",-1)),e.githubConnections?.oauthEnabled?(a(),l("button",{key:0,type:"button",class:"btn btn-ink",onClick:t[7]||(t[7]=u=>e.connectGistOAuth())},"Connect GitHub OAuth to access gists")):(a(),l("p",eD,"GitHub OAuth is currently unavailable. Please try again later."))])):f("v-if",!0),n("nav",tD,[n("button",{id:"workspace-settings-tab",role:"tab",type:"button","aria-selected":e.mobilePane==="settings","aria-controls":"workspace-settings",tabindex:e.mobilePane==="settings"?0:-1,onKeydown:t[8]||(t[8]=u=>e.previewTabKeydown(u)),onClick:t[9]||(t[9]=u=>e.selectMobilePane("settings"))},[...t[78]||(t[78]=[n("span",{class:"tab-label"},"Settings",-1)])],40,nD),n("button",{id:"workspace-preview-tab",role:"tab",type:"button","aria-selected":e.mobilePane==="preview","aria-controls":"workspace-preview",tabindex:e.mobilePane==="preview"?0:-1,onKeydown:t[10]||(t[10]=u=>e.previewTabKeydown(u)),onClick:t[11]||(t[11]=u=>e.selectMobilePane("preview"))},[...t[79]||(t[79]=[n("span",{class:"tab-label"},"Reviewer preview",-1)])],40,sD)]),n("div",oD,[f(" Form column (left) "),n("div",{id:"workspace-settings",role:e.mobileWorkspace?"tabpanel":null,"aria-labelledby":e.mobileWorkspace?"workspace-settings-tab":null,class:"anonymize-form-col overflow-auto"},[D((a(),l("form",rD,[n("div",aD,[n("section",lD,[t[99]||(t[99]=n("h2",{class:"paper-section-eyebrow"},"Source & access",-1)),n("div",dD,[n("div",uD,[t[81]||(t[81]=n("label",{class:"paper-field-label",for:"sourceUrl"},"Source URL",-1)),e.sourceUrl&&e.githubConnections?.appEnabled&&e.githubConnections.appConnected&&e.githubConnections.oauthConnected?(a(),l("aside",cD,[!e.isUpdate&&e.detectedType!=="gist"?(a(),l("div",pD,[n("button",{type:"button","aria-pressed":e.githubConnection==="github-app",disabled:e.githubConnection==="github-app",onClick:t[12]||(t[12]=u=>e.chooseGitHubConnection("github-app"))},[...t[80]||(t[80]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1),g(),n("span",{class:"sr-only"},"Read-only ",-1),g("GitHub App",-1)])],8,fD),n("button",{type:"button","aria-pressed":e.githubConnection==="oauth",disabled:e.githubConnection==="oauth",onClick:t[13]||(t[13]=u=>e.chooseGitHubConnection("oauth"))},"Legacy OAuth",8,hD)])):f("v-if",!0),e.isUpdate||e.detectedType==="gist"?(a(),l("span",mD,c((e.detectedType==="gist"?e.githubConnections?.gistConnection==="github-app":e.githubConnection==="github-app")?"Read-only GitHub App":"Legacy OAuth"),1)):f("v-if",!0)])):f("v-if",!0)]),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.anonymize?.sourceUrl?.invalid}]),name:"sourceUrl",id:"sourceUrl",onblur:"this.scrollLeft=0",disabled:e.isUpdate&&e.detectedType!=="repo",placeholder:"Paste a GitHub repo or pull request URL"},null,10,gD),[[d,{state:e.viewState,set:u=>{e.sourceUrl=u},value:e.sourceUrl,form:"anonymize",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"},change:()=>{e.urlSelected()}}]]),e.sourceSummary()&&!e.anonymize?.sourceUrl?.invalid?(a(),l("p",vD,[t[82]||(t[82]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-check"})],-1)),g(c(e.sourceSummary()),1)])):f("v-if",!0),D(n("div",yD," Please provide a valid GitHub URL. ",512),[[Q,e.anonymize?.sourceUrl?.errors?.github]]),D(n("div",bD," Not accessible. The organization may restrict access. ",512),[[Q,e.anonymize?.sourceUrl?.errors?.access]]),D(n("div",wD," Does not exist or is not accessible. ",512),[[Q,e.anonymize?.sourceUrl?.errors?.missing]]),D(n("div",kD," Already anonymized. ",512),[[Q,e.anonymize?.sourceUrl?.errors?.used]])]),!e.isUpdate&&e.previousConfigurations.length?(a(),l("aside",CD,[t[84]||(t[84]=n("p",{role:"status"},"You have already anonymized this repository. Use the existing configuration to keep its anonymous link and avoid creating another repository.",-1)),e.previousConfigurations.length>1?(a(),l("div",ED,[t[83]||(t[83]=n("label",{class:"paper-field-label",for:"previousConfiguration"},"Previous anonymization",-1)),D(n("select",{id:"previousConfiguration",class:"form-control","onUpdate:modelValue":t[14]||(t[14]=u=>e.previousConfigurationId=u)},[(a(!0),l(q,null,x(e.previousConfigurations,u=>(a(),l("option",{key:u.repoId,value:u.repoId},c(u.repoId),9,SD))),128))],512),[[mn,e.previousConfigurationId]])])):(a(),l("p",ND,c(e.previousConfigurationId),1)),t[85]||(t[85]=n("p",null,"You can review and update its settings before saving.",-1)),n("div",RD,[n("a",{class:"btn btn-ink",href:e.existingConfigurationUrl()},"Use existing configuration",8,PD),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[15]||(t[15]=u=>e.previousConfigurations=[])},"Create a separate one")])])):f("v-if",!0),e.sourceUrl&&e.githubConnections?.appEnabled&&e.githubConnections.appConnected?(a(),l("aside",AD,[n("div",DD,[n("div",TD,[e.detectedType!=="gist"&&e.githubConnection!=="oauth"&&!e.details?(a(),l("span",OD,"Repository not listed?")):f("v-if",!0),e.detectedType!=="gist"&&e.githubConnection!=="oauth"&&!e.details?(a(),l("button",{key:1,type:"button",class:"btn btn-outline-ink",onClick:t[16]||(t[16]=u=>e.grantGitHubAccess())},[...t[86]||(t[86]=[g("Manage GitHub access ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-external-link"})],-1)])])):f("v-if",!0),e.isUpdate||e.detectedType==="gist"||e.githubConnection==="oauth"?(a(),l("a",ID,[...t[87]||(t[87]=[g("Manage GitHub access ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-external-link"})],-1)])])):f("v-if",!0)])]),n("div",MD,[e.error&&e.detectedType!=="gist"&&e.githubConnection==="github-app"?(a(),l("span",VD,"Signing in does not grant access to private repositories. Use Manage GitHub access to select this repository, then return here. Organization access may require administrator approval.")):f("v-if",!0),e.detectedType!=="gist"&&e.githubConnection!=="oauth"&&!e.details?(a(),l("span",qD,"Select repositories on GitHub, then return here.")):f("v-if",!0),t[88]||(t[88]=n("span",null,[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-info"})]),g(" Selected content will be published, including content from private repositories.")],-1))])])):f("v-if",!0),e.isUpdate&&e.detectedType==="repo"&&e.role==="owner"&&e.sourceUrl==="https://github.com/"+e._originalFullName?(a(),l("details",{key:2,class:"repair-disclosure",open:!!(e.error||e.accessRepairMessage||e.reconnectRepositoryId)},[t[92]||(t[92]=n("summary",null,"Connection problems?",-1)),e.accessRepairAllowed&&e.githubConnections?.appEnabled&&e.githubConnection==="github-app"&&e.sourceUrl==="https://github.com/"+e._originalFullName?(a(),l("div",$D,[t[90]||(t[90]=n("p",null,"If this repository became private or its App installation changed, repair its access here. This keeps the same anonymous URL and published commit.",-1)),n("button",{type:"button",class:"btn btn-outline-ink",disabled:e.repairingGitHubAccess,onClick:t[17]||(t[17]=u=>e.repairGitHubAccess())},"Repair GitHub access",8,LD),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[18]||(t[18]=u=>e.grantGitHubAccess())},[...t[89]||(t[89]=[g("Manage GitHub access ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-external-link"})],-1)])]),e.accessRepairMessage?(a(),l("p",FD,c(e.accessRepairMessage),1)):f("v-if",!0)])):f("v-if",!0),n("div",UD,[t[91]||(t[91]=n("p",null,"If you deleted and recreated this repository, reconnect it before choosing a branch.",-1)),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[19]||(t[19]=u=>e.reconnectSource())},"Reconnect source repository"),e.reconnectRepositoryId?(a(),l("p",BD,"Source reloaded. Review the branch, commit, and anonymization preview, then save to replace the published snapshot.")):f("v-if",!0)])],8,_D)):f("v-if",!0),e.detectedType==="repo"?(a(),l("div",zD,[n("div",HD,[t[94]||(t[94]=n("label",{class:"paper-field-label",for:"branch"},"Branch",-1)),n("div",jD,[D((a(),l("select",GD,[(a(!0),l(q,null,x(e.branches,(u,y)=>(a(),l("option",{textContent:c(u?.name),value:u?.name},null,8,WD))),256))])),[[d,{state:e.viewState,set:u=>{e.source.branch=u},value:e.source?.branch,form:"anonymize",options:{}}]]),n("div",KD,[n("button",{class:"btn btn-icon refresh-branches",type:"button",title:"Refresh branches",onClick:t[20]||(t[20]=u=>e.getBranches(!0)),"aria-label":"Refresh branches"},[...t[93]||(t[93]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1)])])])])]),n("div",YD,[t[95]||(t[95]=n("label",{class:"paper-field-label",for:"commit"},"Commit",-1)),D(n("input",{class:P(["form-control",{"is-invalid":e.anonymize?.commit?.invalid}]),id:"commit",disabled:e.options.update,name:"commit",pattern:"[a-fA-Z0-9]{6,}",required:""},null,10,XD),[[d,{state:e.viewState,set:u=>{e.source.commit=u},value:e.source?.commit,form:"anonymize",options:{}}]]),D(n("div",JD," The commit SHA is not valid. ",512),[[Q,e.anonymize?.commit?.errors?.pattern||e.anonymize?.commit?.errors?.required]]),D(n("div",QD," This commit no longer exists in the repository. Click refresh to get the latest. ",512),[[Q,e.anonymize?.commit?.errors?.exists]])])])):f("v-if",!0),D(n("div",{class:P(["form-check auto-update-check",{"is-paid":!e.liveUpdatesIncluded()}])},[D(n("input",ZD,null,512),[[d,{state:e.viewState,set:u=>{e.options.update=u},value:e.options?.update,form:"anonymize",options:{}}]]),n("label",xD,[t[96]||(t[96]=g("Auto-update from GitHub",-1)),e.liveUpdatesIncluded()?f("v-if",!0):(a(),l("span",eT,"Paid"))]),e.liveUpdatesIncluded()?(a(),l("small",tT,"Follows the latest version, at most once an hour.")):(a(),l("small",nT,[t[97]||(t[97]=g("Needs Live updates",-1)),e.liveUpdatesPrice()?(a(),l(q,{key:0},[g(" \xB7 "+c(e.liveUpdatesPrice()),1)],64)):f("v-if",!0),t[98]||(t[98]=g(", a Paper pack or an author subscription. ",-1)),n("a",{href:"#repository-hosting",onClick:t[21]||(t[21]=ae(u=>e.showHostingOptions(),["prevent"]))},"Hosting options")]))],2),[[Q,e.detectedType]])]),D(n("section",sT,[t[133]||(t[133]=n("h2",{class:"paper-section-eyebrow"},"Anonymization",-1)),D(n("div",oT,[t[104]||(t[104]=n("label",{class:"paper-field-label",for:"repoId"},"Anonymized repository ID",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.anonymize?.repoId?.invalid}]),name:"repoId",id:"repoId",disabled:e.isUpdate},null,10,iT),[[d,{state:e.viewState,set:u=>{e.repoId=u},value:e.repoId,form:"anonymize",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"}}]]),n("small",rT,[t[100]||(t[100]=g("anonymous.4open.science/",-1)),t[101]||(t[101]=n("wbr",null,null,-1)),t[102]||(t[102]=g("r/",-1)),t[103]||(t[103]=n("wbr",null,null,-1)),n("span",aT,c(e.repoId),1)]),D(n("div",lT,"ID can only contain letters and numbers.",512),[[Q,e.anonymize?.repoId?.errors?.format]]),D(n("div",{class:"invalid-feedback"},c(e.repoId)+" is already used.",513),[[Q,e.anonymize?.repoId?.errors?.used]])],512),[[Q,e.detectedType==="repo"]]),D(n("div",dT,[t[109]||(t[109]=n("label",{class:"paper-field-label",for:"pullRequestId"},"Anonymized pull request ID",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.anonymize?.pullRequestId?.invalid}]),name:"pullRequestId",id:"pullRequestId",disabled:e.isUpdate},null,10,uT),[[d,{state:e.viewState,set:u=>{e.pullRequestId=u},value:e.pullRequestId,form:"anonymize",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"}}]]),n("small",cT,[t[105]||(t[105]=g("anonymous.4open.science/",-1)),t[106]||(t[106]=n("wbr",null,null,-1)),t[107]||(t[107]=g("pr/",-1)),t[108]||(t[108]=n("wbr",null,null,-1)),n("span",pT,c(e.pullRequestId),1)]),D(n("div",fT,"ID can only contain letters and numbers.",512),[[Q,e.anonymize?.pullRequestId?.errors?.format]]),D(n("div",{class:"invalid-feedback"},c(e.pullRequestId)+" is already used.",513),[[Q,e.anonymize?.pullRequestId?.errors?.used]])],512),[[Q,e.detectedType==="pr"]]),D(n("div",hT,[t[114]||(t[114]=n("label",{class:"paper-field-label",for:"gistId"},"Anonymized gist ID",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.anonymize?.gistId?.invalid}]),name:"gistId",id:"gistId",disabled:e.isUpdate},null,10,mT),[[d,{state:e.viewState,set:u=>{e.gistId=u},value:e.gistId,form:"anonymize",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"}}]]),n("small",gT,[t[110]||(t[110]=g("anonymous.4open.science/",-1)),t[111]||(t[111]=n("wbr",null,null,-1)),t[112]||(t[112]=g("gist/",-1)),t[113]||(t[113]=n("wbr",null,null,-1)),n("span",vT,c(e.gistId),1)]),D(n("div",yT,"ID can only contain letters and numbers.",512),[[Q,e.anonymize?.gistId?.errors?.format]]),D(n("div",{class:"invalid-feedback"},c(e.gistId)+" is already used.",513),[[Q,e.anonymize?.gistId?.errors?.used]])],512),[[Q,e.detectedType==="gist"]]),n("div",bT,[t[125]||(t[125]=n("label",{class:"paper-field-label",for:"terms"},"Terms to redact",-1)),D(n("textarea",{class:P(["form-control terms-input",{"is-invalid":e.anonymize?.terms?.invalid}]),id:"terms",name:"terms",rows:Math.min(14,Math.max(4,String(e.terms||"").split(` +`).filter(ye=>ye),source:{repositoryFullName:`${B.owner}/${B.repo}`,pullRequestId:B.pullRequestId},options:e.options,conference:e.conference};Es();let ue=e.isUpdate?"/api/pr/"+e.pullRequestId:"/api/pr/";t.post(ue,j,{headers:{"Content-Type":"application/json"}}).then(()=>{N.clear(),window.location.href="/pr/"+e.pullRequestId},ye=>{ye.data&&(r("ERRORS."+ye.data.error).then(Ke=>{e.error=Ke},console.error),Ss(ye.data.error))}).finally(()=>{I.disabled=!1})},e.watch("conference",()=>{sf()}),e.termHints=[],e.matchTermAsWritten=k=>{e.terms=Tc(e.terms,k)},e.watch("options.preserveFiles",()=>{e.detectedType==="repo"&&Yt()}),e.watch("terms",()=>{e.termHints=Dc(e.terms),e.detectedType==="repo"&&ws(),e.detectedType==="pr"&&Tn(),e.detectedType==="gist"&&On()}),e.watch("options.image",()=>{e.detectedType==="repo"&&ws(),e.detectedType==="pr"&&Tn(),e.detectedType==="gist"&&On()}),e.watch("options.link",()=>{e.detectedType==="repo"&&ws(),e.detectedType==="pr"&&Tn(),e.detectedType==="gist"&&On()}),e.watch("details",()=>{e.detectedType==="pr"&&Tn(),e.detectedType==="gist"&&On()},!0)},Ka=function(e,t,s,i,o,r){ma(e);let d=Ct();Ic();let p=Bt(),u=0,y=null,m=null;e.fileLoadingSlow=!1,e.fileReceivedBytes=0;function b(){y&&(y.resolve(),y=null),m&&(d.timeout.cancel(m),m=null)}let h=!1;e.on("dispose",()=>{h=!0,u++,b(),w&&w.resolve()}),e.files=[],e.isMac=/Mac|iPhone|iPad|iPod/.test(navigator.platform||navigator.userAgent),e.fileSearchQuery="",e.fileSearchResults=null,e.fileSearchLoading=!1,p(document,"click",O=>{e.symbolsOpen&&!O.target.closest?.(".symbols")&&(e.symbolsOpen=!1),e.moreOpen&&!O.target.closest?.(".tb-more")&&(e.moreOpen=!1),e.tocOpen&&!O.target.closest?.(".tb-toc-m")&&(e.tocOpen=!1),e.gotoOpen&&O.target.isConnected&&!O.target.closest?.(".goto-pop, .btn-goto, .tb-more")&&(e.gotoOpen=!1),e.accountOpen&&!O.target.closest?.(".acct")&&(e.accountOpen=!1),e.helpOpen&&!O.target.closest?.(".vb-help")&&(e.helpOpen=!1)}),p(document,"keydown",O=>{O.key==="Escape"&&(e.symbolsOpen=!1,e.moreOpen=!1,e.tocOpen=!1,e.gotoOpen=!1,e.accountOpen=!1,e.helpOpen=!1),(O.ctrlKey||O.metaKey)&&!O.altKey&&O.key&&O.key.toLowerCase()==="f"&&e.type==="html"&&window.document.querySelector(".reading-layout")&&(O.preventDefault(),e.toggleMdFind(!0))}),p(document,"keydown",function(O){if((O.metaKey||O.ctrlKey)&&O.key==="k"){O.preventDefault();var U=document.querySelector(".tree-search-input");U&&(U.focus(),U.select())}});var w=null;e.onFileSearchChange=function(){w&&(w.resolve(),w=null);let O=e.fileSearchQuery;if(!O||O.length<2){e.fileSearchResults=null,e.fileSearchLoading=!1;return}e.fileSearchLoading=!0;let U=r.defer();w=U,t.get(`/api/repo/${e.repoId}/files/search?q=${encodeURIComponent(O)}`,{timeout:U.promise}).then(function(C){if(!(h||w!==U)){w=null,e.fileSearchLoading=!1;var L={};e.files.forEach(function(Fe){L[(Fe.path||"")+"/"+Fe.name]=!0});for(var z=[],K={},ie=0;ie0&&e.files.push.apply(e.files,z);for(var Je=[],He=0;He0&&e.files.push.apply(e.files,Je),e.fileSearchResults=C.data}},function(){!h&&w===U&&(w=null,e.fileSearchLoading=!1,e.fileSearchResults=[])})},e.on("routeUpdate",function(O,U){if(e.repoId!=i.repoId)return X();if((i.path||"")!=e.filePath){window.matchMedia?.("(max-width: 767px)").matches&&(e.sidebarCollapsed=!0),e.filePath=i.path||"",e.paths=e.filePath.split("/").filter(C=>C&&C.trim().length>0),te();for(let C=0;C0?e.paths.slice(0,C).join("/"):"";e.files.some(K=>K.path===L)||e.getFiles(L)}}});function R(){if(e.paths[0]!="")return;let O=["readme.md","readme.txt","readme.org","readme.1st","readme"],U={};for(let L of e.files)L.name.toLowerCase().indexOf("readme")>-1&&(U[L.name.toLowerCase()]=L.name);let C=null;for(let L of O)if(U[L]){C=L;break}if(!C&&Object.keys(U).length>0&&(C=Object.keys(U)[0]),C){let L=s.url();L[L.length-1]!="/"&&(L+="/"),s.url(L+encodePathForUrl(U[C]))}}e.fileCounts=null;let S=0,N=new Set,v=!1;e.getFiles=function(O,U=!1){let C=e.repoId,L=S;return t.get(`/api/repo/${e.repoId}/files/?path=${encodeURIComponent(O)}&v=${e.options.lastUpdateDate}`).then(function(z){if(h||C!==e.repoId||L!==S)return[];let K=O||"";return e.files=e.files.filter(ie=>ie.path!==K),e.files.push(...z.data),e.loadedFolders={...e.loadedFolders,[K]:!0},E(K,L),z.data},function(z){if(h||C!==e.repoId||L!==S)return[];U||(e.type="error",e.content=ar(z),e.files=[])})};function E(O,U){if(v||N.has(O))return;N.add(O);let C=e.repoId;t.get(`/api/repo/${e.repoId}/files/counts?path=${encodeURIComponent(O)}`).then(function(L){h||C!==e.repoId||U!==S||(e.fileCounts={...e.fileCounts,...L.data})},function(){h||C!==e.repoId||U!==S||(v=!0)})}function M(){return e.files.filter(O=>O.name==e.paths[e.paths.length-1]&&O.path==e.paths.slice(0,e.paths.length-1).join("/"))[0]}var V=null;e.on("dispose",function(){V&&d.interval.cancel(V)});function _(O){if(h)return;let U=e.repoId;t.get(`/api/repo/${e.repoId}/options`).then(C=>{if(!(h||U!==e.repoId)){if(e.options=C.data,e.options.url){window.location=e.options.url;return}O&&O(C.data)}},C=>{if(!(h||U!==e.repoId)){var L=C.data||{};if(L.error==="rate_limited"&&L.resetAt){let K=function(){var ie=Math.max(0,Math.ceil((e.rateLimitResetAt-Date.now())/1e3));if(ie<=0)e.rateLimitCountdown="",e.rateLimitResetAt=0,V&&(d.interval.cancel(V),V=null),_(O);else{var se=Math.floor(ie/60),Y=ie%60;e.rateLimitCountdown=se>0?se+"m "+Y+"s":Y+"s"}};var z=K;e.type="rate_limited",e.rateLimitResetAt=L.resetAt,V&&d.interval.cancel(V),K(),V=d.interval(K,1e3)}else L.error==="repository_not_ready"?(e.type="loading",d.timeout(function(){_(O)},3e3)):(e.type="error",e.content=ar(C))}})}function G(O,U){let C=u;if(!O){e.type="error",e.content="no_file_selected";return}let L=e.type;(L==="code"||L==="text")&&ni().catch(()=>{}),e.type="loading",e.content="loading",e.fileLoadingSlow=!1,e.fileReceivedBytes=0;let z=r.defer();y=z,m=d.timeout(()=>{!h&&C===u&&e.type==="loading"&&(e.fileLoadingSlow=!0)},1500);let K=U&&U.sha||"0";t.get(`/api/repo/${e.repoId}/file/${encodePathForUrl(O)}?v=`+K,{timeout:z.promise,onDownloadProgress:ie=>{!h&&C===u&&(e.fileReceivedBytes=ie)},transformResponse:ie=>ie}).then(ie=>{h||C!==u||(b(),e.renderFileContent(ie.data,L,s.url()+"/../",ie.headers("content-type")))},ie=>{h||C!==u||(b(),e.type="error",e.content=ar(ie))})}function te(){u++,b(),e.content="",e.file=M();let O="0";e.file&&e.file.sha&&(O=e.file.sha),e.url=`/api/repo/${e.repoId}/file/${encodePathForUrl(e.filePath)}?v=${O}`;let U=e.filePath.substring(0,e.filePath.lastIndexOf("/")+1);if(e.fileBaseUrl=`/api/repo/${e.repoId}/file/${U?encodePathForUrl(U):""}`,e.showSource=!1,e.imageSize="",e.allowScripts=!1,e.prepareFile(e.filePath),e.type=="pdf"){e.content="pdf";return}if(e.type=="media"||e.type=="audio"){e.content=e.type;return}G(e.filePath,e.file)}e.isSourceAccessError=()=>["repo_not_found","token_expired","github_app_access_required","github_app_reconnect_required","repo_saml_enforcement","repo_access_limited"].includes(e.content),e.retryContent=()=>X();function X(){u++,b(),e.files=[],e.loadedFolders={},e.content=null,e.fileCounts=null,S++,N=new Set,v=!1,e.fileSearchQuery="",e.onFileSearchChange(),e.repoId=i.repoId,e.type="loading",e.filePath=i.path||"",e.paths=e.filePath.split("/");let O=e.repoId;_(function(U){if(e.filePath){te();let L=[...new Set(e.paths.map((z,K)=>e.paths.slice(0,K).join("/")))];r.all(L.map(z=>e.getFiles(z,!0)));return}var C=r.resolve();for(let L=0;L0?e.paths.slice(0,L).join("/"):"";C=C.then(function(){return e.getFiles(z)}).then(function(){if(e.type==="error")return r.reject("error")})}C.then(function(){h||O!==e.repoId||(e.files.length==1&&e.files[0].name==""?(e.files=[],e.type="empty"):(R(),te()))})})}X()},Bc=function(e,t,s,i,o){async function r(u){t.get(`/api/pr/${e.pullRequestId}/options`).then(y=>{if(e.options=y.data,e.options.url){window.location=e.options.url;return}u&&u(y.data)},y=>{e.type="error",e.content=y.data.error})}async function d(u){t.get(`/api/pr/${e.pullRequestId}/content`).then(y=>{e.details=y.data,e.tabState={active:y.data.diff?"diff":"comments"},u&&u(y.data)},y=>{e.type="error",e.content=y.data.error})}function p(){e.pullRequestId=i.pullRequestId,e.type="loading",r(u=>{d()})}p()},zc=function(e,t,s,i,o){async function r(u){t.get(`/api/gist/${e.gistId}/options`).then(y=>{if(e.options=y.data,e.options.url){window.location=e.options.url;return}u&&u(y.data)},y=>{e.type="error",e.content=y.data.error})}async function d(u){t.get(`/api/gist/${e.gistId}/content`).then(y=>{e.details=y.data;let m=y.data&&y.data.files&&y.data.files.length;e.tabState={active:m?"files":"comments"},u&&u(y.data)},y=>{e.type="error",e.content=y.data.error})}function p(){e.gistId=i.gistId,e.type="loading",r(()=>{d()})}p()},Hc=function(e,t,s){e.watch("user.status",()=>{e.user==null&&s.url("/")}),e.user==null&&s.url("/"),e.conferences=[],e.loading=!0,e.error="",e.search="";let i="conferences.filterPrefs",o={filters:{status:{ready:!0,expired:!1,removed:!1}},orderBy:"name"},r=loadFilterPrefs(i)||{};e.filters={status:Object.assign({},o.filters.status,r.filters&&r.filters.status||{})},e.orderBy=r.orderBy||o.orderBy,e.watch("orderBy",()=>{saveFilterPrefs(i,{filters:e.filters,orderBy:e.orderBy})}),e.watch("filters",()=>{saveFilterPrefs(i,{filters:e.filters,orderBy:e.orderBy})},!0),e.removeConference=function(d){if(!d.removing&&confirm(`Are you sure that you want to remove the conference ${d.name}? All the repositories linked to this conference will expire.`)){d.removing=!0;let p=st({title:`Removing ${d.name}...`,date:new Date,body:`The conference ${d.name} is going to be removed.`});e.addToast(p),t.delete(`/api/conferences/${d.conferenceID}`).then(()=>{p.title=`${d.name} is removed.`,p.body=`The conference ${d.name} is removed.`,e.loadConferences()}).catch(()=>{p.title="Unable to remove conference",p.body="Please try again. The conference has not been removed."}).finally(()=>{d.removing=!1})}},e.loadConferences=()=>(e.loading=!0,e.error="",t.get("/api/conferences/").then(d=>{e.conferences=d.data||[]},d=>{e.error="Unable to load your conferences. Please try again."}).finally(()=>{e.loading=!1})),e.loadConferences(),e.conferenceFilter=d=>{if(e.filters.status[d.status]==!1)return!1;let p=e.search.trim().toLowerCase();return!!(!p||(d.name||"").toLowerCase().includes(p)||(d.conferenceID||"").toLowerCase().includes(p))}},Ya=function(e,t,s,i){e.watch("user.status",()=>{e.user==null&&s.url("/")}),e.user==null&&s.url("/");let o=()=>{for(let[h,w,R]of[["startDate","Starts","startDate"],["endDate","Ends","endDate"]]){let S=document.getElementById(h);if(!S)continue;let N=S.parentElement.querySelector(":scope > .date-echo");N||(N=document.createElement("p"),N.className="date-echo",N.setAttribute("aria-live","polite"),S.insertAdjacentElement("afterend",N));let v=ya(e.options?.[R]);N.textContent=v?w+" "+v:"",N.hidden=!v}};typeof e.watchGroup=="function"&&e.watchGroup(["options.startDate","options.endDate"],()=>tt(o));let r=(h=20)=>{let w=document.querySelector("input#name.form-control"),R=document.querySelector("input#conferenceID.form-control");R&&(R.placeholder="e.g. ICSE27"),w?w.placeholder="e.g. ICSE 2027":h>0&&setTimeout(()=>r(h-1),50)};setTimeout(()=>r(),0),e.plans=[],e.plansLoaded=!1,e.conferenceBilling=null,Wi(t).then(h=>{e.conferenceBilling=h.data}).catch(()=>{}),e.conferenceTiers=()=>e.plans.filter(h=>h.id!=="free_conference").map(h=>{let w=(e.conferenceBilling?.plans||[]).find(R=>R.id===h.id)||{};return{...h,storage:h.storagePerRepo,...w,id:h.id,name:h.name}}),e.conferenceAudience=h=>({conference_workshop:"Workshops and small venues",conference:"A typical conference",conference_large:"Large or multi-track venues"})[h]||"",e.conferencePlanName=h=>jc(h),e.conferenceAmount=(h,w=h?.amount)=>new Intl.NumberFormat(void 0,{style:"currency",currency:h?.currency||"eur",minimumFractionDigits:w%100?2:0,maximumFractionDigits:2}).format(w/100),e.conferenceBytes=h=>{let w=Number(h)||0,R=Math.min(4,Math.floor(Math.log2(Math.max(w,1))/10));return`${new Intl.NumberFormat(void 0,{maximumFractionDigits:1}).format(w/1024**R)} ${["B","KB","MB","GB","TB"][R]}`},e.editionMode=!1,e.saving=!1,e.error="";function d(){return t.get("/api/conferences/"+i.conferenceId).then(h=>{e.options={...e.options,...h.data,billing:h.data.billing||{}},e.options.startDate=new Date(e.options.startDate),e.options.endDate=new Date(e.options.endDate)})}i.conferenceId&&(e.editionMode=!0,d());function p(){t.get("/api/conferences/plans").then(h=>{e.plans=h.data,e.plansLoaded=!0,!e.editionMode&&e.plans.length&&!e.plans.some(w=>w.id==e.options.plan.planID)&&(e.options.plan.planID=(e.plans.find(w=>w.id==="conference")||e.plans[0]).id),e.plan=e.plans.filter(w=>w.id==e.options.plan.planID)[0]})}p();let u=new Date;u.setDate(1),u.setMonth(u.getMonth()+1);let y=new Date(u);y.setTime(u.getTime()+179*864e5),e.options={billing:{},startDate:u,endDate:y,plan:{planID:"free_conference"},options:{link:!0,image:!0,pdf:!0,notebook:!0,update:!0,page:!0}},e.plan=null,e.watch("options.plan.planID",()=>{e.plan=e.plans.filter(h=>h.id==e.options.plan.planID)[0]});function m(){e.conference.name.setValidity("required",!0),e.conference.conferenceID.setValidity("pattern",!0),e.conference.conferenceID.setValidity("required",!0),e.conference.conferenceID.setValidity("used",!0),e.conference.startDate.setValidity("required",!0),e.conference.startDate.setValidity("invalid",!0),e.conference.endDate.setValidity("required",!0),e.conference.endDate.setValidity("invalid",!0),e.conference.setValidity("error",!0)}function b(h){switch(h){case"conf_name_missing":e.conference.name.setValidity("required",!1);break;case"conf_id_missing":e.conference.conferenceID.setValidity("required",!1);break;case"conf_id_format":e.conference.conferenceID.setValidity("pattern",!1);break;case"conf_id_used":e.conference.conferenceID.setValidity("used",!1);break;case"conf_start_date_missing":e.conference.startDate.setValidity("required",!1);break;case"conf_end_date_missing":e.conference.endDate.setValidity("required",!1);break;case"conf_start_date_invalid":e.conference.startDate.setValidity("invalid",!1);break;case"conf_end_date_invalid":e.conference.endDate.setValidity("invalid",!1);break;default:e.conference.setValidity("error",!1);break}}e.submit=function(){if(e.saving)return;e.saving=!0,e.error="";let h=JSON.parse(JSON.stringify(e.options)),w=st({title:`Creating ${h.name}...`,date:new Date,body:`The conference ${h.conferenceID} is in creation.`});e.editionMode&&(w.title=`Updating ${h.name}...`,w.body=`The conference '${h.conferenceID}' is updating.`),e.addToast(w),m(),t.post("/api/conferences/"+(e.editionMode?h.conferenceID:""),h).then(()=>{e.editionMode?(w.title=`${h.name} updated`,w.body=`The conference '${h.conferenceID}' is updated.`):(w.title=`${h.name} created`,w.body=`The conference '${h.conferenceID}' is created.`),s.url("/conference/"+h.conferenceID)},R=>{b(R.data?.error),e.error="Unable to save the conference. Please correct any highlighted fields and try again.",e.removeToast(w)}).finally(()=>{e.saving=!1})}};function jc(e){return{free_conference:"Free (no longer offered to new conferences)",conference_workshop:"Workshop package",conference:"Conference package",conference_large:"Large conference package",premium_conference:"Premium (legacy)",unlimited_conference:"Unlimited (legacy)"}[e]||e||"Free"}var Gc=function(e,t,s,i){Ki(e,t,()=>p(),{confirmedMessage:"Payment status checked. Your conference is ready for submissions once payment is confirmed."}),e.conferencePlanName=u=>jc(u),e.watch("user.status",()=>{e.user==null&&s.url("/")}),e.user==null&&s.url("/"),e.conference=null,e.search="",e.filters={status:{ready:!0,preparing:!0,error:!0,expired:!0,removed:!1}},e.orderBy="-anonymizeDate";let o=Xi,r=["ready","preparing","error","expired","removed"],d={current:u=>u!=="removed",attention:u=>u==="error",removed:u=>u==="removed"};e.confView=()=>Object.keys(d).find(u=>r.every(y=>d[u](y)===(e.filters.status[y]!==!1)))||"custom",e.setConfView=u=>{r.forEach(y=>{e.filters.status[y]=(d[u]||d.current)(y)})},e.confCount=u=>(e.conference?.repositories||[]).filter(y=>d[u](o(y.status))).length,e.copyingId=null,e.copyRepoLink=async u=>{if(!u?.repoId||e.copyingId)return;let y=new URL("/r/"+u.repoId+"/",window.location.origin).href;e.copyingId=u.repoId;try{await Wa(y),e.addToast({title:"Link copied",body:"The anonymous link is ready to share."})}catch{e.addToast({title:"Copy this anonymous link",body:y})}finally{e.copyingId=null}},e.extendingId=null,e.extendRepo=u=>{!u?.repoId||e.extendingId||(e.extendingId=u.repoId,t.post("/api/repo/"+u.repoId+"/extend").then(y=>{let m=y?.data?.expirationDate?` until ${new Date(y.data.expirationDate).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}`:"";e.addToast({title:`${u.repoId} is extended.`,body:`Reviewers can open it again${m}.`}),u.status="ready",y?.data?.expirationDate&&(u.options={...u.options||{},expirationDate:y.data.expirationDate}),e.extendingId=null},y=>{let m=y?.status||y?.data?.status;e.addToast({title:`Couldn't extend ${u.repoId}.`,body:m===401||m===403?"Only the repository's authors can extend this link. Ask them to extend it from My work.":"Try again in a moment."}),e.extendingId=null}))},e.repoFiler=u=>{if(e.filters.status[o(u.status)]==!1)return!1;let y=e.search.trim().toLowerCase();return!!(!y||(u.source?.fullName||"").toLowerCase().includes(y)||(u.repoId||"").toLowerCase().includes(y))};function p(){t.get("/api/conferences/"+i.conferenceId).then(u=>{e.conference=u.data})}p()},Wc=function(e,t){e.notificationEmail="",e.emailSaved=!1,e.saveNotificationEmail=async()=>{e.busy=!0,e.emailSaved=!1,e.connectionError="";try{let s=await t.post("/github/connections/email",{email:e.notificationEmail},{headers:{"X-CSRF-Token":e.connections.csrf}});e.notificationEmail=s.data.notificationEmail,e.user&&(e.user.notificationEmail=s.data.notificationEmail),e.emailSaved=!0}catch(s){e.connectionError=s.data?.error||"Unable to save email address."}finally{e.busy=!1}},e.connections=null,e.connectionError="",e.busy=!1,e.loadConnections=()=>t.get("/github/connections").then(s=>{e.connections=s.data,e.notificationEmail=s.data.notificationEmail||""}).catch(s=>{e.connectionError=s.data?.error||"Unable to load connections."}),e.changeConnection=async(s,i,o)=>{e.busy=!0,e.connectionError="";try{let r=await t.post("/github/connections/migrate",{type:s.type,id:s.id,connection:i,preview:o},{headers:{"X-CSRF-Token":e.connections.csrf}});o?s.eligible=r.data.eligible:await e.loadConnections()}catch(r){e.connectionError=r.data?.error||"Unable to change connection."}finally{e.busy=!1}},e.disconnectOAuth=async()=>{e.busy=!0;try{await t.post("/github/connections/disconnect-oauth",{},{headers:{"X-CSRF-Token":e.connections.csrf}}),await e.loadConnections()}catch(s){e.connectionError=s.data?.error||"Unable to disconnect OAuth."}finally{e.busy=!1}},e.loadConnections()},Kc=function(e,t){e.accountRecovery=!1,t.get("/github/account-recovery").then(s=>{e.accountRecovery=s.data.required}).catch(()=>{})};typeof document<"u"&&document.addEventListener("scroll",e=>{let t=e.target;!t||!t.classList||!t.classList.contains("repo-picker-list")||t.classList.toggle("is-end",t.scrollTop+t.clientHeight>=t.scrollHeight-2)},!0);var Yc=[{path:"/review-link",template:"partials/reviewConsent.htm",title:"Artifact consent \u2013 Anonymous GitHub",setup:(e,t)=>ol(e,t)},{path:"/connections",template:"partials/connections.htm",title:"GitHub connections \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Wc(e,t.http)},{path:"/signin",template:"partials/signin.htm",title:"Sign in \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Kc(e,t.http)},{path:"/",template:"partials/home.htm",title:"Anonymous GitHub \u2013 Share the code, not the author",preserveExplorer:!1,setup:(e,t)=>Lc(e,t.http,t.location,t.window,t.timeout)},{path:"/dashboard",template:"partials/dashboard.htm",title:"Your anonymizations \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Fc(e,t.http,t.location,t.promises,t.window,t.quotaService)},{path:"/pr-dashboard",redirect:"/dashboard"},{path:"/anonymize/:repoId?",template:"partials/anonymize.htm",title:"New anonymization \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>dr(e,t.http,t.html,t.params,t.location,t.translate,t.timeout)},{path:"/pull-request-anonymize/:pullRequestId?",template:"partials/anonymize.htm",title:"Anonymize a pull request \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>dr(e,t.http,t.html,t.params,t.location,t.translate,t.timeout)},{path:"/gist-anonymize/:gistId?",template:"partials/anonymize.htm",title:"Anonymize a gist \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>dr(e,t.http,t.html,t.params,t.location,t.translate,t.timeout)},{path:"/status/:repoId",template:"partials/status.htm",title:"Repository status \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Uc(e,t.http,t.params)},{path:"/conferences",template:"partials/conferences.htm",title:"Your conferences \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Hc(e,t.http,t.location)},{path:"/conference/new",template:"partials/newConference.htm",title:"New conference \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Ya(e,t.http,t.location,t.params)},{path:"/conference/:conferenceId/edit",template:"partials/newConference.htm",title:"Edit conference \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Ya(e,t.http,t.location,t.params)},{path:"/conference/:conferenceId",template:"partials/conference.htm",title:"Conference \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Gc(e,t.http,t.location,t.params)},{path:"/faq",template:"partials/faq.htm",title:"FAQ \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>qc(e,t.http)},{path:"/profile",template:"partials/profile.htm",title:"Your settings \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>_c(e,t.http,t.translate,t.timeout,t.quotaService)},{path:"/claim",template:"partials/claim.htm",title:"Claim an anonymization \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>$c(e,t.http,t.location)},{path:"/pr/:pullRequestId/:path(.*)*",template:"partials/pullRequest.htm",title:"Anonymous pull request \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Bc(e,t.http,t.location,t.params,t.html)},{path:"/gist/:gistId/:path(.*)*",template:"partials/gist.htm",title:"Anonymous gist \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>zc(e,t.http,t.location,t.params,t.html)},{path:"/r/:repoId/:path(.*)*",template:"partials/explorer.htm",title:"Anonymous repository \u2013 Anonymous GitHub",preserveExplorer:!0,setup:(e,t)=>Ka(e,t.http,t.location,t.params,t.html,t.promises)},{path:"/repository/:repoId/:path(.*)*",template:"partials/explorer.htm",title:"Anonymous repository \u2013 Anonymous GitHub",preserveExplorer:!0,setup:(e,t)=>Ka(e,t.http,t.location,t.params,t.html,t.promises)},{path:"/admin/",template:"partials/admin/overview.htm",title:"Admin \xB7 Overview \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>ju(e,t.http,t.location,t.interval)},{path:"/admin/repositories",template:"partials/admin/repositories.htm",title:"Admin \xB7 Repositories \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Lu(e,t.http,t.location)},{path:"/admin/users",template:"partials/admin/users.htm",title:"Admin \xB7 Users \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Fu(e,t.http,t.location)},{path:"/admin/users/:username",template:"partials/admin/user.htm",title:"Admin \xB7 User details \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Uu(e,t.http,t.location,t.params)},{path:"/admin/conferences",template:"partials/admin/conferences.htm",title:"Admin \xB7 Conferences \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Bu(e,t.http,t.location)},{path:"/admin/emails",template:"partials/admin/emails.htm",title:"Admin \xB7 Emails \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Ku(e,t.http,t.location)},{path:"/admin/billing",template:"partials/admin/billing.htm",title:"Admin \xB7 Billing \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Wu(e,t.http,t.location)},{path:"/admin/queues",template:"partials/admin/queues.htm",title:"Admin \xB7 Queues \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>zu(e,t.http,t.location,t.interval,t.timeout)},{path:"/admin/errors",template:"partials/admin/errors.htm",title:"Admin \xB7 Errors \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Hu(e,t.http,t.location,t.interval)},{path:"/404",template:"partials/404.htm",title:"Page not found \u2013 Anonymous GitHub",preserveExplorer:!1,setup:()=>{}},{path:"/:pathMatch(.*)*",template:"partials/404.htm",title:"Page not found \u2013 Anonymous GitHub",setup:()=>{}}];var kv={class:"container paper-page admin-page emails-page"},Cv=["disabled"],Ev={key:0,class:"ov-performance-message ov-performance-warning",role:"alert"},Sv={key:1,role:"status"},Nv={key:2,class:"ov-performance-empty",role:"status"},Rv=["aria-busy"],Av={class:"table email-table"},Pv=["datetime"],Dv={class:"email-recipient"},Tv={key:0,class:"email-detail"},Ov={key:1,class:"email-detail"},Iv={class:"email-detail"},Mv={key:4,class:"email-footer"},Vv=["disabled"];function Xc(e,t){return a(),l("div",kv,[t[13]||(t[13]=Ce('
Admin \xA0/\xA0 Emails

Emails

',3)),n("form",{class:"email-toolbar",onSubmit:t[4]||(t[4]=ae(s=>e.loadEmails(),["prevent"])),"aria-label":"Filter email history"},[n("label",null,[t[8]||(t[8]=g("Status ",-1)),D(n("select",{"onUpdate:modelValue":t[0]||(t[0]=s=>e.emailState=s),onChange:t[1]||(t[1]=s=>e.loadEmails())},[...t[7]||(t[7]=[Ce('',5)])],544),[[Ut,e.emailState]])]),n("label",null,[t[10]||(t[10]=g("Email type ",-1)),D(n("select",{"onUpdate:modelValue":t[2]||(t[2]=s=>e.emailKind=s),onChange:t[3]||(t[3]=s=>e.loadEmails())},[...t[9]||(t[9]=[n("option",{value:""},"All types",-1),n("option",{value:"repository-expiration"},"Repository expiration",-1),n("option",{value:"owner-access"},"GitHub access",-1)])],544),[[Ut,e.emailKind]])]),n("button",{class:"btn",type:"submit",disabled:e.emailLoading},c(e.emailLoading?"Loading\u2026":"Refresh"),9,Cv)],32),e.emailError?(a(),l("p",Ev,[g(c(e.emailError)+" ",1),n("button",{class:"btn btn-sm",type:"button",onClick:t[5]||(t[5]=s=>e.loadEmails())},"Retry")])):f("v-if",!0),e.emailLoading&&!e.emailRows.length?(a(),l("p",Sv,"Loading email history\u2026")):f("v-if",!0),!e.emailLoading&&!e.emailError&&!e.emailRows.length?(a(),l("p",Nv,"No email attempts match these filters.")):f("v-if",!0),e.emailRows.length?(a(),l("div",{key:3,class:"email-table-wrap",tabindex:"0",role:"region","aria-label":"Email delivery history","aria-busy":e.emailLoading},[n("table",Av,[t[11]||(t[11]=n("caption",{class:"sr-only"},"Email attempts, newest first",-1)),t[12]||(t[12]=n("thead",null,[n("tr",null,[n("th",{scope:"col"},"Attempted"),n("th",{scope:"col"},"Recipient"),n("th",{scope:"col"},"Email type"),n("th",{scope:"col"},"Outcome"),n("th",{scope:"col"},"Resource")])],-1)),n("tbody",null,[(a(!0),l(q,null,J(e.emailRows,s=>(a(),l("tr",{key:s._id},[n("td",null,[n("time",{datetime:s.createdAt},c(e.emailTime(s.createdAt)),9,Pv)]),n("td",Dv,c(s.recipient),1),n("td",null,c(e.emailKindLabel(s.kind)),1),n("td",null,[n("span",{class:A(["email-outcome","email-outcome-"+s.state])},c(e.emailStatusLabel(s.state)),3),s.httpStatus?(a(),l("small",Tv,"HTTP "+c(s.httpStatus),1)):f("v-if",!0),s.completedAt?(a(),l("small",Ov,c(e.emailTime(s.completedAt)),1)):f("v-if",!0)]),n("td",null,[g(c(s.resourceKind),1),n("small",Iv,c(s.resourceId),1)])]))),128))])])],8,Rv)):f("v-if",!0),e.emailRows.length?(a(),l("div",Mv,[n("span",null,c(e.emailRows.length)+" attempts shown",1),e.emailNextCursor?(a(),l("button",{key:0,class:"btn",type:"button",disabled:e.emailLoading,onClick:t[6]||(t[6]=s=>e.loadEmails(!0))},c(e.emailLoading?"Loading\u2026":"Load older emails"),9,Vv)):f("v-if",!0)])):f("v-if",!0)])}var qv={class:"container py-4",style:{"max-width":"48rem","overflow-wrap":"anywhere"}},_v={key:0},$v={key:1,role:"alert"},Lv={key:2,role:"status"},Fv={key:0},Uv={key:1},Bv=["disabled"],zv=["disabled"],Hv=["disabled"],jv={key:5,class:"mt-4","aria-labelledby":"review-policy-title"},Gv={id:"review-policy-title"},Wv={key:0,role:"alert"},Kv=["disabled"],Yv=["disabled"],Xv=["disabled"],Qv={key:6,role:"status"};function Qc(e,t){return a(),l("section",qv,[t[12]||(t[12]=n("a",{href:"/"},"Anonymous GitHub",-1)),t[13]||(t[13]=n("h1",{class:"mt-3"},"Approve artifact access",-1)),t[14]||(t[14]=n("p",null,"This records your approval as the repository owner or an authorized co-author.",-1)),e.user?.username?f("v-if",!0):(a(),l("p",_v,[...t[6]||(t[6]=[g("Sign in first, then reopen the artifact link from your submission. ",-1),n("a",{href:"/signin"},"Sign in",-1)])])),e.error?(a(),l("p",$v,c(e.error),1)):f("v-if",!0),e.saved?(a(),l("p",Lv,[t[7]||(t[7]=g("Consent recorded. ",-1)),e.handoffEnabled?(a(),l("span",Fv,"Continue to review to finish linking.")):(a(),l("span",Uv,"Artifact linking is not complete. Return to your submission to check its status."))])):f("v-if",!0),e.saved&&e.handoffEnabled?(a(),l("button",{key:3,class:"btn btn-primary",type:"button",onClick:t[0]||(t[0]=(...s)=>e.continueReview&&e.continueReview(...s)),disabled:e.busy},"Continue to review",8,Bv)):f("v-if",!0),e.user?.username&&!e.saved?(a(),l("form",{key:4,onSubmit:t[2]||(t[2]=ae((...s)=>e.loadPreview&&e.loadPreview(...s),["prevent"]))},[t[8]||(t[8]=n("label",{for:"review-repository"},"Anonymous repository ID",-1)),D(n("input",{id:"review-repository",class:"form-control","onUpdate:modelValue":t[1]||(t[1]=s=>e.repositoryId=s),maxlength:"128",autocomplete:"off",disabled:e.busy||e.uncertain,"aria-describedby":"review-repository-help"},null,8,zv),[[pt,e.repositoryId]]),t[9]||(t[9]=n("p",{id:"review-repository-help"},"Use the ID after /r/ in the anonymous repository URL.",-1)),n("button",{type:"submit",class:"btn btn-primary",disabled:e.busy||e.uncertain},"Preview access and retention",8,Hv)],32)):f("v-if",!0),e.preview&&!e.saved?(a(),l("section",jv,[n("h2",Gv,c(e.preview.repositoryName),1),n("p",null,"Access: "+c(e.preview.policy.access==="anonymous-link"?"Anyone with the anonymous link":"Restricted review access")+".",1),n("p",null,"Retain until "+c(e.preview.policy.retainUntil)+". Policy version "+c(e.preview.policy.version)+".",1),e.expired?(a(),l("p",Wv,"This preview expired. Open a new artifact link from your submission.")):f("v-if",!0),n("div",null,[n("label",null,[D(n("input",{type:"checkbox","onUpdate:modelValue":t[3]||(t[3]=s=>e.acceptAccess=s),disabled:e.busy||e.uncertain||e.expired},null,8,Kv),[[sa,e.acceptAccess]]),t[10]||(t[10]=g(" I approve the access policy above.",-1))])]),n("div",null,[n("label",null,[D(n("input",{type:"checkbox","onUpdate:modelValue":t[4]||(t[4]=s=>e.acceptRetention=s),disabled:e.busy||e.uncertain||e.expired},null,8,Yv),[[sa,e.acceptRetention]]),t[11]||(t[11]=g(" I approve retention until the date above.",-1))])]),n("button",{class:"btn btn-primary",type:"button",onClick:t[5]||(t[5]=(...s)=>e.confirmConsent&&e.confirmConsent(...s)),disabled:e.busy||e.expired||!e.acceptAccess||!e.acceptRetention},c(e.uncertain?"Retry confirmation":"Confirm consent"),9,Xv)])):f("v-if",!0),e.busy?(a(),l("p",Qv,"Waiting for the server\u2026")):f("v-if",!0)])}var Jv={class:"container paper-page connections-page"},Zv={key:0,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},xv={key:1,role:"status"},ey=["disabled"],ty={key:3},ny={key:0,class:"connection-resources"},sy=["disabled"],oy=["disabled"],iy={key:0,role:"status"},ry={class:"connections-grid"},ay={key:0},ly={class:"connection-title"},dy={key:0,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},uy={class:"connection-actions"},cy={key:0,class:"btn btn-ink",target:"_self",href:"/github/app/install"},py=["disabled"],fy={key:1,class:"connection-installations"},hy={key:0},my=["href"],gy={class:"sr-only"},vy={class:"connection-title"},yy={key:0,target:"_self",href:"/github/login",class:"btn btn-outline-ink"},by={key:1,class:"connection-revoke"},wy={key:0},ky=["disabled"],Cy={class:"connection-resources"},Ey={class:"connection-title"},Sy={class:"connection-count"},Ny={key:0,class:"connection-empty"},Ry={class:"connection-resource-name"},Ay={key:0,class:"connection-resource-actions"},Py=["disabled","onClick"],Dy=["disabled","onClick"],Ty={key:1,class:"connection-help",role:"status"},Oy=["disabled","onClick"];function Jc(e,t){return a(),l("div",Jv,[t[27]||(t[27]=Ce('
My work \xA0/\xA0 GitHub connections

GitHub connections

Manage how GitHub shares your code. Your anonymizations and URLs stay the same.

',2)),e.connectionError?(a(),l("p",Zv,c(e.connectionError),1)):f("v-if",!0),!e.connections&&!e.connectionError?(a(),l("p",xv,"Loading your connections\u2026")):f("v-if",!0),!e.connections&&e.connectionError?(a(),l("button",{key:2,class:"btn btn-outline-ink",disabled:e.busy,onClick:t[0]||(t[0]=s=>e.loadConnections())},"Try again",8,ey)):f("v-if",!0),e.connections?(a(),l("div",ty,[e.connections.emailNotificationsEnabled?(a(),l("section",ny,[t[6]||(t[6]=n("h2",null,"Email alerts",-1)),t[7]||(t[7]=n("p",null,"We will email you if your GitHub connection stops working or a repository becomes inaccessible. Your address is never shown on anonymous pages.",-1)),n("form",{onSubmit:t[2]||(t[2]=ae(s=>e.saveNotificationEmail(),["prevent"]))},[t[5]||(t[5]=n("label",{for:"notification-email"},"Email address",-1)),D(n("input",{id:"notification-email",class:"form-control",type:"email",autocomplete:"email",maxlength:"254",required:"","onUpdate:modelValue":t[1]||(t[1]=s=>e.notificationEmail=s),disabled:e.busy},null,8,sy),[[pt,e.notificationEmail]]),n("button",{class:"btn btn-ink mt-2",type:"submit",disabled:e.busy},"Save email address",8,oy),e.emailSaved?(a(),l("p",iy,"Email address saved.")):f("v-if",!0)],32)])):f("v-if",!0),n("div",ry,[e.connections.appEnabled?(a(),l("section",ay,[t[15]||(t[15]=n("div",{class:"connection-top"},[n("i",{class:"fab fa-github","aria-hidden":"true"}),n("span",{class:"connection-badge"},"Recommended")],-1)),n("div",ly,[t[8]||(t[8]=n("h2",null,"GitHub App",-1)),n("span",{class:A(["connection-status",{"is-connected":e.connections.appConnected&&!e.connections.appError}])},c(e.connections.appError?"Needs attention":e.connections.appConnected?"Connected":"Not connected"),3)]),t[16]||(t[16]=n("p",null,"Read-only access to gists and the repositories you choose.",-1)),e.connections.appError?(a(),l("p",dy,c(e.connections.appError)+". Reconnect to restore access.",1)):f("v-if",!0),n("div",uy,[e.connections.appConnected&&!e.connections.appError?(a(),l("a",cy,[...t[9]||(t[9]=[g("Manage repository access ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-external-link"})],-1)])])):f("v-if",!0),n("a",{class:A(e.connections.appConnected&&!e.connections.appError?"connection-link":"btn btn-ink"),target:"_self",href:"/github/app/login"},c(e.connections.appConnected?"Reconnect account":"Connect GitHub account"),3),e.connections.appConnected?(a(),l("button",{key:1,class:"connection-link connection-refresh",title:"Refresh access",disabled:e.busy,onClick:t[3]||(t[3]=s=>e.loadConnections())},[...t[10]||(t[10]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),n("span",{class:"sr-only"},"Refresh access",-1)])],8,py)):f("v-if",!0)]),t[17]||(t[17]=n("p",{class:"connection-help"},"Choose repositories on GitHub. Organization access may need an administrator's approval.",-1)),e.connections.installations?.length?(a(),l("ul",fy,[(a(!0),l(q,null,J(e.connections.installations,s=>(a(),l("li",{key:s.id},[n("div",null,[t[11]||(t[11]=n("span",{class:"connection-label"},"Installed on",-1)),t[12]||(t[12]=g()),n("strong",null,c(s.account),1),s.suspended?(a(),l("span",hy," \xB7 Suspended")):f("v-if",!0)]),e.connections.installations.length>1?(a(),l("a",{key:0,target:"_self",href:"/github/app/install?installationId="+s.id},[t[13]||(t[13]=g("Manage access ",-1)),n("span",gy,"for "+c(s.account),1),t[14]||(t[14]=g(" \u2192",-1))],8,my)):f("v-if",!0)]))),128))])):f("v-if",!0)])):f("v-if",!0),n("section",null,[t[20]||(t[20]=n("div",{class:"connection-top"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-key"})]),n("span",{class:"connection-badge connection-badge-muted"},"Legacy")],-1)),n("div",vy,[t[18]||(t[18]=n("h2",null,"GitHub OAuth",-1)),n("span",{class:A(["connection-status",{"is-connected":e.connections.oauthConnected}])},c(e.connections.oauthConnected?"Connected":"Not connected"),3)]),t[21]||(t[21]=n("p",null,"For existing OAuth anonymizations.",-1)),t[22]||(t[22]=n("p",{class:"connection-help"},"This connection uses GitHub's broader repository permissions. Existing work keeps using it until you switch below.",-1)),e.connections.oauthEnabled?(a(),l("a",yy,c(e.connections.oauthConnected?"Reconnect OAuth":"Connect legacy OAuth"),1)):f("v-if",!0),e.connections.oauthConnected?(a(),l("div",by,[e.connections.gistCount?(a(),l("p",wy,c(e.connections.gistCount)+" gist(s) use your GitHub App connection when available.",1)):f("v-if",!0),t[19]||(t[19]=n("p",null,"Switch all dependent repositories before revoking access. Gists can use your GitHub App connection.",-1)),e.connections.appConnected?(a(),l("button",{key:1,class:"btn btn-sm btn-outline-danger connection-danger",disabled:e.busy||e.connections.resources.some(s=>s.connection==="oauth"),onClick:t[4]||(t[4]=s=>e.disconnectOAuth())},"Revoke OAuth access",8,ky)):f("v-if",!0)])):f("v-if",!0)])]),n("section",Cy,[n("div",Ey,[t[23]||(t[23]=n("h2",null,"Repository connections",-1)),n("span",Sy,c(e.connections.resources?.length||0)+" "+c((e.connections.resources?.length||0)===1?"resource":"resources"),1)]),t[25]||(t[25]=n("p",null,"Check access, then switch each resource to the GitHub App. After reinstalling the App, reconnect existing resources here to keep their anonymous URLs and published snapshots.",-1)),e.connections.resources?.length?f("v-if",!0):(a(),l("div",Ny,[...t[24]||(t[24]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})],-1),n("div",null,[n("h3",null,"No repository connections yet"),n("p",null,"Your repositories and pull requests will appear here once you anonymize them.")],-1),n("a",{class:"connection-link",href:"/anonymize"},"New anonymization \u2192",-1)])])),(a(!0),l(q,null,J(e.connections.resources,s=>(a(),l("div",{class:"connection-resource",key:s.type+s.id},[n("div",Ry,[n("strong",null,c(s.name||s.id),1),n("small",null,c(s.type)+" \xB7 "+c(s.id),1)]),n("span",{class:A(["connection-badge",{"connection-badge-muted":s.connection==="oauth"}])},c(s.connection==="github-app"?"Read-only App":"Legacy OAuth"),3),!["archived","removed","preparing","queue","removing","expiring"].includes(s.status)&&(s.status!=="download"||s.type==="pull-request"&&(!s.statusDate||new Date(s.statusDate).getTime()<=Date.now()-3e5))&&e.connections.appEnabled&&e.connections.appConnected?(a(),l("div",Ay,[n("button",{class:"btn btn-outline-ink",disabled:e.busy,onClick:i=>e.changeConnection(s,"github-app",!0)},"Check read-only access",8,Py),s.eligible?(a(),l("button",{key:0,class:"btn btn-ink",disabled:e.busy,onClick:i=>e.changeConnection(s,"github-app",!1)},c(s.connection==="github-app"?"Reconnect read-only access":"Switch to read-only access"),9,Dy)):f("v-if",!0),s.eligible===!1?(a(),l("span",Ty,"Access unavailable. Allow this repository on GitHub, then check again.")):f("v-if",!0)])):f("v-if",!0),!["archived","removed","preparing","queue","removing","expiring"].includes(s.status)&&(s.status!=="download"||s.type==="pull-request"&&(!s.statusDate||new Date(s.statusDate).getTime()<=Date.now()-3e5))&&s.connection==="github-app"&&e.connections.oauthConnected?(a(),l("button",{key:1,class:"connection-link",disabled:e.busy,onClick:i=>e.changeConnection(s,"oauth",!1)},"Use OAuth",8,Oy)):f("v-if",!0)]))),128)),t[26]||(t[26]=n("p",{class:"connection-footnote"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-info"})]),g(" Removing access stops new fetches from GitHub. Published content keeps its current expiration and removal settings.")],-1))])])):f("v-if",!0)])}var Iy={class:"container paper-page auth-page"},My={class:"auth-layout"},Vy={class:"auth-options"},qy={key:0},_y={key:0,class:"btn btn-ink auth-continue",target:"_self",href:"/github/login?recover=1"},$y={key:1},Ly={key:1,class:"auth-card"},Fy={key:2,class:"auth-legacy"},Uy={key:3,role:"status"};function Zc(e,t){let s=Xe("partial-view");return a(),l(q,null,[n("div",Iy,[n("div",My,[t[4]||(t[4]=Ce('
Your research, ready for review

Your code.
Your identity,
protected.
Sign in to GitHub

Sign in to create and manage your anonymizations.

',1)),n("div",Vy,[e.accountRecovery?(a(),l("section",qy,[t[0]||(t[0]=n("h2",null,"Verify your existing account",-1)),t[1]||(t[1]=n("p",null,"We found an existing account. Verify it with your previous GitHub connection to keep your anonymizations. Future sign-ins will use the GitHub App.",-1)),e.site_options?.GITHUB_OAUTH_ENABLED?(a(),l("a",_y,"Verify with previous GitHub connection")):(a(),l("p",$y,"Account verification is currently unavailable. Please try again later."))])):f("v-if",!0),e.site_options?.GITHUB_APP_ENABLED&&!e.accountRecovery?(a(),l("section",Ly,[...t[2]||(t[2]=[Ce('

Continue with GitHub

Connect through the GitHub App with read-only repository access.

  • You choose which repositories to share
  • No permission to write to your code
Sign in with GitHubYour existing anonymizations and connections stay with your account.',5)])])):f("v-if",!0),!e.site_options?.GITHUB_APP_ENABLED&&e.site_options?.GITHUB_OAUTH_ENABLED&&!e.accountRecovery?(a(),l("section",Fy,[...t[3]||(t[3]=[n("div",{class:"connection-title"},[n("h2",null,"Continue with GitHub")],-1),n("p",null,"Sign in to access your account. GitHub OAuth includes write access to private repositories.",-1),n("a",{class:"connection-link",target:"_self",href:"/github/login"},[g("Sign in with GitHub "),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-arrow-right"})])],-1)])])):f("v-if",!0),e.site_options&&!e.site_options.GITHUB_APP_ENABLED&&!e.site_options.GITHUB_OAUTH_ENABLED?(a(),l("p",Uy,"GitHub sign-in is currently unavailable. Please try again later.")):f("v-if",!0)])])]),Oe(s,{name:"partials/footer.htm",state:e.viewState},null,8,["state"])],64)}function xc(e,t){let s=Xe("partial-view");return a(),l(q,null,[t[0]||(t[0]=Ce('
Error \xB7 404

This link
isn\u2019t here.

The anonymous mirror you\u2019re looking for has expired, been removed by its owner, or never existed. If you received this URL from an author, ask them to re-issue it.

',1)),Oe(s,{name:"partials/footer.htm",state:e.viewState},null,8,["state"])],64)}var By={class:"container paper-page admin-page"},zy={class:"seg-bar"},Hy={class:"seg-filter",role:"radiogroup","aria-label":"Filter by status"},jy=["aria-checked"],Gy={class:"count"},Wy=["aria-checked"],Ky={class:"count"},Yy=["aria-checked"],Xy={class:"count"},Qy=["aria-checked"],Jy={class:"count"},Zy=["aria-checked"],xy={class:"count"},eb=["aria-checked"],tb={class:"count"},sb={class:"seg-countline",role:"status"},ob={key:0,class:"alert alert-danger",style:{margin:"8px 0"}},ib={class:"w-100 admin-filter-toolbar","aria-label":"Conferences","accept-charset":"UTF-8"},rb={class:"admin-filter-row"},ab={class:"search-wrap"},lb={type:"search",class:"form-control",placeholder:"Search conferences\u2026",autocomplete:"off"},db={key:0,class:"admin-search-hint"},ub={key:1,class:"admin-filter-inline","aria-label":"Pagination"},cb=["disabled"],pb={style:{"font-family":"var(--font-mono)","font-size":"12px",color:"var(--ink-muted)"}},fb=["disabled"],hb={key:0,class:"admin-filter-row"},mb={class:"admin-active-chips"},gb={class:"key"},vb=["onClick"],yb={class:"paper-table paper-table-conferences w-100",role:"table","aria-label":"Conferences"},bb={key:0,class:"paper-table-head",role:"row"},wb={role:"columnheader"},kb={role:"columnheader"},Cb={role:"columnheader"},Eb={class:"paper-table-row",role:"row"},Sb={class:"cell-anon",role:"cell"},Nb={class:"anon-text"},Rb=["textContent","href"],Ab={class:"anon-sub"},Pb={class:"cell-status",role:"cell"},Db=["textContent"],Tb={class:"cell-views num",role:"cell"},Ob=["textContent","href"],Ib={class:"cell-expires",role:"cell"},Mb={class:"cell-actions",role:"cell"},Vb={class:"dropdown"},qb={class:"dropdown-menu dropdown-menu-right"},_b=["href"],$b=["href"],Lb=["href"],Fb=["onClick"],Ub={key:1,class:"paper-table-empty"},Bb={class:"admin-toolbar",style:{"justify-content":"space-between","border-bottom":"none"}},zb={key:0,class:"pagination-compact"},Hb=["disabled"],jb=["max"],Gb=["disabled"],Wb={class:"admin-filter-inline"},Kb={class:"form-control form-control-sm"};function ep(e,t){let s=Pe("field"),i=Pe("form");return a(),l("div",By,[t[55]||(t[55]=Ce('
Admin \xA0/\xA0 Conferences

Conferences

',3)),n("div",zy,[n("div",Hy,[n("button",{type:"button",role:"radio",class:A(["seg-chip",{active:e.segView()==="all"}]),"aria-checked":e.segView()==="all",onClick:t[0]||(t[0]=o=>e.setSegView("all"))},[t[14]||(t[14]=g("All ",-1)),n("span",Gy,c(e.fmt?.number(e.segCount("all"))),1)],10,jy),n("button",{type:"button",role:"radio",class:A(["seg-chip",{active:e.segView()==="ready","is-empty":!e.segCount("ready")}]),"aria-checked":e.segView()==="ready",onClick:t[1]||(t[1]=o=>e.setSegView("ready"))},[t[15]||(t[15]=n("span",{class:"seg-dot ok","aria-hidden":"true"},null,-1)),t[16]||(t[16]=g("Ready ",-1)),n("span",Ky,c(e.fmt?.number(e.segCount("ready"))),1)],10,Wy),n("button",{type:"button",role:"radio",class:A(["seg-chip",{active:e.segView()==="preparing","is-empty":!e.segCount("preparing")}]),"aria-checked":e.segView()==="preparing",onClick:t[2]||(t[2]=o=>e.setSegView("preparing"))},[t[17]||(t[17]=n("span",{class:"seg-dot warn","aria-hidden":"true"},null,-1)),t[18]||(t[18]=g("Preparing ",-1)),n("span",Xy,c(e.fmt?.number(e.segCount("preparing"))),1)],10,Yy),n("button",{type:"button",role:"radio",class:A(["seg-chip",{active:e.segView()==="error","is-empty":!e.segCount("error")}]),"aria-checked":e.segView()==="error",onClick:t[3]||(t[3]=o=>e.setSegView("error"))},[t[19]||(t[19]=n("span",{class:"seg-dot bad","aria-hidden":"true"},null,-1)),t[20]||(t[20]=g("Error ",-1)),n("span",Jy,c(e.fmt?.number(e.segCount("error"))),1)],10,Qy),n("button",{type:"button",role:"radio",class:A(["seg-chip",{active:e.segView()==="expired","is-empty":!e.segCount("expired")}]),"aria-checked":e.segView()==="expired",onClick:t[4]||(t[4]=o=>e.setSegView("expired"))},[t[21]||(t[21]=n("span",{class:"seg-dot off","aria-hidden":"true"},null,-1)),t[22]||(t[22]=g("Expired ",-1)),n("span",xy,c(e.fmt?.number(e.segCount("expired"))),1)],10,Zy),n("button",{type:"button",role:"radio",class:A(["seg-chip",{active:e.segView()==="removed","is-empty":!e.segCount("removed")}]),"aria-checked":e.segView()==="removed",onClick:t[5]||(t[5]=o=>e.setSegView("removed"))},[t[23]||(t[23]=n("span",{class:"seg-dot off","aria-hidden":"true"},null,-1)),t[24]||(t[24]=g("Removed ",-1)),n("span",tb,c(e.fmt?.number(e.segCount("removed"))),1)],10,eb)]),n("p",sb,[n("strong",null,c(e.total>=0?e.fmt.number(e.total):"\u2026"),1),t[25]||(t[25]=g(" shown",-1))])]),e.fetchError?(a(),l("div",ob,[t[26]||(t[26]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),g(" "+c(e.fetchError),1)])):f("v-if",!0),D((a(),l("form",ib,[n("div",rb,[n("div",ab,[D(n("input",lb,null,512),[[s,{state:e.viewState,set:o=>{e.query.search=o},value:e.query?.search,form:null,options:{}}]]),e.query?.search?f("v-if",!0):(a(),l("span",db,"/"))]),t[30]||(t[30]=n("span",{class:"admin-filter-spacer"},null,-1)),e.total>0?(a(),l("button",{key:0,class:"btn btn-sm",type:"button",onClick:t[6]||(t[6]=o=>e.exportCsv())},[...t[27]||(t[27]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-export"})],-1),g(" Export",-1)])])):f("v-if",!0),e.totalPage>1?(a(),l("span",ub,[n("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[7]||(t[7]=o=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1,"aria-label":"Previous page"},[...t[28]||(t[28]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1)])],8,cb),n("span",pb,c(e.query?.page)+"/"+c(e.totalPage||1),1),n("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[8]||(t[8]=o=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage,"aria-label":"Next page"},[...t[29]||(t[29]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,fb)])):f("v-if",!0)]),e.chips?.length?(a(),l("div",hb,[n("div",mb,[(a(!0),l(q,null,J(e.chips,(o,r)=>(a(),l("span",{class:"admin-active-chip",key:o?.key},[n("span",gb,c(o?.label),1),n("span",null,c(o?.value),1),n("button",{type:"button",onClick:d=>e.clearFilter(o.key),"aria-label":"Clear filter"},[...t[31]||(t[31]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])],8,vb)]))),128))])])):f("v-if",!0)])),[[i,e.viewState]]),n("div",yb,[e.total!==0?(a(),l("div",bb,[n("div",wb,[n("button",{type:"button",class:A(["sortable",{active:e.query?.sort=="name"}]),onClick:t[9]||(t[9]=o=>e.sortBy("name"))},[t[33]||(t[33]=g("Conference ",-1)),e.sortIcon("name")?(a(),l("svg",{key:0,class:A(["ui-icon sort-direction",{ascending:e.sortIcon("name")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[32]||(t[32]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)]),n("div",kb,[n("button",{type:"button",class:A(["sortable",{active:e.query?.sort=="status"}]),onClick:t[10]||(t[10]=o=>e.sortBy("status"))},[t[35]||(t[35]=g("Status ",-1)),e.sortIcon("status")?(a(),l("svg",{key:0,class:A(["ui-icon sort-direction",{ascending:e.sortIcon("status")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[34]||(t[34]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)]),t[38]||(t[38]=n("div",{role:"columnheader",class:"num"},"Repos",-1)),n("div",Cb,[n("button",{type:"button",class:A(["sortable",{active:e.query?.sort=="startDate"}]),onClick:t[11]||(t[11]=o=>e.sortBy("startDate"))},[t[37]||(t[37]=g("Window ",-1)),e.sortIcon("startDate")?(a(),l("svg",{key:0,class:A(["ui-icon sort-direction",{ascending:e.sortIcon("startDate")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[36]||(t[36]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)]),t[39]||(t[39]=n("div",{role:"columnheader","aria-label":"Actions"},null,-1))])):f("v-if",!0),(a(!0),l(q,null,J(e.filteredConferences,(o,r)=>(a(),l("div",Eb,[n("div",Sb,[t[40]||(t[40]=n("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Conference"},[n("use",{href:"#project-icon-conference"})],-1)),n("div",Nb,[n("a",{class:"repo-name",textContent:c(o?.name),href:e.safeUrl("/conference/"+o?.conferenceID)},null,8,Rb),n("div",Ab,[n("span",null,c(o?.conferenceID),1),n("span",null,c(e.fmt?.money(o?.price||0)),1)])])]),n("div",Pb,[n("span",{class:A(["status-dot","st-"+(o?.status||"unknown")])},null,2),n("span",{textContent:c(e.fmt?.statusLabel(o?.status))},null,8,Db)]),n("div",Tb,[t[41]||(t[41]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})],-1)),n("a",{title:"Show repositories in this conference",textContent:c(e.fmt?.number(o?.repositories?.length||0)),href:e.safeUrl("/admin/?conference="+o?.conferenceID)},null,8,Ob)]),n("div",Ib,[t[42]||(t[42]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),g(" "+c(e.fmt?.date(o?.startDate))+" \u2013 "+c(e.fmt?.date(o?.endDate)),1)]),n("div",Mb,[n("div",Vb,[t[48]||(t[48]=n("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-more"})])],-1)),n("div",qb,[n("a",{class:"dropdown-item",href:e.safeUrl("/conference/"+o?.conferenceID+"/edit")},[...t[43]||(t[43]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),g(" Edit",-1)])],8,_b),n("a",{class:"dropdown-item",href:e.safeUrl("/conference/"+o?.conferenceID+"/")},[...t[44]||(t[44]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),g(" View",-1)])],8,$b),n("a",{class:"dropdown-item",href:e.safeUrl("/admin/?conference="+o?.conferenceID)},[...t[45]||(t[45]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})],-1),g(" View repositories",-1)])],8,Lb),t[47]||(t[47]=n("div",{class:"dropdown-divider"},null,-1)),D(n("a",{class:"dropdown-item text-danger",href:"#",onClick:ae(d=>e.removeConference(o),["prevent"])},[...t[46]||(t[46]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1),g(" Remove",-1)])],8,Fb),[[Z,o?.status!="removed"]])])])])]))),256)),e.filteredConferences?.length==0?(a(),l("div",Ub,[t[49]||(t[49]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1)),n("span",null,c(e.total?"No conferences match the current filters.":"No conferences yet."),1)])):f("v-if",!0)]),n("div",Bb,[t[54]||(t[54]=n("span",{"aria-hidden":"true"},null,-1)),e.totalPage>1?(a(),l("div",zb,[n("button",{class:"btn btn-sm",onClick:t[12]||(t[12]=o=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1},[...t[50]||(t[50]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1),g(" Previous",-1)])],8,Hb),D(n("input",{type:"number",class:"form-control form-control-sm",min:"1",style:{width:"56px"},max:e.totalPage},null,8,jb),[[s,{state:e.viewState,set:o=>{e.query.page=o},value:e.query?.page,form:null,options:{}}]]),n("span",null,"of "+c(e.totalPage),1),n("button",{class:"btn btn-sm",onClick:t[13]||(t[13]=o=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage},[...t[51]||(t[51]=[g("Next ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,Gb)])):f("v-if",!0),n("span",Wb,[t[53]||(t[53]=n("label",null,"Per page",-1)),D((a(),l("select",Kb,[...t[52]||(t[52]=[Ce('',5)])])),[[s,{state:e.viewState,set:o=>{e.query.limit=o},value:e.query?.limit,form:null,options:{}}]])])])])}var Yb={class:"container paper-page admin-page errors-page"},Xb={class:"errors-header"},Qb={class:"errors-actions"},Jb={class:"kpi-grid"},Zb={class:"kpi-card"},xb={class:"kpi-value"},e1={key:0},t1={key:1},n1={key:2},s1=["aria-pressed"],o1={class:"kpi-value"},i1={class:"kpi-sub"},r1=["aria-pressed"],a1={class:"kpi-value"},l1={class:"kpi-sub"},d1=["aria-pressed"],u1={class:"kpi-value"},c1={class:"kpi-sub"},p1={class:"kpi-value"},f1={class:"kpi-sub"},h1={key:0,class:"dropped-warn"},m1={class:"volume-chart"},g1={class:"volume-head"},v1={class:"volume-legend"},y1={key:0},b1={key:1},w1={key:2},k1={class:"volume-bars"},C1=["title"],E1={class:"errors-toolbar","aria-label":"Error filters"},S1={class:"seg-filter",role:"radiogroup","aria-label":"Filter by severity"},N1=["aria-checked"],R1={class:"count"},A1=["aria-checked"],P1={class:"count"},D1=["aria-checked"],T1={class:"count"},O1=["aria-checked"],I1={class:"count"},M1={class:"search-wrap"},V1={type:"search",class:"form-control",placeholder:"Search errors\u2026",title:"Search messages, or filter with code:repo_not_found module:route status:>=400",autocomplete:"off"},q1={key:0,class:"filter-count"},_1={class:"select-wrap"},$1={class:"form-control form-control-sm"},L1={class:"select-wrap"},F1={class:"form-control form-control-sm"},U1={class:"autoref"},B1={type:"checkbox"},z1={key:0,class:"admin-empty"},H1={key:1,class:"errors-pager"},j1={key:2,class:"errors-list"},G1={key:0,class:"errors-group-head"},W1={class:"errors-group-count"},K1={key:0,class:"errors-group-note"},Y1=["onClick"],X1={class:"col-when"},Q1={class:"when-rel"},J1={class:"when-abs"},Z1={class:"col-sev"},x1={class:"sev-label"},ew={class:"col-mod"},tw={class:"pill pill-module"},nw={class:"col-msg"},sw={class:"msg-code"},ow={key:0,class:"msg-context"},iw={key:1,class:"msg-detail"},rw=["title"],aw={class:"col-count"},lw={key:0,class:"count-pill"},dw={key:1,class:"count-pill count-pill-muted"},uw={class:"col-status"},cw=["title"],pw={key:1,class:"status-empty",title:"No HTTP status for this event"},fw={key:0,class:"errors-row-detail"},hw={class:"detail-tabs"},mw=["onClick"],gw=["onClick"],vw=["onClick"],yw={class:"detail-body"},bw={class:"detail-main"},ww={key:0},kw={key:1,class:"stack-pre"},Cw={key:2,class:"related-list"},Ew={class:"when-abs"},Sw={class:"msg-url"},Nw={class:"detail-actions"},Rw=["onClick"],Aw=["onClick"],Pw={key:0,class:"copy-hint"},Dw={class:"detail-aside"},Tw={class:"aside-block"},Ow=["title"],Iw={class:"aside-block"},Mw=["title"],Vw={class:"aside-block"},qw={class:"aside-value"},_w={key:0,class:"aside-sub"},$w={key:0,class:"aside-block"},Lw=["href"],Fw={key:1,class:"aside-block"},Uw={class:"aside-value mono"};function tp(e,t){let s=Pe("field"),i=Pe("form");return a(),l("div",Yb,[t[49]||(t[49]=n("div",{class:"paper-crumbs"},[g("Admin \xA0/\xA0 "),n("span",{class:"here"},"Errors")],-1)),n("header",Xb,[t[16]||(t[16]=n("h1",{class:"paper-page-title"},"Errors",-1)),n("div",Qb,[n("button",{class:"btn btn-sm",type:"button",onClick:t[0]||(t[0]=o=>e.exportCsv())},[...t[14]||(t[14]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-export"})],-1),g(" Export CSV",-1)])]),n("button",{class:"btn btn-sm btn-outline-danger",type:"button",onClick:t[1]||(t[1]=o=>e.clearAll())},[...t[15]||(t[15]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1),g(" Clear all",-1)])])])]),t[50]||(t[50]=Ce('',1)),n("section",Jb,[n("div",Zb,[t[17]||(t[17]=n("div",{class:"kpi-label"},"Occurrences \xB7 24h",-1)),n("div",xb,c(e.fmt?.number(e.stats?.last24h??0)),1),n("div",{class:A(["kpi-sub",{up:e.stats?.delta>0,down:e.stats?.delta<0}])},[e.stats?.prev24h>=20?(a(),l("span",e1,c((e.stats?.last24h??0)-(e.stats?.prev24h??0)>=0?"+":"")+c(Math.round(((e.stats?.last24h??0)-(e.stats?.prev24h??0))/e.stats.prev24h*100))+"% vs yesterday",1)):e.stats?.prev24h!==void 0?(a(),l("span",t1,c(e.fmt?.number(e.stats?.prev24h??0))+" in prior 24h",1)):f("v-if",!0),e.stats?.prev24h?f("v-if",!0):(a(),l("span",n1,"no prior baseline"))],2)]),n("div",{class:A(["kpi-card kpi-error kpi-filter",{"is-selected":e.query?.bucket==="error"}]),role:"button",tabindex:"0","aria-pressed":e.query?.bucket==="error",title:"Show only errors (5xx)",onClick:t[2]||(t[2]=o=>e.setBucket(e.query?.bucket==="error"?"":"error")),onKeydown:t[3]||(t[3]=kt(ae(o=>e.setBucket(e.query?.bucket==="error"?"":"error"),["prevent"]),["enter"]))},[t[18]||(t[18]=n("div",{class:"kpi-label"},"Error",-1)),n("div",o1,c(e.fmt?.number(e.stats?.severity?.error??0)),1),n("div",i1,"5xx \xB7 "+c(e.stats?.unique?.error)+" unique",1)],42,s1),n("div",{class:A(["kpi-card kpi-warn kpi-filter",{"is-selected":e.query?.bucket==="warn"}]),role:"button",tabindex:"0","aria-pressed":e.query?.bucket==="warn",title:"Show only warnings (4xx, aborted requests)",onClick:t[4]||(t[4]=o=>e.setBucket(e.query?.bucket==="warn"?"":"warn")),onKeydown:t[5]||(t[5]=kt(ae(o=>e.setBucket(e.query?.bucket==="warn"?"":"warn"),["prevent"]),["enter"]))},[t[19]||(t[19]=n("div",{class:"kpi-label"},"Warning",-1)),n("div",a1,c(e.fmt?.number(e.stats?.severity?.warn??0)),1),n("div",l1,"4xx, aborted \xB7 "+c(e.stats?.unique?.warn)+" unique",1)],42,r1),n("div",{class:A(["kpi-card kpi-info kpi-filter",{"is-selected":e.query?.bucket==="info"}]),role:"button",tabindex:"0","aria-pressed":e.query?.bucket==="info",title:"Show only info events",onClick:t[6]||(t[6]=o=>e.setBucket(e.query?.bucket==="info"?"":"info")),onKeydown:t[7]||(t[7]=kt(ae(o=>e.setBucket(e.query?.bucket==="info"?"":"info"),["prevent"]),["enter"]))},[t[20]||(t[20]=n("div",{class:"kpi-label"},"Info",-1)),n("div",u1,c(e.fmt?.number(e.stats?.severity?.info??0)),1),n("div",c1,"Auth, 404 \xB7 "+c(e.stats?.unique?.info)+" unique",1)],42,d1),n("div",{class:A(["kpi-card",{"kpi-error":e.stats?.dropped>0}])},[t[21]||(t[21]=n("div",{class:"kpi-label"},"Distinct errors stored",-1)),n("div",p1,c(e.fmt?.number(e.total)),1),n("div",f1,[g(" all time \xB7 cap "+c(e.fmt?.number(e.cap))+" \xB7 "+c(e.available?"live":"redis off")+" ",1),e.stats?.dropped>0?(a(),l("span",h1," \xB7 "+c(e.stats?.dropped)+" dropped",1)):f("v-if",!0)])],2)]),n("section",m1,[n("div",g1,[t[25]||(t[25]=n("span",{class:"volume-title"},"Volume \xB7 24h \xB7 1h buckets",-1)),n("span",v1,[e.stats?.severity?.error?(a(),l("span",y1,[...t[22]||(t[22]=[n("span",{class:"dot dot-error"},null,-1),g("Error",-1)])])):f("v-if",!0),e.stats?.severity?.warn?(a(),l("span",b1,[...t[23]||(t[23]=[n("span",{class:"dot dot-warn"},null,-1),g("Warning",-1)])])):f("v-if",!0),e.stats?.severity?.info?(a(),l("span",w1,[...t[24]||(t[24]=[n("span",{class:"dot dot-info"},null,-1),g("Info",-1)])])):f("v-if",!0)])]),n("div",k1,[(a(!0),l(q,null,J(e.stats?.buckets,(o,r)=>(a(),l("div",{class:"volume-bar",key:r,title:e.bucketTitle(o)},[n("span",{class:"seg seg-error",style:Ie({height:e.barPx(o,"error")+"px"})},null,4),n("span",{class:"seg seg-warn",style:Ie({height:e.barPx(o,"warn")+"px"})},null,4),n("span",{class:"seg seg-info",style:Ie({height:e.barPx(o,"info")+"px"})},null,4)],8,C1))),128))]),t[26]||(t[26]=n("div",{class:"volume-axis","aria-hidden":"true"},[n("span",null,"24h ago"),n("span",null,"12h ago"),n("span",null,"now")],-1))]),D((a(),l("form",E1,[n("div",S1,[n("button",{type:"button",role:"radio",class:A(["seg-chip",{active:(e.query?.bucket||"")===""}]),"aria-checked":(e.query?.bucket||"")==="",onClick:t[8]||(t[8]=o=>e.setBucket(""))},[t[27]||(t[27]=g("All ",-1)),n("span",R1,c(e.fmt?.number((e.stats?.severity?.error??0)+(e.stats?.severity?.warn??0)+(e.stats?.severity?.info??0))),1)],10,N1),n("button",{type:"button",role:"radio",class:A(["seg-chip",{active:(e.query?.bucket||"")==="error","is-empty":!e.stats?.severity?.error}]),"aria-checked":(e.query?.bucket||"")==="error",onClick:t[9]||(t[9]=o=>e.setBucket("error"))},[t[28]||(t[28]=n("span",{class:"seg-dot bad","aria-hidden":"true"},null,-1)),t[29]||(t[29]=g("Error ",-1)),n("span",P1,c(e.fmt?.number(e.stats?.severity?.error??0)),1)],10,A1),n("button",{type:"button",role:"radio",class:A(["seg-chip",{active:(e.query?.bucket||"")==="warn","is-empty":!e.stats?.severity?.warn}]),"aria-checked":(e.query?.bucket||"")==="warn",onClick:t[10]||(t[10]=o=>e.setBucket("warn"))},[t[30]||(t[30]=n("span",{class:"seg-dot warn","aria-hidden":"true"},null,-1)),t[31]||(t[31]=g("Warning ",-1)),n("span",T1,c(e.fmt?.number(e.stats?.severity?.warn??0)),1)],10,D1),n("button",{type:"button",role:"radio",class:A(["seg-chip",{active:(e.query?.bucket||"")==="info","is-empty":!e.stats?.severity?.info}]),"aria-checked":(e.query?.bucket||"")==="info",onClick:t[11]||(t[11]=o=>e.setBucket("info"))},[t[32]||(t[32]=n("span",{class:"seg-dot off","aria-hidden":"true"},null,-1)),t[33]||(t[33]=g("Info ",-1)),n("span",I1,c(e.fmt?.number(e.stats?.severity?.info??0)),1)],10,O1)]),n("div",M1,[t[34]||(t[34]=n("svg",{class:"ui-icon search-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-search"})],-1)),D(n("input",V1,null,512),[[s,{state:e.viewState,set:o=>{e.query.search=o},value:e.query?.search,form:null,options:{}}]]),e.parsedFilterCount?(a(),l("span",q1,c(e.parsedFilterCount)+" filter"+c(e.parsedFilterCount>1?"s":""),1)):f("v-if",!0)]),n("div",_1,[t[36]||(t[36]=n("label",null,"Sort",-1)),D((a(),l("select",$1,[...t[35]||(t[35]=[n("option",{value:"recent"},"Most recent",-1),n("option",{value:"count"},"Most frequent",-1)])])),[[s,{state:e.viewState,set:o=>{e.query.sort=o},value:e.query?.sort,form:null,options:{}}]])]),n("div",L1,[t[38]||(t[38]=n("label",{title:"Rows are always sectioned by severity. This merges repeated events inside each section."},"Merge",-1)),D((a(),l("select",F1,[...t[37]||(t[37]=[n("option",{value:""},"Don't merge",-1),n("option",{value:"code"},"Same error",-1),n("option",{value:"module"},"Same module",-1)])])),[[s,{state:e.viewState,set:o=>{e.query.group=o},value:e.query?.group,form:null,options:{}}]])]),n("label",U1,[D(n("input",B1,null,512),[[s,{state:e.viewState,set:o=>{e.query.autoRefresh=o},value:e.query?.autoRefresh,form:null,options:{}}]]),t[39]||(t[39]=n("span",{class:"auto-refresh-label"},"Auto-refresh",-1))]),n("button",{class:"btn btn-sm btn-icon",type:"button",title:"Refresh now",onClick:t[12]||(t[12]=o=>e.refreshNow()),"aria-label":"Refresh"},[...t[40]||(t[40]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1)])])])),[[i,e.viewState]]),e.visible?.length?f("v-if",!0):(a(),l("div",z1,"No errors captured.")),e.canLoadMore()&&e.visible?.length?(a(),l("div",H1,[n("span",null,c(e.query?.group&&e.visible?.length!==e.entries?.length?e.fmt?.number(e.visible?.length)+(e.visible?.length===1?" group":" groups")+" from ":"")+c(e.fmt?.number(e.entries?.length))+" of "+c(e.fmt?.number(e.total))+" stored errors loaded",1),n("button",{class:"btn btn-sm",type:"button",onClick:t[13]||(t[13]=o=>e.loadMore())},"Load 250 older")])):f("v-if",!0),e.visible?.length?(a(),l("div",j1,[t[48]||(t[48]=Ce('
WhenSeverityModuleMessageTotalStatus
',1)),(a(!0),l(q,null,J(e.visible,(o,r)=>(a(),l(q,{key:o?._key},[r===0||e.visible[r-1]?._bucket!==o?._bucket?(a(),l("div",G1,[n("span",{class:A(["sev-dot","sev-"+o?._bucket])},null,2),g(c(o?._bucket==="error"?"Error":o?._bucket==="warn"?"Warning":"Info"),1),n("span",W1,c(e.fmt?.number(e.visible.filter(d=>d?._bucket===o?._bucket).length)),1),r===0?(a(),l("span",K1,"By severity \xB7 "+c(e.query?.group==="code"?"repeats merged by error \xB7 ":e.query?.group==="module"?"repeats merged by module \xB7 ":"")+c(e.query?.sort==="count"?"most frequent first":"most recent first"),1)):f("v-if",!0)])):f("v-if",!0),n("div",{class:A(["errors-row",{open:e.expanded[o?._key]}])},[n("div",{class:"errors-row-main",onClick:d=>e.toggle(o)},[n("div",X1,[n("div",Q1,c(e.relTime(o?.ts)),1),n("div",J1,c(e.absTimeShort(o?.ts)),1)]),n("div",Z1,[n("span",{class:A(["sev-dot","sev-"+o?._bucket])},null,2),n("span",x1,c(o?._bucket==="error"?"Error":o?._bucket==="warn"?"Warning":"Info"),1)]),n("div",ew,[n("span",tw,c(o?.module),1)]),n("div",nw,[n("strong",sw,c(o?.displayMessage),1),o?.displayContext&&o?.displayContext!==o?.displayMessage?(a(),l("span",ow,c(o?.displayContext),1)):f("v-if",!0),o?._detail?(a(),l("span",iw,c(o?._detail),1)):f("v-if",!0),o?._url?(a(),l("div",{key:2,class:"msg-url",title:o?._url},c(o?._url),9,rw)):f("v-if",!0)]),n("div",aw,[o?.count>1?(a(),l("span",lw,"\xD7"+c(o?.count),1)):f("v-if",!0),o?.count===1?(a(),l("span",dw,"\xD71")):f("v-if",!0)]),n("div",uw,[o?._status?(a(),l("span",{key:0,class:A(["status-pill",String(o?._status).match(/^[23]/)?"status-neutral":"status-"+o?._bucket]),title:String(o?._status).match(/^2/)&&o?._bucket==="warn"?"Client closed the connection":null},c(String(o?._status).match(/^2/)&&o?._bucket==="warn"?"\u2014":o?._status),11,cw)):f("v-if",!0),o?._status?f("v-if",!0):(a(),l("span",pw,"\u2014"))])],8,Y1),e.expanded[o?._key]?(a(),l("div",fw,[n("div",hw,[n("button",{type:"button",class:A({active:e.detailTab[o?._key]==="raw"||!e.detailTab[o?._key]}),onClick:d=>e.detailTab[o._key]="raw"},"Raw",10,mw),o?._stack?(a(),l("button",{key:0,type:"button",class:A({active:e.detailTab[o?._key]==="stack"}),onClick:d=>e.detailTab[o._key]="stack"},"Stack",10,gw)):f("v-if",!0),o?.count>1?(a(),l("button",{key:1,type:"button",class:A({active:e.detailTab[o?._key]==="related"}),onClick:d=>e.detailTab[o._key]="related"},"Related ("+c(o?.count)+")",11,vw)):f("v-if",!0)]),n("div",yw,[n("div",bw,[(e.detailTab[o?._key]||"raw")==="raw"?(a(),l("pre",ww,c(o?._detailJson),1)):f("v-if",!0),e.detailTab[o?._key]==="stack"?(a(),l("pre",kw,c(o?._stack),1)):f("v-if",!0),e.detailTab[o?._key]==="related"?(a(),l("div",Cw,[(a(!0),l(q,null,J(o?._related,(d,p)=>(a(),l("div",{class:"related-row",key:p},[n("span",Ew,c(e.absTimeShort(d?.ts)),1),n("span",Sw,c(d?._url),1),d?._status?(a(),l("span",{key:0,class:A(["status-pill","status-"+d?._bucket])},c(d?._status),3)):f("v-if",!0)]))),128))])):f("v-if",!0),n("div",Nw,[n("button",{class:"btn btn-sm",type:"button",title:"Copy a curl that reproduces the request",onClick:d=>e.copyCurl(o)},[...t[41]||(t[41]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-code"})],-1),g(" Copy curl",-1)])],8,Rw),n("button",{class:"btn btn-sm",type:"button",onClick:d=>e.copyJson(o)},[...t[42]||(t[42]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-clipboard"})],-1),g(" Copy JSON",-1)])],8,Aw),e.copyHint?(a(),l("span",Pw,c(e.copyHint),1)):f("v-if",!0)])]),n("aside",Dw,[n("div",Tw,[t[43]||(t[43]=n("div",{class:"aside-label"},"First seen",-1)),n("div",{class:"aside-value",title:e.absTime(o?._firstSeen)},c(e.relTime(o?._firstSeen)),9,Ow)]),n("div",Iw,[t[44]||(t[44]=n("div",{class:"aside-label"},"Last seen",-1)),n("div",{class:"aside-value",title:e.absTime(o?.ts)},c(e.relTime(o?.ts)),9,Mw)]),n("div",Vw,[t[45]||(t[45]=n("div",{class:"aside-label"},"Occurrences",-1)),n("div",qw,[g(c(o?.count),1),o?._lastHourCount?(a(),l("span",_w," \xB7 "+c(o?._lastHourCount)+" this hour",1)):f("v-if",!0)])]),o?._repoId?(a(),l("div",$w,[t[46]||(t[46]=n("div",{class:"aside-label"},"Repository",-1)),n("a",{class:"aside-value",href:e.safeUrl("/r/"+o?._repoId)},c(o?._repoId),9,Lw)])):f("v-if",!0),o?._url?(a(),l("div",Fw,[t[47]||(t[47]=n("div",{class:"aside-label"},"URL",-1)),n("div",Uw,c(o?._url),1)])):f("v-if",!0)])])])):f("v-if",!0)],2)],64))),128))])):f("v-if",!0)])}var Bw={class:"container paper-page admin-page overview-page"},zw={key:0,class:"admin-empty"},Hw={key:1,class:"alert alert-danger",style:{margin:"12px 0"}},jw={class:"ov-views",role:"tablist","aria-label":"Overview sections"},Gw=["aria-selected","onClick"],Ww={key:2},Kw={key:0,class:"ov-health",role:"status"},Yw={class:"ov-kpi-row"},Xw={class:"ov-kpi-card"},Qw={class:"ov-kpi-value"},Jw={class:"ov-kpi-sub"},Zw={class:"ov-kpi-card"},xw={class:"ov-kpi-sub"},ek={class:"ov-kpi-card"},tk={class:"ov-kpi-sub"},nk={class:"ov-kpi-card"},sk={class:"ov-kpi-sub"},ok={class:"ov-kpi-card"},ik={class:"ov-kpi-value"},rk={class:"ov-kpi-sub"},ak={class:"ov-daily-row"},lk={class:"ov-daily-card"},dk={class:"ov-daily-value"},uk={class:"ov-daily-card"},ck={class:"ov-daily-value"},pk={class:"ov-daily-sub"},fk={class:"ov-daily-card"},hk={class:"ov-daily-value"},mk={class:"ov-chart-card"},gk={class:"ov-chart-head"},vk={class:"ov-chart-legends"},yk={class:"ov-chart-legend"},bk={key:0,class:"ov-legend-missing"},wk={key:0,class:"ov-spark-bars ov-has-axis"},kk={class:"ov-yaxis","aria-hidden":"true"},Ck=["data-tip","aria-label"],Ek={key:1,class:"ov-spark-x"},Sk={class:"ov-chart-card"},Nk={class:"ov-chart-head"},Rk={class:"ov-chart-legends"},Ak={class:"ov-chart-legend"},Pk={key:0,class:"ov-legend-missing"},Dk={key:0,class:"ov-spark-bars ov-has-axis"},Tk={class:"ov-yaxis","aria-hidden":"true"},Ok=["data-tip","aria-label"],Ik={key:1,class:"ov-spark-x"},Mk={key:0,class:"ov-chart-card"},Vk={class:"ov-chart-head"},qk={class:"ov-chart-legends"},_k={class:"ov-chart-legend"},$k={key:0,class:"ov-legend-missing"},Lk={key:0,class:"ov-spark-bars ov-spark-step ov-has-axis"},Fk={class:"ov-yaxis","aria-hidden":"true"},Uk=["viewBox","aria-label"],Bk=["d"],zk=["d"],Hk={key:1,class:"ov-spark-x"},jk={class:"ov-chart-card"},Gk={class:"ov-chart-head"},Wk={class:"ov-chart-legends"},Kk={class:"ov-chart-legend"},Yk={key:0,class:"ov-legend-missing"},Xk={key:0,class:"ov-spark-bars ov-has-axis"},Qk={class:"ov-yaxis","aria-hidden":"true"},Jk=["data-tip","aria-label"],Zk={key:1,class:"ov-spark-x"},xk={class:"ov-triple-row"},e0={class:"ov-panel-card"},t0={class:"ov-panel-head"},n0={class:"ov-panel-meta"},s0={class:"ov-stacked-bar"},o0={class:"ov-bar-legend"},i0={href:"/admin/repositories",class:"ov-legend-item"},r0={class:"ov-legend-n"},a0={href:"/admin/repositories",class:"ov-legend-item"},l0={class:"ov-legend-n"},d0={href:"/admin/repositories",class:"ov-legend-item"},u0={class:"ov-legend-n"},c0={href:"/admin/repositories",class:"ov-legend-item"},p0={class:"ov-legend-n"},f0={href:"/admin/repositories",class:"ov-legend-item"},h0={class:"ov-legend-n"},m0={class:"ov-panel-card"},g0={class:"ov-panel-head"},v0={class:"ov-panel-meta"},y0={class:"ov-error-bars"},b0={class:"ov-ebar-row"},w0={class:"ov-ebar-track"},k0={class:"ov-ebar-n"},C0={class:"ov-ebar-row"},E0={class:"ov-ebar-track"},S0={class:"ov-ebar-n"},N0={key:0,class:"ov-ehours",role:"img","aria-label":"Errors per hour over the last 24 hours"},R0={class:"ov-ehours-legend"},A0={class:"ov-ehours-note"},P0={class:"ov-ehours-bars"},D0=["title"],T0={key:0,class:"ov-ehours-zero"},O0={class:"ov-ebar-note"},I0={key:0,class:"ov-panel-foot"},M0={href:"/admin/errors"},V0={class:"ov-panel-card"},q0={class:"ov-routes-table"},_0={class:"ov-route-row",href:"/admin/queues"},$0={class:"ov-route-n"},L0={class:"ov-route-n"},F0={class:"ov-route-row",href:"/admin/queues"},U0={class:"ov-route-n"},B0={class:"ov-route-n"},z0={class:"ov-route-row",href:"/admin/queues"},H0={class:"ov-route-n"},j0={class:"ov-route-n"},G0={class:"ov-services-card"},W0={class:"ov-services-head"},K0={class:"ov-panel-meta"},Y0={class:"ov-services-grid"},X0={class:"ov-svc"},Q0={class:"ov-svc-info"},J0={class:"ov-svc-meta"},Z0={class:"ov-svc"},x0={class:"ov-svc-info"},e2={key:0,class:"ov-svc-meta"},t2={key:1,class:"ov-svc-meta"},n2={class:"ov-svc"},s2={class:"ov-svc-info"},o2={key:0,class:"ov-svc-meta"},i2={key:1,class:"ov-svc-meta"},r2={class:"ov-svc"},a2={class:"ov-svc-info"},l2={key:0,class:"ov-svc-meta"},d2={key:1,class:"ov-svc-meta"},u2={class:"ov-svc"},c2=["title"],p2={class:"ov-svc-info"},f2={class:"ov-svc-meta"},h2={class:"ov-panel-card ov-cache","aria-labelledby":"cache-heading"},m2={class:"ov-panel-head ov-performance-head"},g2={class:"ov-performance-window"},v2={key:0,class:"ov-performance-message ov-performance-warning",role:"alert"},y2={key:1,class:"ov-performance-empty",role:"status"},b2={key:0,class:"ov-performance-note"},w2={key:1,class:"ov-performance-note"},k2={key:2,class:"ov-performance-message ov-performance-warning",role:"status"},C2={key:3,class:"ov-metrics-scroll",tabindex:"0",role:"region","aria-label":"Cache storage budgets"},E2={class:"ov-metrics-table"},S2={scope:"row",class:"ov-event-name"},N2=["title"],R2={key:0,class:"ov-metric-bad-text"},A2={key:1,class:"budget-bar","aria-hidden":"true"},P2={class:"num"},D2={class:"num"},T2={class:"num"},O2={class:"num"},I2={key:4,class:"ov-cache-rates"},M2={key:5,class:"ov-metrics-scroll",tabindex:"0",role:"region","aria-label":"Cache events and processing durations"},V2={class:"ov-metrics-table"},q2={scope:"row",class:"ov-event-name"},_2={class:"ov-event-traffic"},$2={class:"num"},L2={class:"num"},F2={key:6,class:"ov-performance-empty",role:"status"},U2={class:"ov-performance-note"},B2={class:"ov-panel-card ov-performance","aria-labelledby":"performance-heading"},z2={class:"ov-panel-head ov-performance-head"},H2={class:"ov-performance-window"},j2={key:0,class:"ov-performance-message ov-performance-warning",role:"alert"},G2={key:1,class:"ov-performance-empty",role:"status"},W2={key:2},K2={id:"performance-routes",role:"region","aria-label":"Routes"},Y2={key:0,class:"ov-metrics-scroll",tabindex:"0",role:"region","aria-label":"Route latency metrics, scroll for more columns"},X2={class:"ov-metrics-table"},Q2={scope:"row",class:"ov-metric-name"},J2={class:"num"},Z2={class:"num"},x2={class:"num"},eC={class:"num"},tC={class:"num"},nC={key:1,class:"ov-performance-empty"},sC={id:"performance-processes",role:"region","aria-label":"Processes"},oC={key:0,class:"ov-performance-message ov-performance-warning",role:"status"},iC={key:1,class:"ov-metrics-scroll",tabindex:"0",role:"region","aria-label":"Process resource metrics, scroll for more columns"},rC={class:"ov-metrics-table"},aC={scope:"row",class:"ov-metric-name"},lC={key:0,class:"ov-metric-warn"},dC={class:"num"},uC={class:"num"},cC={class:"num"},pC={class:"num"},fC={class:"num"},hC={class:"num"},mC={class:"num"},gC={class:"num"},vC={id:"performance-stages",role:"region","aria-label":"Work stages"},yC={key:0,class:"ov-metrics-scroll",tabindex:"0",role:"region","aria-label":"Work stage metrics, scroll for more columns"},bC={class:"ov-metrics-table"},wC={scope:"row",class:"ov-metric-name"},kC={class:"num"},CC={class:"num"},EC={class:"num"},SC={key:1,class:"ov-performance-empty"};function np(e,t){return a(),l("div",Bw,[t[95]||(t[95]=Ce('
Admin \xA0/\xA0 Overview

Overview

Live \xB7 refreshes every 30s
',2)),e.loading?(a(),l("div",zw,"Loading overview\u2026")):f("v-if",!0),e.error?(a(),l("div",Hw,[t[8]||(t[8]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),g(" "+c(e.error),1)])):f("v-if",!0),n("div",jw,[(a(),l(q,null,J([{id:"summary",label:"Summary"},{id:"performance",label:"Performance"},{id:"cache",label:"Cache"}],s=>n("button",{type:"button",role:"tab",key:s.id,"aria-selected":e.ovView===s.id?"true":"false",class:A({active:e.ovView===s.id}),onClick:i=>e.setOvView(s.id)},c(s.label),11,Gw)),64))]),e.data?D((a(),l("div",Ww,[e.data?.system?.memPercent>90||e.data?.system?.diskPercent>90?(a(),l("div",Kw,[t[10]||(t[10]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),n("span",null,[t[9]||(t[9]=n("b",null,"Server needs attention.",-1)),g(" "+c(e.healthAlert()),1)])])):f("v-if",!0),f(" \u2500\u2500 Top KPI row \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),n("section",Yw,[n("div",Xw,[t[11]||(t[11]=n("div",{class:"ov-kpi-label"},"Live repositories",-1)),n("div",Qw,c(e.humanNum((e.data?.repos?.statusBreakdown||[]).filter(s=>s._id!=="removed"&&s._id!=="expired").reduce((s,i)=>s+(i.count||0),0))),1),n("div",Jw,c(e.humanNum(((e.data?.repos?.statusBreakdown||[]).find(s=>s._id==="removed")||{}).count||0))+" removed \xB7 "+c(e.humanNum(e.data?.repos?.total))+" total",1)]),n("div",Zw,[t[12]||(t[12]=n("div",{class:"ov-kpi-label"},"CPU",-1)),n("div",{class:A(["ov-kpi-value",{"ov-val-warn":e.data?.system?.cpuPercent>=75}])},c(e.data?.system?.cpuPercent)+"%",3),n("div",{class:A(["ov-meter",{warn:e.data?.system?.cpuPercent>=75,crit:e.data?.system?.cpuPercent>90}])},[n("span",{style:Ie({width:Math.min(100,e.data?.system?.cpuPercent||0)+"%"})},null,4)],2),n("div",xw,[e.data?.system?.cpuPercent>=75?(a(),l("b",{key:0,class:A(["ov-flag",{critical:e.data?.system?.cpuPercent>90}])},c(e.data?.system?.cpuPercent>90?"Critical":"High")+" \xB7 ",3)):f("v-if",!0),g(c(e.data?.system?.cpuCount)+" cores \xB7 load "+c(e.data?.system?.loadAvg?.[0]?.toFixed(1)),1)])]),n("div",ek,[t[13]||(t[13]=n("div",{class:"ov-kpi-label"},"Memory",-1)),n("div",{class:A(["ov-kpi-value",{"ov-val-warn":e.data?.system?.memPercent>=75}])},c(e.data?.system?.memPercent)+"%",3),n("div",{class:A(["ov-meter",{warn:e.data?.system?.memPercent>=75,crit:e.data?.system?.memPercent>90}])},[n("span",{style:Ie({width:Math.min(100,e.data?.system?.memPercent||0)+"%"})},null,4)],2),n("div",tk,[e.data?.system?.memPercent>=75?(a(),l("b",{key:0,class:A(["ov-flag",{critical:e.data?.system?.memPercent>90}])},c(e.data?.system?.memPercent>90?"Critical":"High")+" \xB7 ",3)):f("v-if",!0),g(c(e.humanBytes(e.data?.system?.memUsed).replace(/\s*GB$/,""))+" / "+c(e.humanBytes(e.data?.system?.memTotal)),1)])]),n("div",nk,[t[14]||(t[14]=n("div",{class:"ov-kpi-label"},"Disk",-1)),n("div",{class:A(["ov-kpi-value",{"ov-val-warn":e.data?.system?.diskPercent>=75}])},c(e.data?.system?.diskPercent)+"%",3),n("div",{class:A(["ov-meter",{warn:e.data?.system?.diskPercent>=75,crit:e.data?.system?.diskPercent>90}])},[n("span",{style:Ie({width:Math.min(100,e.data?.system?.diskPercent||0)+"%"})},null,4)],2),n("div",sk,[e.data?.system?.diskPercent>=75?(a(),l("b",{key:0,class:A(["ov-flag",{critical:e.data?.system?.diskPercent>90}])},c(e.data?.system?.diskPercent>90?"Critical":"High")+" \xB7 ",3)):f("v-if",!0),g(c(e.humanBytes(e.data?.system?.diskUsed).replace(/\s*GB$/,""))+" / "+c(e.humanBytes(e.data?.system?.diskTotal)),1),e.data?.system?.diskMount&&e.data.system.diskMount!=="/"?(a(),l(q,{key:1},[g(" \xB7 "+c(e.data?.system?.diskMount),1)],64)):f("v-if",!0)])]),n("div",ok,[t[15]||(t[15]=n("div",{class:"ov-kpi-label"},"Uptime",-1)),n("div",ik,c(e.humanDuration(e.data?.system?.uptime)),1),n("div",rk,c(e.data?.system?.nodeVersion)+" \xB7 "+c(e.data?.system?.platform),1)])]),f(" \u2500\u2500 Daily activity highlights \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),n("section",ak,[n("div",lk,[t[16]||(t[16]=n("div",{class:"ov-daily-label"},"New repos today",-1)),n("div",dk,c(e.fmt?.number(e.data?.daily?.today?.repositories||0)),1),t[17]||(t[17]=n("div",{class:"ov-daily-sub"},"so far today",-1))]),n("div",uk,[t[18]||(t[18]=n("div",{class:"ov-daily-label"},"New users today",-1)),n("div",ck,c(e.fmt?.number(e.data?.daily?.today?.users||0)),1),n("div",pk,c(e.fmt?.number(e.data?.users?.total))+" total \xB7 +"+c(e.fmt?.number(e.usersGained()))+" in 30 days",1)]),n("div",fk,[t[19]||(t[19]=n("div",{class:"ov-daily-label"},"Page views today",-1)),n("div",hk,c(e.fmt?.number(e.data?.daily?.today?.pageViews||0)),1),t[20]||(t[20]=n("div",{class:"ov-daily-sub"},"so far today",-1))])]),f(" \u2500\u2500 Daily charts \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),n("section",{class:A(["ov-chart-row",{"is-three":e.usersTiny()}])},[n("div",mk,[n("div",gk,[t[23]||(t[23]=n("span",{class:"ov-chart-title"},"Daily page views \xB7 30d",-1)),n("span",vk,[n("span",yk,[t[21]||(t[21]=n("span",{class:"ov-dot-legend ov-dot-accent"},null,-1)),g("views/day \xB7 peak "+c(e.fmt?.number(e.historyMax("dailyPageViews"))),1)]),e.historyHasMissing()?(a(),l("span",bk,[...t[22]||(t[22]=[n("span",{class:"ov-swatch-missing","aria-hidden":"true"},null,-1),g("No data",-1)])])):f("v-if",!0)])]),e.data?.history?.length?(a(),l("div",wk,[n("div",kk,[n("span",null,c(e.fmt?.number(e.axisMax("dailyPageViews"))),1),n("span",null,c(e.fmt?.number(e.axisMax("dailyPageViews")/2)),1),t[24]||(t[24]=n("span",null,"0",-1))]),(a(!0),l(q,null,J(e.data?.history,(s,i)=>(a(),l("div",{class:A(["ov-spark-col has-tip",{"is-missing":s?._empty}]),key:i,"data-tip":s?._empty?e.historyLabel(s)+": no data":e.historyLabel(s)+": +"+e.fmt?.number(s?.dailyPageViews)+(s?.dailyPageViews===1?" view":" views"),"aria-label":s?._empty?e.historyLabel(s)+": no data":e.historyLabel(s)+": +"+e.fmt?.number(s?.dailyPageViews)+(s?.dailyPageViews===1?" view":" views")},[n("span",{class:"ov-spark-fill",style:Ie({height:e.historyBarH(s,"dailyPageViews")+"px"})},null,4)],10,Ck))),128))])):f("v-if",!0),e.data?.history?.length?(a(),l("div",Ek,[n("span",null,c(e.historyLabel(e.data?.history[0])),1),n("span",null,c(e.historyLabel(e.data?.history[Math?.floor(e.data?.history?.length/2)])),1),n("span",null,c(e.historyLabel(e.data?.history[e.data?.history?.length-1])),1)])):f("v-if",!0)]),n("div",Sk,[n("div",Nk,[t[27]||(t[27]=n("span",{class:"ov-chart-title"},"New repos \xB7 30d",-1)),n("span",Rk,[n("span",Ak,[t[25]||(t[25]=n("span",{class:"ov-dot-legend ov-dot-ok-fill"},null,-1)),g("repos/day \xB7 peak "+c(e.fmt?.number(e.historyMax("dailyRepositories"))),1)]),e.historyHasMissing()?(a(),l("span",Pk,[...t[26]||(t[26]=[n("span",{class:"ov-swatch-missing","aria-hidden":"true"},null,-1),g("No data",-1)])])):f("v-if",!0)])]),e.data?.history?.length?(a(),l("div",Dk,[n("div",Tk,[n("span",null,c(e.fmt?.number(e.axisMax("dailyRepositories"))),1),n("span",null,c(e.fmt?.number(e.axisMax("dailyRepositories")/2)),1),t[28]||(t[28]=n("span",null,"0",-1))]),(a(!0),l(q,null,J(e.data?.history,(s,i)=>(a(),l("div",{class:A(["ov-spark-col has-tip",{"is-missing":s?._empty}]),key:i,"data-tip":s?._empty?e.historyLabel(s)+": no data":e.historyLabel(s)+": +"+e.fmt?.number(s?.dailyRepositories)+(s?.dailyRepositories===1?" repo":" repos"),"aria-label":s?._empty?e.historyLabel(s)+": no data":e.historyLabel(s)+": +"+e.fmt?.number(s?.dailyRepositories)+(s?.dailyRepositories===1?" repo":" repos")},[n("span",{class:"ov-spark-fill ov-spark-fill-alt",style:Ie({height:e.historyBarH(s,"dailyRepositories")+"px"})},null,4)],10,Ok))),128))])):f("v-if",!0),e.data?.history?.length?(a(),l("div",Ik,[n("span",null,c(e.historyLabel(e.data?.history[0])),1),n("span",null,c(e.historyLabel(e.data?.history[Math?.floor(e.data?.history?.length/2)])),1),n("span",null,c(e.historyLabel(e.data?.history[e.data?.history?.length-1])),1)])):f("v-if",!0)]),e.usersTiny()?f("v-if",!0):(a(),l("div",Mk,[n("div",Vk,[t[31]||(t[31]=n("span",{class:"ov-chart-title"},"Users \xB7 30d",-1)),n("span",qk,[n("span",_k,[t[29]||(t[29]=n("span",{class:"ov-dot-legend ov-dot-user-fill"},null,-1)),g("total users \xB7 "+c(e.fmt?.number(e.historyRange("nbUsers").max))+" now \xB7 +"+c(e.fmt?.number(Math.max(0,e.historyRange("nbUsers").max-e.usersFirst())))+" in 30 days",1)]),e.historyHasMissing()?(a(),l("span",$k,[...t[30]||(t[30]=[n("span",{class:"ov-swatch-missing","aria-hidden":"true"},null,-1),g("No data",-1)])])):f("v-if",!0)])]),e.data?.history?.length?(a(),l("div",Lk,[n("div",Fk,[n("span",null,c(e.fmt?.number(e.userAxis().hi)),1),n("span",null,c(e.fmt?.number((e.userAxis().hi+e.userAxis().lo)/2)),1),n("span",null,c(e.fmt?.number(e.userAxis().lo)),1)]),(a(),l("svg",{class:"ov-step-svg",viewBox:"0 0 "+e.data.history.length+" 140",preserveAspectRatio:"none",role:"img","aria-label":"Total users over 30 days, from "+e.fmt?.number(e.usersFirst())+" to "+e.fmt?.number(e.historyRange("nbUsers").max)},[e.userAxis().lo===0?(a(),l("path",{key:0,class:"ov-step-area",d:e.userStepPath(!0)},null,8,Bk)):f("v-if",!0),n("path",{class:"ov-step-line",d:e.userStepPath(!1),"vector-effect":"non-scaling-stroke"},null,8,zk)],8,Uk)),e.firstDataIndex()>0?(a(),l("div",{key:0,class:"ov-step-missing",style:Ie({width:e.firstDataIndex()/e.data.history.length*100+"%"})},null,4)):f("v-if",!0)])):f("v-if",!0),e.data?.history?.length?(a(),l("div",Hk,[n("span",null,c(e.historyLabel(e.data?.history[0])),1),n("span",null,c(e.historyLabel(e.data?.history[Math?.floor(e.data?.history?.length/2)])),1),n("span",null,c(e.historyLabel(e.data?.history[e.data?.history?.length-1])),1)])):f("v-if",!0)])),n("div",jk,[n("div",Gk,[t[34]||(t[34]=n("span",{class:"ov-chart-title"},"New users \xB7 30d",-1)),n("span",Wk,[n("span",Kk,[t[32]||(t[32]=n("span",{class:"ov-dot-legend ov-dot-new-user-fill"},null,-1)),g("users/day \xB7 peak "+c(e.fmt?.number(e.historyMax("dailyUsers"))),1)]),e.historyHasMissing()?(a(),l("span",Yk,[...t[33]||(t[33]=[n("span",{class:"ov-swatch-missing","aria-hidden":"true"},null,-1),g("No data",-1)])])):f("v-if",!0)])]),e.data?.history?.length?(a(),l("div",Xk,[n("div",Qk,[n("span",null,c(e.fmt?.number(e.axisMax("dailyUsers"))),1),n("span",null,c(e.fmt?.number(e.axisMax("dailyUsers")/2)),1),t[35]||(t[35]=n("span",null,"0",-1))]),(a(!0),l(q,null,J(e.data?.history,(s,i)=>(a(),l("div",{class:A(["ov-spark-col has-tip",{"is-missing":s?._empty}]),key:i,"data-tip":s?._empty?e.historyLabel(s)+": no data":e.historyLabel(s)+": +"+e.fmt?.number(s?.dailyUsers)+(s?.dailyUsers===1?" user":" users"),"aria-label":s?._empty?e.historyLabel(s)+": no data":e.historyLabel(s)+": +"+e.fmt?.number(s?.dailyUsers)+(s?.dailyUsers===1?" user":" users")},[n("span",{class:"ov-spark-fill ov-spark-fill-new-user",style:Ie({height:e.historyBarH(s,"dailyUsers")+"px"})},null,4)],10,Jk))),128))])):f("v-if",!0),e.data?.history?.length?(a(),l("div",Zk,[n("span",null,c(e.historyLabel(e.data?.history[0])),1),n("span",null,c(e.historyLabel(e.data?.history[Math?.floor(e.data?.history?.length/2)])),1),n("span",null,c(e.historyLabel(e.data?.history[e.data?.history?.length-1])),1)])):f("v-if",!0)])],2),f(" \u2500\u2500 Three-panel row: Status / Errors / Queues \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),n("section",xk,[f(" Repo status breakdown "),n("div",e0,[n("div",t0,[t[36]||(t[36]=n("span",{class:"ov-panel-title"},"Repo status",-1)),n("span",n0,c(e.fmt?.number(e.data?.repos?.total))+" total",1)]),n("div",s0,[e.barPct("ready")>0?(a(),l("span",{key:0,class:"ov-bar-seg ov-bar-ready",title:"Ready",style:Ie({width:e.barPct("ready")+"%"})},null,4)):f("v-if",!0),e.barPct("preparing")>0?(a(),l("span",{key:1,class:"ov-bar-seg ov-bar-preparing",title:"Preparing",style:Ie({width:e.barPct("preparing")+"%"})},null,4)):f("v-if",!0),e.barPct("error")>0?(a(),l("span",{key:2,class:"ov-bar-seg ov-bar-error",title:"Error",style:Ie({width:e.barPct("error")+"%"})},null,4)):f("v-if",!0),e.barPct("expired")>0?(a(),l("span",{key:3,class:"ov-bar-seg ov-bar-expired",title:"Expiring / expired",style:Ie({width:e.barPct("expired")+"%"})},null,4)):f("v-if",!0),e.barPct("removed")>0?(a(),l("span",{key:4,class:"ov-bar-seg ov-bar-removed",title:"Removing / removed",style:Ie({width:e.barPct("removed")+"%"})},null,4)):f("v-if",!0)]),n("div",o0,[n("a",i0,[t[37]||(t[37]=n("span",{class:"ov-swatch ov-bar-ready"},null,-1)),t[38]||(t[38]=g(" Ready ",-1)),n("span",r0,c(e.fmt?.number(e.statusCount("ready"))),1)]),n("a",a0,[t[39]||(t[39]=n("span",{class:"ov-swatch ov-bar-preparing"},null,-1)),t[40]||(t[40]=g(" Preparing ",-1)),n("span",l0,c(e.fmt?.number(e.statusCount("preparing")+e.statusCount("download"))),1)]),n("a",d0,[t[41]||(t[41]=n("span",{class:"ov-swatch ov-bar-error"},null,-1)),t[42]||(t[42]=g(" Error ",-1)),n("span",u0,c(e.fmt?.number(e.statusCount("error"))),1)]),n("a",c0,[t[43]||(t[43]=n("span",{class:"ov-swatch ov-bar-expired"},null,-1)),t[44]||(t[44]=g(" Expiring / expired ",-1)),n("span",p0,c(e.fmt?.number(e.statusCount("expired")+e.statusCount("expiring"))),1)]),n("a",f0,[t[45]||(t[45]=n("span",{class:"ov-swatch ov-bar-removed"},null,-1)),t[46]||(t[46]=g(" Removing / removed ",-1)),n("span",h0,c(e.fmt?.number(e.statusCount("removed")+e.statusCount("removing"))),1)])])]),f(" Error breakdown "),n("div",m0,[n("div",g0,[t[47]||(t[47]=n("span",{class:"ov-panel-title"},"Errors \xB7 24h",-1)),n("span",v0,c(e.fmt?.number(e.realErrors()))+" "+c(e.realErrors()===1?"error":"errors"),1)]),n("div",y0,[n("div",b0,[t[48]||(t[48]=n("span",{class:"ov-ebar-label"},"Error",-1)),n("span",w0,[n("span",{class:"ov-ebar-fill ov-ebar-error",style:Ie({width:e.errPct("error")+"%"})},null,4)]),n("span",k0,c(e.data?.errors?.severity?.error),1)]),n("div",C0,[t[49]||(t[49]=n("span",{class:"ov-ebar-label"},"Warning",-1)),n("span",E0,[n("span",{class:"ov-ebar-fill ov-ebar-warn",style:Ie({width:e.errPct("warn")+"%"})},null,4)]),n("span",S0,c(e.data?.errors?.severity?.warn),1)]),e.errorHours().length?(a(),l("div",N0,[n("div",R0,[t[52]||(t[52]=n("span",{class:"ov-ehours-key"},[n("span",{class:"ov-ehours-swatch is-error","aria-hidden":"true"}),g("Error")],-1)),t[53]||(t[53]=n("span",{class:"ov-ehours-key"},[n("span",{class:"ov-ehours-swatch is-warn","aria-hidden":"true"}),g("Warning")],-1)),n("span",A0,[t[50]||(t[50]=g("Per hour",-1)),t[51]||(t[51]=n("span",{class:"seg-sep","aria-hidden":"true"},"\xB7",-1)),g("peak "+c(e.fmt?.number(e.errorHoursPeak())),1)])]),n("div",P0,[(a(!0),l(q,null,J(e.errorHours(),s=>(a(),l("span",{key:s.key,class:A({"is-bad":s.bad,"is-zero":s.zero}),title:s.title},[s.zero?(a(),l("i",T0)):(a(),l(q,{key:1},[s.errPct?(a(),l("i",{key:0,class:"ov-ehours-e",style:Ie({height:s.errPct+"%"})},null,4)):f("v-if",!0),s.warnPct?(a(),l("i",{key:1,class:"ov-ehours-w",style:Ie({height:s.warnPct+"%"})},null,4)):f("v-if",!0)],64))],10,D0))),128))]),t[54]||(t[54]=n("div",{class:"ov-ehours-x"},[n("span",null,"24h ago"),n("span",null,"now")],-1))])):f("v-if",!0),n("p",O0,"Info "+c(e.fmt?.number(e.data?.errors?.severity?.info||0))+" \xB7 logged, not counted as errors",1)]),e.data?.repos?.recentErrors24h?(a(),l("div",I0,[n("a",M0,c(e.data?.repos?.recentErrors24h)+" repos in error state \u2192",1)])):f("v-if",!0)]),f(" Top routes / queues "),n("div",V0,[t[59]||(t[59]=n("div",{class:"ov-panel-head"},[n("span",{class:"ov-panel-title"},"Queues"),n("span",{class:"ov-panel-meta"},"by state")],-1)),n("div",q0,[t[58]||(t[58]=Ce('
QueueActiveWaitFailed
',1)),n("a",_0,[t[55]||(t[55]=n("span",{class:"ov-route-name"},"Download",-1)),n("span",$0,c(e.data?.queues?.download?.active),1),n("span",L0,c(e.data?.queues?.download?.waiting),1),n("span",{class:A(["ov-route-n ov-route-lat",{"ov-n-bad":e.data?.queues?.download?.failed>0}])},c(e.data?.queues?.download?.failed),3)]),n("a",F0,[t[56]||(t[56]=n("span",{class:"ov-route-name"},"Remove",-1)),n("span",U0,c(e.data?.queues?.remove?.active),1),n("span",B0,c(e.data?.queues?.remove?.waiting),1),n("span",{class:A(["ov-route-n ov-route-lat",{"ov-n-bad":e.data?.queues?.remove?.failed>0}])},c(e.data?.queues?.remove?.failed),3)]),n("a",z0,[t[57]||(t[57]=n("span",{class:"ov-route-name"},"Cache cleanup",-1)),n("span",H0,c(e.data?.queues?.cache?.active),1),n("span",j0,c(e.data?.queues?.cache?.waiting),1),n("span",{class:A(["ov-route-n ov-route-lat",{"ov-n-bad":e.data?.queues?.cache?.failed>0}])},c(e.data?.queues?.cache?.failed),3)])])])]),f(" \u2500\u2500 Services bar \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),n("section",G0,[n("div",W0,[t[60]||(t[60]=n("span",{class:"ov-panel-title"},"Services",-1)),n("span",K0,"5 services \xB7 "+c(e.realErrors()>0?"1 needs attention":"all healthy"),1)]),n("div",Y0,[n("div",X0,[t[62]||(t[62]=n("span",{class:"ov-svc-dot ov-dot-ok"},null,-1)),n("div",Q0,[t[61]||(t[61]=n("span",{class:"ov-svc-name"},"web",-1)),n("span",J0,c(e.data?.system?.nodeVersion)+" \xB7 up "+c(e.humanDuration(e.data?.system?.uptime)),1)])]),n("div",Z0,[n("span",{class:A(["ov-svc-dot",e.queueTotal(e.data?.queues?.download)>0?"ov-dot-ok":"ov-dot-idle"])},null,2),n("div",x0,[t[63]||(t[63]=n("span",{class:"ov-svc-name"},"download",-1)),e.queueTotal(e.data?.queues?.download)?(a(),l("span",e2,c(e.queueTotal(e.data?.queues?.download))+" "+c(e.queueTotal(e.data?.queues?.download)===1?"job":"jobs"),1)):f("v-if",!0),e.queueTotal(e.data?.queues?.download)?f("v-if",!0):(a(),l("span",t2,"idle"))])]),n("div",n2,[n("span",{class:A(["ov-svc-dot",e.queueTotal(e.data?.queues?.cache)>0?"ov-dot-ok":"ov-dot-idle"])},null,2),n("div",s2,[t[64]||(t[64]=n("span",{class:"ov-svc-name"},"cache",-1)),e.queueTotal(e.data?.queues?.cache)?(a(),l("span",o2,c(e.queueTotal(e.data?.queues?.cache))+" "+c(e.queueTotal(e.data?.queues?.cache)===1?"job":"jobs"),1)):f("v-if",!0),e.queueTotal(e.data?.queues?.cache)?f("v-if",!0):(a(),l("span",i2,"idle"))])]),n("div",r2,[n("span",{class:A(["ov-svc-dot",e.queueTotal(e.data?.queues?.remove)>0?"ov-dot-ok":"ov-dot-idle"])},null,2),n("div",a2,[t[65]||(t[65]=n("span",{class:"ov-svc-name"},"remove",-1)),e.queueTotal(e.data?.queues?.remove)?(a(),l("span",l2,c(e.queueTotal(e.data?.queues?.remove))+" "+c(e.queueTotal(e.data?.queues?.remove)===1?"job":"jobs"),1)):f("v-if",!0),e.queueTotal(e.data?.queues?.remove)?f("v-if",!0):(a(),l("span",d2,"idle"))])]),n("div",u2,[n("span",{class:A(["ov-svc-dot",e.realErrors()>0?"ov-dot-warn":"ov-dot-ok"]),title:e.realErrors()>0?"Errors in the last 24 hours":"No errors in the last 24 hours"},null,10,c2),n("div",p2,[t[66]||(t[66]=n("span",{class:"ov-svc-name"},"errors",-1)),n("span",f2,c(e.fmt?.number(e.realErrors()))+" / 24h",1)])])])])],512)),[[Z,e.ovView==="summary"]]):f("v-if",!0),D(n("section",h2,[n("div",m2,[t[71]||(t[71]=n("div",null,[n("h2",{class:"ov-panel-title",id:"cache-heading"},"Cache"),n("p",{class:"ov-performance-note"},"Shared storage, repeated reads and anonymization work")],-1)),n("div",g2,[t[69]||(t[69]=n("label",{for:"cache-window"},"Time range",-1)),D(n("select",{id:"cache-window",class:"form-control form-control-sm","onUpdate:modelValue":t[0]||(t[0]=s=>e.cacheMinutes=s),onChange:t[1]||(t[1]=s=>e.loadCache())},[...t[67]||(t[67]=[n("option",{value:15},"Last 15 minutes",-1),n("option",{value:60},"Last hour",-1),n("option",{value:1440},"Last 24 hours",-1),n("option",{value:10080},"Last 7 days",-1)])],544),[[Ut,e.cacheMinutes,void 0,{number:!0}]]),t[70]||(t[70]=n("label",{for:"cache-traffic"},"Traffic",-1)),D(n("select",{id:"cache-traffic",class:"form-control form-control-sm","onUpdate:modelValue":t[2]||(t[2]=s=>e.cacheTraffic=s)},[...t[68]||(t[68]=[Ce('',6)])],512),[[Ut,e.cacheTraffic]])])]),e.cacheError?(a(),l("div",v2,[n("span",null,c(e.cacheError),1),n("button",{type:"button",class:"btn btn-sm",onClick:t[3]||(t[3]=s=>e.loadCache())},"Retry")])):f("v-if",!0),!e.cacheReport&&!e.cacheError?(a(),l("p",y2,"Loading cache monitoring\u2026")):f("v-if",!0),e.cacheReport?.available?(a(),l(q,{key:2},[e.cacheReport.enabled?f("v-if",!0):(a(),l("p",b2,"Shared blob storage is disabled. Inspection and legacy-cache activity are still measured.")),e.cacheReport.filesystemSupported?f("v-if",!0):(a(),l("p",w2,"Shared blobs require a local filesystem. The configured storage continues to use its existing cache.")),e.cacheReport.dropped?(a(),l("p",k2,c(e.cacheReport.dropped)+" telemetry events were dropped. Totals may be incomplete.",1)):f("v-if",!0),e.cacheReport.source?(a(),l("div",C2,[n("table",E2,[t[72]||(t[72]=n("caption",{class:"sr-only"},"Current shared-cache storage and byte budgets",-1)),t[73]||(t[73]=n("thead",null,[n("tr",null,[n("th",{scope:"col"},"Pool"),n("th",{scope:"col",class:"num"},"Allocated / budget"),n("th",{scope:"col",class:"num"},"Reserved for fills"),n("th",{scope:"col",class:"num"},"Original bytes"),n("th",{scope:"col",class:"num"},"Blobs"),n("th",{scope:"col",class:"num"},"Active readers")])],-1)),n("tbody",null,[(a(!0),l(q,null,J([{name:"Source blobs",data:e.cacheReport.source},{name:"Transformed output",data:e.cacheReport.results}],s=>D((a(),l("tr",{key:s.name},[n("th",S2,c(s.name),1),n("td",{class:A(["num budget-cell",{"is-over":s.data?.budgetBytes&&s.data?.allocatedBytes>s.data?.budgetBytes}]),title:s.data?.budgetBytes?Math.round(100*(s.data?.allocatedBytes||0)/s.data.budgetBytes)+"% of budget":null},[s.data?.budgetBytes&&s.data?.allocatedBytes>s.data?.budgetBytes?(a(),l("span",R2,"Over budget \xB7 ")):f("v-if",!0),g(c(e.humanBytes(s.data?.allocatedBytes))+" / "+c(e.humanBytes(s.data?.budgetBytes)),1),s.data?.budgetBytes?(a(),l("span",A2,[n("i",{style:Ie({width:Math.min(100,Math.round(100*(s.data?.allocatedBytes||0)/s.data.budgetBytes))+"%"})},null,4)])):f("v-if",!0)],10,N2),n("td",P2,c(e.humanBytes(s.data?.reservedBytes)),1),n("td",D2,c(e.humanBytes(s.data?.originalBytes)),1),n("td",T2,c(e.fmt?.number(s.data?.blobs)),1),n("td",O2,c(e.fmt?.number(s.data?.activeReaders)),1)])),[[Z,s.data]])),128))])])])):f("v-if",!0),e.cacheReport.source?(a(),l("dl",I2,[n("div",null,[t[74]||(t[74]=n("dt",null,"Source request hit rate",-1)),n("dd",null,c(e.cacheRate("source","count")),1)]),n("div",null,[t[75]||(t[75]=n("dt",null,"Source byte hit rate",-1)),n("dd",null,c(e.cacheRate("source","bytes")),1)]),n("div",null,[t[76]||(t[76]=n("dt",null,"Decision hit rate",-1)),n("dd",null,c(e.cacheRate("decision","count")),1)])])):f("v-if",!0),t[79]||(t[79]=n("p",{class:"ov-performance-note"},"Reuse counts measure consecutive reads of the same blob within each interval. Codec timings are elapsed stream time, not CPU time; eviction times measure how long a blob was idle. Known monitors are identified by request metadata; other automation may remain in file reads.",-1)),e.cacheRows().length?(a(),l("div",M2,[n("table",V2,[t[77]||(t[77]=n("caption",{class:"sr-only"},"Cache events for the selected time range and traffic",-1)),t[78]||(t[78]=n("thead",null,[n("tr",null,[n("th",{scope:"col"},"Event"),n("th",{scope:"col"},"Traffic"),n("th",{scope:"col",class:"num"},"Count"),n("th",{scope:"col",class:"num"},"Bytes"),n("th",{scope:"col",class:"num"},"Mean measured time"),n("th",{scope:"col",class:"num"},"p95 bound")])],-1)),n("tbody",null,[(a(!0),l(q,null,J(e.cacheRows(),s=>(a(),l("tr",{key:s.name+":"+s.traffic},[n("th",q2,c(e.cacheEventName(s.name)),1),n("td",_2,c(s.traffic),1),n("td",$2,c(e.fmt?.number(s.count)),1),n("td",L2,c(e.humanBytes(s.bytes)),1),n("td",{class:A(["num",{"ov-muted":!s.ms}])},c(s.ms?e.fmt.duration(s.ms/s.count):"Not timed"),3),n("td",{class:A(["num",{"ov-muted":!s.ms}])},c(e.cacheP95(s)),3)]))),128))])])])):(a(),l("p",F2,"No cache events in this time range for the selected traffic.")),n("p",U2,"Updated "+c(e.sampleAge(e.cacheReport))+" seconds ago. Minute history is retained for 48 hours; hourly history for 30 days.",1)],64)):f("v-if",!0)],512),[[Z,e.ovView==="cache"]]),D(n("section",B2,[n("div",z2,[t[84]||(t[84]=n("div",null,[n("h2",{class:"ov-panel-title",id:"performance-heading"},"Request performance"),n("p",{class:"ov-performance-note"},"Request latency and process health")],-1)),n("div",H2,[e.performance?.available?(a(),l(q,{key:0},[t[81]||(t[81]=n("label",{for:"performance-view"},"Show",-1)),D(n("select",{id:"performance-view",class:"form-control form-control-sm","onUpdate:modelValue":t[4]||(t[4]=s=>e.performanceTab=s),"aria-label":"Performance metrics"},[...t[80]||(t[80]=[n("option",{value:"routes"},"Routes",-1),n("option",{value:"processes"},"Processes",-1),n("option",{value:"stages"},"Work stages",-1)])],512),[[Ut,e.performanceTab]])],64)):f("v-if",!0),t[83]||(t[83]=n("label",{for:"performance-window"},"Time range",-1)),D(n("select",{id:"performance-window",class:"form-control form-control-sm","onUpdate:modelValue":t[5]||(t[5]=s=>e.performanceMinutes=s),onChange:t[6]||(t[6]=s=>e.loadPerformance()),"aria-label":"Performance time range"},[...t[82]||(t[82]=[n("option",{value:15},"Last 15 minutes",-1),n("option",{value:60},"Last hour",-1)])],544),[[Ut,e.performanceMinutes,void 0,{number:!0}]])])]),e.performanceError?(a(),l("div",j2,[t[85]||(t[85]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),n("span",null,c(e.performanceError),1),n("button",{type:"button",class:"btn btn-sm",onClick:t[7]||(t[7]=s=>e.loadPerformance())},"Retry")])):f("v-if",!0),!e.performance&&!e.performanceError?(a(),l("p",G2,"Loading performance monitoring\u2026")):f("v-if",!0),e.performance?.available?(a(),l("div",W2,[D(n("div",K2,[e.performance.routes?.length?(a(),l("div",Y2,[n("table",X2,[t[86]||(t[86]=n("caption",{class:"sr-only"},"Route latency for the selected time range",-1)),t[87]||(t[87]=n("thead",null,[n("tr",null,[n("th",{scope:"col"},"Route"),n("th",{scope:"col",class:"num"},"Requests"),n("th",{scope:"col",class:"num"},"Average"),n("th",{scope:"col",class:"num"},"First byte p95"),n("th",{scope:"col",class:"num"},"p95"),n("th",{scope:"col",class:"num"},"p99"),n("th",{scope:"col",class:"num"},"Interrupted"),n("th",{scope:"col",class:"num"},"5xx"),n("th",{scope:"col",class:"num"},"Slow")])],-1)),n("tbody",null,[(a(!0),l(q,null,J(e.performance.routes,s=>(a(),l("tr",{key:s.service+s.method+s.route},[n("th",Q2,[n("span",null,c(s.route),1),n("small",null,c(s.service)+" \xB7 "+c(s.method),1)]),n("td",J2,c(e.fmt.number(s.count)),1),n("td",Z2,c(e.formatMs(s.avgMs)),1),n("td",x2,c(e.firstByteBound(s)),1),n("td",eC,c(e.latencyBound(s,"p95UpperMs")),1),n("td",tC,c(e.latencyBound(s,"p99UpperMs")),1),n("td",{class:A(["num",{"ov-metric-warn":s.aborted>0}])},c(e.fmt.number(s.aborted)),3),n("td",{class:A(["num",{"ov-metric-bad":s.errors>0}])},c(e.fmt.number(s.errors)),3),n("td",{class:A(["num",{"ov-metric-warn":s.slow>0}])},c(e.fmt.number(s.slow)),3)]))),128))])])])):(a(),l("p",nC,"No recorded requests in this time range yet."))],512),[[Z,e.performanceTab==="routes"]]),D(n("div",sC,[t[91]||(t[91]=n("p",{class:"ov-performance-note"},"API and streamer processes \xB7 latest sample per instance",-1)),e.performance.instances?.length?(a(),l("div",iC,[n("table",rC,[t[89]||(t[89]=n("caption",{class:"sr-only"},"API and streamer process resource usage",-1)),t[90]||(t[90]=n("thead",null,[n("tr",null,[n("th",{scope:"col"},"Process"),n("th",{scope:"col",class:"num"},"RSS / limit"),n("th",{scope:"col",class:"num"},"CPU"),n("th",{scope:"col",class:"num"},"Event loop p95"),n("th",{scope:"col",class:"num"},"Active requests"),n("th",{scope:"col",class:"num"},"Sockets / CLOSE_WAIT"),n("th",{scope:"col",class:"num"},"Workers / waiting"),n("th",{scope:"col",class:"num"},"Sample age"),n("th",{scope:"col",class:"num"},"Dropped batches / metrics")])],-1)),n("tbody",null,[(a(!0),l(q,null,J(e.performance.instances,s=>(a(),l("tr",{key:s.instance,class:A({"ov-metric-warning-row":e.performanceWarning(s)})},[n("th",aC,[n("span",null,c(s.instance),1),e.performanceWarning(s)?(a(),l("small",lC,[...t[88]||(t[88]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1),g(" Needs attention",-1)])])):f("v-if",!0)]),n("td",dC,[g(c(e.humanBytes(s.memory.rss))+" / "+c(e.humanBytes(s.memoryLimitBytes)),1),n("small",null,"Peak "+c(e.humanBytes(e.peakRss(s))),1)]),n("td",uC,c(s.cpuPercent==null?"Unavailable":s.cpuPercent.toFixed(1)+"%"),1),n("td",cC,c(s.eventLoop?.p95Ms==null?"Not applicable":e.fmt.duration(s.eventLoop.p95Ms)),1),n("td",pC,c(s.activeRequests),1),n("td",fC,c(s.sockets?.descriptors??"Unavailable")+" / "+c(s.sockets?.closeWait??"Unavailable"),1),n("td",hC,c(s.workers?.running??0)+" / "+c(s.workers?.waiting??0),1),n("td",mC,c(e.sampleAge(s))+" s",1),n("td",gC,c(s.droppedBatches)+" / "+c(s.droppedMetrics),1)],2))),128))])])])):(a(),l("div",oC,"No recent process samples. Monitoring coverage is incomplete."))],512),[[Z,e.performanceTab==="processes"]]),D(n("div",vC,[e.performance.stages?.some(s=>s.metric!=="first_byte")?(a(),l("div",yC,[n("table",bC,[t[92]||(t[92]=n("caption",{class:"sr-only"},"Work stages and cache results",-1)),t[93]||(t[93]=n("thead",null,[n("tr",null,[n("th",{scope:"col"},"Work stage"),n("th",{scope:"col",class:"num"},"Samples"),n("th",{scope:"col",class:"num"},"Average"),n("th",{scope:"col",class:"num"},"p95")])],-1)),n("tbody",null,[(a(!0),l(q,null,J(e.performance.stages.filter(s=>s.metric!=="first_byte"),s=>(a(),l("tr",{key:s.service+s.metric},[n("th",wC,[n("span",null,c(s.metric),1),n("small",null,c(s.service),1)]),n("td",kC,c(e.fmt.number(s.count)),1),n("td",CC,c(e.formatMs(s.avgMs)),1),n("td",EC,c(e.latencyBound(s,"p95UpperMs")),1)]))),128))])])])):(a(),l("p",SC,"No recorded work stages or cache results in this time range yet."))],512),[[Z,e.performanceTab==="stages"]]),t[94]||(t[94]=n("details",{class:"ov-performance-help"},[n("summary",null,"How to read these metrics"),n("p",null,"Latency includes upstream waits and response transfer. Percentiles show histogram bucket upper bounds, not exact timings. Process rows marked \u201CNeeds attention\u201D have stale samples, dropped monitoring data, CLOSE_WAIT sockets, high event loop delay, or high memory usage.")],-1))])):f("v-if",!0)],512),[[Z,e.ovView==="performance"]])])}var NC={class:"container paper-page admin-page"},RC={class:"q-header"},AC={class:"q-header-actions"},PC={class:"q-cards"},DC=["aria-pressed","onKeydown","onClick"],TC={class:"q-card-head"},OC=["title"],IC=["textContent"],MC=["textContent"],VC={class:"q-card-sub"},qC={class:"q-card-failed"},_C={key:0,class:"q-card-bar"},$C={key:0,class:"q-detail"},LC={class:"q-throughput"},FC={class:"q-range-btns"},UC={class:"q-section-label"},BC={key:0,class:"q-section-right"},zC={class:"q-chart-wrap"},HC={key:0,class:"q-chart-empty"},jC={class:"q-stats-panel"},GC={class:"q-section-label"},WC={class:"q-stats-grid"},KC={class:"q-stat"},YC=["textContent"],XC={class:"q-stat"},QC=["textContent"],JC={class:"q-stat"},ZC=["textContent"],xC={class:"q-stat"},eE=["textContent"],tE={class:"q-stat"},nE=["textContent"],sE={class:"q-stat"},oE=["textContent"],iE={class:"q-stats-actions"},rE=["disabled"],aE={class:"q-danger-group"},lE={class:"q-jobs"},dE={class:"q-jobs-header"},uE={class:"q-section-label"},cE={class:"seg-filter",role:"radiogroup","aria-label":"Filter jobs by state"},pE=["aria-checked"],fE={class:"count"},hE=["aria-checked"],mE={class:"count"},gE=["aria-checked"],vE={class:"count"},yE=["aria-checked"],bE={class:"count"},wE=["aria-checked"],kE={class:"count"},CE=["aria-checked"],EE={class:"count"},SE={class:"q-search-row"},NE={type:"search",class:"form-control",placeholder:"Search by job/repo id\u2026",autocomplete:"off"},RE={class:"q-auto-refresh"},AE={type:"checkbox"},PE={key:0,class:"q-table"},DE=["onClick"],TE={class:"q-cell-state"},OE=["textContent"],IE=["textContent"],ME=["title"],VE=["textContent","href"],qE=["title","textContent"],_E=["textContent"],$E=["textContent"],LE={class:"q-cell-progress"},FE=["aria-label"],UE=["textContent"],BE={class:"q-cell-actions"},zE=["onClick"],HE=["onClick"],jE={key:0,class:"q-detail-row"},GE={colspan:"7"},WE={class:"q-job-detail"},KE={class:"q-job-detail-grid"},YE={class:"q-job-detail-item"},XE={class:"q-job-detail-value"},QE=["textContent","href"],JE={class:"q-job-detail-item"},ZE={class:"q-job-detail-value"},xE=["textContent"],eS={key:0,class:"q-job-detail-item"},tS=["textContent"],nS={key:1,class:"q-job-detail-item"},sS=["textContent"],oS={key:2,class:"q-job-detail-item"},iS={class:"q-job-detail-value"},rS={key:3,class:"q-job-detail-item"},aS=["textContent"],lS={key:4,class:"q-job-detail-item"},dS=["textContent"],uS={key:5,class:"q-job-detail-item"},cS=["textContent"],pS={key:6,class:"q-job-detail-item"},fS=["textContent"],hS={key:7,class:"q-job-detail-item"},mS=["textContent"],gS={key:0,class:"q-job-detail-error"},vS=["textContent"],yS={key:1},bS=["textContent"],wS={class:"q-job-detail-actions"},kS=["onClick"],CS=["onClick"],ES=["href"],SS={key:1,class:"paper-table-empty",style:{border:"1px solid var(--border-color)","border-radius":"10px",background:"var(--paper-card)"}},NS={key:0},RS={key:1};function sp(e,t){let s=Pe("field");return a(),l("div",NC,[t[71]||(t[71]=n("div",{class:"paper-crumbs"},[g("Admin \xA0/\xA0 "),n("span",{class:"here"},"Queues")],-1)),n("div",RC,[t[18]||(t[18]=n("h1",{class:"paper-page-title"},"Queues",-1)),n("div",AC,[n("button",{class:"btn btn-sm",onClick:t[0]||(t[0]=i=>e.pauseAll())},"Pause all queues")])]),t[72]||(t[72]=Ce('',1)),f(" Queue overview cards "),n("div",PC,[(a(!0),l(q,null,J(e.queueList,(i,o)=>(a(),l("div",{class:A(["q-card",{selected:e.selectedQueue==i?.key,paused:i?.paused}]),role:"button",tabindex:"0","aria-pressed":e.selectedQueue===i.key,onKeydown:[kt(ae(r=>e.selectQueue(i.key),["prevent"]),["enter"]),kt(ae(r=>e.selectQueue(i.key),["prevent"]),["space"])],onClick:r=>e.selectQueue(i.key)},[n("div",TC,[n("span",{class:A(["q-dot",{"q-dot-red":i?.paused||i?.counts?.failed>0,"q-dot-idle":!i?.counts?.active&&!i?.counts?.waiting}]),title:i?.paused?"Paused":i?.counts?.failed>0?i.counts.failed+" failed jobs":i?.counts?.active||i?.counts?.waiting?"Running":"Idle"},null,10,OC),n("span",{class:"q-card-name",textContent:c(i?.label)},null,8,IC)]),n("div",{class:"q-card-count",textContent:c((i?.counts?.waiting||0)+(i?.counts?.active||0)+(i?.counts?.delayed||0))},null,8,MC),n("div",VC,[n("span",null,[g("waiting \xB7 "+c(i?.counts?.active||0)+" active",1),i?.counts?.failed?(a(),l(q,{key:0},[t[19]||(t[19]=g(" \xB7 ",-1)),n("b",qC,c(i.counts.failed)+" failed",1)],64)):f("v-if",!0),i?.paused?(a(),l(q,{key:1},[t[20]||(t[20]=g(" \xB7 ",-1)),t[21]||(t[21]=n("b",{class:"q-card-failed"},"paused",-1))],64)):f("v-if",!0)]),i?.counts?.active?(a(),l("div",_C,[n("div",{class:"q-card-bar-fill",style:Ie({width:i?.counts?.active/((i?.counts?.waiting||0)+(i?.counts?.active||0)+(i?.counts?.delayed||0)||1)*100+"%"})},null,4)])):f("v-if",!0)])],42,DC))),256))]),f(" Detail: throughput chart + stats panel "),e.selectedStats?(a(),l("div",$C,[n("div",LC,[n("div",FC,[n("button",{class:A(["btn btn-sm",{active:e.range=="1h"}]),onClick:t[1]||(t[1]=i=>e.setRange("1h"))},"1h",2),n("button",{class:A(["btn btn-sm",{active:e.range=="6h"}]),onClick:t[2]||(t[2]=i=>e.setRange("6h"))},"6h",2),n("button",{class:A(["btn btn-sm",{active:e.range=="24h"}]),onClick:t[3]||(t[3]=i=>e.setRange("24h"))},"24h",2),n("button",{class:A(["btn btn-sm",{active:e.range=="7d"}]),onClick:t[4]||(t[4]=i=>e.setRange("7d"))},"7d",2)]),n("div",UC,[g("Throughput \xB7 "+c(e.selectedQueue)+" ",1),(e.selectedStats?.completed24h||0)+(e.selectedStats?.failed24h||0)>0?(a(),l("span",BC,[t[23]||(t[23]=n("span",{class:"q-legend-completed"},"\u25CF",-1)),t[24]||(t[24]=g(" Completed ",-1)),t[25]||(t[25]=n("span",{class:"q-legend-failed"},"\u25CF",-1)),t[26]||(t[26]=g(" Failed ",-1)),(e.selectedStats?.completed24h||0)+(e.selectedStats?.failed24h||0)>0?(a(),l(q,{key:0},[t[22]||(t[22]=n("span",{class:"q-legend-exec","aria-hidden":"true"},null,-1)),g(" Avg time \xB7 "+c(e.range),1)],64)):f("v-if",!0)])):f("v-if",!0)]),n("div",zC,[t[28]||(t[28]=n("canvas",{id:"q-throughput-chart",height:"180"},null,-1)),(e.selectedStats?.completed24h||0)+(e.selectedStats?.failed24h||0)===0?(a(),l("div",HC,[...t[27]||(t[27]=[n("strong",null,"No jobs processed in this window",-1),n("span",null,"Completed and failed jobs will chart here.",-1)])])):f("v-if",!0),t[29]||(t[29]=n("div",{id:"q-chart-tooltip",class:"q-chart-tooltip",style:{display:"none"}},null,-1)),t[30]||(t[30]=n("div",{id:"q-chart-crosshair",class:"q-chart-crosshair",style:{display:"none"}},null,-1))])]),n("div",jC,[n("div",GC,"Stats \xB7 "+c(e.selectedQueue),1),n("div",WC,[n("div",KC,[t[31]||(t[31]=n("div",{class:"q-stat-label"},"Waiting",-1)),n("div",{class:"q-stat-value",textContent:c(e.selectedStats?.counts?.waiting||0)},null,8,YC)]),n("div",XC,[t[32]||(t[32]=n("div",{class:"q-stat-label"},"Active",-1)),n("div",{class:"q-stat-value",textContent:c(e.selectedStats?.counts?.active||0)},null,8,QC)]),n("div",JC,[t[33]||(t[33]=n("div",{class:"q-stat-label"},"Completed (24h)",-1)),n("div",{class:"q-stat-value",textContent:c(e.fmt?.number(e.selectedStats?.completed24h))},null,8,ZC)]),n("div",xC,[t[34]||(t[34]=n("div",{class:"q-stat-label"},"Failed (24h)",-1)),n("div",{class:"q-stat-value",textContent:c(e.selectedStats?.failed24h||0)},null,8,eE)]),n("div",tE,[t[35]||(t[35]=n("div",{class:"q-stat-label"},"Delayed",-1)),n("div",{class:"q-stat-value",textContent:c(e.selectedStats?.counts?.delayed||0)},null,8,nE)]),n("div",sE,[t[36]||(t[36]=n("div",{class:"q-stat-label"},"Workers",-1)),n("div",{class:"q-stat-value",textContent:c(e.selectedStats?.workers||0)},null,8,oE)])]),n("div",iE,[n("button",{class:"btn btn-sm",onClick:t[5]||(t[5]=i=>e.togglePause())},c(e.selectedStats?.paused?"Resume "+e.selectedQueue:"Pause "+e.selectedQueue),1),n("button",{class:"btn btn-sm",onClick:t[6]||(t[6]=i=>e.retryFailed()),disabled:!e.selectedStats?.counts?.failed},"Retry failed",8,rE),n("span",aE,[n("button",{class:"btn btn-sm btn-outline-danger",onClick:t[7]||(t[7]=i=>e.drainSelected())},"Drain"),n("button",{class:"btn btn-sm btn-outline-danger",onClick:t[8]||(t[8]=i=>e.emptyQueue())},"Empty")])])])])):f("v-if",!0),e.actionError?(a(),l("div",{key:1,class:"q-toast-error",onClick:t[9]||(t[9]=i=>e.actionError=null)},[t[37]||(t[37]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-info"})],-1)),g(" "+c(e.actionError),1)])):f("v-if",!0),f(" Jobs table "),n("div",lE,[n("div",dE,[n("div",uE,"All jobs \xB7 "+c(e.selectedQueue),1),n("div",cE,[n("button",{type:"button",role:"radio",class:A(["seg-chip",{active:e.segView()==="all"}]),"aria-checked":e.segView()==="all",onClick:t[10]||(t[10]=i=>e.setSegView("all"))},[t[38]||(t[38]=g("All ",-1)),n("span",fE,c(e.fmt?.number(e.segCount("all"))),1)],10,pE),n("button",{type:"button",role:"radio",class:A(["seg-chip",{active:e.segView()==="active","is-empty":!e.segCount("active")}]),"aria-checked":e.segView()==="active",onClick:t[11]||(t[11]=i=>e.setSegView("active"))},[t[39]||(t[39]=n("span",{class:"seg-dot ok","aria-hidden":"true"},null,-1)),t[40]||(t[40]=g("Active ",-1)),n("span",mE,c(e.fmt?.number(e.segCount("active"))),1)],10,hE),n("button",{type:"button",role:"radio",class:A(["seg-chip",{active:e.segView()==="waiting","is-empty":!e.segCount("waiting")}]),"aria-checked":e.segView()==="waiting",onClick:t[12]||(t[12]=i=>e.setSegView("waiting"))},[t[41]||(t[41]=n("span",{class:"seg-dot warn","aria-hidden":"true"},null,-1)),t[42]||(t[42]=g("Waiting ",-1)),n("span",vE,c(e.fmt?.number(e.segCount("waiting"))),1)],10,gE),n("button",{type:"button",role:"radio",class:A(["seg-chip",{active:e.segView()==="delayed","is-empty":!e.segCount("delayed")}]),"aria-checked":e.segView()==="delayed",onClick:t[13]||(t[13]=i=>e.setSegView("delayed"))},[t[43]||(t[43]=n("span",{class:"seg-dot warn","aria-hidden":"true"},null,-1)),t[44]||(t[44]=g("Delayed ",-1)),n("span",bE,c(e.fmt?.number(e.segCount("delayed"))),1)],10,yE),n("button",{type:"button",role:"radio",class:A(["seg-chip",{active:e.segView()==="failed","is-empty":!e.segCount("failed")}]),"aria-checked":e.segView()==="failed",onClick:t[14]||(t[14]=i=>e.setSegView("failed"))},[t[45]||(t[45]=n("span",{class:"seg-dot bad","aria-hidden":"true"},null,-1)),t[46]||(t[46]=g("Failed ",-1)),n("span",kE,c(e.fmt?.number(e.segCount("failed"))),1)],10,wE),n("button",{type:"button",role:"radio",class:A(["seg-chip",{active:e.segView()==="completed","is-empty":!e.segCount("completed")}]),"aria-checked":e.segView()==="completed",onClick:t[15]||(t[15]=i=>e.setSegView("completed"))},[t[47]||(t[47]=n("span",{class:"seg-dot done","aria-hidden":"true"},null,-1)),t[48]||(t[48]=g("Completed ",-1)),n("span",EE,c(e.fmt?.number(e.segCount("completed"))),1)],10,CE)])]),n("div",SE,[D(n("input",NE,null,512),[[s,{state:e.viewState,set:i=>{e.query.search=i},value:e.query?.search,form:null,options:{}}]]),n("label",RE,[D(n("input",AE,null,512),[[s,{state:e.viewState,set:i=>{e.query.autoRefresh=i},value:e.query?.autoRefresh,form:null,options:{}}]]),t[49]||(t[49]=n("span",{class:"auto-refresh-label"},"Auto-refresh",-1))]),n("button",{class:"btn btn-sm btn-icon",type:"button",title:"Refresh now",onClick:t[16]||(t[16]=i=>e.refreshNow()),"aria-label":"Refresh"},[...t[50]||(t[50]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1)])])]),e.filteredJobs().length>0?(a(),l("table",PE,[t[69]||(t[69]=n("thead",null,[n("tr",null,[n("th",null,"State"),n("th",null,"Job"),n("th",null,"Detail"),n("th",null,"Attempts"),n("th",{class:"q-th-num"},"Duration"),n("th",null,"Progress"),n("th")])],-1)),(a(!0),l(q,null,J(e.filteredJobs(),(i,o)=>(a(),l("tbody",null,[n("tr",{style:{cursor:"pointer"},class:A({"q-row-failed":i?._state=="failed","q-row-expanded":e.expanded[i?.id]}),onClick:r=>e.toggleJob(i)},[n("td",TE,[n("span",{textContent:c(i?._state),class:A("q-state-badge q-state-"+i?._state)},null,10,OE),i?._state=="delayed"&&i?.delayUntil?(a(),l("span",{key:0,class:"q-delay-hint",textContent:c(e.delayCountdown(i?.delayUntil))},null,8,IE)):f("v-if",!0)]),n("td",{class:"q-cell-id",title:"job:"+i?.id+(i?.name&&i?.name!==i?.id?" \xB7 "+i.name:"")+(i?.data?.repoId&&i?.data?.repoId!==i?.id?" \xB7 "+i.data.repoId:"")},[(a(),l("svg",{class:A(["ui-icon q-chevron",{"q-chevron-open":e.expanded[i?.id]}]),"aria-hidden":"true"},[...t[51]||(t[51]=[n("use",{href:"#ui-icon-chevron-right"},null,-1)])],2)),n("a",{target:"_blank",class:"q-job-link",textContent:c(i?.data?.repoId||i?.id),onClick:t[17]||(t[17]=r=>r.stopPropagation()),href:e.safeUrl("/r/"+(i?.data?.repoId||i?.id))},null,8,VE)],8,ME),n("td",{class:A(["q-cell-detail",{"is-error":i?._state=="failed"}]),title:i?._state=="failed"?i?.failedReason:"",textContent:c(e.jobDetail(i))},null,10,qE),n("td",{class:"q-cell-num",textContent:c(i?.attemptsMade||1)},null,8,_E),n("td",{class:"q-cell-num q-cell-duration",textContent:c(e.jobDuration(i))},null,8,$E),n("td",LE,[n("div",{class:A(["q-progress-wrap",{"is-indeterminate":e.jobProgressPct(i)===null}]),"aria-label":e.jobProgressPct(i)===null?"Progress not reported":e.jobProgressPct(i)+"% done"},[n("div",{class:"q-progress-bar",style:Ie({"--pct":(e.jobProgressPct(i)||0)+"%"})},null,4),n("span",{class:"q-progress-label",textContent:c(e.jobProgressPct(i)===null?"\u2014":e.jobProgressPct(i)+"%")},null,8,UE)],10,FE)]),n("td",BE,[i?._state=="failed"?(a(),l("button",{key:0,class:"btn btn-sm btn-icon",title:"Retry",onClick:r=>{e.retryJob(i),r.stopPropagation()},"aria-label":"Retry job"},[...t[52]||(t[52]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1)])],8,zE)):f("v-if",!0),n("button",{class:"btn btn-sm btn-icon",title:"Remove","aria-label":"Remove job",onClick:r=>{e.removeJob(i),r.stopPropagation()}},[...t[53]||(t[53]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1)])],8,HE)])],10,DE),e.expanded[i?.id]?(a(),l("tr",jE,[n("td",GE,[n("div",WE,[n("div",KE,[n("div",YE,[t[54]||(t[54]=n("span",{class:"q-job-detail-label"},"Job id",-1)),n("span",XE,[n("a",{target:"_blank",textContent:c(i?.id),href:e.safeUrl("/r/"+i?.id)},null,8,QE)])]),n("div",JE,[t[55]||(t[55]=n("span",{class:"q-job-detail-label"},"State",-1)),n("span",ZE,[n("span",{textContent:c(i?._state),class:A("q-state-badge q-state-"+i?._state)},null,10,xE)])]),i?.data?.repoId?(a(),l("div",eS,[t[56]||(t[56]=n("span",{class:"q-job-detail-label"},"Repo ID",-1)),n("span",{class:"q-job-detail-value",textContent:c(i?.data?.repoId)},null,8,tS)])):f("v-if",!0),i?.timestamp?(a(),l("div",nS,[t[57]||(t[57]=n("span",{class:"q-job-detail-label"},"Created",-1)),n("span",{class:"q-job-detail-value",textContent:c(e.humanTime(i?.timestamp))},null,8,sS)])):f("v-if",!0),i?._state=="delayed"&&i?.delayUntil?(a(),l("div",oS,[t[58]||(t[58]=n("span",{class:"q-job-detail-label"},"Retry at",-1)),n("span",iS,c(e.humanTime(i?.delayUntil))+" ("+c(e.delayCountdown(i?.delayUntil))+")",1)])):f("v-if",!0),i?.processedOn?(a(),l("div",rS,[t[59]||(t[59]=n("span",{class:"q-job-detail-label"},"Processed",-1)),n("span",{class:"q-job-detail-value",textContent:c(e.humanTime(i?.processedOn))},null,8,aS)])):f("v-if",!0),i?.finishedOn?(a(),l("div",lS,[t[60]||(t[60]=n("span",{class:"q-job-detail-label"},"Finished",-1)),n("span",{class:"q-job-detail-value",textContent:c(e.humanTime(i?.finishedOn))},null,8,dS)])):f("v-if",!0),i?.attemptsMade?(a(),l("div",uS,[t[61]||(t[61]=n("span",{class:"q-job-detail-label"},"Attempts",-1)),n("span",{class:"q-job-detail-value",textContent:c(i?.attemptsMade)},null,8,cS)])):f("v-if",!0),i?.progress&&i?.progress?.status?(a(),l("div",pS,[t[62]||(t[62]=n("span",{class:"q-job-detail-label"},"Status",-1)),n("span",{class:"q-job-detail-value",textContent:c(i?.progress?.status)},null,8,fS)])):f("v-if",!0),e.jobProgressPct(i)!==null?(a(),l("div",hS,[t[63]||(t[63]=n("span",{class:"q-job-detail-label"},"Progress",-1)),n("span",{class:"q-job-detail-value",textContent:c(e.jobProgressPct(i)+"%")},null,8,mS)])):f("v-if",!0)]),i?.failedReason?(a(),l("div",gS,[t[64]||(t[64]=n("span",{class:"q-job-detail-label"},"Error",-1)),n("div",{class:"q-error-reason",textContent:c(i?.failedReason)},null,8,vS)])):f("v-if",!0),i?.stacktrace?.length?(a(),l("div",yS,[t[65]||(t[65]=n("span",{class:"q-job-detail-label"},"Stacktrace",-1)),(a(!0),l(q,null,J(i?.stacktrace,(r,d)=>(a(),l("pre",{class:"q-error-stack",key:d},[n("code",{textContent:c(r)},null,8,bS)]))),128))])):f("v-if",!0),n("div",wS,[i?._state=="failed"?(a(),l("button",{key:0,class:"btn btn-sm",onClick:r=>e.retryJob(i)},[...t[66]||(t[66]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),g(" Retry",-1)])],8,kS)):f("v-if",!0),n("button",{class:"btn btn-sm",onClick:r=>e.removeJob(i)},[...t[67]||(t[67]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1),g(" Remove",-1)])],8,CS),n("a",{class:"btn btn-sm",target:"_blank",href:e.safeUrl("/r/"+i?.id)},[...t[68]||(t[68]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-external-link"})],-1),g(" View repo",-1)])],8,ES)])])])])):f("v-if",!0)]))),256))])):f("v-if",!0),e.filteredJobs().length==0?(a(),l("div",SS,[t[70]||(t[70]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-check-circle"})],-1)),e.query?.search?f("v-if",!0):(a(),l("span",NS,"No jobs in the "+c(e.selectedQueue)+" queue.",1)),e.query?.search?(a(),l("span",RS,"No jobs match the current filters.")):f("v-if",!0)])):f("v-if",!0)])])}var AS={class:"container paper-page admin-page"},PS={class:"seg-bar"},DS={class:"seg-filter",role:"radiogroup","aria-label":"Filter by status"},TS=["aria-checked"],OS={class:"count"},IS=["aria-checked"],MS={class:"count"},VS=["aria-checked"],qS={class:"count"},_S=["aria-checked"],$S={class:"count"},LS=["aria-checked"],FS={class:"count"},US=["aria-checked"],BS={class:"count"},zS={class:"seg-countline",role:"status"},HS={class:"seg-meta"},jS={key:0,class:"alert alert-danger",style:{margin:"8px 0"}},GS={class:"w-100 admin-filter-toolbar","aria-label":"Repositories","accept-charset":"UTF-8"},WS=["aria-expanded"],KS={class:"search-wrap"},YS={type:"search",class:"form-control","aria-label":"Search repositories",placeholder:"Search repositories\u2026",autocomplete:"off"},XS={key:0,class:"admin-search-hint"},QS={class:"admin-filter-inline"},JS={type:"text",class:"form-control form-control-sm",placeholder:"username"},ZS={class:"admin-filter-inline"},xS={type:"text",class:"form-control form-control-sm",placeholder:"ID"},eN={key:0,class:"admin-filter-inline","aria-label":"Pagination"},tN=["disabled"],nN={style:{"font-family":"var(--font-mono)","font-size":"12px",color:"var(--ink-muted)"}},sN=["disabled"],oN={key:0,class:"admin-filter-row"},iN={class:"admin-active-chips"},rN={class:"key"},aN=["onClick"],lN={key:1,class:"bulk-bar"},dN={class:"paper-table paper-table-repos has-bulk w-100",role:"table","aria-label":"Repositories"},uN={class:"paper-table-head",role:"row"},cN={role:"columnheader",style:{width:"28px"}},pN=["checked"],fN={role:"columnheader"},hN={role:"columnheader"},mN={role:"columnheader",class:"num"},gN={role:"columnheader"},vN={role:"cell",style:{width:"28px"}},yN={type:"checkbox","aria-label":"Select repository"},bN={class:"cell-anon",role:"cell"},wN={class:"anon-text"},kN=["textContent","href"],CN=["title"],EN=["href"],SN=["textContent"],NN=["textContent"],RN=["data-meta-label"],AN=["title","textContent","href"],PN=["data-meta-label"],DN=["textContent","href"],TN=["data-meta-label"],ON={key:3,class:"meta-item"},IN={class:"meta-item"},MN={class:"cell-status",role:"cell"},VN={class:"status-line"},qN=["textContent"],_N=["textContent","title"],$N=["data-unit"],LN=["textContent"],FN={class:"cell-expires",role:"cell"},UN=["textContent"],BN={class:"cell-actions",role:"cell"},zN={class:"dropdown"},HN={class:"dropdown-menu dropdown-menu-right"},jN=["href"],GN=["href"],WN=["href"],KN=["onClick"],YN=["onClick"],XN=["onClick"],QN=["onClick"],JN=["onClick"],ZN=["onClick"],xN={key:0,class:"paper-table-empty"},eR={class:"admin-toolbar",style:{"justify-content":"space-between","border-bottom":"none"}},tR={key:0,class:"pagination-compact"},nR=["disabled"],sR=["max"],oR=["disabled"],iR={class:"admin-filter-inline"},rR={class:"form-control form-control-sm"};function op(e,t){let s=Pe("field"),i=Pe("form");return a(),l("div",AS,[t[80]||(t[80]=Ce('
Admin \xA0/\xA0 Repositories

Repositories

',3)),n("div",PS,[n("div",DS,[n("button",{type:"button",role:"radio",class:A(["seg-chip",{active:e.segView()==="all"}]),"aria-checked":e.segView()==="all",onClick:t[0]||(t[0]=o=>e.setSegView("all"))},[t[21]||(t[21]=g("All ",-1)),n("span",OS,c(e.fmt?.number(e.segCount("all"))),1)],10,TS),n("button",{type:"button",role:"radio",class:A(["seg-chip",{active:e.segView()==="ready","is-empty":!e.segCount("ready")}]),"aria-checked":e.segView()==="ready",onClick:t[1]||(t[1]=o=>e.setSegView("ready"))},[t[22]||(t[22]=n("span",{class:"seg-dot ok","aria-hidden":"true"},null,-1)),t[23]||(t[23]=g("Ready ",-1)),n("span",MS,c(e.fmt?.number(e.segCount("ready"))),1)],10,IS),n("button",{type:"button",role:"radio",class:A(["seg-chip",{active:e.segView()==="preparing","is-empty":!e.segCount("preparing")}]),"aria-checked":e.segView()==="preparing",onClick:t[2]||(t[2]=o=>e.setSegView("preparing"))},[t[24]||(t[24]=n("span",{class:"seg-dot warn","aria-hidden":"true"},null,-1)),t[25]||(t[25]=g("Preparing ",-1)),n("span",qS,c(e.fmt?.number(e.segCount("preparing"))),1)],10,VS),n("button",{type:"button",role:"radio",class:A(["seg-chip",{active:e.segView()==="error","is-empty":!e.segCount("error")}]),"aria-checked":e.segView()==="error",onClick:t[3]||(t[3]=o=>e.setSegView("error"))},[t[26]||(t[26]=n("span",{class:"seg-dot bad","aria-hidden":"true"},null,-1)),t[27]||(t[27]=g("Error ",-1)),n("span",$S,c(e.fmt?.number(e.segCount("error"))),1)],10,_S),n("button",{type:"button",role:"radio",class:A(["seg-chip",{active:e.segView()==="expired","is-empty":!e.segCount("expired")}]),"aria-checked":e.segView()==="expired",onClick:t[4]||(t[4]=o=>e.setSegView("expired"))},[t[28]||(t[28]=n("span",{class:"seg-dot off","aria-hidden":"true"},null,-1)),t[29]||(t[29]=g("Expiring / expired ",-1)),n("span",FS,c(e.fmt?.number(e.segCount("expired"))),1)],10,LS),n("button",{type:"button",role:"radio",class:A(["seg-chip",{active:e.segView()==="removed","is-empty":!e.segCount("removed")}]),"aria-checked":e.segView()==="removed",onClick:t[5]||(t[5]=o=>e.setSegView("removed"))},[t[30]||(t[30]=n("span",{class:"seg-dot off","aria-hidden":"true"},null,-1)),t[31]||(t[31]=g("Removing / removed ",-1)),n("span",BS,c(e.fmt?.number(e.segCount("removed"))),1)],10,US)]),n("p",zS,[n("strong",null,c(e.total>=0?e.fmt.number(e.total):"\u2026"),1),t[32]||(t[32]=g(" shown",-1)),t[33]||(t[33]=n("span",{class:"seg-sep"},"\xB7",-1)),n("span",HS,c(e.fmt?.humanFileSize(e.totalSize))+" on disk",1)])]),e.fetchError?(a(),l("div",jS,[t[34]||(t[34]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),g(" "+c(e.fetchError),1)])):f("v-if",!0),D((a(),l("form",GS,[f(" Row 1: search + scoped inputs + headline actions "),n("button",{type:"button",class:"btn btn-sm admin-filters-toggle",onClick:t[6]||(t[6]=o=>e.filtersOpen=!e.filtersOpen),"aria-expanded":e.filtersOpen?"true":"false"},"Filters",8,WS),n("div",{class:A(["admin-filter-row",{"is-open":e.filtersOpen}])},[n("div",KS,[D(n("input",YS,null,512),[[s,{state:e.viewState,set:o=>{e.query.search=o},value:e.query?.search,form:null,options:{}}]]),e.query?.search?f("v-if",!0):(a(),l("span",XS,"/"))]),n("span",QS,[t[35]||(t[35]=n("label",null,"Owner",-1)),D(n("input",JS,null,512),[[s,{state:e.viewState,set:o=>{e.query.owner=o},value:e.query?.owner,form:null,options:{}}]])]),n("span",ZS,[t[36]||(t[36]=n("label",null,"Conference",-1)),D(n("input",xS,null,512),[[s,{state:e.viewState,set:o=>{e.query.conference=o},value:e.query?.conference,form:null,options:{}}]])]),t[40]||(t[40]=n("span",{class:"admin-filter-spacer"},null,-1)),n("button",{class:"btn btn-sm",type:"button",title:"Export current view to CSV",onClick:t[7]||(t[7]=o=>e.exportCsv())},[...t[37]||(t[37]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-export"})],-1),g(" Export",-1)])]),e.totalPage>1?(a(),l("span",eN,[n("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[8]||(t[8]=o=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1,"aria-label":"Previous page"},[...t[38]||(t[38]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1)])],8,tN),n("span",nN,c(e.query?.page)+"/"+c(e.totalPage||1),1),n("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[9]||(t[9]=o=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage,"aria-label":"Next page"},[...t[39]||(t[39]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,sN)])):f("v-if",!0)],2),f(" Row 2: appears only when there are active filter chips "),e.chips?.length?(a(),l("div",oN,[n("div",iN,[(a(!0),l(q,null,J(e.chips,(o,r)=>(a(),l("span",{class:"admin-active-chip",key:o?.key},[n("span",rN,c(o?.label),1),n("span",null,c(o?.value),1),n("button",{type:"button","aria-label":"Remove filter",onClick:d=>e.clearFilter(o.key)},[...t[41]||(t[41]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])],8,aN)]))),128))])])):f("v-if",!0)])),[[i,e.viewState]]),e.selectedCount()>0?(a(),l("div",lN,[n("span",null,[n("strong",null,c(e.selectedCount()),1),t[42]||(t[42]=g(" selected",-1))]),n("button",{class:"btn btn-sm",type:"button",onClick:t[10]||(t[10]=o=>e.bulkRefresh())},[...t[43]||(t[43]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),g(" Force refresh",-1)])]),n("button",{class:"btn btn-sm text-danger",type:"button",onClick:t[11]||(t[11]=o=>e.bulkRemoveCache())},[...t[44]||(t[44]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-broom"})],-1),g(" Remove cache",-1)])]),n("button",{class:"btn btn-sm",type:"button",onClick:t[12]||(t[12]=o=>e.clearSelection())},"Clear")])):f("v-if",!0),n("div",dN,[n("div",uN,[n("div",cN,[n("input",{type:"checkbox","aria-label":"Select all on page",onClick:t[13]||(t[13]=o=>e.selectAllOnPage()),checked:e.allSelected},null,8,pN)]),n("div",fN,[n("button",{type:"button",class:A(["sortable",{active:e.query?.sort=="source.repositoryName"}]),onClick:t[14]||(t[14]=o=>e.sortBy("source.repositoryName"))},[t[46]||(t[46]=g("Repository ",-1)),e.sortIcon("source.repositoryName")?(a(),l("svg",{key:0,class:A(["ui-icon sort-direction",{ascending:e.sortIcon("source.repositoryName")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[45]||(t[45]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)]),n("div",hN,[n("button",{type:"button",class:A(["sortable",{active:e.query?.sort=="status"}]),onClick:t[15]||(t[15]=o=>e.sortBy("status"))},[t[48]||(t[48]=g("Status ",-1)),e.sortIcon("status")?(a(),l("svg",{key:0,class:A(["ui-icon sort-direction",{ascending:e.sortIcon("status")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[47]||(t[47]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)]),n("div",mN,[n("button",{type:"button",class:A(["sortable",{active:e.query?.sort=="pageView"}]),onClick:t[16]||(t[16]=o=>e.sortBy("pageView"))},[t[50]||(t[50]=g("Views ",-1)),e.sortIcon("pageView")?(a(),l("svg",{key:0,class:A(["ui-icon sort-direction",{ascending:e.sortIcon("pageView")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[49]||(t[49]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)]),n("div",gN,[n("button",{type:"button",class:A(["sortable",{active:e.query?.sort=="anonymizeDate"}]),onClick:t[17]||(t[17]=o=>e.sortBy("anonymizeDate"))},[t[52]||(t[52]=g("Anonymized ",-1)),e.sortIcon("anonymizeDate")?(a(),l("svg",{key:0,class:A(["ui-icon sort-direction",{ascending:e.sortIcon("anonymizeDate")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[51]||(t[51]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)]),t[53]||(t[53]=n("div",{role:"columnheader","aria-label":"Actions"},null,-1))]),(a(!0),l(q,null,J(e.filteredRepositories,(o,r)=>(a(),l("div",{class:A(["paper-table-row",{"repo-inactive":o?.status=="expired"||o?.status=="removed","repo-error":o?.status=="error","row-selected":e.selected[o?.repoId]}]),role:"row"},[n("div",vN,[D(n("input",yN,null,512),[[s,{state:e.viewState,set:d=>{e.selected[o.repoId]=d},value:e.selected[o?.repoId],form:null,options:{}}]])]),n("div",bN,[t[56]||(t[56]=n("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Repository"},[n("use",{href:"#project-type-repo"})],-1)),n("div",wN,[n("a",{class:"repo-name",target:"_blank",textContent:c(o?.repoId),href:e.safeUrl("/r/"+o?.repoId)},null,8,kN),n("div",{class:"anon-sub anon-meta","data-meta-fit":"",title:[o?.source?.fullName||o?.source?.repositoryName,o?.options?.update?"branch "+o?.source?.branch:"commit "+o?.source?.commit?.substring(0,7),o?.conference?"conference "+o?.conference:"",o?.size?.storage>0?e.fmt?.humanFileSize(o?.size?.storage):"",e.fmt?.number(o?.options?.terms?.length)+(o?.options?.terms?.length===1?" term":" terms")].filter(Boolean).join(" \xB7 ")},[n("a",{class:"src-path",href:e.safeUrl("https://github.com/"+o?.source?.repositoryName+"/")},[(o?.source?.repositoryName||"").includes("/")?(a(),l("span",{key:0,class:"src-owner",textContent:c((d=>d.length>16?d.slice(0,14)+"\u2026":d)((o?.source?.repositoryName||"").split("/")[0]))},null,8,SN)):f("v-if",!0),n("span",{class:"src-repo",textContent:c((o?.source?.repositoryName||"").includes("/")?"/"+(o?.source?.repositoryName||"").split("/").slice(1).join("/"):o?.source?.repositoryName)},null,8,NN)],8,EN),o?.options?.update?f("v-if",!0):(a(),l("span",{key:0,class:"meta-item","data-meta-label":"commit "+(o?.source?.commit||"").substring(0,7)},[n("a",{class:"mono-hash",title:o?.source?.commit,textContent:c(o?.source?.commit?.substring(0,7)),href:e.safeUrl("https://github.com/"+o?.source?.fullName+"/tree/"+o?.source?.commit)},null,8,AN)],8,RN)),o?.options?.update?(a(),l("span",{key:1,class:"meta-item","data-meta-label":"branch "+(o?.source?.branch||"")},[n("a",{textContent:c(o?.source?.branch),href:e.safeUrl("https://github.com/"+o?.source?.fullName+"/tree/"+o?.source?.branch)},null,8,DN)],8,PN)):f("v-if",!0),o?.conference?(a(),l("span",{key:2,class:"meta-item meta-conf","data-meta-label":"conference "+o?.conference},[t[54]||(t[54]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-conference"})],-1)),g(" "+c(o?.conference),1)],8,TN)):f("v-if",!0),o?.size?.storage>0?(a(),l("span",ON,c(e.fmt?.humanFileSize(o?.size?.storage)),1)):f("v-if",!0),n("span",IN,c(e.fmt?.number(o?.options?.terms?.length))+" "+c(o?.options?.terms?.length===1?"term":"terms"),1),t[55]||(t[55]=n("span",{class:"meta-more",hidden:""},null,-1))],8,CN)])]),n("div",MN,[n("span",VN,[n("span",{class:A(["status-dot","st-"+(o?.status||"unknown")])},null,2),n("span",{textContent:c(e.fmt?.statusLabel(o?.status))},null,8,qN)]),o?.statusMessage?(a(),l("span",{key:0,class:"status-sub",textContent:c(e.fmt?.statusMsg(o?.statusMessage)),title:o?.statusMessage},null,8,_N)):f("v-if",!0)]),n("div",{class:"cell-views num",role:"cell","data-unit":(o?.pageView||0)===1?"view":"views"},[t[57]||(t[57]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1)),t[58]||(t[58]=g()),n("span",{textContent:c(e.fmt?.number(o?.pageView||0))},null,8,LN)],8,$N),n("div",FN,[t[59]||(t[59]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),t[60]||(t[60]=g()),n("span",{textContent:c((e.fmt?.humanTime(o?.anonymizeDate)||"").replace(/^on /,""))},null,8,UN)]),n("div",BN,[n("div",zN,[t[72]||(t[72]=n("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-more"})])],-1)),n("div",HN,[n("a",{class:"dropdown-item",href:e.safeUrl("/anonymize/"+o?.repoId)},[...t[61]||(t[61]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),g(" Edit",-1)])],8,jN),n("a",{class:"dropdown-item",href:e.safeUrl("/r/"+o?.repoId+"/")},[...t[62]||(t[62]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),g(" View repo",-1)])],8,GN),o?.options?.page&&o?.status=="ready"?(a(),l("a",{key:0,class:"dropdown-item",target:"_self",href:e.safeUrl("/w/"+o?.repoId+"/")},[...t[63]||(t[63]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-globe"})],-1),g(" View page",-1)])],8,WN)):f("v-if",!0),n("a",{class:"dropdown-item",href:"#",onClick:ae(d=>e.fetchGithubInfo(o),["prevent"])},[...t[64]||(t[64]=[n("i",{class:"fab fa-github"},null,-1),g(" Live GitHub info",-1)])],8,KN),t[70]||(t[70]=n("div",{class:"dropdown-divider"},null,-1)),D(n("a",{class:"dropdown-item",href:"#",onClick:ae(d=>e.updateRepository(o),["prevent"])},[...t[65]||(t[65]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),g(" Force update",-1)])],8,YN),[[Z,o?.status=="ready"||o?.status=="error"]]),D(n("a",{class:"dropdown-item",href:"#",onClick:ae(d=>e.updateRepository(o),["prevent"])},[...t[66]||(t[66]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-check-circle"})],-1),g(" Enable",-1)])],8,XN),[[Z,o?.status=="removed"]]),D(n("a",{class:"dropdown-item",href:"#",onClick:ae(d=>e.showStatusMessage(o),["prevent"])},[...t[67]||(t[67]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1),g(" View status message",-1)])],8,QN),[[Z,o?.statusMessage]]),t[71]||(t[71]=n("div",{class:"dropdown-divider"},null,-1)),n("a",{class:"dropdown-item",href:"#",onClick:ae(d=>e.removeCache(o),["prevent"])},[...t[68]||(t[68]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-broom"})],-1),g(" Remove cache",-1)])],8,JN),D(n("a",{class:"dropdown-item text-danger",href:"#",onClick:ae(d=>e.removeRepository(o),["prevent"])},[...t[69]||(t[69]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1),g(" Remove",-1)])],8,ZN),[[Z,o?.status=="ready"]])])])])],2))),256)),e.filteredRepositories?.length==0?(a(),l("div",xN,[t[73]||(t[73]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1)),t[74]||(t[74]=n("span",null,"No repositories match the current filters.",-1)),e.query.ready&&e.query.expired&&e.query.removed&&e.query.error&&e.query.preparing?f("v-if",!0):(a(),l("button",{key:0,type:"button",class:"btn btn-sm btn-outline-ink",onClick:t[18]||(t[18]=o=>e.showAllStatuses())},"Show all statuses"))])):f("v-if",!0)]),n("div",eR,[t[79]||(t[79]=n("span",{"aria-hidden":"true"},null,-1)),e.totalPage>1?(a(),l("div",tR,[n("button",{class:"btn btn-sm",onClick:t[19]||(t[19]=o=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1},[...t[75]||(t[75]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1),g(" Previous ",-1)])],8,nR),D(n("input",{type:"number",class:"form-control form-control-sm",min:"1",style:{width:"56px"},"aria-label":"Page",max:e.totalPage},null,8,sR),[[s,{state:e.viewState,set:o=>{e.query.page=o},value:e.query?.page,form:null,options:{}}]]),n("span",null,"of "+c(e.totalPage),1),n("button",{class:"btn btn-sm",onClick:t[20]||(t[20]=o=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage},[...t[76]||(t[76]=[g(" Next ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,oR)])):f("v-if",!0),n("span",iR,[t[78]||(t[78]=n("label",null,"Per page",-1)),D((a(),l("select",rR,[...t[77]||(t[77]=[Ce('',5)])])),[[s,{state:e.viewState,set:o=>{e.query.limit=o},value:e.query?.limit,form:null,options:{}}]])])])])}var aR={class:"container paper-page admin-page"},lR={class:"paper-crumbs"},dR={class:"here"},uR={class:"paper-page-title"},cR={key:0,class:"user-detail-card"},pR={class:"user-header"},fR=["src"],hR={class:"user-header-status"},mR={class:"status-dot-wrap"},gR=["textContent"],vR={key:0,class:"type-badge type-repo"},yR={class:"user-actions",style:{"margin-top":"4px"}},bR={class:"user-detail-grid"},wR={class:"detail-value mono-id"},kR={class:"detail-value"},CR=["href"],ER={class:"detail-value"},SR={class:"detail-value"},NR={key:0},RR={key:1,class:"text-muted"},AR={class:"detail-value"},PR={key:0,style:{"margin-top":"20px"}},DR={class:"paper-table w-100",style:{"margin-top":"10px"}},TR={class:"paper-table-row",style:{"grid-template-columns":"1fr 160px"}},OR={class:"cell-anon",role:"cell"},IR={class:"anon-text"},MR=["textContent"],VR={class:"cell-expires",role:"cell"},qR={key:1,class:"admin-section-header"},_R={class:"section-count"},$R={key:2,class:"user-detail-card"},LR={type:"text",class:"form-control",placeholder:"Token name (e.g. dev-laptop)",required:""},FR={key:0,class:"alert alert-warning",role:"alert"},UR={style:{"white-space":"pre-wrap","word-break":"break-all",margin:"8px 0 0","font-family":"var(--font-mono)","font-size":"0.85rem"}},BR={key:1,class:"paper-table w-100"},zR={class:"paper-table-row",role:"row",style:{"grid-template-columns":"1fr 200px 200px 80px"}},HR=["textContent"],jR=["textContent"],GR={role:"cell"},WR={key:0},KR={key:1,class:"text-muted"},YR={role:"cell"},XR=["onClick"],QR={key:2,class:"paper-table-empty"},JR={class:"admin-section-header"},ZR={class:"section-count"},xR={class:"seg-bar"},e4={class:"seg-filter",role:"radiogroup","aria-label":"Filter by status"},t4=["aria-checked"],n4={class:"count"},s4=["aria-checked"],o4={class:"count"},i4=["aria-checked"],r4={class:"count"},a4=["aria-checked"],l4={class:"count"},d4=["aria-checked"],u4={class:"count"},c4=["aria-checked"],p4={class:"count"},f4={class:"seg-countline",role:"status"},h4={class:"w-100 admin-filter-toolbar","aria-label":"Repositories","accept-charset":"UTF-8"},m4={class:"admin-filter-row"},g4={class:"search-wrap"},v4={type:"search",class:"form-control","aria-label":"Search repositories",placeholder:"Search repositories or errors\u2026",autocomplete:"off"},y4={key:3,class:"bulk-bar"},b4={class:"paper-table paper-table-repos has-bulk w-100",role:"table","aria-label":"Repositories"},w4={class:"paper-table-head",role:"row"},k4={role:"columnheader",style:{width:"28px"}},C4=["checked"],E4={role:"columnheader"},S4={role:"columnheader"},N4={role:"columnheader",class:"num"},R4={role:"columnheader"},A4={role:"cell",style:{width:"28px"}},P4={type:"checkbox","aria-label":"Select repository"},D4={class:"cell-anon",role:"cell"},T4={class:"anon-text"},O4=["textContent","href"],I4=["title"],M4=["href"],V4=["textContent"],q4=["textContent"],_4=["data-meta-label"],$4=["title","textContent","href"],L4=["data-meta-label"],F4=["textContent","href"],U4=["data-meta-label"],B4={key:3,class:"meta-item"},z4={class:"meta-item"},H4={class:"cell-status",role:"cell"},j4={class:"status-line"},G4=["textContent"],W4=["textContent","title"],K4=["data-unit","textContent"],Y4=["textContent"],X4={class:"cell-actions",role:"cell"},Q4={class:"dropdown"},J4={class:"dropdown-menu dropdown-menu-right"},Z4=["href"],x4=["href"],eA=["href"],tA=["onClick"],nA=["onClick"],sA=["onClick"],oA=["onClick"],iA=["onClick"],rA=["onClick"],aA={key:0,class:"paper-table-empty"};function ip(e,t){let s=Pe("field"),i=Pe("form");return a(),l("div",aR,[n("div",lR,[t[23]||(t[23]=n("a",{href:"/admin/"},"Admin",-1)),t[24]||(t[24]=g(" \xA0/\xA0 ",-1)),t[25]||(t[25]=n("a",{href:"/admin/users"},"Users",-1)),t[26]||(t[26]=g(" \xA0/\xA0 ",-1)),n("span",dR,c(e.userInfo?.username||"Profile"),1)]),n("h1",uR,c(e.userInfo?.username||"User"),1),t[93]||(t[93]=Ce('',1)),e.userInfo?(a(),l("div",cR,[n("div",pR,[e.userInfo?.photo?(a(),l("img",{key:0,width:"56",height:"56",src:e.safeUrl(e.userInfo?.photo)},null,8,fR)):f("v-if",!0),n("div",null,[n("div",hR,[n("span",mR,[n("span",{class:A(["status-dot","st-"+(e.userInfo?.status||"unknown")])},null,2),n("span",{textContent:c(e.fmt?.title(e.userInfo?.status))},null,8,gR)]),e.userInfo?.isAdmin?(a(),l("span",vR,"Admin")):f("v-if",!0)]),n("div",yR,[e.userInfo?.status!=="banned"&&e.userInfo?.username!==e.user?.username?(a(),l("button",{key:0,class:"btn btn-sm btn-outline-danger",onClick:t[0]||(t[0]=o=>e.banUser())},[...t[27]||(t[27]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-ban"})],-1),g(" Ban",-1)])])):f("v-if",!0),e.userInfo?.status==="banned"||e.userInfo?.status==="removed"?(a(),l("button",{key:1,class:"btn btn-sm",onClick:t[1]||(t[1]=o=>e.activateUser())},[...t[28]||(t[28]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-check-circle"})],-1),g(" Activate",-1)])])):f("v-if",!0),e.userInfo?.isAdmin?f("v-if",!0):(a(),l("button",{key:2,class:"btn btn-sm",onClick:t[2]||(t[2]=o=>e.promoteUser())},[...t[29]||(t[29]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-user-shield"})],-1),g(" Promote to admin",-1)])])),e.userInfo?.isAdmin&&e.userInfo?.username!==e.user?.username?(a(),l("button",{key:3,class:"btn btn-sm btn-outline-ink",onClick:t[3]||(t[3]=o=>e.demoteUser())},[...t[30]||(t[30]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-user-minus"})],-1),g(" Remove admin",-1)])])):f("v-if",!0)])])]),n("div",bR,[t[33]||(t[33]=n("div",{class:"detail-label"},"ID",-1)),n("div",wR,c(e.userInfo?._id),1),t[34]||(t[34]=n("div",{class:"detail-label"},"Email",-1)),n("div",{class:A(["detail-value",{"is-empty":!e.userInfo?.emails?.[0]?.email}])},c(e.userInfo?.emails?.[0]?.email||"Not shared"),3),t[35]||(t[35]=n("div",{class:"detail-label"},"Access token",-1)),n("div",{class:A(["detail-value",{"is-empty":!e.userInfo?.accessTokens?.github}]),style:{"font-family":"var(--font-mono)","font-size":"0.85rem"}},c(e.userInfo?.accessTokens?.github||"Not stored"),3),t[36]||(t[36]=n("div",{class:"detail-label"},"GitHub",-1)),n("div",kR,[n("a",{target:"_blank",href:e.safeUrl("https://github.com/"+e.userInfo?.username)},[t[31]||(t[31]=n("i",{class:"fab fa-github"},null,-1)),g(" "+c(e.userInfo?.username),1)],8,CR)]),t[37]||(t[37]=n("div",{class:"detail-label"},"Created",-1)),n("div",ER,c(e.fmt?.humanTime(e.userInfo?.dateOfEntry)),1),t[38]||(t[38]=n("div",{class:"detail-label"},"Last connection",-1)),n("div",SR,[e.userInfo?.accessTokenDates?.github?(a(),l("span",NR,c(e.fmt?.humanTime(e.userInfo?.accessTokenDates?.github)),1)):f("v-if",!0),e.userInfo?.accessTokenDates?.github?f("v-if",!0):(a(),l("span",RR,"Not recorded (GitHub App sign-in)"))]),t[39]||(t[39]=n("div",{class:"detail-label"},"GitHub repos",-1)),n("div",AR,[g(c(e.userInfo?.repositories?.length?e.userInfo.repositories.length+" repositories":"Not synced")+" ",1),e.userInfo?.repositories?.length?(a(),l("button",{key:0,class:"btn btn-sm ml-2",onClick:t[4]||(t[4]=o=>e.showRepos=!e.showRepos)},c(e.showRepos?"Hide repos":"Show repos"),1)):f("v-if",!0),n("button",{class:"btn btn-sm ml-1",onClick:t[5]||(t[5]=o=>e.getGitHubRepositories())},[...t[32]||(t[32]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),g(" Refresh ",-1)])])])]),e.showRepos?(a(),l("div",PR,[t[42]||(t[42]=n("div",{class:"paper-section-eyebrow"},"GitHub repositories",-1)),n("div",DR,[(a(!0),l(q,null,J(e.userInfo?.repositories,(o,r)=>(a(),l("div",TR,[n("div",OR,[t[40]||(t[40]=n("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Repository"},[n("use",{href:"#project-type-repo"})],-1)),n("div",IR,[n("span",{class:"repo-name",textContent:c(o?.name)},null,8,MR)])]),n("div",VR,[t[41]||(t[41]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-database"})],-1)),g(" "+c(e.fmt?.humanFileSize(o?.size)),1)])]))),256))])])):f("v-if",!0)])):f("v-if",!0),e.userInfo&&e.userInfo?.isAdmin&&e.user&&e.user?.username==e.userInfo?.username?(a(),l("div",qR,[t[43]||(t[43]=n("h2",null,[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-key"})]),g(" API tokens")],-1)),n("span",_R,c(e.tokens?.length),1)])):f("v-if",!0),e.userInfo&&e.userInfo?.isAdmin&&e.user&&e.user?.username==e.userInfo?.username?(a(),l("div",$R,[t[49]||(t[49]=n("p",{class:"paper-page-lede"},[g("Personal API tokens for this admin account. Send as "),n("code",null,"Authorization: Bearer "),g(" to authenticate without GitHub OAuth (useful for development).")],-1)),D((a(),l("form",{class:"d-flex",style:{gap:"8px","margin-bottom":"12px"},onSubmit:t[6]||(t[6]=ae(o=>e.submitForm(o,()=>{e.createToken()}),["prevent"]))},[D(n("input",LR,null,512),[[s,{state:e.viewState,set:o=>{e.tokenForm.name=o},value:e.tokenForm?.name,form:null,options:{}}]]),t[44]||(t[44]=n("button",{type:"submit",class:"btn btn-ink"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-plus"})]),g(" Generate")],-1))],32)),[[i,e.viewState]]),e.tokenForm?.plaintext?(a(),l("div",FR,[t[45]||(t[45]=n("strong",null,"Copy this token now \u2014 it will not be shown again:",-1)),n("pre",UR,c(e.tokenForm?.plaintext),1),n("button",{class:"btn btn-sm",onClick:t[7]||(t[7]=o=>e.tokenForm.plaintext=null)},"Dismiss")])):f("v-if",!0),e.tokens?.length?(a(),l("div",BR,[t[47]||(t[47]=n("div",{class:"paper-table-head",role:"row",style:{"grid-template-columns":"1fr 200px 200px 80px"}},[n("div",{role:"columnheader"},"Name"),n("div",{role:"columnheader"},"Created"),n("div",{role:"columnheader"},"Last used"),n("div",{role:"columnheader","aria-label":"Actions"})],-1)),(a(!0),l(q,null,J(e.tokens,(o,r)=>(a(),l("div",zR,[n("div",{role:"cell",textContent:c(o?.name)},null,8,HR),n("div",{role:"cell",textContent:c(e.fmt?.humanTime(o?.createdAt))},null,8,jR),n("div",GR,[o?.lastUsedAt?(a(),l("span",WR,c(e.fmt?.humanTime(o?.lastUsedAt)),1)):f("v-if",!0),o?.lastUsedAt?f("v-if",!0):(a(),l("span",KR,"never"))]),n("div",YR,[n("button",{class:"btn btn-sm text-danger btn-icon",title:"Revoke","aria-label":"Revoke token",onClick:d=>e.revokeToken(o)},[...t[46]||(t[46]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1)])],8,XR)])]))),256))])):f("v-if",!0),e.tokens?.length?f("v-if",!0):(a(),l("div",QR,[...t[48]||(t[48]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1),n("span",null,"No tokens yet.",-1)])]))])):f("v-if",!0),n("div",JR,[t[50]||(t[50]=n("h2",null,[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})]),g(" Anonymized repositories")],-1)),n("span",ZR,c(e.repositories?.length),1)]),n("div",xR,[n("div",e4,[n("button",{type:"button",role:"radio",class:A(["seg-chip",{active:e.segView()==="all"}]),"aria-checked":e.segView()==="all",onClick:t[8]||(t[8]=o=>e.setSegView("all"))},[t[51]||(t[51]=g("All ",-1)),n("span",n4,c(e.fmt?.number(e.segCount("all"))),1)],10,t4),n("button",{type:"button",role:"radio",class:A(["seg-chip",{active:e.segView()==="ready","is-empty":!e.segCount("ready")}]),"aria-checked":e.segView()==="ready",onClick:t[9]||(t[9]=o=>e.setSegView("ready"))},[t[52]||(t[52]=n("span",{class:"seg-dot ok","aria-hidden":"true"},null,-1)),t[53]||(t[53]=g("Ready ",-1)),n("span",o4,c(e.fmt?.number(e.segCount("ready"))),1)],10,s4),n("button",{type:"button",role:"radio",class:A(["seg-chip",{active:e.segView()==="preparing","is-empty":!e.segCount("preparing")}]),"aria-checked":e.segView()==="preparing",onClick:t[10]||(t[10]=o=>e.setSegView("preparing"))},[t[54]||(t[54]=n("span",{class:"seg-dot warn","aria-hidden":"true"},null,-1)),t[55]||(t[55]=g("Preparing ",-1)),n("span",r4,c(e.fmt?.number(e.segCount("preparing"))),1)],10,i4),n("button",{type:"button",role:"radio",class:A(["seg-chip",{active:e.segView()==="error","is-empty":!e.segCount("error")}]),"aria-checked":e.segView()==="error",onClick:t[11]||(t[11]=o=>e.setSegView("error"))},[t[56]||(t[56]=n("span",{class:"seg-dot bad","aria-hidden":"true"},null,-1)),t[57]||(t[57]=g("Error ",-1)),n("span",l4,c(e.fmt?.number(e.segCount("error"))),1)],10,a4),n("button",{type:"button",role:"radio",class:A(["seg-chip",{active:e.segView()==="expired","is-empty":!e.segCount("expired")}]),"aria-checked":e.segView()==="expired",onClick:t[12]||(t[12]=o=>e.setSegView("expired"))},[t[58]||(t[58]=n("span",{class:"seg-dot off","aria-hidden":"true"},null,-1)),t[59]||(t[59]=g("Expiring / expired ",-1)),n("span",u4,c(e.fmt?.number(e.segCount("expired"))),1)],10,d4),n("button",{type:"button",role:"radio",class:A(["seg-chip",{active:e.segView()==="removed","is-empty":!e.segCount("removed")}]),"aria-checked":e.segView()==="removed",onClick:t[13]||(t[13]=o=>e.setSegView("removed"))},[t[60]||(t[60]=n("span",{class:"seg-dot off","aria-hidden":"true"},null,-1)),t[61]||(t[61]=g("Removing / removed ",-1)),n("span",p4,c(e.fmt?.number(e.segCount("removed"))),1)],10,c4)]),n("p",f4,[n("strong",null,c(e.fmt.number(e.filteredRepositories?.length||0)),1),t[62]||(t[62]=g(" shown",-1))])]),D((a(),l("form",h4,[n("div",m4,[n("div",g4,[D(n("input",v4,null,512),[[s,{state:e.viewState,set:o=>{e.search=o},value:e.search,form:null,options:{}}]])]),t[64]||(t[64]=n("span",{class:"admin-filter-spacer"},null,-1)),n("button",{class:"btn btn-sm",type:"button",title:"Export current view to CSV",onClick:t[14]||(t[14]=o=>e.exportCsv())},[...t[63]||(t[63]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-export"})],-1),g(" Export",-1)])])])])),[[i,e.viewState]]),e.selectedCount()>0?(a(),l("div",y4,[n("span",null,[n("strong",null,c(e.selectedCount()),1),t[65]||(t[65]=g(" selected",-1))]),n("button",{class:"btn btn-sm",type:"button",onClick:t[15]||(t[15]=o=>e.bulkRefresh())},[...t[66]||(t[66]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),g(" Force refresh",-1)])]),n("button",{class:"btn btn-sm text-danger",type:"button",onClick:t[16]||(t[16]=o=>e.bulkRemoveCache())},[...t[67]||(t[67]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-broom"})],-1),g(" Remove cache",-1)])]),n("button",{class:"btn btn-sm",type:"button",onClick:t[17]||(t[17]=o=>e.clearSelection())},"Clear")])):f("v-if",!0),n("div",b4,[n("div",w4,[n("div",k4,[n("input",{type:"checkbox","aria-label":"Select all on page",onClick:t[18]||(t[18]=o=>e.selectAllOnPage()),checked:e.allSelected},null,8,C4)]),n("div",E4,[n("button",{type:"button",class:A(["sortable",{active:e.query?.sort=="source.repositoryName"}]),onClick:t[19]||(t[19]=o=>e.sortBy("source.repositoryName"))},[t[69]||(t[69]=g("Repository ",-1)),e.sortIcon("source.repositoryName")?(a(),l("svg",{key:0,class:A(["ui-icon sort-direction",{ascending:e.sortIcon("source.repositoryName")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[68]||(t[68]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)]),n("div",S4,[n("button",{type:"button",class:A(["sortable",{active:e.query?.sort=="status"}]),onClick:t[20]||(t[20]=o=>e.sortBy("status"))},[t[71]||(t[71]=g("Status ",-1)),e.sortIcon("status")?(a(),l("svg",{key:0,class:A(["ui-icon sort-direction",{ascending:e.sortIcon("status")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[70]||(t[70]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)]),n("div",N4,[n("button",{type:"button",class:A(["sortable",{active:e.query?.sort=="pageView"}]),onClick:t[21]||(t[21]=o=>e.sortBy("pageView"))},[t[73]||(t[73]=g("Views ",-1)),e.sortIcon("pageView")?(a(),l("svg",{key:0,class:A(["ui-icon sort-direction",{ascending:e.sortIcon("pageView")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[72]||(t[72]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)]),n("div",R4,[n("button",{type:"button",class:A(["sortable",{active:e.query?.sort=="anonymizeDate"}]),onClick:t[22]||(t[22]=o=>e.sortBy("anonymizeDate"))},[t[75]||(t[75]=g("Anonymized ",-1)),e.sortIcon("anonymizeDate")?(a(),l("svg",{key:0,class:A(["ui-icon sort-direction",{ascending:e.sortIcon("anonymizeDate")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[74]||(t[74]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)]),t[76]||(t[76]=n("div",{role:"columnheader","aria-label":"Actions"},null,-1))]),(a(!0),l(q,null,J(e.filteredRepositories,(o,r)=>(a(),l("div",{class:A(["paper-table-row",{"repo-inactive":o?.status=="expired"||o?.status=="removed","repo-error":o?.status=="error","row-selected":e.selected[o?.repoId]}]),role:"row"},[n("div",A4,[D(n("input",P4,null,512),[[s,{state:e.viewState,set:d=>{e.selected[o.repoId]=d},value:e.selected[o?.repoId],form:null,options:{}}]])]),n("div",D4,[t[79]||(t[79]=n("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Repository"},[n("use",{href:"#project-type-repo"})],-1)),n("div",T4,[n("a",{class:"repo-name",target:"_blank",textContent:c(o?.repoId),href:e.safeUrl("/r/"+o?.repoId)},null,8,O4),n("div",{class:"anon-sub anon-meta","data-meta-fit":"",title:[o?.source?.fullName||o?.source?.repositoryName,o?.options?.update?"branch "+o?.source?.branch:"commit "+o?.source?.commit?.substring(0,7),o?.conference?"conference "+o?.conference:"",o?.size?.storage>0?e.fmt?.humanFileSize(o?.size?.storage):"",e.fmt?.number(o?.options?.terms?.length)+(o?.options?.terms?.length===1?" term":" terms")].filter(Boolean).join(" \xB7 ")},[n("a",{class:"src-path",href:e.safeUrl("https://github.com/"+o?.source?.fullName+"/")},[(o?.source?.fullName||"").includes("/")?(a(),l("span",{key:0,class:"src-owner",textContent:c((d=>d.length>16?d.slice(0,14)+"\u2026":d)((o?.source?.fullName||"").split("/")[0]))},null,8,V4)):f("v-if",!0),n("span",{class:"src-repo",textContent:c((o?.source?.fullName||"").includes("/")?"/"+(o?.source?.fullName||"").split("/").slice(1).join("/"):o?.source?.fullName)},null,8,q4)],8,M4),o?.options?.update?f("v-if",!0):(a(),l("span",{key:0,class:"meta-item","data-meta-label":"commit "+(o?.source?.commit||"").substring(0,7)},[n("a",{class:"mono-hash",title:o?.source?.commit,textContent:c(o?.source?.commit?.substring(0,7)),href:e.safeUrl("https://github.com/"+o?.source?.fullName+"/tree/"+o?.source?.commit)},null,8,$4)],8,_4)),o?.options?.update?(a(),l("span",{key:1,class:"meta-item","data-meta-label":"branch "+(o?.source?.branch||"")},[n("a",{textContent:c(o?.source?.branch),href:e.safeUrl("https://github.com/"+o?.source?.fullName+"/tree/"+o?.source?.branch)},null,8,F4)],8,L4)):f("v-if",!0),o?.conference?(a(),l("span",{key:2,class:"meta-item meta-conf","data-meta-label":"conference "+o?.conference},[t[77]||(t[77]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-conference"})],-1)),g(" "+c(o?.conference),1)],8,U4)):f("v-if",!0),o?.size?.storage>0?(a(),l("span",B4,c(e.fmt?.humanFileSize(o?.size?.storage)),1)):f("v-if",!0),n("span",z4,c(e.fmt?.number(o?.options?.terms?.length))+" "+c(o?.options?.terms?.length===1?"term":"terms"),1),t[78]||(t[78]=n("span",{class:"meta-more",hidden:""},null,-1))],8,I4)])]),n("div",H4,[n("span",j4,[n("span",{class:A(["status-dot","st-"+(o?.status||"unknown")])},null,2),n("span",{textContent:c(e.fmt?.statusLabel(o?.status))},null,8,G4)]),o?.statusMessage?(a(),l("span",{key:0,class:"status-sub",textContent:c(e.fmt?.statusMsg(o?.statusMessage)),title:o?.statusMessage},null,8,W4)):f("v-if",!0)]),n("div",{class:"cell-views num",role:"cell","data-unit":(o?.pageView||0)===1?"view":"views",textContent:c(e.fmt?.number(o?.pageView||0))},null,8,K4),n("div",{class:"cell-expires",role:"cell",textContent:c(e.fmt?.humanTime(o?.anonymizeDate))},null,8,Y4),n("div",X4,[n("div",Q4,[t[91]||(t[91]=n("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-more"})])],-1)),n("div",J4,[n("a",{class:"dropdown-item",href:e.safeUrl("/anonymize/"+o?.repoId)},[...t[80]||(t[80]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),g(" Edit",-1)])],8,Z4),n("a",{class:"dropdown-item",href:e.safeUrl("/r/"+o?.repoId+"/")},[...t[81]||(t[81]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),g(" View repo",-1)])],8,x4),o?.options?.page&&o?.status=="ready"?(a(),l("a",{key:0,class:"dropdown-item",target:"_self",href:e.safeUrl("/w/"+o?.repoId+"/")},[...t[82]||(t[82]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-globe"})],-1),g(" View page",-1)])],8,eA)):f("v-if",!0),n("a",{class:"dropdown-item",href:"#",onClick:ae(d=>e.fetchGithubInfo(o),["prevent"])},[...t[83]||(t[83]=[n("i",{class:"fab fa-github"},null,-1),g(" Live GitHub info",-1)])],8,tA),t[89]||(t[89]=n("div",{class:"dropdown-divider"},null,-1)),D(n("a",{class:"dropdown-item",href:"#",onClick:ae(d=>e.updateRepository(o),["prevent"])},[...t[84]||(t[84]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),g(" Force update",-1)])],8,nA),[[Z,o?.status=="ready"||o?.status=="error"]]),D(n("a",{class:"dropdown-item",href:"#",onClick:ae(d=>e.updateRepository(o),["prevent"])},[...t[85]||(t[85]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-check-circle"})],-1),g(" Enable",-1)])],8,sA),[[Z,o?.status=="removed"]]),D(n("a",{class:"dropdown-item",href:"#",onClick:ae(d=>e.showStatusMessage(o),["prevent"])},[...t[86]||(t[86]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1),g(" View status message",-1)])],8,oA),[[Z,o?.statusMessage]]),t[90]||(t[90]=n("div",{class:"dropdown-divider"},null,-1)),n("a",{class:"dropdown-item",href:"#",onClick:ae(d=>e.removeCache(o),["prevent"])},[...t[87]||(t[87]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-broom"})],-1),g(" Remove cache",-1)])],8,iA),D(n("a",{class:"dropdown-item text-danger",href:"#",onClick:ae(d=>e.removeRepository(o),["prevent"])},[...t[88]||(t[88]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1),g(" Remove",-1)])],8,rA),[[Z,o?.status=="ready"]])])])])],2))),256)),e.filteredRepositories?.length==0?(a(),l("div",aA,[...t[92]||(t[92]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1),n("span",null,"No repositories match the current filters.",-1)])])):f("v-if",!0)])])}var lA={class:"container paper-page admin-page"},dA={class:"seg-bar"},uA={class:"seg-filter",role:"radiogroup","aria-label":"Filter by status"},cA=["aria-checked"],pA={class:"count"},fA=["aria-checked"],hA={class:"count"},mA=["aria-checked"],gA={class:"count"},vA=["aria-checked"],yA={class:"count"},bA={class:"seg-countline",role:"status"},wA={key:0,class:"alert alert-danger",style:{margin:"8px 0"}},kA={class:"w-100 admin-filter-toolbar","aria-label":"Users","accept-charset":"UTF-8"},CA={class:"admin-filter-row"},EA={class:"search-wrap"},SA={type:"search",class:"form-control","aria-label":"Search users",placeholder:"Search username or email\u2026",autocomplete:"off"},NA={key:0,class:"admin-search-hint"},RA={class:"admin-filter-inline"},AA={class:"form-control form-control-sm"},PA={key:0,class:"admin-filter-inline","aria-label":"Pagination"},DA=["disabled"],TA={style:{"font-family":"var(--font-mono)","font-size":"12px",color:"var(--ink-muted)"}},OA=["disabled"],IA={key:0,class:"admin-filter-row"},MA={class:"admin-active-chips"},VA={class:"key"},qA=["onClick"],_A={key:1,class:"bulk-bar"},$A={class:"paper-table w-100",role:"table","aria-label":"Users",style:{"--cols":"28px minmax(280px, 2.4fr) 100px 140px 140px 52px"}},LA={class:"paper-table-head admin-users-row",role:"row"},FA={role:"columnheader",style:{width:"28px"}},UA=["checked"],BA={role:"columnheader"},zA={role:"columnheader"},HA={role:"cell",style:{width:"28px"}},jA={type:"checkbox","aria-label":"Select user"},GA={class:"cell-anon",role:"cell"},WA=["src"],KA={key:1,class:"avatar-fallback","aria-hidden":"true"},YA={class:"anon-text"},XA={class:"user-name-line"},QA=["textContent","href"],JA=["href","title","aria-label"],ZA={class:"anon-sub meta-dots"},xA=["title"],eP={key:1},tP={class:"cell-views num",role:"cell"},nP=["title","textContent","href"],sP={class:"cell-status",role:"cell"},oP=["textContent"],iP={class:"cell-status",role:"cell"},rP={key:0,class:"role-pill"},aP={key:1,class:"empty-dash"},lP={class:"cell-actions",role:"cell"},dP={class:"dropdown"},uP={class:"dropdown-menu dropdown-menu-right"},cP=["href"],pP=["href"],fP=["onClick"],hP=["onClick"],mP={key:0,class:"paper-table-empty"},gP={class:"admin-toolbar",style:{"justify-content":"space-between","border-bottom":"none"}},vP={key:0,class:"pagination-compact"},yP=["disabled"],bP=["max"],wP=["disabled"],kP={class:"admin-filter-inline"},CP={class:"form-control form-control-sm"};function rp(e,t){let s=Pe("field"),i=Pe("form");return a(),l("div",lA,[t[53]||(t[53]=Ce('
Admin \xA0/\xA0 Users

Users

',3)),n("div",dA,[n("div",uA,[n("button",{type:"button",role:"radio",class:A(["seg-chip",{active:!e.query?.status}]),"aria-checked":!e.query?.status,onClick:t[0]||(t[0]=o=>{e.query.status="",e.query.page=1})},[t[14]||(t[14]=g("All ",-1)),n("span",pA,c(e.fmt?.number(e.statusCountFor("active")+e.statusCountFor("banned")+e.statusCountFor("removed"))),1)],10,cA),n("button",{type:"button",role:"radio",class:A(["seg-chip",{active:e.query?.status==="active","is-empty":!e.statusCountFor("active")}]),"aria-checked":e.query?.status==="active",onClick:t[1]||(t[1]=o=>{e.query.status="active",e.query.page=1})},[t[15]||(t[15]=n("span",{class:"seg-dot ok","aria-hidden":"true"},null,-1)),t[16]||(t[16]=g("Active ",-1)),n("span",hA,c(e.fmt?.number(e.statusCountFor("active"))),1)],10,fA),n("button",{type:"button",role:"radio",class:A(["seg-chip",{active:e.query?.status==="banned","is-empty":!e.statusCountFor("banned")}]),"aria-checked":e.query?.status==="banned",onClick:t[2]||(t[2]=o=>{e.query.status="banned",e.query.page=1})},[t[17]||(t[17]=n("span",{class:"seg-dot bad","aria-hidden":"true"},null,-1)),t[18]||(t[18]=g("Banned ",-1)),n("span",gA,c(e.fmt?.number(e.statusCountFor("banned"))),1)],10,mA),n("button",{type:"button",role:"radio",class:A(["seg-chip",{active:e.query?.status==="removed","is-empty":!e.statusCountFor("removed")}]),"aria-checked":e.query?.status==="removed",onClick:t[3]||(t[3]=o=>{e.query.status="removed",e.query.page=1})},[t[19]||(t[19]=n("span",{class:"seg-dot off","aria-hidden":"true"},null,-1)),t[20]||(t[20]=g("Removed ",-1)),n("span",yA,c(e.fmt?.number(e.statusCountFor("removed"))),1)],10,vA)]),n("p",bA,[n("strong",null,c(e.total>=0?e.fmt.number(e.total):"\u2026"),1),t[21]||(t[21]=g(" shown",-1))])]),e.fetchError?(a(),l("div",wA,[t[22]||(t[22]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),g(" "+c(e.fetchError),1)])):f("v-if",!0),D((a(),l("form",kA,[n("div",CA,[n("div",EA,[D(n("input",SA,null,512),[[s,{state:e.viewState,set:o=>{e.query.search=o},value:e.query?.search,form:null,options:{}}]]),e.query?.search?f("v-if",!0):(a(),l("span",NA,"/"))]),n("span",RA,[t[24]||(t[24]=n("label",null,"Role",-1)),D((a(),l("select",AA,[...t[23]||(t[23]=[n("option",{value:""},"Any",-1),n("option",{value:"admin"},"Admin",-1)])])),[[s,{state:e.viewState,set:o=>{e.query.role=o},value:e.query?.role,form:null,options:{}}]])]),t[28]||(t[28]=n("span",{class:"admin-filter-spacer"},null,-1)),n("button",{class:"btn btn-sm",type:"button",onClick:t[4]||(t[4]=o=>e.exportCsv())},[...t[25]||(t[25]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-export"})],-1),g(" Export",-1)])]),e.totalPage>1?(a(),l("span",PA,[n("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[5]||(t[5]=o=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1,"aria-label":"Previous page"},[...t[26]||(t[26]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1)])],8,DA),n("span",TA,c(e.query?.page)+"/"+c(e.totalPage||1),1),n("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[6]||(t[6]=o=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage,"aria-label":"Next page"},[...t[27]||(t[27]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,OA)])):f("v-if",!0)]),e.chips?.length?(a(),l("div",IA,[n("div",MA,[(a(!0),l(q,null,J(e.chips,(o,r)=>(a(),l("span",{class:"admin-active-chip",key:o?.key},[n("span",VA,c(o?.label),1),n("span",null,c(o?.value),1),n("button",{type:"button",onClick:d=>e.clearFilter(o.key),"aria-label":"Clear filter"},[...t[29]||(t[29]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])],8,qA)]))),128))])])):f("v-if",!0)])),[[i,e.viewState]]),e.selectedCount()>0?(a(),l("div",_A,[n("span",null,[n("strong",null,c(e.selectedCount()),1),t[30]||(t[30]=g(" selected",-1))]),n("button",{class:"btn btn-sm text-danger",type:"button",onClick:t[7]||(t[7]=o=>e.bulkBan())},[...t[31]||(t[31]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-ban"})],-1),g(" Ban",-1)])]),n("button",{class:"btn btn-sm",type:"button",onClick:t[8]||(t[8]=o=>{e.selected={},e.allSelected=!1})},"Clear")])):f("v-if",!0),n("div",$A,[n("div",LA,[n("div",FA,[n("input",{type:"checkbox","aria-label":"Select all on page",onClick:t[9]||(t[9]=o=>e.selectAllOnPage()),checked:e.allSelected},null,8,UA)]),n("div",BA,[n("button",{type:"button",class:A(["sortable",{active:e.query?.sort=="username"}]),onClick:t[10]||(t[10]=o=>e.sortBy("username"))},[t[33]||(t[33]=g("User ",-1)),e.sortIcon("username")?(a(),l("svg",{key:0,class:A(["ui-icon sort-direction",{ascending:e.sortIcon("username")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[32]||(t[32]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)]),t[36]||(t[36]=n("div",{role:"columnheader",class:"num",title:"Repositories discovered on the user's GitHub account"},"GitHub repos",-1)),n("div",zA,[n("button",{type:"button",class:A(["sortable",{active:e.query?.sort=="status"}]),onClick:t[11]||(t[11]=o=>e.sortBy("status"))},[t[35]||(t[35]=g("Status ",-1)),e.sortIcon("status")?(a(),l("svg",{key:0,class:A(["ui-icon sort-direction",{ascending:e.sortIcon("status")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[34]||(t[34]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)]),t[37]||(t[37]=n("div",{role:"columnheader"},"Role",-1)),t[38]||(t[38]=n("div",{role:"columnheader","aria-label":"Actions"},null,-1))]),(a(!0),l(q,null,J(e.filteredUsers,(o,r)=>(a(),l("div",{class:A(["paper-table-row admin-users-row",{"row-selected":e.selected[o?.username]}]),role:"row"},[n("div",HA,[D(n("input",jA,null,512),[[s,{state:e.viewState,set:d=>{e.selected[o.username]=d},value:e.selected[o?.username],form:null,options:{}}]])]),n("div",GA,[o?.photo?(a(),l("img",{key:0,width:"28",height:"28",class:"rounded-circle",style:{"flex-shrink":"0"},src:e.safeUrl(o?.photo)},null,8,WA)):(a(),l("span",KA,c((o?.username||"?").charAt(0).toUpperCase()),1)),n("div",YA,[n("span",XA,[n("a",{class:"repo-name",textContent:c(o?.username),href:e.safeUrl("/admin/users/"+o?.username)},null,8,QA),n("a",{class:"user-gh-link",target:"_blank",rel:"noopener",href:e.safeUrl("https://github.com/"+o?.username),title:o?.username+" on GitHub","aria-label":o?.username+" on GitHub"},[...t[39]||(t[39]=[n("i",{class:"fab fa-github","aria-hidden":"true"},null,-1)])],8,JA)]),n("div",ZA,[o?.emails?.[0]?.email?(a(),l("span",{key:0,class:"meta-email meta-tail",title:o?.emails?.[0]?.email},c(o?.emails?.[0]?.email),9,xA)):f("v-if",!0),o?.dateOfEntry?(a(),l("span",eP,"Joined "+c(e.fmt?.humanTime(o?.dateOfEntry)),1)):f("v-if",!0)])])]),n("div",tP,[t[40]||(t[40]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})],-1)),n("a",{title:o?.repoCount?"Show this user\u2019s repositories":"Repositories not synced yet",textContent:c(o?.repoCount?e.fmt?.number(o.repoCount):"Not synced"),class:A({"is-unsynced":!o?.repoCount}),href:e.safeUrl("/admin/repositories?owner="+o?.username)},null,10,nP)]),n("div",sP,[n("span",{class:A(["status-dot","st-"+(o?.status||"unknown")])},null,2),n("span",{textContent:c(e.fmt?.title(o?.status))},null,8,oP)]),n("div",iP,[o?.isAdmin?(a(),l("span",rP,"Admin")):f("v-if",!0),o?.isAdmin?f("v-if",!0):(a(),l("span",aP,"\u2014"))]),n("div",lP,[n("div",dP,[t[46]||(t[46]=n("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-more"})])],-1)),n("div",uP,[n("a",{class:"dropdown-item",href:e.safeUrl("/admin/users/"+o?.username)},[...t[41]||(t[41]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),g(" View details",-1)])],8,cP),n("a",{class:"dropdown-item",href:e.safeUrl("/admin/repositories?owner="+o?.username)},[...t[42]||(t[42]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})],-1),g(" View repositories",-1)])],8,pP),t[45]||(t[45]=n("div",{class:"dropdown-divider"},null,-1)),D(n("a",{class:"dropdown-item text-danger",href:"#",onClick:ae(d=>e.banUser(o),["prevent"])},[...t[43]||(t[43]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-ban"})],-1),g(" Ban",-1)])],8,fP),[[Z,o?.status=="active"]]),D(n("a",{class:"dropdown-item",href:"#",onClick:ae(d=>e.activateUser(o),["prevent"])},[...t[44]||(t[44]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-check-circle"})],-1),g(" Activate",-1)])],8,hP),[[Z,o?.status=="removed"||o?.status=="banned"]])])])])],2))),256)),e.filteredUsers?.length==0?(a(),l("div",mP,[...t[47]||(t[47]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1),n("span",null,"No users match the current filters.",-1)])])):f("v-if",!0)]),n("div",gP,[t[52]||(t[52]=n("span",{"aria-hidden":"true"},null,-1)),e.totalPage>1?(a(),l("div",vP,[n("button",{class:"btn btn-sm",onClick:t[12]||(t[12]=o=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1},[...t[48]||(t[48]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1),g(" Previous",-1)])],8,yP),D(n("input",{type:"number",class:"form-control form-control-sm",min:"1",style:{width:"56px"},max:e.totalPage},null,8,bP),[[s,{state:e.viewState,set:o=>{e.query.page=o},value:e.query?.page,form:null,options:{}}]]),n("span",null,"of "+c(e.totalPage),1),n("button",{class:"btn btn-sm",onClick:t[13]||(t[13]=o=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage},[...t[49]||(t[49]=[g("Next ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,wP)])):f("v-if",!0),n("span",kP,[t[51]||(t[51]=n("label",null,"Per page",-1)),D((a(),l("select",CP,[...t[50]||(t[50]=[n("option",{value:"10"},"10",-1),n("option",{value:"25"},"25",-1),n("option",{value:"50"},"50",-1),n("option",{value:"100"},"100",-1)])])),[[s,{state:e.viewState,set:o=>{e.query.limit=o},value:e.query?.limit,form:null,options:{}}]])])])])}var EP={class:"anonymize-landing"},SP={class:"anonymize-landing-inner"},NP={class:"form-group mt-4 mb-2"},RP={class:"source-url-label-row"},AP={key:0,class:"repo-access","aria-label":"GitHub access"},PP={key:0,class:"repo-access-switch",role:"group","aria-label":"Repository connection"},DP=["aria-pressed","disabled"],TP=["aria-pressed","disabled"],OP={key:1,class:"connection-badge"},IP={class:"landing-url-row"},MP={id:"sourceUrl-landing",onblur:"this.scrollLeft=0",type:"text",class:"form-control form-control-lg",placeholder:"https://github.com/owner/repository"},VP=["aria-disabled"],qP={key:0,class:"text-danger",role:"alert"},_P={class:"repo-picker","aria-labelledby":"repo-picker-title"},$P={class:"repo-picker-head"},LP={class:"repo-picker-title"},FP={key:0,class:"repo-picker-count","aria-live":"polite"},UP={key:0,class:"repo-picker-list","aria-busy":"true","aria-label":"Loading your repositories"},BP={class:"repo-picker-row is-skeleton","aria-hidden":"true"},zP={key:1,class:"repo-picker-list"},HP=["title"],jP={class:"repo-picker-owner"},GP={class:"repo-picker-repo"},WP=["onClick","aria-label"],KP={key:2,class:"repo-picker-state"},YP={key:3,class:"repo-picker-state"},XP={key:4,class:"repo-picker-state",role:"alert"},QP={key:5,class:"repo-access-details","aria-label":"GitHub access"},JP={class:"repo-access-main"},ZP={class:"repo-access-controls"},xP={key:0,class:"access-q"},eD={key:2,class:"connection-link",href:"/connections"},tD={class:"repo-access-note"},nD={key:0},sD={class:"anonymize-workspace"},oD={class:"anonymize-topbar"},iD={class:"anonymize-topbar-inner"},rD={class:"paper-crumbs"},aD={class:"here"},lD={class:"anonymize-topbar-head"},dD={class:"paper-page-title anonymize-topbar-title"},uD={key:0},cD={key:1},pD={class:"paper-page-lede anonymize-topbar-lede"},fD={key:0,class:"task-trail flow-trail","aria-label":"Anonymization steps"},hD={key:0,class:"alert alert-info",role:"status"},mD={key:1,class:"alert alert-info",role:"status"},gD={key:1},vD={class:"anonymize-mobile-tabs",role:"tablist","aria-label":"Anonymization workspace"},yD=["aria-selected","tabindex"],bD=["aria-selected","tabindex"],wD={class:"anonymize-split"},kD=["role","aria-labelledby"],CD={class:"form needs-validation paper-settings-main",name:"anonymize",novalidate:""},ED={class:"anonymize-fields"},SD={class:"paper-settings-section"},ND={class:"form-group"},RD={class:"source-url-label-row"},AD={key:0,class:"repo-access","aria-label":"GitHub access"},PD={key:0,class:"repo-access-switch",role:"group","aria-label":"Repository connection"},DD=["aria-pressed","disabled"],TD=["aria-pressed","disabled"],OD={key:1,class:"connection-badge"},ID=["disabled"],MD={key:0,class:"source-summary"},VD={class:"invalid-feedback"},qD={class:"invalid-feedback"},_D={class:"invalid-feedback"},$D={class:"invalid-feedback"},LD={key:0,class:"repo-access-details","aria-label":"Previous repository configuration"},FD={key:0,class:"form-group"},UD=["value"],BD={key:1},zD={class:"repo-access-controls"},HD=["href"],jD={key:1,class:"repo-access-details","aria-label":"GitHub access"},GD={class:"repo-access-main"},WD={class:"repo-access-controls"},KD={key:0,class:"access-q"},YD={key:2,class:"connection-link",href:"/connections"},XD={class:"repo-access-note"},QD={key:0},JD={key:1},ZD=["open"],xD={key:0,class:"repair-step"},eT=["disabled"],tT={key:0,role:"status"},nT={class:"repair-step"},sT={key:0,role:"status"},oT={key:3,class:"form-grid-2"},iT={class:"form-group"},rT={class:"input-group"},aT={class:"form-control",id:"branch",name:"branch"},lT=["textContent","value"],dT={class:"input-group-append"},uT={class:"form-group"},cT=["disabled"],pT={class:"invalid-feedback"},fT={class:"invalid-feedback"},hT={class:"form-check-input",type:"checkbox",id:"update",name:"update","aria-describedby":"update-help"},mT={class:"form-check-label",for:"update"},gT={key:0,class:"paid-tag"},vT={key:0,class:"form-text text-muted",id:"update-help"},yT={key:1,class:"form-text text-muted auto-update-paid",id:"update-help"},bT={class:"paper-settings-section"},wT={class:"form-group"},kT=["disabled"],CT={class:"form-text text-muted anon-url-echo"},ET={class:"anon-url-id"},ST={class:"invalid-feedback"},NT={class:"form-group"},RT=["disabled"],AT={class:"form-text text-muted anon-url-echo"},PT={class:"anon-url-id"},DT={class:"invalid-feedback"},TT={class:"form-group"},OT=["disabled"],IT={class:"form-text text-muted anon-url-echo"},MT={class:"anon-url-id"},VT={class:"invalid-feedback"},qT={class:"form-group"},_T=["rows"],$T={class:"redaction-syntax"},LT={class:"form-text text-muted"},FT=["onClick"],UT={key:0,class:"term-hint-more"},BT={class:"invalid-feedback"},zT={class:"preserve-row"},HT={class:"preserve-row-text"},jT={class:"preserve-row-value"},GT=["disabled"],WT={class:"preserve-tree"},KT={key:0,class:"preserve-status"},YT={key:1,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},XT=["aria-expanded","aria-label","onClick"],QT={key:1,class:"preserve-caret-space"},JT=["id","aria-label","checked",".indeterminate","disabled","onChange"],ZT=["for","onClick"],xT={key:2,class:"preserve-note"},e3={key:0,class:"preserve-status"},t3={key:0,class:"preserve-status"},n3=["open"],s3={class:"preserve-foot"},o3={class:"preserve-count","aria-live":"polite"},i3={class:"preserve-actions"},r3={class:"paper-settings-section"},a3={class:"form-check"},l3={class:"form-check-input",type:"checkbox",id:"link",name:"link"},d3={class:"form-check"},u3={class:"form-check-input",type:"checkbox",id:"image",name:"image"},c3={class:"form-check"},p3={class:"form-check-input",type:"checkbox",id:"pdf",name:"pdf"},f3={class:"form-check"},h3={class:"form-check-input",type:"checkbox",id:"notebook",name:"notebook"},m3={class:"form-check"},g3=["disabled"],v3={key:0,class:"form-text text-muted"},y3={key:1,class:"form-text text-muted"},b3={key:0,class:"form-text text-muted"},w3={class:"form-check"},k3={class:"form-check-input",type:"checkbox",id:"title-gist",name:"title-gist"},C3={class:"form-check"},E3={class:"form-check-input",type:"checkbox",id:"content-gist",name:"content-gist"},S3={class:"form-check"},N3={class:"form-check-input",type:"checkbox",id:"comments-gist",name:"comments-gist"},R3={class:"form-check"},A3={class:"form-check-input",type:"checkbox",id:"username-gist",name:"username-gist"},P3={class:"form-check"},D3={class:"form-check-input",type:"checkbox",id:"date-gist",name:"date-gist"},T3={class:"form-check"},O3={class:"form-check-input",type:"checkbox",id:"origin-gist",name:"origin-gist"},I3={class:"form-check"},M3={class:"form-check-input",type:"checkbox",id:"title",name:"title"},V3={class:"form-check"},q3={class:"form-check-input",type:"checkbox",id:"body",name:"body"},_3={class:"form-check"},$3={class:"form-check-input",type:"checkbox",id:"diff",name:"diff"},L3={class:"form-check"},F3={class:"form-check-input",type:"checkbox",id:"comments",name:"comments"},U3={class:"form-check"},B3={class:"form-check-input",type:"checkbox",id:"username",name:"username"},z3={class:"form-check"},H3={class:"form-check-input",type:"checkbox",id:"date",name:"date"},j3={class:"form-check"},G3={class:"form-check-input",type:"checkbox",id:"origin",name:"origin"},W3={class:"paper-settings-section hosting-settings",id:"repository-hosting","aria-labelledby":"hosting-heading"},K3={class:"form-group conference-field"},Y3=["href"],X3={class:"invalid-feedback"},Q3={class:"form-text text-muted"},J3={key:0,class:"hosting-usage"},Z3={key:0},x3={key:1},eO={key:2},tO={key:1,class:"hosting-limit auto-update-note",role:"status"},nO={key:2,class:"hosting-payment"},sO={key:0,class:"hosting-limit",role:"status"},oO={key:1,class:"hosting-options"},iO={class:"hosting-options-title"},rO=["value","checked","onChange"],aO={class:"hosting-option-body"},lO={key:0,class:"hosting-cycle billing-toggle",role:"radiogroup","aria-label":"Billing frequency"},dO=["aria-checked","onClick"],uO={key:0,class:"billing-toggle-save"},cO={class:"hosting-option-price"},pO={key:2,role:"status"},fO={key:3,class:"hosting-terms"},hO={key:4,class:"hosting-terms"},mO={key:5,class:"capacity-options"},gO=["disabled"],vO={key:3,class:"hosting-subhead"},yO={class:"expiration-choices"},bO={class:"expiration-choice"},wO=["checked","disabled"],kO={key:0,class:"dated-options"},CO={key:0,class:"hosting-date"},EO=["min","max"],SO={key:0,class:"date-echo","aria-live":"polite"},NO={class:"invalid-feedback"},RO={class:"invalid-feedback"},AO={class:"hosting-property"},PO={key:1,class:"expiration-choice"},DO=["checked","disabled"],TO={key:0},OO={key:4,class:"form-text text-muted"},IO={key:5,class:"inline-hosting"},MO={key:0,role:"alert",class:"text-danger"},VO={key:1,role:"alert",class:"text-danger"},qO=["disabled"],_O={key:2,role:"status"},$O={key:3,role:"status",class:"form-text text-muted"},LO={key:4,class:"hosting-terms"},FO={key:5,class:"hosting-terms"},UO={key:6,class:"repository-pass"},BO=["disabled","onClick"],zO={class:"paper-settings-section"},HO={class:"form-group"},jO={style:{position:"relative"}},GO={type:"text",id:"coauthorSearch",class:"form-control",placeholder:"Search GitHub username\u2026",autocomplete:"off"},WO={class:"dropdown-menu show",style:{display:"block","max-height":"220px","overflow-y":"auto",width:"100%"}},KO=["onClick"],YO=["src"],XO=["textContent"],QO=["textContent"],JO={class:"coauthor-list"},ZO={class:"coauthor-row d-flex align-items-center",style:{padding:"6px 0",gap:"8px"}},xO=["src"],eI=["textContent","href"],tI=["onClick"],nI={class:"form-text text-muted"},sI=["textContent"],oI={class:"anonymize-submit-bar"},iI=["disabled"],rI=["disabled"],aI=["disabled"],lI=["disabled"],dI=["disabled"],uI=["disabled"],cI={key:5,class:"submit-reason",role:"status"},pI={key:6,class:"submit-reason",role:"status"},fI={key:7,class:"checkout-return-note"},hI={key:8,class:"draft-status",role:"status"},mI={key:9,class:"draft-status"},gI=["role","aria-labelledby"],vI={class:"rp-caption"},yI=["aria-expanded"],bI=["title"],wI={class:"redact-slot","aria-hidden":"true"},kI={key:2,class:"rp-count rp-count-none"},CI=["href"],EI=["aria-pressed"],SI={class:"rp-open-icon",viewBox:"0 0 16 16","aria-hidden":"true"},NI={key:0,d:"M9.5 2.5h4v4M13.5 2.5 9 7M6.5 13.5h-4v-4M2.5 13.5 7 9"},RI={key:1,d:"M13.5 6.5h-4v-4M9.5 6.5 14 2M2.5 9.5h4v4M6.5 9.5 2 14"},AI={class:"rp-window"},PI={class:"rp-chrome","aria-hidden":"true"},DI={class:"rp-url"},TI={class:"rp-bar","aria-hidden":"true"},OI={key:0,class:"rp-bar-id"},II={key:1,class:"rp-bar-kind"},MI={class:"leftCol-head"},VI={class:"leftCol-body"},qI={key:0,class:"rp-state rp-loading",role:"status"},_I={class:"rp-state-text"},$I={class:"rp-state rp-error",role:"alert"},LI={class:"rp-state-actions"},FI={key:1,class:"btn btn-outline-ink btn-sm",href:"/connections"},UI={key:2,class:"rp-state rp-error",role:"alert"},BI={class:"rp-state-actions"},zI={class:"rp-state rp-error",role:"alert"},HI={class:"rp-state-actions"},jI={class:"rp-state rp-error",role:"alert"},GI={class:"rp-state-actions"},WI={key:5,class:"rp-state rp-empty"},KI={key:7,class:"anonymize-preview-body"},YI={class:"d-flex w-100 justify-content-between align-items-center flex-wrap"},XI={class:"pr-title mb-1"},QI={key:0},JI=["textContent"],ZI={key:0},xI={key:1},e5={key:2},t5={class:"pr-comments mt-3"},n5={class:"pr-comment"},s5={class:"pr-comment-head"},o5=["textContent"],i5={key:0,class:"pr-comment-date"},r5={key:3},a5={class:"pr-comments"},l5={class:"pr-comment"},d5={class:"pr-comment-head"},u5={key:0,class:"pr-comment-author"},c5=["textContent"],p5=["textContent"],f5={key:0,class:"pr-comment-body"},h5={key:8,class:"anonymize-preview-body"},m5={class:"d-flex w-100 justify-content-between align-items-center flex-wrap"},g5={class:"pr-title mb-1"},v5={key:0},y5=["textContent"],b5={key:0},w5={key:1,class:"pr-body"},k5={key:2,class:"paper-tabs",role:"tablist"},C5=["aria-selected","tabindex"],E5=["aria-selected","tabindex"],S5=["textContent"],N5={key:3,class:"anonymize-preview-status"},R5={class:"paper-tab-content"},A5={key:0,role:"tabpanel",id:"preview-pr-diff-panel","aria-labelledby":"preview-pr-diff-tab"},P5=["innerHTML"],D5={key:1,role:"tabpanel",id:"preview-pr-comments-panel","aria-labelledby":"preview-pr-comments-tab"},T5={class:"pr-comments"},O5={class:"pr-comment"},I5={class:"pr-comment-head"},M5={key:0,class:"pr-comment-author"},V5=["textContent"],q5=["textContent"],_5={key:0,class:"pr-comment-body"},$5={key:9,class:"rp-more"},L5=["href"],F5={key:2,class:"rp-more-btn is-hint","aria-hidden":"true"};function ap(e,t){let s=Xe("tree"),i=Xe("partial-view"),o=Xe("gist-file"),r=Xe("markdown"),d=Pe("field"),p=Pe("form");return a(),l("div",{class:A(["anonymize-page h-100",{"mobile-preview-active":e.mobilePane==="preview","preview-expanded":e.previewExpanded}])},[f(" ===== STATE 1: No URL \u2014 centered input ===== "),D(n("div",EP,[n("div",SP,[t[70]||(t[70]=Ce('
My work \xA0/\xA0 New anonymization

New anonymization

Paste a repository, pull request, or gist URL, or pick one of your repositories. You\u2019ll choose the terms to redact next.

  1. 1. Repository
  2. 2. Review and hosting
  3. 3. Review link
',2)),n("div",NP,[n("div",RP,[t[61]||(t[61]=n("label",{class:"paper-field-label",for:"sourceUrl-landing"},"Source URL",-1)),!e.sourceUrl&&e.githubConnections?.appEnabled&&e.githubConnections.appConnected&&e.githubConnections.oauthConnected?(a(),l("aside",AP,[!e.isUpdate&&e.detectedType!=="gist"?(a(),l("div",PP,[n("button",{type:"button","aria-pressed":e.githubConnection==="github-app",disabled:e.githubConnection==="github-app",onClick:t[0]||(t[0]=u=>e.chooseGitHubConnection("github-app"))},[...t[60]||(t[60]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1),g(),n("span",{class:"sr-only"},"Read-only ",-1),g("GitHub App",-1)])],8,DP),n("button",{type:"button","aria-pressed":e.githubConnection==="oauth",disabled:e.githubConnection==="oauth",onClick:t[1]||(t[1]=u=>e.chooseGitHubConnection("oauth"))},"Legacy OAuth",8,TP)])):f("v-if",!0),e.isUpdate||e.detectedType==="gist"?(a(),l("span",OP,c((e.detectedType==="gist"?e.githubConnections?.gistConnection==="github-app":e.githubConnection==="github-app")?"Read-only GitHub App":"Legacy OAuth"),1)):f("v-if",!0)])):f("v-if",!0)]),n("div",IP,[D(n("input",MP,null,512),[[d,{state:e.viewState,set:u=>{e.sourceUrl=u},value:e.sourceUrl,form:null,options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"},change:()=>{e.urlSelected()}}]]),n("button",{type:"button",class:"btn btn-primary landing-continue","aria-disabled":e.sourceUrl?.trim()?null:"true",onClick:t[2]||(t[2]=u=>e.sourceUrl?.trim()&&e.urlSelected())},"Continue",8,VP)])]),e.sourceUrlError?(a(),l("p",qP,c(e.sourceUrlError),1)):f("v-if",!0),t[71]||(t[71]=n("small",{class:"form-text landing-help",style:{color:"var(--ink-muted)"}}," Repository, pull request (\u2026/pull/42) and gist (gist.github.com/\u2026) URLs are all accepted. ",-1)),n("section",_P,[n("div",$P,[n("div",LP,[t[63]||(t[63]=n("h2",{id:"repo-picker-title"},"Your repositories",-1)),e.userReposStatus==="ready"&&e.userRepos.length>0?(a(),l("span",FP,[e.userRepoFilter&&e.filteredUserRepos().length!==e.userRepos.length?(a(),l(q,{key:0},[g(c(e.filteredUserRepos().length)+" of ",1)],64)):f("v-if",!0),g(c(e.userRepos.length)+" "+c(e.userRepos.length===1?"repository":"repositories"),1),t[62]||(t[62]=n("span",{class:"repo-picker-more"},[n("span",{class:"repo-picker-more-sep"}," \xB7 "),g("scroll for more")],-1))])):f("v-if",!0)]),e.userReposStatus==="ready"&&e.userRepos.length>0?D((a(),l("input",{key:0,type:"search",class:"form-control repo-picker-filter",placeholder:"Filter\u2026","aria-label":"Filter your repositories",autocomplete:"off","onUpdate:modelValue":t[3]||(t[3]=u=>e.userRepoFilter=u)},null,512)),[[pt,e.userRepoFilter]]):f("v-if",!0)]),e.userReposStatus==="loading"||e.userReposStatus==="idle"?(a(),l("ul",UP,[(a(),l(q,null,J([1,2,3,4],(u,y)=>n("li",BP,[n("span",{class:"skeleton skeleton-line",style:Ie({width:34+u*9+"%"})},null,4)])),64))])):f("v-if",!0),e.userReposStatus==="ready"&&e.filteredUserRepos().length>0?(a(),l("ul",zP,[(a(!0),l(q,null,J(e.filteredUserRepos(),(u,y)=>(a(),l("li",{key:u.id||u.fullName,class:"repo-picker-row"},[t[65]||(t[65]=n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})],-1)),n("span",{class:"repo-picker-name",title:u.fullName},[n("span",jP,[g(c(u.fullName.split("/")[0]),1),t[64]||(t[64]=n("span",{class:"repo-picker-slash"},"/",-1))]),n("span",GP,c(u.fullName.split("/").slice(1).join("/")),1)],8,HP),n("button",{type:"button",class:"btn btn-outline-ink btn-sm repo-picker-select",onClick:m=>e.selectUserRepo(u),"aria-label":"Select "+u.fullName},"Select",8,WP)]))),128))])):f("v-if",!0),e.userReposStatus==="ready"&&e.userRepos.length>0&&e.filteredUserRepos().length===0?(a(),l("p",KP,"No repository matches \u201C"+c(e.userRepoFilter)+"\u201D.",1)):f("v-if",!0),e.userReposStatus==="ready"&&e.userRepos.length===0?(a(),l("p",YP,"No repositories found for your GitHub account. Paste a URL above, or grant access below.")):f("v-if",!0),e.userReposStatus==="error"?(a(),l("p",XP,[t[66]||(t[66]=g("Your repositories could not be loaded. ",-1)),n("button",{type:"button",class:"task-text-button",onClick:t[4]||(t[4]=u=>e.loadUserRepos(!0))},"Try again")])):f("v-if",!0),!e.sourceUrl&&e.githubConnections?.appEnabled&&e.githubConnections.appConnected?(a(),l("aside",QP,[n("div",JP,[n("div",ZP,[e.detectedType!=="gist"&&e.githubConnection!=="oauth"?(a(),l("span",xP,"Repository not listed?")):f("v-if",!0),e.detectedType!=="gist"&&e.githubConnection!=="oauth"?(a(),l("button",{key:1,type:"button",class:"btn btn-outline-ink",onClick:t[5]||(t[5]=u=>e.grantGitHubAccess())},[...t[67]||(t[67]=[g("Manage GitHub access ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-external-link"})],-1)])])):f("v-if",!0),e.isUpdate||e.detectedType==="gist"||e.githubConnection==="oauth"?(a(),l("a",eD,[...t[68]||(t[68]=[g("Manage GitHub access ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-external-link"})],-1)])])):f("v-if",!0)])]),n("div",tD,[e.error&&e.detectedType!=="gist"&&e.githubConnection==="github-app"?(a(),l("span",nD,"Signing in does not grant access to private repositories. Use Manage GitHub access to select this repository, then return here. Organization access may require administrator approval.")):f("v-if",!0),t[69]||(t[69]=n("span",null,[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-info"})]),g(" Anonymized content is public, even from private repositories.")],-1))])])):f("v-if",!0)])])],512),[[Z,!e.workspaceOpen&&!e.isUpdate]]),f(" ===== STATE 2: URL provided \u2014 form (left) + preview (right) ===== "),D(n("div",sD,[n("header",oD,[n("div",iD,[n("div",rD,[t[72]||(t[72]=n("a",{href:"/dashboard"},"My work",-1)),t[73]||(t[73]=g(" \xA0/\xA0 ",-1)),n("span",aD,c(e.isUpdate?"Edit anonymization":"New anonymization"),1)]),n("div",lD,[n("h1",dD,[e.isUpdate?f("v-if",!0):(a(),l("span",uD,"New anonymization")),e.isUpdate?(a(),l("span",cD,"Edit anonymization")):f("v-if",!0)]),D(n("span",{class:A(["type-badge",{"type-repo":e.detectedType==="repo","type-pr":e.detectedType==="pr","type-gist":e.detectedType==="gist"}])},c(e.detectedType==="repo"?"Repository":e.detectedType==="pr"?"Pull request":"Gist"),3),[[Z,e.detectedType]])]),n("p",pD,c(e.isUpdate?"Changes apply to the existing anonymous link; reviewers keep the same URL.":"Choose the terms to redact, what reviewers see, and when the link expires."),1),e.isUpdate?f("v-if",!0):(a(),l("ol",fD,[...t[74]||(t[74]=[n("li",null,"1. Repository",-1),n("li",{"aria-current":"step"},"2. Review and hosting",-1),n("li",null,"3. Review link",-1)])]))])]),e.detectedType==="gist"&&e.gistAppRequired?(a(),l("aside",hD,[t[75]||(t[75]=n("p",null,"Reconnect your GitHub account to read this gist. Your draft will be restored when you return.",-1)),n("button",{type:"button",class:"btn btn-ink",onClick:t[6]||(t[6]=u=>e.connectGistApp())},"Connect GitHub App to access gists")])):f("v-if",!0),e.detectedType==="gist"&&e.gistOAuthRequired?(a(),l("aside",mD,[t[76]||(t[76]=n("p",null,"Connect GitHub OAuth to access gists. Your account and existing anonymizations stay the same, and your draft will be restored when you return.",-1)),t[77]||(t[77]=n("p",null,"GitHub's legacy OAuth connection includes write access to private repositories.",-1)),e.githubConnections?.oauthEnabled?(a(),l("button",{key:0,type:"button",class:"btn btn-ink",onClick:t[7]||(t[7]=u=>e.connectGistOAuth())},"Connect GitHub OAuth to access gists")):(a(),l("p",gD,"GitHub OAuth is currently unavailable. Please try again later."))])):f("v-if",!0),n("nav",vD,[n("button",{id:"workspace-settings-tab",role:"tab",type:"button","aria-selected":e.mobilePane==="settings","aria-controls":"workspace-settings",tabindex:e.mobilePane==="settings"?0:-1,onKeydown:t[8]||(t[8]=u=>e.previewTabKeydown(u)),onClick:t[9]||(t[9]=u=>e.selectMobilePane("settings"))},[...t[78]||(t[78]=[n("span",{class:"tab-label"},"Settings",-1)])],40,yD),n("button",{id:"workspace-preview-tab",role:"tab",type:"button","aria-selected":e.mobilePane==="preview","aria-controls":"workspace-preview",tabindex:e.mobilePane==="preview"?0:-1,onKeydown:t[10]||(t[10]=u=>e.previewTabKeydown(u)),onClick:t[11]||(t[11]=u=>e.selectMobilePane("preview"))},[...t[79]||(t[79]=[n("span",{class:"tab-label"},"Reviewer preview",-1)])],40,bD)]),n("div",wD,[f(" Form column (left) "),n("div",{id:"workspace-settings",role:e.mobileWorkspace?"tabpanel":null,"aria-labelledby":e.mobileWorkspace?"workspace-settings-tab":null,class:"anonymize-form-col overflow-auto"},[D((a(),l("form",CD,[n("div",ED,[n("section",SD,[t[99]||(t[99]=n("h2",{class:"paper-section-eyebrow"},"Source & access",-1)),n("div",ND,[n("div",RD,[t[81]||(t[81]=n("label",{class:"paper-field-label",for:"sourceUrl"},"Source URL",-1)),e.sourceUrl&&e.githubConnections?.appEnabled&&e.githubConnections.appConnected&&e.githubConnections.oauthConnected?(a(),l("aside",AD,[!e.isUpdate&&e.detectedType!=="gist"?(a(),l("div",PD,[n("button",{type:"button","aria-pressed":e.githubConnection==="github-app",disabled:e.githubConnection==="github-app",onClick:t[12]||(t[12]=u=>e.chooseGitHubConnection("github-app"))},[...t[80]||(t[80]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1),g(),n("span",{class:"sr-only"},"Read-only ",-1),g("GitHub App",-1)])],8,DD),n("button",{type:"button","aria-pressed":e.githubConnection==="oauth",disabled:e.githubConnection==="oauth",onClick:t[13]||(t[13]=u=>e.chooseGitHubConnection("oauth"))},"Legacy OAuth",8,TD)])):f("v-if",!0),e.isUpdate||e.detectedType==="gist"?(a(),l("span",OD,c((e.detectedType==="gist"?e.githubConnections?.gistConnection==="github-app":e.githubConnection==="github-app")?"Read-only GitHub App":"Legacy OAuth"),1)):f("v-if",!0)])):f("v-if",!0)]),D(n("input",{type:"text",class:A(["form-control",{"is-invalid":e.anonymize?.sourceUrl?.invalid}]),name:"sourceUrl",id:"sourceUrl",onblur:"this.scrollLeft=0",disabled:e.isUpdate&&e.detectedType!=="repo",placeholder:"Paste a GitHub repo or pull request URL"},null,10,ID),[[d,{state:e.viewState,set:u=>{e.sourceUrl=u},value:e.sourceUrl,form:"anonymize",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"},change:()=>{e.urlSelected()}}]]),e.sourceSummary()&&!e.anonymize?.sourceUrl?.invalid?(a(),l("p",MD,[t[82]||(t[82]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-check"})],-1)),g(c(e.sourceSummary()),1)])):f("v-if",!0),D(n("div",VD," Please provide a valid GitHub URL. ",512),[[Z,e.anonymize?.sourceUrl?.errors?.github]]),D(n("div",qD," Not accessible. The organization may restrict access. ",512),[[Z,e.anonymize?.sourceUrl?.errors?.access]]),D(n("div",_D," Does not exist or is not accessible. ",512),[[Z,e.anonymize?.sourceUrl?.errors?.missing]]),D(n("div",$D," Already anonymized. ",512),[[Z,e.anonymize?.sourceUrl?.errors?.used]])]),!e.isUpdate&&e.previousConfigurations.length?(a(),l("aside",LD,[t[84]||(t[84]=n("p",{role:"status"},"You have already anonymized this repository. Use the existing configuration to keep its anonymous link and avoid creating another repository.",-1)),e.previousConfigurations.length>1?(a(),l("div",FD,[t[83]||(t[83]=n("label",{class:"paper-field-label",for:"previousConfiguration"},"Previous anonymization",-1)),D(n("select",{id:"previousConfiguration",class:"form-control","onUpdate:modelValue":t[14]||(t[14]=u=>e.previousConfigurationId=u)},[(a(!0),l(q,null,J(e.previousConfigurations,u=>(a(),l("option",{key:u.repoId,value:u.repoId},c(u.repoId),9,UD))),128))],512),[[Ut,e.previousConfigurationId]])])):(a(),l("p",BD,c(e.previousConfigurationId),1)),t[85]||(t[85]=n("p",null,"You can review and update its settings before saving.",-1)),n("div",zD,[n("a",{class:"btn btn-ink",href:e.existingConfigurationUrl()},"Use existing configuration",8,HD),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[15]||(t[15]=u=>e.previousConfigurations=[])},"Create a separate one")])])):f("v-if",!0),e.sourceUrl&&e.githubConnections?.appEnabled&&e.githubConnections.appConnected?(a(),l("aside",jD,[n("div",GD,[n("div",WD,[e.detectedType!=="gist"&&e.githubConnection!=="oauth"&&!e.details?(a(),l("span",KD,"Repository not listed?")):f("v-if",!0),e.detectedType!=="gist"&&e.githubConnection!=="oauth"&&!e.details?(a(),l("button",{key:1,type:"button",class:"btn btn-outline-ink",onClick:t[16]||(t[16]=u=>e.grantGitHubAccess())},[...t[86]||(t[86]=[g("Manage GitHub access ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-external-link"})],-1)])])):f("v-if",!0),e.isUpdate||e.detectedType==="gist"||e.githubConnection==="oauth"?(a(),l("a",YD,[...t[87]||(t[87]=[g("Manage GitHub access ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-external-link"})],-1)])])):f("v-if",!0)])]),n("div",XD,[e.error&&e.detectedType!=="gist"&&e.githubConnection==="github-app"?(a(),l("span",QD,"Signing in does not grant access to private repositories. Use Manage GitHub access to select this repository, then return here. Organization access may require administrator approval.")):f("v-if",!0),e.detectedType!=="gist"&&e.githubConnection!=="oauth"&&!e.details?(a(),l("span",JD,"Select repositories on GitHub, then return here.")):f("v-if",!0),t[88]||(t[88]=n("span",null,[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-info"})]),g(" Selected content will be published, including content from private repositories.")],-1))])])):f("v-if",!0),e.isUpdate&&e.detectedType==="repo"&&e.role==="owner"&&e.sourceUrl==="https://github.com/"+e._originalFullName?(a(),l("details",{key:2,class:"repair-disclosure",open:!!(e.error||e.accessRepairMessage||e.reconnectRepositoryId)},[t[92]||(t[92]=n("summary",null,"Connection problems?",-1)),e.accessRepairAllowed&&e.githubConnections?.appEnabled&&e.githubConnection==="github-app"&&e.sourceUrl==="https://github.com/"+e._originalFullName?(a(),l("div",xD,[t[90]||(t[90]=n("p",null,"If this repository became private or its App installation changed, repair its access here. This keeps the same anonymous URL and published commit.",-1)),n("button",{type:"button",class:"btn btn-outline-ink",disabled:e.repairingGitHubAccess,onClick:t[17]||(t[17]=u=>e.repairGitHubAccess())},"Repair GitHub access",8,eT),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[18]||(t[18]=u=>e.grantGitHubAccess())},[...t[89]||(t[89]=[g("Manage GitHub access ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-external-link"})],-1)])]),e.accessRepairMessage?(a(),l("p",tT,c(e.accessRepairMessage),1)):f("v-if",!0)])):f("v-if",!0),n("div",nT,[t[91]||(t[91]=n("p",null,"If you deleted and recreated this repository, reconnect it before choosing a branch.",-1)),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[19]||(t[19]=u=>e.reconnectSource())},"Reconnect source repository"),e.reconnectRepositoryId?(a(),l("p",sT,"Source reloaded. Review the branch, commit, and anonymization preview, then save to replace the published snapshot.")):f("v-if",!0)])],8,ZD)):f("v-if",!0),e.detectedType==="repo"?(a(),l("div",oT,[n("div",iT,[t[94]||(t[94]=n("label",{class:"paper-field-label",for:"branch"},"Branch",-1)),n("div",rT,[D((a(),l("select",aT,[(a(!0),l(q,null,J(e.branches,(u,y)=>(a(),l("option",{textContent:c(u?.name),value:u?.name},null,8,lT))),256))])),[[d,{state:e.viewState,set:u=>{e.source.branch=u},value:e.source?.branch,form:"anonymize",options:{}}]]),n("div",dT,[n("button",{class:"btn btn-icon refresh-branches",type:"button",title:"Refresh branches",onClick:t[20]||(t[20]=u=>e.getBranches(!0)),"aria-label":"Refresh branches"},[...t[93]||(t[93]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1)])])])])]),n("div",uT,[t[95]||(t[95]=n("label",{class:"paper-field-label",for:"commit"},"Commit",-1)),D(n("input",{class:A(["form-control",{"is-invalid":e.anonymize?.commit?.invalid}]),id:"commit",disabled:e.options.update,name:"commit",pattern:"[a-fA-Z0-9]{6,}",required:""},null,10,cT),[[d,{state:e.viewState,set:u=>{e.source.commit=u},value:e.source?.commit,form:"anonymize",options:{}}]]),D(n("div",pT," The commit SHA is not valid. ",512),[[Z,e.anonymize?.commit?.errors?.pattern||e.anonymize?.commit?.errors?.required]]),D(n("div",fT," This commit no longer exists in the repository. Click refresh to get the latest. ",512),[[Z,e.anonymize?.commit?.errors?.exists]])])])):f("v-if",!0),D(n("div",{class:A(["form-check auto-update-check",{"is-paid":!e.liveUpdatesIncluded()}])},[D(n("input",hT,null,512),[[d,{state:e.viewState,set:u=>{e.options.update=u},value:e.options?.update,form:"anonymize",options:{}}]]),n("label",mT,[t[96]||(t[96]=g("Auto-update from GitHub",-1)),e.liveUpdatesIncluded()?f("v-if",!0):(a(),l("span",gT,"Paid"))]),e.liveUpdatesIncluded()?(a(),l("small",vT,"Follows the latest version, at most once an hour.")):(a(),l("small",yT,[t[97]||(t[97]=g("Needs Live updates",-1)),e.liveUpdatesPrice()?(a(),l(q,{key:0},[g(" \xB7 "+c(e.liveUpdatesPrice()),1)],64)):f("v-if",!0),t[98]||(t[98]=g(", a Paper pack or an author subscription. ",-1)),n("a",{href:"#repository-hosting",onClick:t[21]||(t[21]=ae(u=>e.showHostingOptions(),["prevent"]))},"Hosting options")]))],2),[[Z,e.detectedType]])]),D(n("section",bT,[t[133]||(t[133]=n("h2",{class:"paper-section-eyebrow"},"Anonymization",-1)),D(n("div",wT,[t[104]||(t[104]=n("label",{class:"paper-field-label",for:"repoId"},"Anonymized repository ID",-1)),D(n("input",{type:"text",class:A(["form-control",{"is-invalid":e.anonymize?.repoId?.invalid}]),name:"repoId",id:"repoId",disabled:e.isUpdate},null,10,kT),[[d,{state:e.viewState,set:u=>{e.repoId=u},value:e.repoId,form:"anonymize",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"}}]]),n("small",CT,[t[100]||(t[100]=g("anonymous.4open.science/",-1)),t[101]||(t[101]=n("wbr",null,null,-1)),t[102]||(t[102]=g("r/",-1)),t[103]||(t[103]=n("wbr",null,null,-1)),n("span",ET,c(e.repoId),1)]),D(n("div",ST,"ID can only contain letters and numbers.",512),[[Z,e.anonymize?.repoId?.errors?.format]]),D(n("div",{class:"invalid-feedback"},c(e.repoId)+" is already used.",513),[[Z,e.anonymize?.repoId?.errors?.used]])],512),[[Z,e.detectedType==="repo"]]),D(n("div",NT,[t[109]||(t[109]=n("label",{class:"paper-field-label",for:"pullRequestId"},"Anonymized pull request ID",-1)),D(n("input",{type:"text",class:A(["form-control",{"is-invalid":e.anonymize?.pullRequestId?.invalid}]),name:"pullRequestId",id:"pullRequestId",disabled:e.isUpdate},null,10,RT),[[d,{state:e.viewState,set:u=>{e.pullRequestId=u},value:e.pullRequestId,form:"anonymize",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"}}]]),n("small",AT,[t[105]||(t[105]=g("anonymous.4open.science/",-1)),t[106]||(t[106]=n("wbr",null,null,-1)),t[107]||(t[107]=g("pr/",-1)),t[108]||(t[108]=n("wbr",null,null,-1)),n("span",PT,c(e.pullRequestId),1)]),D(n("div",DT,"ID can only contain letters and numbers.",512),[[Z,e.anonymize?.pullRequestId?.errors?.format]]),D(n("div",{class:"invalid-feedback"},c(e.pullRequestId)+" is already used.",513),[[Z,e.anonymize?.pullRequestId?.errors?.used]])],512),[[Z,e.detectedType==="pr"]]),D(n("div",TT,[t[114]||(t[114]=n("label",{class:"paper-field-label",for:"gistId"},"Anonymized gist ID",-1)),D(n("input",{type:"text",class:A(["form-control",{"is-invalid":e.anonymize?.gistId?.invalid}]),name:"gistId",id:"gistId",disabled:e.isUpdate},null,10,OT),[[d,{state:e.viewState,set:u=>{e.gistId=u},value:e.gistId,form:"anonymize",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"}}]]),n("small",IT,[t[110]||(t[110]=g("anonymous.4open.science/",-1)),t[111]||(t[111]=n("wbr",null,null,-1)),t[112]||(t[112]=g("gist/",-1)),t[113]||(t[113]=n("wbr",null,null,-1)),n("span",MT,c(e.gistId),1)]),D(n("div",VT,"ID can only contain letters and numbers.",512),[[Z,e.anonymize?.gistId?.errors?.format]]),D(n("div",{class:"invalid-feedback"},c(e.gistId)+" is already used.",513),[[Z,e.anonymize?.gistId?.errors?.used]])],512),[[Z,e.detectedType==="gist"]]),n("div",qT,[t[125]||(t[125]=n("label",{class:"paper-field-label",for:"terms"},"Terms to redact",-1)),D(n("textarea",{class:A(["form-control terms-input",{"is-invalid":e.anonymize?.terms?.invalid}]),id:"terms",name:"terms",rows:Math.min(14,Math.max(4,String(e.terms||"").split(` `).length+1)),placeholder:`Jane Smith MIT CSAIL -jane.smith@example.org`},null,10,wT),[[d,{state:e.viewState,set:u=>{e.terms=u},value:e.terms,form:"anonymize",options:{debounce:250}}]]),t[126]||(t[126]=n("small",{class:"form-text text-muted"},"One term per line.",-1)),n("details",kT,[t[121]||(t[121]=n("summary",null,"Regex & replacement syntax",-1)),t[122]||(t[122]=g()),n("small",CT,[t[115]||(t[115]=g("Regex is supported. Replaced by ",-1)),n("code",null,c(e.site_options?.ANONYMIZATION_MASK)+"-[N]",1),t[116]||(t[116]=g(", or use ",-1)),t[117]||(t[117]=n("code",null,"term=>replacement",-1)),t[118]||(t[118]=g(" to pick your own (e.g. ",-1)),t[119]||(t[119]=n("code",null,"Anonymous=>ABC",-1)),t[120]||(t[120]=g(").",-1))])]),(a(!0),l(q,null,x((e.termHints||[]).slice(0,3),u=>(a(),l("div",{class:"term-hint",key:u.line},[n("span",null,[t[123]||(t[123]=g("In ",-1)),n("code",null,c(u.term),1),t[124]||(t[124]=g(", ",-1)),n("code",null,c(u.symbols.join(" ")),1),g(" "+c(u.symbols.length>1?"are regex symbols":"is a regex symbol")+", so it may not match the text as written.",1)]),n("button",{type:"button",class:"btn btn-outline-ink btn-sm",onClick:y=>e.matchTermAsWritten(u.line)},"Match as written",8,ET)]))),128)),(e.termHints||[]).length>3?(a(),l("div",ST,c(e.termHints.length-3)+" more "+c(e.termHints.length-3===1?"term uses":"terms use")+" regex symbols.",1)):f("v-if",!0),D(n("div",NT,"Terms are in an invalid format.",512),[[Q,e.anonymize?.terms?.errors?.format]])]),D(n("div",RT,[n("div",PT,[t[127]||(t[127]=n("span",{class:"paper-field-label",id:"preserve-files-label"},"Unredacted files",-1)),n("span",AT,c(e.preserveSummary()),1)]),n("button",{type:"button",class:"btn btn-outline-ink btn-sm","aria-describedby":"preserve-files-label",disabled:!e.source?.commit,onClick:t[22]||(t[22]=u=>e.openPreserveFiles())},c((e.options?.preserveFiles||[]).length?"Edit":"Choose files"),9,DT)],512),[[Q,e.detectedType==="repo"]]),e.preserve?.open?(a(),l("dialog",{key:0,id:"preserve-files-dialog",class:"preserve-dialog","aria-labelledby":"preserve-files-title",onCancel:t[27]||(t[27]=ae(u=>e.closePreserveFiles(),["prevent"]))},[n("form",{onSubmit:t[26]||(t[26]=ae(u=>e.savePreserveFiles(),["prevent"]))},[t[131]||(t[131]=n("h2",{id:"preserve-files-title"},"Leave files unredacted",-1)),t[132]||(t[132]=n("p",{class:"preserve-intro"},"Checked files are shown exactly as written, for example a bibliography where redacted self-citations would reveal you. File names are still redacted.",-1)),D(n("input",{type:"search",id:"preserve-files-search",class:"form-control",placeholder:"Search files","aria-label":"Search files",autocomplete:"off","onUpdate:modelValue":t[23]||(t[23]=u=>e.preserve.search=u)},null,512),[[pt,e.preserve.search]]),n("div",TT,[e.preserve.loading?(a(),l("p",OT,"Loading files from GitHub\u2026")):e.preserve.error?(a(),l("p",IT,c(e.preserve.error),1)):(a(),l(q,{key:2},[(a(!0),l(q,null,x(e.preserveRows(),(u,y)=>(a(),l("div",{class:"preserve-item",key:u.kind+":"+u.path,style:Ie({paddingLeft:u.depth*18+6+"px"})},[u.kind==="dir"?(a(),l("button",{key:0,type:"button",class:"preserve-caret","aria-expanded":u.open?"true":"false","aria-label":(u.open?"Collapse ":"Expand ")+u.label,onClick:m=>e.togglePreserveDir(u.path)},c(u.open?"\u25BE":"\u25B8"),9,MT)):(a(),l("span",VT)),n("input",{type:"checkbox",id:"pf-"+y,"aria-label":u.kind==="dir"?"Leave folder "+u.path+" unredacted":null,checked:u.state==="all",".indeterminate":u.state==="some",disabled:u.locked,onChange:m=>u.kind==="dir"?e.togglePreserveFolder(u.path):e.togglePreserveFile(u.path)},null,40,qT),n("label",{for:u.kind==="file"?"pf-"+y:null,class:"preserve-name",onClick:m=>u.kind==="dir"&&e.togglePreserveDir(u.path)},c(u.label),9,_T),u.note?(a(),l("span",$T,c(u.note),1)):f("v-if",!0)],4))),128)),!e.preserve.loading&&!e.preserveRows().length?(a(),l("p",LT,c(e.preserve.search?"No file matches your search.":"No text files in this commit."),1)):f("v-if",!0)],64))]),e.preserve.truncated?(a(),l("p",FT,"This repository has too many files to list them all. Use a pattern for files you cannot find.")):f("v-if",!0),n("details",{class:"preserve-patterns",open:e.preserve.patternsOpen},[t[128]||(t[128]=n("summary",null,"Patterns",-1)),D(n("textarea",{class:"form-control",rows:"3","aria-label":"Patterns",placeholder:`*.bib -paper/appendix/**`,"onUpdate:modelValue":t[24]||(t[24]=u=>e.preserve.patterns=u)},null,512),[[pt,e.preserve.patterns]]),t[129]||(t[129]=n("small",{class:"form-text text-muted"},[g("One per line, as in .gitignore: "),n("code",null,"*.bib"),g(" matches in any folder; "),n("code",null,"/refs.bib"),g(" and "),n("code",null,"paper/refs.bib"),g(" match from the repository root; a folder name such as "),n("code",null,"drafts/"),g(" covers everything inside it; "),n("code",null,"!private.bib"),g(" excludes again.")],-1))],8,UT),n("div",BT,[n("span",zT,c(e.preserve.loading||e.preserve.error?"":e.preserveCount()+(e.preserveCount()===1?" file":" files")+" will be shown as written"),1),n("span",HT,[n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[25]||(t[25]=u=>e.closePreserveFiles())},"Cancel"),t[130]||(t[130]=n("button",{type:"submit",class:"btn btn-ink"},"Save",-1))])])],32)],32)):f("v-if",!0)],512),[[Q,e.detectedType]]),D(n("section",jT,[t[153]||(t[153]=n("h2",{class:"paper-section-eyebrow"},"Display",-1)),D(n("div",null,[n("div",GT,[D(n("input",WT,null,512),[[d,{state:e.viewState,set:u=>{e.options.link=u},value:e.options?.link,form:"anonymize",options:{}}]]),t[134]||(t[134]=n("label",{class:"form-check-label",for:"link"},"Keep links",-1))]),n("div",KT,[D(n("input",YT,null,512),[[d,{state:e.viewState,set:u=>{e.options.image=u},value:e.options?.image,form:"anonymize",options:{}}]]),t[135]||(t[135]=n("label",{class:"form-check-label",for:"image"},"Display images",-1))]),n("div",XT,[D(n("input",JT,null,512),[[d,{state:e.viewState,set:u=>{e.options.pdf=u},value:e.options?.pdf,form:"anonymize",options:{}}]]),t[136]||(t[136]=n("label",{class:"form-check-label",for:"pdf"},"Display PDFs",-1))]),n("div",QT,[D(n("input",ZT,null,512),[[d,{state:e.viewState,set:u=>{e.options.notebook=u},value:e.options?.notebook,form:"anonymize",options:{}}]]),t[137]||(t[137]=n("label",{class:"form-check-label",for:"notebook"},"Display notebooks",-1))]),n("div",xT,[D(n("input",{class:"form-check-input",type:"checkbox",id:"page",name:"page",disabled:!e.details?.hasPage||e.details?.pageSource&&e.details?.pageSource?.branch!==e.source?.branch},null,8,e3),[[d,{state:e.viewState,set:u=>{e.options.page=u},value:e.options?.page,form:"anonymize",options:{}}]]),t[138]||(t[138]=n("label",{class:"form-check-label",for:"page"},"GitHub Pages",-1)),e.details?.hasPage?f("v-if",!0):(a(),l("small",t3,c(e.fmt?.translate("WARNINGS.page_not_enabled_on_repo")),1)),e.details?.hasPage&&e.details?.pageSource?.branch&&e.source?.branch&&e.details.pageSource.branch!==e.source.branch?(a(),l("small",n3,c(e.fmt?.translate("WARNINGS.page_branch_mismatch",{pageBranch:e.details?.pageSource?.branch,selectedBranch:e.source?.branch})),1)):f("v-if",!0)])],512),[[Q,e.detectedType==="repo"]]),e.detectedType==="repo"&&(e.options.image||e.options.pdf)?(a(),l("p",s3,[...t[139]||(t[139]=[g("Images and PDFs are served unchanged. Review their contents and metadata before sharing. ",-1),n("a",{href:"/faq#formats"},"Supported formats",-1)])])):f("v-if",!0),D(n("div",null,[n("div",o3,[D(n("input",i3,null,512),[[d,{state:e.viewState,set:u=>{e.options.title=u},value:e.options?.title,form:"anonymize",options:{}}]]),t[140]||(t[140]=n("label",{class:"form-check-label",for:"title-gist"},"Gist description",-1))]),n("div",r3,[D(n("input",a3,null,512),[[d,{state:e.viewState,set:u=>{e.options.content=u},value:e.options?.content,form:"anonymize",options:{}}]]),t[141]||(t[141]=n("label",{class:"form-check-label",for:"content-gist"},"File contents",-1))]),n("div",l3,[D(n("input",d3,null,512),[[d,{state:e.viewState,set:u=>{e.options.comments=u},value:e.options?.comments,form:"anonymize",options:{}}]]),t[142]||(t[142]=n("label",{class:"form-check-label",for:"comments-gist"},"Comments",-1))]),n("div",u3,[D(n("input",c3,null,512),[[d,{state:e.viewState,set:u=>{e.options.username=u},value:e.options?.username,form:"anonymize",options:{}}]]),t[143]||(t[143]=n("label",{class:"form-check-label",for:"username-gist"},"Usernames",-1))]),n("div",p3,[D(n("input",f3,null,512),[[d,{state:e.viewState,set:u=>{e.options.date=u},value:e.options?.date,form:"anonymize",options:{}}]]),t[144]||(t[144]=n("label",{class:"form-check-label",for:"date-gist"},"Dates",-1))]),n("div",h3,[D(n("input",m3,null,512),[[d,{state:e.viewState,set:u=>{e.options.origin=u},value:e.options?.origin,form:"anonymize",options:{}}]]),t[145]||(t[145]=n("label",{class:"form-check-label",for:"origin-gist"},"Source gist ID",-1))])],512),[[Q,e.detectedType==="gist"]]),D(n("div",null,[n("div",g3,[D(n("input",v3,null,512),[[d,{state:e.viewState,set:u=>{e.options.title=u},value:e.options?.title,form:"anonymize",options:{}}]]),t[146]||(t[146]=n("label",{class:"form-check-label",for:"title"},"PR title",-1))]),n("div",y3,[D(n("input",b3,null,512),[[d,{state:e.viewState,set:u=>{e.options.body=u},value:e.options?.body,form:"anonymize",options:{}}]]),t[147]||(t[147]=n("label",{class:"form-check-label",for:"body"},"PR body",-1))]),n("div",w3,[D(n("input",k3,null,512),[[d,{state:e.viewState,set:u=>{e.options.diff=u},value:e.options?.diff,form:"anonymize",options:{}}]]),t[148]||(t[148]=n("label",{class:"form-check-label",for:"diff"},"Diff",-1))]),n("div",C3,[D(n("input",E3,null,512),[[d,{state:e.viewState,set:u=>{e.options.comments=u},value:e.options?.comments,form:"anonymize",options:{}}]]),t[149]||(t[149]=n("label",{class:"form-check-label",for:"comments"},"Comments",-1))]),n("div",S3,[D(n("input",N3,null,512),[[d,{state:e.viewState,set:u=>{e.options.username=u},value:e.options?.username,form:"anonymize",options:{}}]]),t[150]||(t[150]=n("label",{class:"form-check-label",for:"username"},"Usernames",-1))]),n("div",R3,[D(n("input",P3,null,512),[[d,{state:e.viewState,set:u=>{e.options.date=u},value:e.options?.date,form:"anonymize",options:{}}]]),t[151]||(t[151]=n("label",{class:"form-check-label",for:"date"},"Dates",-1))]),n("div",A3,[D(n("input",D3,null,512),[[d,{state:e.viewState,set:u=>{e.options.origin=u},value:e.options?.origin,form:"anonymize",options:{}}]]),t[152]||(t[152]=n("label",{class:"form-check-label",for:"origin"},"Project name",-1))])],512),[[Q,e.detectedType==="pr"]])],512),[[Q,e.detectedType]]),D(n("section",T3,[t[170]||(t[170]=n("h2",{class:"paper-section-eyebrow",id:"hosting-heading"},"Hosting & expiration",-1)),n("div",O3,[t[154]||(t[154]=n("label",{class:"paper-field-label",for:"conference"},[g("Conference code "),n("span",{class:"paper-optional"},"(optional)")],-1)),D(n("input",{class:P(["form-control",{"is-invalid":e.anonymize?.conference?.invalid}]),id:"conference",name:"conference"},null,2),[[d,{state:e.viewState,set:u=>{e.conference=u},value:e.conference,form:"anonymize",options:{debounce:{default:800,blur:0},updateOn:"default blur"}}]]),D(n("p",{class:P(["conference-hosting",{"is-covered":e.conferenceHosting()}]),role:"status"},[n("a",{target:"_blank",href:e.safeUrl(e.conference_data?.url)},c(e.conference_data?.name),9,I3),e.conferenceHosting()?(a(),l(q,{key:0},[g(" hosts this repository until "+c(e.fmt?.date(e.conference_data?.endDate))+", with automatic updates. You don't pay anything.",1)],64)):e.billing?.enabled&&e.detectedType==="repo"?(a(),l(q,{key:1},[g(" runs until "+c(e.fmt?.date(e.conference_data?.endDate))+". It doesn't pay for hosting, so this repository uses your own allowance.",1)],64)):(a(),l(q,{key:2},[g(" runs until "+c(e.fmt?.date(e.conference_data?.endDate))+".",1)],64))],2),[[Q,e.conference_data]]),D(n("div",M3,"The conference is not activated.",512),[[Q,e.anonymize?.conference?.errors?.activated]]),D(n("small",V3,"Submitting to a conference? Its code applies the venue's settings, and a paid conference hosts the repository for you.",512),[[Q,!e.conference_data]])]),e.detectedType==="repo"&&e.billing?.enabled&&!e.conferenceHosting()?(a(),l("p",q3,[e.isUpdate&&e.role!=="owner"?(a(),l("span",_3,"Uses the owner's hosting")):e.hasAuthorHosting()?(a(),l("span",$3,"Your author subscription is active.")):e.hostingQuota?.repository?(a(),l("span",L3,c(e.hostingQuota.repository.used)+" of "+c(e.hostingQuota.repository.total)+" active repositories \xB7 Free",1)):f("v-if",!0)])):f("v-if",!0),e.detectedType==="repo"&&e.options?.update&&!e.liveUpdatesIncluded()?(a(),l("p",F3,[t[155]||(t[155]=g("Automatic updates need a paid option. On free hosting, the link keeps the version you create until you refresh it from My work. Once it exists, add Live updates",-1)),e.liveUpdatesPrice()?(a(),l(q,{key:0},[g(" ("+c(e.liveUpdatesPrice())+" once)",1)],64)):f("v-if",!0),t[156]||(t[156]=g(" or a Paper pack in ",-1)),t[157]||(t[157]=n("a",{href:"/profile?billing=1"},"Settings \u203A Hosting & billing",-1)),t[158]||(t[158]=g(", or take an author subscription.",-1))])):f("v-if",!0),e.detectedType==="repo"&&e.billing?.enabled?(a(),l("div",U3,[e.hostingNeedsPayment()&&!e.billingPending?(a(),l(q,{key:0},[e.options.expirationMode!=="never"||e.hostingQuotaBlocked?(a(),l("p",B3,c(e.options.update&&!e.hostingQuotaBlocked&&e.hostingQuota?.repository?.used(a(),l("label",{class:P(["hosting-option",{"is-selected":e.hostingChoice()===u.id||u.interval&&e.authorPlans().some(y=>y.id===e.hostingChoice())}]),key:u.id},[n("input",{type:"radio",name:"hosting-plan",value:u.id,checked:e.hostingChoice()===u.id||u.interval&&e.authorPlans().some(y=>y.id===e.hostingChoice()),onChange:y=>e.hostingPlan=u.interval?e.hostingSubscriptionPlan().id:u.id},null,40,j3),n("span",G3,[n("strong",null,c(e.hostingOptionName(u)),1),n("small",null,c(e.hostingOptionBlurb(u)),1),u.interval&&e.authorPlans().length>1&&e.authorPlans().some(y=>y.id===e.hostingChoice())?(a(),l("span",W3,[(a(!0),l(q,null,x(e.authorPlans(),y=>(a(),l("button",{type:"button",role:"radio",key:y.id,"aria-checked":e.hostingSubscriptionPlan().id===y.id?"true":"false",class:P({"is-on":e.hostingSubscriptionPlan().id===y.id}),onClick:ae(m=>{e.hostingCycle=y.id,e.hostingPlan=y.id},["prevent"])},[g(c(y.interval==="year"?"Yearly":"Monthly"),1),y.interval==="year"&&e.hostingAnnualSavings()?(a(),l("span",Y3,"\u2212"+c(e.hostingAnnualSavings())+"%",1)):f("v-if",!0)],10,K3))),128))])):f("v-if",!0)]),n("span",X3,[n("strong",null,c(e.billingAmount(u.interval?e.hostingSubscriptionPlan():u)),1),n("small",null,c(u.interval?"per "+e.hostingSubscriptionPlan().interval:"once"),1)])],2))),128))])):(a(),l("p",J3,"New purchases are temporarily unavailable. Your draft is kept.")),e.authorPlans().some(u=>u.id===e.hostingChoice())?(a(),l("p",Q3,"Renews "+c(e.hostingChoice()==="author_annual"?"yearly":"monthly")+" until you cancel. Tax shown at checkout.",1)):(a(),l("p",Z3,"One-time payment, nothing renews. Tax shown at checkout.")),e.options.expirationMode!=="never"?(a(),l("details",x3,[t[159]||(t[159]=n("summary",null,"Keep using free hosting",-1)),t[160]||(t[160]=n("p",null,"Remove a repository you no longer need, or enter the code of a paid conference above. Removing a repository affects its review link.",-1)),t[161]||(t[161]=n("a",{href:"/dashboard"},"Review my repositories",-1)),n("button",{type:"button",class:"task-text-button",onClick:t[28]||(t[28]=u=>e.anonymizeRepo(u)),disabled:e.sourceLoading||e.billingBusy},"Recheck capacity and submit",8,eO)])):f("v-if",!0)],64)):f("v-if",!0)])):f("v-if",!0),e.hostingNeedsPayment()&&!e.billingPending?(a(),l("h4",tO,"Expiration")):f("v-if",!0),n("fieldset",nO,[t[167]||(t[167]=n("legend",{class:"sr-only"},"Expiration",-1)),n("label",sO,[n("input",{type:"radio",name:"expiration-choice",checked:e.options.expirationMode!=="never",onChange:t[29]||(t[29]=u=>e.useDatedHosting()),disabled:e.billingPending},null,40,oO),t[162]||(t[162]=n("span",null,"Expire on a date",-1))]),e.options.expirationMode!=="never"?(a(),l("div",iO,[e.options?.expirationMode!=="never"?(a(),l("div",rO,[t[163]||(t[163]=n("label",{class:"paper-field-label",for:"expirationDate"},"Expires",-1)),D(n("input",{class:P(["form-control",{"is-invalid":e.anonymize?.expirationDate?.invalid}]),type:"date",name:"expirationDate",id:"expirationDate",required:"",min:e.minExpirationDate,max:e.maxExpirationDate},null,10,aO),[[d,{state:e.viewState,set:u=>{e.options.expirationDate=u},value:e.options?.expirationDate,form:"anonymize",options:{}}]]),e.fmt?.dateEcho(e.options?.expirationDate)?(a(),l("p",lO,"Expires "+c(e.fmt?.dateEcho(e.options?.expirationDate)),1)):f("v-if",!0),D(n("div",dO,"Pick a date in the future.",512),[[Q,e.anonymize?.expirationDate?.errors?.min]]),D(n("div",{class:"invalid-feedback"},"Pick a date on or before "+c(e.fmt?.date(e.maxExpirationDate))+".",513),[[Q,e.anonymize?.expirationDate?.errors?.max]]),D(n("div",uO,"Enter a valid expiration date.",512),[[Q,e.anonymize?.expirationDate?.errors?.required||e.anonymize?.expirationDate?.errors?.date]])])):f("v-if",!0),n("div",cO,[t[165]||(t[165]=n("label",{for:"expiration"},"Then",-1)),D(n("select",{id:"expiration",class:"form-control","onUpdate:modelValue":t[30]||(t[30]=u=>e.options.expirationMode=u)},[...t[164]||(t[164]=[n("option",{value:"remove"},"Remove content",-1),n("option",{value:"redirect"},"Redirect to GitHub",-1)])],512),[[mn,e.options.expirationMode]])])])):f("v-if",!0),e.detectedType==="repo"?(a(),l("label",pO,[n("input",{type:"radio",name:"expiration-choice",checked:e.options.expirationMode==="never",onChange:t[31]||(t[31]=u=>e.options.expirationMode="never"),disabled:e.billingPending},null,40,fO),n("span",null,[t[166]||(t[166]=g("Never expire",-1)),(e.options.expirationMode!=="never"||e.hasAuthorHosting()||e.repositoryGrants("repo_never").length)&&!(e.hostingNeedsPayment()&&e.hostingOptionPlans().length)?(a(),l("small",hO,c(e.neverExpireTag()),1)):f("v-if",!0)])])):f("v-if",!0)]),e.options.expirationMode==="redirect"?(a(),l("p",mO,"Visitors will be redirected to the original GitHub source on this date, revealing its identity.")):f("v-if",!0),e.detectedType==="repo"&&e.billing?.enabled?(a(),l("div",gO,[e.taskValidationError?(a(),l("p",vO,c(e.taskValidationError),1)):f("v-if",!0),e.billingError?(a(),l("p",yO,[g(c(e.billingError)+" ",1),n("button",{type:"button",class:"task-text-button",onClick:t[32]||(t[32]=u=>e.loadBilling()),disabled:e.billingBusy},"Reload billing",8,bO)])):f("v-if",!0),e.billingPending?(a(),l("div",wO,[...t[168]||(t[168]=[n("p",null,[n("strong",null,"Confirming your payment\u2026")],-1),n("p",{class:"form-text text-muted"},"Your draft is saved. Please do not pay again.",-1)])])):e.billingNotice?(a(),l("p",kO,c(e.billingNotice),1)):e.options.expirationMode==="never"&&!e.billingPending&&!e.hasAuthorHosting()&&e.repositoryGrants("repo_never").length?(a(),l("p",CO,"No scheduled expiration. Paid once for this repository.")):e.options.expirationMode==="never"&&!e.billingPending?(a(),l("p",EO,"No scheduled expiration while subscribed. A 90-day grace period applies if paid access ends.")):f("v-if",!0),e.isUpdate&&e.role==="owner"&&!e.hasAuthorHosting()&&!e.hostingNeedsPayment()&&e.repositoryAddonPlans().length?(a(),l("details",SO,[t[169]||(t[169]=n("summary",null,"Pay once for just this repository",-1)),(a(!0),l(q,null,x(e.repositoryAddonPlans(),u=>(a(),l("div",{key:u.id},[n("p",null,[n("strong",null,c(u.name),1),g(" \xB7 "+c(e.billingPrice(u))+". "+c(u.description),1)]),n("button",{type:"button",class:"btn btn-outline-ink",disabled:e.billingBusy||e.hostingSaving||e.sourceLoading||e.billing.checkoutEnabled===!1||e.billingPending,onClick:y=>e.checkoutRepository(u.id)},"Buy "+c(u.name.toLowerCase()),9,NO)]))),128))])):f("v-if",!0)])):f("v-if",!0)],512),[[Q,e.detectedType]]),D(n("section",RO,[t[174]||(t[174]=n("h2",{class:"paper-section-eyebrow"},"Co-authors",-1)),t[175]||(t[175]=n("p",{class:"form-text text-muted",style:{"margin-bottom":"8px"}}," Co-authors can view and edit these settings. They cannot delete the anonymization or manage co-authors. ",-1)),D(n("div",PO,[t[171]||(t[171]=n("label",{class:"paper-field-label",for:"coauthorSearch"},"Add a GitHub user",-1)),n("div",AO,[D(n("input",DO,null,512),[[d,{state:e.viewState,set:u=>{e.coauthorSearch=u},value:e.coauthorSearch,form:"anonymize",options:{debounce:300},change:()=>{e.searchCoauthors()}}]]),D(n("div",TO,[(a(!0),l(q,null,x(e.coauthorResults,(u,y)=>(a(),l("a",{href:"#",class:"dropdown-item d-flex align-items-center",onClick:ae(m=>e.addCoauthor(u,m),["prevent"])},[n("img",{alt:"",style:{width:"22px",height:"22px","border-radius":"50%","margin-right":"8px"},src:e.safeUrl(u?.photo)},null,8,IO),n("span",{textContent:c(u?.username)},null,8,MO)],8,OO))),256))],512),[[Q,e.coauthorResults?.length>0]])]),D(n("small",{class:"form-text text-muted",textContent:c(e.coauthorError)},null,8,VO),[[Q,e.coauthorError]])],512),[[Q,e.role==="owner"||e.role==="admin"]]),n("div",qO,[(a(!0),l(q,null,x(e.coauthors,(u,y)=>(a(),l("div",_O,[u?.photo?(a(),l("img",{key:0,alt:"",style:{width:"24px",height:"24px","border-radius":"50%"},src:e.safeUrl(u?.photo)},null,8,$O)):f("v-if",!0),n("a",{target:"_blank",textContent:c(u?.username),href:e.safeUrl("https://github.com/"+u?.username)},null,8,LO),t[173]||(t[173]=n("span",{class:"type-badge type-coauthor"},"Co-author",-1)),D(n("button",{type:"button",class:"btn btn-sm btn-icon",style:{"margin-left":"auto"},title:"Remove co-author",onClick:m=>e.removeCoauthor(u),"aria-label":"Remove co-author"},[...t[172]||(t[172]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])],8,FO),[[Q,e.role==="owner"||e.role==="admin"]])]))),256)),D(n("div",UO," No co-authors yet. ",512),[[Q,!e.coauthors||e.coauthors?.length===0]])])],512),[[Q,e.isUpdate&&e.detectedType==="repo"]]),e.error?(a(),l("div",{key:0,class:"alert alert-danger",role:"alert",textContent:c(e.error)},null,8,BO)):f("v-if",!0)]),n("button",{type:"button",class:"btn btn-outline-ink mobile-preview-jump",onClick:t[33]||(t[33]=u=>e.selectMobilePane("preview"))},[...t[176]||(t[176]=[g("Review preview ",-1),n("span",{"aria-hidden":"true"},"\u2192",-1)])]),D(n("div",zO,[e.detectedType==="repo"?(a(),l(q,{key:0},[e.billingPending?(a(),l("button",{key:0,type:"button",class:"btn btn-ink",onClick:t[34]||(t[34]=u=>e.refreshBilling()),disabled:e.billingBusy},"Check payment status",8,HO)):(a(),l("button",{key:1,type:"submit",class:"btn btn-ink",disabled:e.sourceLoading||e.billingBusy||e.hostingSaving||e.billingLoading||e.hostingNeedsPayment()&&(!e.authorPlans().length&&!e.hostingOneTime()||e.billing?.checkoutEnabled===!1),onClick:t[35]||(t[35]=ae(u=>e.submitForm(u,()=>{e.submitRepository(u)}),["prevent"]))},c(e.hostingSaving?"Saving draft\u2026":e.hostingNeedsPayment()?"Continue to checkout":e.isUpdate?"Save changes":"Create anonymous link"),9,jO))],64)):f("v-if",!0),e.detectedType==="pr"&&!e.isUpdate?(a(),l("button",{key:1,type:"submit",disabled:e.sourceLoading||!e.details,class:"btn btn-ink",onClick:t[36]||(t[36]=ae(u=>e.submitForm(u,()=>{e.anonymizePullRequest(u)}),["prevent"]))}," Create anonymous link ",8,GO)):f("v-if",!0),e.detectedType==="pr"&&e.isUpdate?(a(),l("button",{key:2,type:"submit",disabled:e.sourceLoading,class:"btn btn-ink",onClick:t[37]||(t[37]=ae(u=>e.submitForm(u,()=>{e.anonymizePullRequest(u)}),["prevent"]))}," Save changes ",8,WO)):f("v-if",!0),e.detectedType==="gist"&&!e.isUpdate?(a(),l("button",{key:3,type:"submit",disabled:e.sourceLoading||!e.details,class:"btn btn-ink",onClick:t[38]||(t[38]=ae(u=>e.submitForm(u,()=>{e.anonymizeGist(u)}),["prevent"]))}," Create anonymous link ",8,KO)):f("v-if",!0),e.detectedType==="gist"&&e.isUpdate?(a(),l("button",{key:4,type:"submit",disabled:e.sourceLoading,class:"btn btn-ink",onClick:t[39]||(t[39]=ae(u=>e.submitForm(u,()=>{e.anonymizeGist(u)}),["prevent"]))}," Save changes ",8,YO)):f("v-if",!0),e.sourceLoading?(a(),l("p",XO,c(e.detectedType==="pr"?"Waiting for the pull request to load from GitHub\u2026":e.detectedType==="gist"?"Waiting for the gist to load from GitHub\u2026":"Waiting for the repository to load from GitHub\u2026"),1)):!e.details&&!e.isUpdate?(a(),l("p",JO,"Load an accessible source to continue. See the preview for details.")):f("v-if",!0),e.hostingNeedsPayment()&&!e.billingPending?(a(),l("p",QO,"You pay in Stripe, then come back here to finish.")):f("v-if",!0),e.draftRestored?(a(),l("div",ZO,[t[177]||(t[177]=g("Your unsaved draft was restored. ",-1)),n("button",{type:"button",class:"draft-discard",onClick:t[40]||(t[40]=u=>e.discardDraft())},"Discard draft")])):e.unsavedChanges?(a(),l("div",xO,[g(c(e.draftSaved?"Draft saved \xB7":"Unsaved changes \xB7")+" ",1),n("button",{type:"button",class:"draft-discard",onClick:t[41]||(t[41]=u=>e.discardDraft())},c(e.isUpdate?"Restore saved":"Discard"),1)])):f("v-if",!0)],512),[[Q,e.detectedType]])])),[[p,e.viewState]])],8,iD),f(' Preview column (right): "What reviewers will see", a miniature reviewer window '),e.detectedType?(a(),l("div",{key:0,id:"workspace-preview",role:e.mobileWorkspace?"tabpanel":null,"aria-labelledby":e.mobileWorkspace?"workspace-preview-tab":null,class:"anonymize-preview-col reviewer-preview"},[n("div",tI,[t[180]||(t[180]=n("span",{class:"rp-title"},"What reviewers will see",-1)),e.detectedType==="repo"?(a(),l("button",{key:0,type:"button",class:"rp-open",onClick:t[42]||(t[42]=u=>e.previewViewer.sidebarCollapsed=!e.previewViewer.sidebarCollapsed),"aria-expanded":!e.previewViewer.sidebarCollapsed,"aria-controls":"preview-file-tree"},"Files",8,nI)):f("v-if",!0),e.previewStatus==="ready"&&e.previewRedactions()>0?(a(),l("span",{key:1,class:"rp-count",title:e.previewRedactions()+" redacted terms in this preview"},[n("span",oI,[n("i",null,c(e.previewRedactions()),1)]),t[178]||(t[178]=g(" redacted",-1))],8,sI)):e.previewStatus==="ready"&&!String(e.terms||"").trim()?(a(),l("span",iI,"No terms yet")):e.previewStatus==="ready"&&e.previewPreserved()?(a(),l("button",{key:3,type:"button",class:"rp-count rp-count-none",onClick:t[43]||(t[43]=u=>e.openPreserveFiles()),title:"Change it in Leave files unredacted"},c(e.previewName(e.previewFile?e.previewFile.slice(e.previewFile.lastIndexOf("/")+1):e.readmeName()))+" left unredacted",1)):f("v-if",!0),t[181]||(t[181]=n("span",{class:"rp-spacer"},null,-1)),e.isUpdate&&e.previewUrl()?(a(),l("a",{key:4,class:"rp-open is-external",href:e.safeUrl(e.previewPath()),target:"_blank",rel:"noopener"},[...t[179]||(t[179]=[g("Open reviewer page ",-1),n("span",{"aria-hidden":"true"},"\u2197",-1)])],8,rI)):(a(),l("button",{key:5,type:"button",class:"rp-open is-toggle",onClick:t[44]||(t[44]=u=>e.previewExpanded=!e.previewExpanded),"aria-pressed":!!e.previewExpanded},[(a(),l("svg",lI,[e.previewExpanded?(a(),l("path",uI)):(a(),l("path",dI))])),g(c(e.previewExpanded?"Back to settings":"Expand preview"),1)],8,aI))]),n("div",cI,[n("div",pI,[t[182]||(t[182]=n("i",null,null,-1)),t[183]||(t[183]=n("i",null,null,-1)),t[184]||(t[184]=n("i",null,null,-1)),n("span",fI,c(e.previewUrl()||"anonymous.4open.science"),1)]),n("div",hI,[t[185]||(t[185]=n("span",{class:"vb-logo"},[g("Anonymous "),n("em",null,"GitHub")],-1)),e.previewId()?(a(),l("span",mI,c(e.previewId()),1)):f("v-if",!0),e.detectedType!=="repo"?(a(),l("span",gI,c(e.detectedType==="pr"?"Pull request":"Gist"),1)):f("v-if",!0)]),n("div",{class:P(["rp-body",{"reviewer-explorer":e.detectedType==="repo"}])},[e.detectedType==="repo"?(a(),l("aside",{key:0,id:"preview-file-tree",class:P(["leftCol",{collapsed:e.previewViewer.sidebarCollapsed}]),"aria-label":"Files reviewers will see"},[n("div",vI,[t[187]||(t[187]=n("span",{class:"leftCol-eyebrow"},"Files",-1)),n("button",{type:"button",class:"leftCol-close","aria-label":"Close files",onClick:t[45]||(t[45]=u=>e.previewViewer.sidebarCollapsed=!0)},[...t[186]||(t[186]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])])]),n("div",yI,[Oe(s,{class:"files",file:e.previewTreeFiles(),page:e.previewViewer,"selected-path":"/"+e.previewPathName(e.previewOpenPath()),onSelect:t[46]||(t[46]=u=>e.selectPreviewPath(u))},null,8,["file","page","selected-path"])])],2)):f("v-if",!0),e.detectedType==="repo"?D((a(),l("div",{key:1,class:"leftCol-backdrop",onClick:t[47]||(t[47]=u=>e.previewViewer.sidebarCollapsed=!0)},null,512)),[[Q,!e.previewViewer.sidebarCollapsed]]):f("v-if",!0),n("div",{class:P(e.detectedType==="repo"?"explorer-main":"rp-main")},[n("div",{class:P(e.detectedType==="repo"?"explorer-content":"rp-document")},[f(" Loading: skeleton inside the window "),e.previewStatus==="loading"||e.sourceLoading&&e.previewStatus!=="ready"&&e.previewStatus!=="error"?(a(),l("div",bI,[n("span",wI,c(e.previewDoc.loading?"Loading "+e.previewName(e.previewFile.slice(e.previewFile.lastIndexOf("/")+1))+" from GitHub\u2026":e.previewStatus==="loading"?"Updating the anonymized preview\u2026":e.detectedType==="pr"?"Loading the pull request from GitHub\u2026":e.detectedType==="gist"?"Loading the gist from GitHub\u2026":"Loading the repository from GitHub\u2026"),1),t[188]||(t[188]=Ee('',7))])):!e.details&&e.detectedType!=="repo"?(a(),l(q,{key:1},[f(" The source itself could not be loaded "),n("div",kI,[n("strong",null,"Couldn't load "+c(e.sourceSummary()||(e.detectedType==="pr"?"this pull request":"this gist")),1),n("p",null,c(e.error||"GitHub did not return it. Check that the link is right and that Anonymous GitHub can read it."),1),n("div",CI,[n("button",{type:"button",class:"btn btn-ink btn-sm",onClick:t[48]||(t[48]=u=>e.urlSelected(!0))},"Retry"),e.detectedType==="pr"&&e.githubConnection!=="oauth"?(a(),l("button",{key:0,type:"button",class:"btn btn-outline-ink btn-sm",onClick:t[49]||(t[49]=u=>e.grantGitHubAccess())},[...t[189]||(t[189]=[g("Manage GitHub access ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-external-link"})],-1)])])):(a(),l("a",EI,[...t[190]||(t[190]=[g("Manage GitHub access ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-external-link"})],-1)])]))])])],2112)):!e.details&&e.detectedType==="repo"&&!e.isUpdate&&e.error?(a(),l("div",SI,[t[192]||(t[192]=n("strong",null,"Couldn't load this repository",-1)),n("p",null,c(e.error),1),n("div",NI,[n("button",{type:"button",class:"btn btn-ink btn-sm",onClick:t[50]||(t[50]=u=>e.urlSelected(!0))},"Retry"),e.githubConnection!=="oauth"?(a(),l("button",{key:0,type:"button",class:"btn btn-outline-ink btn-sm",onClick:t[51]||(t[51]=u=>e.grantGitHubAccess())},[...t[191]||(t[191]=[g("Manage GitHub access ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-external-link"})],-1)])])):f("v-if",!0)])])):e.previewStatus==="error"&&e.previewDoc.loadError?(a(),l(q,{key:3},[f(" The open file could not be read from GitHub "),n("div",RI,[n("strong",null,"Couldn't load "+c(e.previewName(e.previewFile.slice(e.previewFile.lastIndexOf("/")+1))),1),n("p",null,c(e.previewDoc.loadError),1),n("div",PI,[n("button",{class:"btn btn-ink btn-sm",type:"button",onClick:t[52]||(t[52]=u=>e.retryPreview())},"Retry"),n("button",{class:"btn btn-outline-ink btn-sm",type:"button",onClick:t[53]||(t[53]=u=>e.openPreviewFile(""))},"Back to the README")])])],2112)):e.previewStatus==="error"?(a(),l(q,{key:4},[f(" The anonymized preview failed "),n("div",AI,[t[193]||(t[193]=n("strong",null,"Couldn't apply the redactions",-1)),t[194]||(t[194]=n("p",null,"Unable to generate the anonymized preview. The latest redactions have not been verified.",-1)),n("div",DI,[n("button",{class:"btn btn-ink btn-sm",type:"button",onClick:t[54]||(t[54]=u=>e.retryPreview())},"Retry preview")])])],2112)):e.detectedType==="repo"&&!e.previewFile&&!e.readme&&e.previewStatus==="idle"?(a(),l("div",TI,[...t[195]||(t[195]=[n("strong",null,"No README",-1),n("p",null,"Reviewers land on the file list. Open the files you will share and check them before sending the link.",-1)])])):e.detectedType==="repo"&&e.previewStatus==="ready"?(a(),Gt(i,{key:6,name:"partials/pageView.htm",state:e.previewViewer},null,8,["state"])):e.detectedType==="gist"&&e.previewStatus==="ready"?(a(),l("div",OI,[n("div",II,[n("h2",MI,[e.options?.title?(a(),l("span",VI,c(e.anonymizeGistContent(e.details?.gist?.description)||"Untitled gist"),1)):f("v-if",!0),n("span",{class:P(["badge",{"badge-success":e.details?.gist?.isPublic,"badge-secondary":!e.details?.gist?.isPublic}])},c(e.details?.gist?.isPublic?"public":"secret"),3)]),e.options?.date?(a(),l("small",{key:0,textContent:c(e.fmt?.date(e.details?.gist?.updatedDate))},null,8,qI)):f("v-if",!0)]),e.options?.origin?(a(),l("small",_I,"Gist ID: "+c(e.details?.source?.gistId),1)):f("v-if",!0),e.options?.username&&e.details?.gist?.ownerLogin?(a(),l("small",$I,"By @"+c(e.anonymizeGistContent(e.details?.gist?.ownerLogin)),1)):f("v-if",!0),e.options?.content&&e.previewGistFiles?.length?(a(),l("div",LI,[n("ul",FI,[(a(!0),l(q,null,x(e.previewGistFiles,(u,y)=>(a(),l("li",UI,[n("div",BI,[n("strong",{textContent:c(u?.filename)},null,8,zI),u?.language?(a(),l("span",HI,c(u?.language),1)):f("v-if",!0)]),Oe(o,{file:u,terms:e.terms,options:e.options},null,8,["file","terms","options"])]))),256))])])):f("v-if",!0),e.options?.comments&&e.details?.gist?.comments&&e.details?.gist?.comments?.length?(a(),l("div",jI,[t[198]||(t[198]=n("h3",{class:"paper-section-eyebrow mt-3"},"Comments",-1)),n("ul",GI,[(a(!0),l(q,null,x(e.details?.gist?.comments,(u,y)=>(a(),l("li",WI,[n("div",KI,[e.options?.username?(a(),l("span",YI,[t[196]||(t[196]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-user"})],-1)),t[197]||(t[197]=g(" @",-1)),n("span",{textContent:c(e.anonymizeGistContent(u?.author))},null,8,XI)])):f("v-if",!0),e.options?.date?(a(),l("span",{key:1,class:"pr-comment-date",textContent:c(e.fmt?.date(u?.updatedDate))},null,8,JI)):f("v-if",!0)]),e.options?.body?(a(),l("div",QI,[Oe(r,{content:e.anonymizeGistContent(u?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])])):f("v-if",!0)]))),256))])])):f("v-if",!0)])):e.detectedType==="pr"&&e.previewStatus==="ready"?(a(),l("div",ZI,[n("div",xI,[n("h2",e5,[e.options?.title?(a(),l("span",t5,c(e.anonymizePrContent(e.details?.pullRequest?.title)),1)):f("v-if",!0),n("span",{class:P(["badge",{"badge-success":e.details?.pullRequest?.merged,"badge-warning":e.details?.pullRequest?.state=="open","badge-danger":e.details?.pullRequest?.state=="closed"&&!e.details?.pullRequest?.merged}])},c(e.fmt?.title(e.details?.pullRequest?.merged?"merged":e.details?.pullRequest?.state)),3)]),e.options?.date?(a(),l("small",{key:0,textContent:c(e.fmt?.date(e.details?.pullRequest?.updatedDate))},null,8,n5)):f("v-if",!0)]),e.options?.origin?(a(),l("small",s5,"Pull Request on "+c(e.details?.pullRequest?.baseRepositoryFullName),1)):f("v-if",!0),e.options?.body?(a(),l("div",o5,[Oe(r,{content:e.anonymizePrContent(e.details?.pullRequest?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])])):f("v-if",!0),e.options?.diff||e.options?.comments?(a(),l("nav",i5,[e.options?.diff?(a(),l("button",{key:0,class:P(["paper-tab",{active:e.prTabState?.active=="diff"}]),type:"button",role:"tab",id:"preview-pr-diff-tab","aria-selected":e.prTabState?.active==="diff","aria-controls":"preview-pr-diff-panel",tabindex:e.prTabState?.active==="diff"?0:-1,onKeydown:t[55]||(t[55]=u=>e.previewTabKeydown(u)),onClick:t[56]||(t[56]=u=>e.prTabState.active="diff")},[...t[199]||(t[199]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-code"})],-1),g(" Diff ",-1)])],42,r5)):f("v-if",!0),e.options?.comments?(a(),l("button",{key:1,class:P(["paper-tab",{active:e.prTabState?.active=="comments"}]),type:"button",role:"tab",id:"preview-pr-comments-tab","aria-selected":e.prTabState?.active==="comments","aria-controls":"preview-pr-comments-panel",tabindex:e.prTabState?.active==="comments"?0:-1,onKeydown:t[57]||(t[57]=u=>e.previewTabKeydown(u)),onClick:t[58]||(t[58]=u=>e.prTabState.active="comments")},[t[200]||(t[200]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-comment"})],-1)),n("span",{textContent:c(e.fmt.plural(e.details?.pullRequest?.comments?.length,{0:"No comments",one:"1 comment",other:"{} comments"}))},null,8,l5)],42,a5)):f("v-if",!0)])):f("v-if",!0),!e.options?.diff&&!e.options?.comments?(a(),l("div",d5,"Diff and comments are hidden by your display settings.")):f("v-if",!0),n("div",u5,[e.options?.diff&&e.prTabState?.active=="diff"?(a(),l("div",c5,[n("div",{class:"pr-diff",innerHTML:e.sanitize(e.fmt?.diff(e.anonymizePrContent(e.details?.pullRequest?.diff)))},null,8,p5)])):f("v-if",!0),e.options?.comments&&e.prTabState?.active=="comments"?(a(),l("div",f5,[n("ul",h5,[(a(!0),l(q,null,x(e.details?.pullRequest?.comments,(u,y)=>(a(),l("li",m5,[n("div",g5,[e.options?.username?(a(),l("span",v5,[t[201]||(t[201]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-user"})],-1)),t[202]||(t[202]=g(" @",-1)),n("span",{textContent:c(e.anonymizePrContent(u?.author))},null,8,y5)])):f("v-if",!0),e.options?.date?(a(),l("span",{key:1,class:"pr-comment-date",textContent:c(e.fmt?.date(u?.updatedDate))},null,8,b5)):f("v-if",!0)]),e.options?.body?(a(),l("div",w5,[Oe(r,{content:e.anonymizePrContent(u?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])])):f("v-if",!0)]))),256))])])):f("v-if",!0)])])):f("v-if",!0),f(" More below: a fade with a way to keep reading (hidden by CSS once the window is scrolled to the end) "),e.previewStatus==="ready"&&!(e.detectedType==="repo"&&e.previewFile&&e.previewDoc.note)?(a(),l("div",k5,[e.isUpdate&&e.previewUrl()?(a(),l("a",{key:0,class:"rp-more-btn",href:e.safeUrl(e.previewPath()),target:"_blank",rel:"noopener"},[...t[203]||(t[203]=[g("Continue reading on the reviewer page ",-1),n("span",{"aria-hidden":"true"},"\u2197",-1)])],8,C5)):e.previewExpanded?(a(),l("span",E5,"Scroll for more")):(a(),l("button",{key:1,type:"button",class:"rp-more-btn",onClick:t[59]||(t[59]=u=>e.previewExpanded=!0)},"Continue reading in the expanded preview"))])):f("v-if",!0)],2)],2)],2)])],8,eI)):f("v-if",!0)])],512),[[Q,e.workspaceOpen||e.isUpdate]])],2)}var S5={class:"container-fluid h-100 anonymize-page"},N5={class:"row h-100 flex-column flex-md-row"},R5={class:"col-md sidePanel shadow overflow-auto anonymize-form-col"},P5={class:"form-group"},A5={class:"form-group"},D5={class:"form-check"},T5={class:"form-check-input",type:"checkbox",id:"update",name:"update"},O5={class:"form-group"},I5={class:"form-text text-muted"},M5=["href"],V5={class:"invalid-feedback"},q5={class:"form-text text-muted"},_5={class:"form-group"},$5={id:"idHelp",class:"form-text text-muted"},L5={class:"invalid-feedback"},F5={class:"form-group"},U5={class:"invalid-feedback"},B5={class:"form-group"},z5={class:"form-control",id:"expiration",name:"expiration"},H5={class:"form-group",id:"expiration-date-form"},j5={class:"form-control",type:"date",name:"expirationDate",id:"expirationDate"},G5={key:0,class:"date-echo","aria-live":"polite"},W5={class:"accordion mb-3",id:"options"},K5={class:"card"},Y5={id:"collapseOne",class:"collapse show","aria-labelledby":"headingOne","data-parent":"#options"},X5={class:"card-body"},J5={class:"form-group mb-0"},Q5={class:"form-check"},Z5={class:"form-check-input",type:"checkbox",id:"link",name:"link"},x5={class:"form-check"},e8={class:"form-check-input",type:"checkbox",id:"image",name:"image"},t8={class:"form-check"},n8={class:"form-check-input",type:"checkbox",id:"date",name:"date"},s8={class:"form-check"},o8={class:"form-check-input",type:"checkbox",id:"username",name:"username"},i8={class:"form-check"},r8={class:"form-check-input",type:"checkbox",id:"comments",name:"comments"},a8={class:"form-check"},l8={class:"form-check-input",type:"checkbox",id:"diff",name:"diff"},d8={class:"form-check"},u8={class:"form-check-input",type:"checkbox",id:"origin",name:"origin"},c8={class:"form-check"},p8={class:"form-check-input",type:"checkbox",id:"title",name:"title"},f8={class:"form-check"},h8={class:"form-check-input",type:"checkbox",id:"body",name:"body"},m8=["textContent"],g8={class:"anonymize-submit-bar"},v8={key:0,class:"col-md-8 p-2 overflow-auto anonymize-preview-col"},y8={class:"d-flex w-100 justify-content-between align-items-center flex-wrap"},b8={class:"pr-title mb-1"},w8={key:0},k8=["textContent"],C8={key:0},E8={key:1,class:"pr-body shadow-sm p-3 mb-4 rounded",style:{background:"var(--sidebar-bg-color)"}},S8={class:"nav nav-tabs",id:"myTab",role:"tablist"},N8={key:0,class:"nav-item",role:"presentation"},R8={key:1,class:"nav-item",role:"presentation"},P8=["textContent"],A8={class:"tab-content",id:"pills-tabContent"},D8={class:"tab-pane show active",id:"pills-diff",role:"tabpanel","aria-labelledby":"pills-diff-tab"},T8={key:0,class:"pr-diff shadow-sm p-3 mb-4 rounded",style:{background:"var(--sidebar-bg-color)"}},O8={style:{"overflow-x":"auto"}},I8=["innerHTML"],M8={key:0,class:"pr-comments list-group"},V8={class:"pr-comment list-group-item"},q8={class:"d-flex w-100 justify-content-between flex-wrap"},_8={key:0,class:"mb-1"},$8=["textContent"],L8={class:"mb-1"};function rp(e,t){let s=Xe("markdown"),i=Ae("field"),o=Ae("form");return a(),l("div",S5,[n("div",N5,[n("div",R5,[n("div",{class:P(["p-0 py-2 m-auto",{card:!e.pullRequestUrl,container:e.pullRequestUrl}])},[D((a(),l("form",{class:P(["form needs-validation",{"card-body":!e.pullRequestUrl}]),name:"anonymizeForm",novalidate:""},[t[30]||(t[30]=Ee('
Anonymize \xA0/\xA0 Pull request

Anonymize a pull request

Fill in the details \u2014 it only takes a minute.

Source
',4)),f(" pullRequestUrl "),n("div",P5,[t[2]||(t[2]=n("label",{for:"pullRequestUrl"},"URL of your pull request",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.anonymize?.pullRequestUrl?.invalid}]),name:"pullRequestUrl",id:"pullRequestUrl",placeholder:"https://github.com/owner/repo/pull/123"},null,2),[[i,{state:e.viewState,set:r=>{e.pullRequestUrl=r},value:e.pullRequestUrl,form:"anonymizeForm",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"},change:()=>{e.pullRequestSelected()}}]]),D(n("div",{class:"invalid-feedback"},c(e.pullRequestUrl)+" is not accessible. Some organizations are restricting the access to the repositories. ",513),[[Q,e.anonymize?.pullRequestUrl?.errors?.access]]),D(n("div",{class:"invalid-feedback"},c(e.pullRequestUrl)+" does not exist or is not accessible ",513),[[Q,e.anonymize?.pullRequestUrl?.errors?.missing]]),D(n("div",{class:"invalid-feedback"},c(e.pullRequestUrl)+" is already anonymized ",513),[[Q,e.anonymize?.pullRequestUrl?.errors?.used]])]),D(n("div",null,[n("div",A5,[n("div",D5,[D(n("input",T5,null,512),[[i,{state:e.viewState,set:r=>{e.options.update=r},value:e.options?.update,form:"anonymizeForm",options:{}}]]),t[3]||(t[3]=n("label",{class:"form-check-label",for:"update"},"Auto update",-1)),t[4]||(t[4]=n("small",{id:"updateHelp",class:"form-text text-muted"},"Automatically update the anonymized pull request with the latest updates. The pull request is updated once per day maximum.",-1))])]),t[26]||(t[26]=n("div",{class:"paper-section-eyebrow anonymize-section-title"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-conference"})]),g(" Conference ID ")],-1)),f(" Conference "),n("div",O5,[t[5]||(t[5]=n("label",{for:"conference"},[g("Conference ID "),n("span",{class:"text-muted"},"(Optional)")],-1)),D(n("input",{class:P(["form-control",{"is-invalid":e.anonymize?.conference?.invalid}]),id:"conference",name:"conference"},null,2),[[i,{state:e.viewState,set:r=>{e.conference=r},value:e.conference,form:"anonymizeForm",options:{debounce:{default:800,blur:0},updateOn:"default blur"}}]]),D(n("small",I5,[n("a",{target:"_target",href:e.safeUrl(e.conference_data?.url)},c(e.conference_data?.name),9,M5),g(" will expire on "+c(e.fmt?.date(e.conference_data?.endDate))+".",1)],512),[[Q,e.conference_data]]),D(n("div",V5," The conference is not activated. ",512),[[Q,e.anonymize?.conference?.errors?.activated]]),D(n("small",q5," Use the Conference ID that your conference provided you. This will update automatically the anonymization options based on the conference preferences. ",512),[[Q,!e.conference_data]])]),t[27]||(t[27]=n("div",{class:"paper-section-eyebrow anonymize-section-title"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})]),g(" Anonymization Options ")],-1)),f(" Pull Request ID "),n("div",_5,[t[6]||(t[6]=n("label",{for:"pullRequestId"},"Anonymized pull request id",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.anonymize?.pullRequestId?.invalid}]),name:"pullRequestId",id:"pullRequestId"},null,2),[[i,{state:e.viewState,set:r=>{e.pullRequestId=r},value:e.pullRequestId,form:"anonymizeForm",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"}}]]),n("small",$5,"Id used in the url: https://anonymous.4open.science/r/"+c(e.pullRequestId),1),D(n("div",L5," Repository id can only contain letters and numbers ",512),[[Q,e.anonymize?.pullRequestId?.errors?.format]]),D(n("div",{class:"invalid-feedback"},c(e.pullRequestId)+" is already used ",513),[[Q,e.anonymize?.pullRequestId?.errors?.used]])]),f(" Terms "),n("div",F5,[t[7]||(t[7]=n("label",{for:"terms"},"Terms to anonymize",-1)),D(n("textarea",{class:P(["form-control",{"is-invalid":e.anonymize?.terms?.invalid}]),id:"terms",name:"terms",rows:"3"},null,2),[[i,{state:e.viewState,set:r=>{e.terms=r},value:e.terms,form:"anonymizeForm",options:{debounce:250}}]]),t[8]||(t[8]=n("small",{id:"termsHelp",class:"form-text text-muted"},"One term per line. Each term will be replaced by XXX.",-1)),D(n("div",U5," Terms are in an invalid format ",512),[[Q,e.anonymize?.terms?.errors?.format]])]),n("div",B5,[t[10]||(t[10]=n("label",{for:"expiration"},"Expiration strategy",-1)),D((a(),l("select",z5,[...t[9]||(t[9]=[n("option",{value:"never",selected:""},"Never expire",-1),n("option",{value:"redirect"}," Redirect to GitHub when expired ",-1),n("option",{value:"remove"},"Remove when expired",-1)])])),[[i,{state:e.viewState,set:r=>{e.options.expirationMode=r},value:e.options?.expirationMode,form:"anonymizeForm",options:{}}]]),t[11]||(t[11]=n("small",{class:"form-text text-muted"},"Define the expiration strategy for the anonymized repository.",-1))]),D(n("div",H5,[t[12]||(t[12]=n("label",{for:"expirationDate"},"Expiration date of the anonymized repository",-1)),D(n("input",j5,null,512),[[i,{state:e.viewState,set:r=>{e.options.expirationDate=r},value:e.options?.expirationDate,form:"anonymizeForm",options:{}}]]),e.fmt?.dateEcho(e.options?.expirationDate)?(a(),l("p",G5,"Expires "+c(e.fmt?.dateEcho(e.options?.expirationDate)),1)):f("v-if",!0),D(n("small",{class:"form-text text-muted"},"After "+c(e.fmt?.date(e.options?.expirationDate))+", the repository will be removed and the visitor will not be able to see the content of the repository.",513),[[Q,e.options?.expirationMode=="remove"]]),D(n("small",{class:"form-text text-muted"},"After "+c(e.fmt?.date(e.options?.expirationDate))+", the visitors of the anonymized repository will be redirected to "+c(e.pullRequestUrl)+".",513),[[Q,e.options?.expirationMode=="redirect"]])],512),[[Q,e.options?.expirationMode!="never"]]),n("div",W5,[n("div",K5,[t[25]||(t[25]=Ee('

',1)),n("div",Y5,[n("div",X5,[n("div",J5,[n("div",Q5,[D(n("input",Z5,null,512),[[i,{state:e.viewState,set:r=>{e.options.link=r},value:e.options?.link,form:"anonymizeForm",options:{}}]]),t[13]||(t[13]=n("label",{class:"form-check-label",for:"link"},"Keep links",-1)),t[14]||(t[14]=n("small",{class:"form-text text-muted"},"Keep or remove all the links.",-1))]),n("div",x5,[D(n("input",e8,null,512),[[i,{state:e.viewState,set:r=>{e.options.image=r},value:e.options?.image,form:"anonymizeForm",options:{}}]]),t[15]||(t[15]=n("label",{class:"form-check-label",for:"image"},"Display images",-1)),t[16]||(t[16]=n("small",{class:"form-text text-muted"},"Images are not anonymized",-1))]),n("div",t8,[D(n("input",n8,null,512),[[i,{state:e.viewState,set:r=>{e.options.date=r},value:e.options?.date,form:"anonymizeForm",options:{}}]]),t[17]||(t[17]=n("label",{class:"form-check-label",for:"date"},"Display dates",-1)),t[18]||(t[18]=n("small",{class:"form-text text-muted"},"Display the date of the Pull Request and the date of the comments.",-1))]),n("div",s8,[D(n("input",o8,null,512),[[i,{state:e.viewState,set:r=>{e.options.username=r},value:e.options?.username,form:"anonymizeForm",options:{}}]]),t[19]||(t[19]=n("label",{class:"form-check-label",for:"username"},"Display username",-1))]),n("div",i8,[D(n("input",r8,null,512),[[i,{state:e.viewState,set:r=>{e.options.comments=r},value:e.options?.comments,form:"anonymizeForm",options:{}}]]),t[20]||(t[20]=n("label",{class:"form-check-label",for:"comments"},"Display comments",-1))]),n("div",a8,[D(n("input",l8,null,512),[[i,{state:e.viewState,set:r=>{e.options.diff=r},value:e.options?.diff,form:"anonymizeForm",options:{}}]]),t[21]||(t[21]=n("label",{class:"form-check-label",for:"diff"},"Display diff",-1))]),n("div",d8,[D(n("input",u8,null,512),[[i,{state:e.viewState,set:r=>{e.options.origin=r},value:e.options?.origin,form:"anonymizeForm",options:{}}]]),t[22]||(t[22]=n("label",{class:"form-check-label",for:"origin"},"Display the project name",-1))]),n("div",c8,[D(n("input",p8,null,512),[[i,{state:e.viewState,set:r=>{e.options.title=r},value:e.options?.title,form:"anonymizeForm",options:{}}]]),t[23]||(t[23]=n("label",{class:"form-check-label",for:"title"},"Display the PR title",-1))]),n("div",f8,[D(n("input",h8,null,512),[[i,{state:e.viewState,set:r=>{e.options.body=r},value:e.options?.body,form:"anonymizeForm",options:{}}]]),t[24]||(t[24]=n("label",{class:"form-check-label",for:"body"},"Display the PR body and comment bodies",-1))])])])])])])],512),[[Q,e.pullRequestUrl]]),e.error?(a(),l("div",{key:0,class:"alert alert-danger",role:"alert",textContent:c(e.error)},null,8,m8)):f("v-if",!0),D(n("div",g8,[e.isUpdate?f("v-if",!0):(a(),l("button",{key:0,id:"submit",type:"submit",class:"btn btn-ink btn-block",onClick:t[0]||(t[0]=ae(r=>e.submitForm(r,()=>{e.anonymizePullRequest(r)}),["prevent"]))},[...t[28]||(t[28]=[n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1),g(" Anonymize ",-1)])])),e.isUpdate?(a(),l("button",{key:1,id:"submit",type:"submit",class:"btn btn-ink btn-block",onClick:t[1]||(t[1]=ae(r=>e.submitForm(r,()=>{e.updatePullRequest(r)}),["prevent"]))},[...t[29]||(t[29]=[n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-save"})],-1),g(" Update ",-1)])])):f("v-if",!0)],512),[[Q,e.pullRequestUrl]])],2)),[[o,e.viewState]])],2)]),e.details?(a(),l("div",v8,[n("div",y8,[n("h2",b8,[e.options?.title?(a(),l("span",w8,c(e.anonymize(e.details?.pullRequest?.title)),1)):f("v-if",!0),n("span",{class:P(["badge",{"badge-success":e.details?.pullRequest?.merged,"badge-warning":e.details?.pullRequest?.state=="open","badge-danger":e.details?.pullRequest?.state=="closed"&&!e.details?.pullRequest?.merged}])},c(e.fmt?.title(e.details?.pullRequest?.merged?"merged":e.details?.pullRequest?.state)),3)]),e.options?.date?(a(),l("small",{key:0,textContent:c(e.fmt?.date(e.details?.pullRequest?.updatedDate))},null,8,k8)):f("v-if",!0)]),e.options?.origin?(a(),l("small",C8,"Pull Request on "+c(e.details?.pullRequest?.baseRepositoryFullName),1)):f("v-if",!0),e.options?.body?(a(),l("div",E8,[Oe(s,{content:e.anonymize(e.details?.pullRequest?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])])):f("v-if",!0),n("ul",S8,[e.options?.diff?(a(),l("li",N8,[...t[31]||(t[31]=[n("button",{class:"nav-link active",id:"pills-diff-tab","data-toggle":"pill","data-target":"#pills-diff",type:"button",role:"tab","aria-controls":"pills-diff","aria-selected":"true"}," Diff ",-1)])])):f("v-if",!0),e.options?.comments?(a(),l("li",R8,[n("button",{class:P(["nav-link",{active:!e.options?.diff}]),id:"pills-comments-tab","data-toggle":"pill","data-target":"#pills-comments",type:"button",role:"tab","aria-controls":"pills-comments","aria-selected":"false"},[n("span",{textContent:c(e.fmt.plural(e.details?.pullRequest?.comments?.length,{0:"No comment",one:"One Comment",other:"{} Comments"}))},null,8,P8)],2)])):f("v-if",!0)]),n("div",A8,[n("div",D8,[e.options?.diff?(a(),l("div",T8,[n("pre",O8,[n("code",{innerHTML:e.sanitize(e.fmt?.diff(e.anonymize(e.details?.pullRequest?.diff)))},null,8,I8)])])):f("v-if",!0)]),n("div",{class:P(["tab-pane",{"show active":!e.options?.diff}]),id:"pills-comments",role:"tabpanel","aria-labelledby":"pills-comments-tab"},[e.options?.comments?(a(),l("ul",M8,[(a(!0),l(q,null,x(e.details?.pullRequest?.comments,(r,d)=>(a(),l("li",V8,[n("div",q8,[e.options?.username?(a(),l("h5",_8," @"+c(e.anonymize(r?.author)),1)):f("v-if",!0),e.options?.date?(a(),l("small",{key:1,textContent:c(e.fmt?.date(r?.updatedDate))},null,8,$8)):f("v-if",!0)]),n("p",L8,[e.options?.body?(a(),Gt(s,{key:0,class:"pr-comment-body",content:e.anonymize(r?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])):f("v-if",!0)])]))),256))])):f("v-if",!0)],2)])])):f("v-if",!0)])])}var F8={class:"container paper-page claim-page"},U8={class:"paper-settings-main claim-form"},B8={class:"form-group"},z8={class:"invalid-feedback"},H8={class:"form-group"};function ap(e,t){let s=Ae("field"),i=Ae("form");return a(),l("div",F8,[t[6]||(t[6]=Ee('
My work \xA0/\xA0 Claim

Claim an anonymization

Take ownership of an existing anonymized repository so it appears on your dashboard.

',3)),n("div",U8,[t[5]||(t[5]=n("p",{class:"paper-section-copy"},"Use this when an anonymization was created by a co-author or from another account. You must have access to the GitHub repository it was made from.",-1)),D((a(),l("form",{class:"form needs-validation",name:"claimForm",novalidate:"",onSubmit:t[0]||(t[0]=ae(o=>e.submitForm(o,()=>{e.claim()}),["prevent"]))},[n("div",B8,[t[1]||(t[1]=n("label",{class:"paper-field-label",for:"repoUrl"},"GitHub repository URL",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.claimForm?.repoUrl?.invalid&&(e.claimForm?.repoUrl?.touched||e.claimForm?.submitted)}]),name:"repoUrl",id:"repoUrl",placeholder:"https://github.com/owner/repository",required:""},null,2),[[s,{state:e.viewState,set:o=>{e.repoUrl=o},value:e.repoUrl,form:"claimForm",options:{}}]]),D(n("div",z8," No anonymization matches this repository and ID. Check both values and that you can access the repository on GitHub. ",512),[[Q,e.claimForm?.repoUrl?.errors?.not_found]])]),n("div",H8,[t[2]||(t[2]=n("label",{class:"paper-field-label",for:"repoId"},"Anonymized repository ID",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.claimForm?.repoId?.invalid&&(e.claimForm?.repoId?.touched||e.claimForm?.submitted)}]),name:"repoId",id:"repoId",placeholder:"e.g. my-paper-7F2A","aria-describedby":"idHelp",required:""},null,2),[[s,{state:e.viewState,set:o=>{e.repoId=o},value:e.repoId,form:"claimForm",options:{}}]]),t[3]||(t[3]=n("small",{id:"idHelp",class:"form-text text-muted"},[g("The ID is the last part of the anonymized URL: "),n("code",null,"anonymous.4open.science/r/"),g(".")],-1))]),t[4]||(t[4]=n("button",{id:"submit",type:"submit",class:"btn btn-ink"}," Claim anonymization ",-1))],32)),[[i,e.viewState]])])])}var j8={class:"container page paper-page conference-page"},G8={class:"paper-crumbs"},W8={class:"here"},K8={class:"d-flex align-items-end flex-wrap",style:{gap:"12px","justify-content":"space-between"}},Y8={class:"conf-title-row"},X8=["textContent"],J8={key:0,class:"conf-status"},Q8=["textContent"],Z8={key:0,class:"paper-page-lede"},x8=["textContent","href"],eM={class:"d-flex align-items-center flex-wrap",style:{gap:"10px"}},tM=["href"],nM={class:"paper-meta-rule"},sM=["textContent"],oM=["textContent"],iM={key:0},rM={key:0,class:"conference-payment-status",role:"status"},aM=["disabled"],lM={key:1,role:"alert"},dM={key:2,class:"paper-settings-section","aria-labelledby":"conference-payment-heading"},uM={key:0,role:"status"},cM={key:1,role:"alert"},pM=["onClick","disabled"],fM={class:"dashboard-meta conf-view-meta"},hM={class:"dashboard-view-tabs",role:"group","aria-label":"Repository view"},mM=["aria-pressed"],gM=["aria-pressed","aria-label"],vM=["aria-pressed"],yM={class:"attention-count"},bM={class:"dashboard-count",role:"status"},wM={class:"search-wrap"},kM={type:"search",id:"search",class:"form-control","aria-label":"Search repositories",placeholder:"Search repositories\u2026",autocomplete:"off"},CM={class:"dashboard-filter-controls"},EM={class:"dropdown"},SM={class:"btn dropdown-toggle",type:"button",id:"dropdownSort","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},NM={class:"filter-btn-value"},RM={class:"dropdown-menu","aria-labelledby":"dropdownSort"},PM={class:"form-check dropdown-item"},AM={class:"form-check-input",type:"radio",name:"sort",id:"anonymizeDate",value:"-anonymizeDate"},DM={class:"form-check dropdown-item"},TM={class:"form-check-input",type:"radio",name:"sort",id:"sortID",value:"repoId"},OM={class:"form-check dropdown-item"},IM={class:"form-check-input",type:"radio",name:"sort",id:"sortStatus",value:"-status"},MM={class:"form-check dropdown-item"},VM={class:"form-check-input",type:"radio",name:"sort",id:"sortViews",value:"-pageView"},qM={class:"dashboard-page conf-rows"},_M={class:"cell-anon",role:"cell"},$M={class:"anon-text"},LM={class:"anon-title"},FM=["title","href"],UM={class:"rn-owner"},BM={class:"rn-repo"},zM={class:"anon-sub"},HM=["title"],jM={class:"id-head"},GM={class:"id-tail"},WM=["title"],KM={class:"dashboard-row-meta",role:"presentation"},YM={class:"cell-status",role:"cell"},XM={class:"status-line"},JM=["textContent"],QM=["textContent","title"],ZM=["href"],xM=["onClick","disabled"],e6={key:3,class:"status-sub status-sub-date"},t6=["data-unit","aria-label"],n6={class:"cell-expires",role:"cell"},s6={key:0,class:"expires-never"},o6=["textContent"],i6={key:2,class:"expires-past"},r6={key:3,class:"empty-dash","aria-label":"Not applicable"},a6={class:"cell-actions",role:"cell"},l6=["onClick","disabled","title","aria-label"],d6={class:"sr-only","aria-live":"polite"},u6={class:"project-type-svg","aria-hidden":"true"},c6=["href"],p6={class:"copy-url-label","aria-hidden":"true"},f6=["href","aria-label"],h6={class:"dropdown"},m6=["aria-label"],g6={class:"dropdown-menu dropdown-menu-right"},v6=["href"],y6=["href"],b6=["href"],w6={key:0,class:"paper-table-empty"},k6={key:0},C6={key:1},E6={key:2,class:"paper-table-empty-actions"};function lp(e,t){let s=Ae("field"),i=Ae("form");return a(),l("div",j8,[n("div",null,[n("div",G8,[t[6]||(t[6]=n("a",{href:"/dashboard"},"My work",-1)),t[7]||(t[7]=g(" \xA0/\xA0 ",-1)),t[8]||(t[8]=n("a",{href:"/conferences"},"Conferences",-1)),t[9]||(t[9]=g(" \xA0/\xA0 ",-1)),n("span",W8,c(e.conference?.conferenceID),1)]),n("div",K8,[n("div",null,[n("div",Y8,[n("h1",{class:"paper-page-title",textContent:c(e.conference?.name)},null,8,X8),e.conference?.status?(a(),l("span",J8,[n("span",{class:P(["status-dot","status-"+e.conference?.status]),"aria-hidden":"true"},null,2),n("span",{textContent:c(e.fmt?.statusLabel(e.conference?.status))},null,8,Q8)])):f("v-if",!0)]),e.conference?.url?(a(),l("p",Z8,[n("a",{target:"_blank",rel:"noopener",textContent:c(e.conference?.url),href:e.safeUrl(e.conference?.url)},null,8,x8)])):f("v-if",!0)]),n("div",eM,[n("a",{class:"btn btn-outline-ink",href:e.safeUrl("/conference/"+e.conference?.conferenceID+"/edit")},[...t[10]||(t[10]=[n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),g(" Edit conference",-1)])],8,tM)])]),n("div",nM,[n("span",null,[t[11]||(t[11]=g("ID ",-1)),n("b",{class:"commit-hash",textContent:c(e.conference?.conferenceID)},null,8,sM)]),n("span",null,[t[12]||(t[12]=g("Review window ",-1)),n("b",null,c(e.fmt?.date(e.conference?.startDate,"mediumDate"))+" \u2013 "+c(e.fmt?.date(e.conference?.endDate,"mediumDate")),1)]),n("span",null,[t[13]||(t[13]=g("Repositories ",-1)),n("b",null,c(e.fmt?.number(e.conference?.repositories?.length)),1)]),n("span",null,[t[14]||(t[14]=g("Plan ",-1)),n("b",{textContent:c(e.conferencePlanName(e.conference?.plan?.planID))},null,8,oM)]),e.conference?.price?(a(),l("span",iM,[t[15]||(t[15]=g("Cost so far ",-1)),n("b",null,c(e.fmt?.money(e.conference?.price)),1)])):f("v-if",!0)]),e.billingNotice?(a(),l("div",rM,[n("p",null,c(e.billingNotice),1),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[0]||(t[0]=o=>e.refreshBilling()),disabled:e.billingBusy},"Check payment status",8,aM)])):f("v-if",!0),e.billingError&&e.conference?.status!=="pending_payment"?(a(),l("p",lM,c(e.billingError),1)):f("v-if",!0),e.conference?.status==="pending_payment"?(a(),l("section",dM,[t[16]||(t[16]=n("h2",{id:"conference-payment-heading"},"Activate your review package",-1)),t[17]||(t[17]=n("p",null,"This conference is waiting for payment. Authors can join after payment is confirmed. Checkout returns to this conference. Authors within the package do not pay separately.",-1)),e.billingLoading?(a(),l("p",uM,"Loading payment options\u2026")):f("v-if",!0),e.billingError?(a(),l("p",cM,c(e.billingError),1)):f("v-if",!0),(a(!0),l(q,null,x((e.billing?.plans||[]).filter(o=>o.id===e.conference?.plan?.planID),o=>(a(),l("div",{key:o.id},[n("p",null,[n("strong",null,c(o.name)+" package",1),g(": "+c(e.billingPrice(o))+" for up to "+c(o.repositories)+" repositories and "+c(e.billingBytes(o.storage))+" of source files during the review window. Taxes, if applicable, appear at checkout.",1)]),n("button",{type:"button",class:"btn btn-primary",onClick:r=>e.checkout(o.id,e.conference.conferenceID),disabled:e.billingBusy||e.billingPending||e.billing?.checkoutEnabled===!1},c(e.billingBusy?"Please wait\u2026":"Pay for review package"),9,pM)]))),128)),t[18]||(t[18]=n("p",null,[n("a",{href:"/profile#settings-billing"},"Manage invoices")],-1))])):f("v-if",!0),n("div",fM,[n("div",hM,[n("button",{type:"button","aria-pressed":e.confView()==="current",onClick:t[1]||(t[1]=o=>e.setConfView("current")),title:"Every repository except removed links"},"Current",8,mM),e.confCount("attention")>0||e.confView()==="attention"?(a(),l("button",{key:0,type:"button","aria-pressed":e.confView()==="attention",onClick:t[2]||(t[2]=o=>e.setConfView("attention")),"aria-label":"Needs attention "+e.confCount("attention")},[t[19]||(t[19]=n("span",{class:"dashboard-attention-prefix"},"Needs ",-1)),t[20]||(t[20]=n("span",null,"attention",-1)),t[21]||(t[21]=g()),n("span",{class:P(["attention-count",{"has-attention":e.confCount("attention")>0}])},c(e.fmt?.number(e.confCount("attention"))),3)],8,gM)):f("v-if",!0),e.confCount("removed")>0||e.confView()==="removed"?(a(),l("button",{key:1,type:"button","aria-pressed":e.confView()==="removed",onClick:t[3]||(t[3]=o=>e.setConfView("removed")),title:"Links reviewers can no longer open"},[t[22]||(t[22]=g("Removed ",-1)),n("span",yM,c(e.fmt?.number(e.confCount("removed"))),1)],8,vM)):f("v-if",!0)]),n("span",bM,c(e.search.trim()?e.fmt?.number(e.filteredRepositories?.length||0)+" shown":e.fmt?.number(e.filteredRepositories?.length||0)+((e.filteredRepositories?.length||0)===1?" repository":" repositories")),1)]),D((a(),l("form",{class:"w-100 conf-repo-toolbar","aria-label":"Filter repositories","accept-charset":"UTF-8",onSubmit:t[4]||(t[4]=ae(o=>e.submitForm(o,()=>{o.preventDefault()}),["prevent"]))},[n("div",wM,[D(n("input",kM,null,512),[[s,{state:e.viewState,set:o=>{e.search=o},value:e.search,form:null,options:{}}]])]),n("div",CM,[n("div",EM,[n("button",SM,[t[23]||(t[23]=n("span",{class:"filter-btn-label"},"Sort",-1)),n("span",NM,c({"-anonymizeDate":"Anonymize date",repoId:"ID","-status":"Status","-pageView":"Views"}[e.orderBy]||"Custom"),1)]),n("div",RM,[t[28]||(t[28]=n("h6",{class:"dropdown-header"},"Order by",-1)),n("div",PM,[D(n("input",AM,null,512),[[s,{state:e.viewState,set:o=>{e.orderBy=o},value:e.orderBy,form:null,options:{}}]]),t[24]||(t[24]=n("label",{class:"form-check-label",for:"anonymizeDate"},"Anonymize date",-1))]),n("div",DM,[D(n("input",TM,null,512),[[s,{state:e.viewState,set:o=>{e.orderBy=o},value:e.orderBy,form:null,options:{}}]]),t[25]||(t[25]=n("label",{class:"form-check-label",for:"sortID"},"ID",-1))]),n("div",OM,[D(n("input",IM,null,512),[[s,{state:e.viewState,set:o=>{e.orderBy=o},value:e.orderBy,form:null,options:{}}]]),t[26]||(t[26]=n("label",{class:"form-check-label",for:"sortStatus"},"Status",-1))]),n("div",MM,[D(n("input",VM,null,512),[[s,{state:e.viewState,set:o=>{e.orderBy=o},value:e.orderBy,form:null,options:{}}]]),t[27]||(t[27]=n("label",{class:"form-check-label",for:"sortViews"},"Views",-1))])])])])],32)),[[i,e.viewState]]),n("div",qM,[n("div",{class:P(["paper-table paper-table-dashboard paper-table-conf w-100",{"is-removed-view":e.confView()==="removed"}]),role:"table","aria-label":"Repositories"},[t[37]||(t[37]=n("div",{class:"paper-table-head",role:"row"},[n("div",{role:"columnheader"},"Repository"),n("div",{role:"columnheader"},"Status"),n("div",{role:"columnheader",class:"num"},"Views"),n("div",{role:"columnheader"},"Expires"),n("div",{role:"columnheader"},[n("span",{class:"sr-only"},"Actions")])],-1)),(a(!0),l(q,null,x(e.filteredRepositories,(o,r)=>(a(),l("div",{class:P(["paper-table-row",{"repo-inactive":o?.status=="expired"||o?.status=="removed","repo-error":o?.status=="error"}]),role:"row",key:o?.repoId},[n("div",_M,[t[30]||(t[30]=n("span",{class:"project-type-icon",role:"img","aria-label":"Repository",title:"Repository"},[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})])],-1)),n("div",$M,[n("div",LM,[n("a",{class:"repo-name",title:o?.source?.fullName,href:e.safeUrl("/r/"+o?.repoId+"/")},[(o?.source?.fullName||"").indexOf("/")>0?(a(),l(q,{key:0},[n("span",UM,c(o.source.fullName.slice(0,o.source.fullName.indexOf("/")+1)),1),t[29]||(t[29]=n("wbr",null,null,-1)),n("span",BM,c(o.source.fullName.slice(o.source.fullName.indexOf("/")+1)),1)],64)):(a(),l(q,{key:1},[g(c(o?.source?.fullName||o?.repoId),1)],64))],8,FM)]),n("div",zM,[n("code",{class:"anonymous-id",title:o?.repoId},[(o?.repoId||"").length>14?(a(),l(q,{key:0},[n("span",jM,c(o.repoId.slice(0,-6)),1),n("span",GM,c(o.repoId.slice(-6)),1)],64)):(a(),l(q,{key:1},[g(c(o?.repoId),1)],64))],8,HM),o?.source?.commit?(a(),l("span",{key:0,class:"commit-hash",title:o.source.commit},c(o.source.commit.substring(0,7)),9,WM)):f("v-if",!0)])])]),n("div",KM,[n("div",YM,[n("div",XM,[n("span",{class:P(["status-dot","status-"+(o?.status=="error"?"error":o?.status=="ready"?"ready":o?.status=="expired"||o?.status=="removed"?o?.status:"progress")]),"aria-hidden":"true"},null,2),n("span",{class:"status-word",textContent:c(e.fmt?.statusLabel(o?.status))},null,8,JM)]),o?.status=="error"&&o?.statusMessage?(a(),l("div",{key:0,class:"status-sub status-sub-error",textContent:c(e.fmt?.statusMsg(o?.statusMessage)),title:o?.statusMessage},null,8,QM)):f("v-if",!0),o?.status=="error"?(a(),l("a",{key:1,class:"project-attention-action",href:e.safeUrl("/status/"+o?.repoId)},"View status",8,ZM)):f("v-if",!0),o?.status=="expired"?(a(),l("button",{key:2,type:"button",class:"project-attention-action",onClick:ae(d=>e.extendRepo(o),["stop"]),disabled:e.extendingId===o?.repoId,title:"Reviewers can no longer open this link"},"Extend 6 months",8,xM)):f("v-if",!0),o?.anonymizeDate&&o?.status!="error"&&o?.status!="expired"?(a(),l("div",e6,"anonymized "+c(e.fmt?.humanTime(o?.anonymizeDate)),1)):f("v-if",!0)]),n("div",{class:"cell-views num",role:"cell","data-unit":(o?.pageView||0)===1?"view":"views","aria-label":e.fmt?.number(o?.pageView||0)+((o?.pageView||0)===1?" view":" views")},[t[31]||(t[31]=n("svg",{class:"project-type-svg mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1)),n("span",null,c(e.fmt?.number(o?.pageView||0)),1)],8,t6),n("div",n6,[t[33]||(t[33]=n("svg",{class:"project-type-svg mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),o?.status=="ready"&&(o?.options?.expirationMode==="never"||!o?.options?.expirationDate)?(a(),l("span",s6,"No expiry")):f("v-if",!0),o?.status=="ready"&&o?.options?.expirationMode!=="never"&&o?.options?.expirationDate?(a(),l("span",{key:1,textContent:c((e.fmt?.humanTime(o?.options?.expirationDate)||"").replace(/^on /,""))},null,8,o6)):f("v-if",!0),o?.status=="expired"?(a(),l("span",i6,[t[32]||(t[32]=n("span",{class:"expires-past-prefix"},"Expired ",-1)),g(c(e.fmt?.shortDate(o?.options?.expirationDate)),1)])):f("v-if",!0),o?.status!="ready"&&o?.status!="expired"?(a(),l("span",r6,"\u2014")):f("v-if",!0)])]),n("div",a6,[o?.status!="expired"&&o?.status!="removed"?(a(),l("button",{key:0,type:"button",class:"copy-url",onClick:ae(d=>e.copyRepoLink(o),["stop"]),disabled:!!e.copyingId,title:"Copy link: /r/"+o?.repoId+"/","aria-label":"Copy anonymous link for "+o?.repoId},[n("span",d6,c(e.copyingId===o?.repoId?"Link copied":""),1),(a(),l("svg",u6,[n("use",{href:e.copyingId===o?.repoId?"#ui-icon-check":"#project-icon-copy"},null,8,c6)])),n("span",p6,c(e.copyingId===o?.repoId?"Copied":"Copy link"),1)],8,l6)):f("v-if",!0),o?.status!="expired"&&o?.status!="removed"?(a(),l("a",{key:1,class:"row-edit row-open",href:e.safeUrl("/r/"+o?.repoId+"/"),target:"_blank",rel:"noopener",title:"Open what reviewers see","aria-label":"Open anonymous page for "+o?.repoId},[...t[34]||(t[34]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-external-link"})],-1)])],8,f6)):f("v-if",!0),n("div",h6,[n("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions for "+o?.repoId},[...t[35]||(t[35]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-more"})],-1)])],8,m6),n("div",g6,[n("a",{class:"dropdown-item",href:e.safeUrl("/r/"+o?.repoId+"/")},"View",8,v6),n("a",{class:"dropdown-item",href:e.safeUrl("https://github.com/"+o?.source?.fullName+"/"),target:"_blank",rel:"noopener"},"Open source on GitHub",8,y6),n("a",{class:"dropdown-item",href:e.safeUrl("/anonymize/"+o?.repoId)},"Edit",8,b6)])])])],2))),128)),e.filteredRepositories?.length==0?(a(),l("div",w6,[t[36]||(t[36]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1)),e.conference?.repositories?.length?f("v-if",!0):(a(),l("span",k6,"No repository has been submitted to this conference yet.")),e.conference?.repositories?.length?(a(),l("span",C6,"Nothing matches the current filters.")):f("v-if",!0),e.conference?.repositories?.length?(a(),l("div",E6,[n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[5]||(t[5]=o=>{e.search="",e.setConfView("current")})},"Clear filters")])):f("v-if",!0)])):f("v-if",!0)],2)])])])}var S6={class:"container page paper-page conferences-page"},N6={class:"row"},R6={class:"w-100"},P6={class:"d-flex align-items-start justify-content-between flex-wrap page-head-row page-head page-head-main",style:{gap:"12px"}},A6={key:0,href:"/conference/new",class:"btn btn-primary"},D6={class:"search-wrap"},T6={type:"search",id:"search",class:"form-control","aria-label":"Search conferences",placeholder:"Search by name or ID\u2026",autocomplete:"off"},O6={class:"dashboard-filter-controls"},I6={class:"dropdown"},M6={class:"btn dropdown-toggle",type:"button",id:"dropdownSort","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},V6={class:"filter-btn-value"},q6={class:"dropdown-menu","aria-labelledby":"dropdownSort"},_6={class:"form-check dropdown-item"},$6={class:"form-check-input",type:"radio",name:"sort",id:"sortName",value:"name"},L6={class:"form-check dropdown-item"},F6={class:"form-check-input",type:"radio",name:"sort",id:"sortID",value:"conferenceID"},U6={class:"form-check dropdown-item"},B6={class:"form-check-input",type:"radio",name:"sort",id:"sortStatus",value:"-status"},z6={class:"dropdown"},H6={class:"btn dropdown-toggle",type:"button",id:"dropdownStatus","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},j6={key:0,class:"filter-btn-value"},G6={key:1,class:"filter-btn-value"},W6={class:"dropdown-menu","aria-labelledby":"dropdownStatus"},K6={class:"form-check dropdown-item"},Y6=["id"],X6=["for"],J6={key:1,class:"dashboard-meta"},Q6={class:"dashboard-count"},Z6={key:0},x6={key:0},eV={key:1},tV={key:0,class:"filter-chip"},nV=["onClick","aria-label"],sV={key:0,class:"conference-feedback",role:"alert"},oV={key:1,class:"conference-feedback",role:"status"},iV={class:"paper-table paper-table-conferences w-100",role:"table","aria-label":"Conferences"},rV={class:"cell-anon",role:"cell"},aV={class:"anon-text"},lV=["textContent","href"],dV={class:"anon-sub"},uV={class:"anon-source"},cV=["textContent"],pV={key:0},fV=["textContent","href"],hV={class:"cell-status",role:"cell"},mV={class:"status-line"},gV=["textContent"],vV={class:"cell-views num",role:"cell"},yV=["textContent"],bV={class:"cell-expires",role:"cell"},wV={key:0},kV={key:1,class:"empty-dash","aria-label":"No review window"},CV={class:"cell-actions",role:"cell"},EV={class:"dropdown"},SV=["disabled","aria-label"],NV={class:"dropdown-menu dropdown-menu-right"},RV=["href"],PV=["href"],AV={key:0},DV=["onClick"],TV={key:0,class:"paper-table-empty"},OV={key:0,class:"empty-icon","aria-hidden":"true"},IV={key:1,class:"ui-icon","aria-hidden":"true"},MV={key:3},VV={class:"paper-table-empty-actions"},qV={key:0,href:"/conference/new",class:"btn btn-primary conf-empty-new"};function dp(e,t){let s=Ae("field"),i=Ae("form");return a(),l("div",S6,[n("div",N6,[n("div",R6,[n("div",P6,[t[4]||(t[4]=n("div",null,[n("h1",{class:"paper-page-title"},[g("Your "),n("em",null,"conferences")]),n("p",{class:"paper-page-lede"},"Group anonymizations by venue, give chairs a shared dashboard, and set one expiry for every submission.")],-1)),e.conferences&&e.conferences.length==0?f("v-if",!0):(a(),l("a",A6,[...t[3]||(t[3]=[n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#project-icon-plus"})],-1),g(" New conference ",-1)])]))]),e.conferences?.length>0?D((a(),l("form",{key:0,class:"w-100 dashboard-filter-row","aria-label":"Filter conferences","accept-charset":"UTF-8",onSubmit:t[0]||(t[0]=ae(o=>e.submitForm(o,()=>{o.preventDefault()}),["prevent"]))},[n("div",D6,[D(n("input",T6,null,512),[[s,{state:e.viewState,set:o=>{e.search=o},value:e.search,form:null,options:{}}]])]),n("div",O6,[n("div",I6,[n("button",M6,[t[5]||(t[5]=n("span",{class:"filter-btn-label"},"Sort",-1)),n("span",V6,c({name:"Name",conferenceID:"ID","-status":"Status"}[e.orderBy]||"Custom"),1)]),n("div",q6,[t[9]||(t[9]=n("h6",{class:"dropdown-header"},"Order by",-1)),n("div",_6,[D(n("input",$6,null,512),[[s,{state:e.viewState,set:o=>{e.orderBy=o},value:e.orderBy,form:null,options:{}}]]),t[6]||(t[6]=n("label",{class:"form-check-label",for:"sortName"},"Name",-1))]),n("div",L6,[D(n("input",F6,null,512),[[s,{state:e.viewState,set:o=>{e.orderBy=o},value:e.orderBy,form:null,options:{}}]]),t[7]||(t[7]=n("label",{class:"form-check-label",for:"sortID"},"ID",-1))]),n("div",U6,[D(n("input",B6,null,512),[[s,{state:e.viewState,set:o=>{e.orderBy=o},value:e.orderBy,form:null,options:{}}]]),t[8]||(t[8]=n("label",{class:"form-check-label",for:"sortStatus"},"Status",-1))])])]),n("div",z6,[n("button",H6,[t[10]||(t[10]=n("span",{class:"filter-btn-label"},"Status",-1)),e.filters?.status?.ready&&e.filters?.status?.expired&&e.filters?.status?.removed?(a(),l("span",j6,"All")):f("v-if",!0),e.filters?.status?.ready&&e.filters?.status?.expired&&e.filters?.status?.removed?f("v-if",!0):(a(),l("span",G6,c((e.filters?.status?.ready?0:1)+(e.filters?.status?.expired?0:1)+(e.filters?.status?.removed?0:1))+" hidden ",1))]),n("div",W6,[t[11]||(t[11]=n("h6",{class:"dropdown-header"},"Show statuses",-1)),(a(!0),l(q,null,x(e.statusLabels,(o,r,d)=>(a(),l("div",K6,[D(n("input",{class:"form-check-input",type:"checkbox",id:"status-"+r},null,8,Y6),[[s,{state:e.viewState,set:p=>{e.filters.status[r]=p},value:e.filters?.status[r],form:null,options:{}}]]),n("label",{class:"form-check-label",for:"status-"+r},c(o),9,X6)]))),256))])])])],32)),[[i,e.viewState]]):f("v-if",!0),e.conferences?.length>0?(a(),l("div",J6,[n("span",Q6,[e.filteredConferences?.length===e.conferences?.length?(a(),l("span",Z6,[g(c(e.fmt?.number(e.conferences?.length))+" conference",1),e.conferences?.length!==1?(a(),l("span",x6,"s")):f("v-if",!0)])):f("v-if",!0),e.filteredConferences?.length!==e.conferences?.length?(a(),l("span",eV,c(e.fmt?.number(e.filteredConferences?.length))+" of "+c(e.fmt?.number(e.conferences?.length))+" shown",1)):f("v-if",!0)]),(a(!0),l(q,null,x(e.filters?.status,(o,r,d)=>(a(),l(q,null,[o===!1?(a(),l("span",tV,[g(" Hiding "+c(e.statusLabels[r])+" ",1),n("button",{type:"button",class:"filter-chip-close",onClick:p=>{e.filters.status[r]=!0},"aria-label":"Show "+e.statusLabels[r]+" again"},"\xD7",8,nV)])):f("v-if",!0)],64))),256))])):f("v-if",!0)]),e.error?(a(),l("div",sV,[n("span",null,c(e.error),1),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[1]||(t[1]=o=>e.loadConferences())},"Retry")])):f("v-if",!0),e.loading?(a(),l("div",oV,"Loading conferences\u2026")):f("v-if",!0),n("div",iV,[t[28]||(t[28]=n("div",{class:"paper-table-head",role:"row"},[n("div",{role:"columnheader"},"Conference"),n("div",{role:"columnheader"},"Status"),n("div",{role:"columnheader",class:"num"},"Repos"),n("div",{role:"columnheader"},"Review window"),n("div",{role:"columnheader"},[n("span",{class:"sr-only"},"Actions")])],-1)),(a(!0),l(q,null,x(e.filteredConferences,(o,r)=>(a(),l("div",{class:P(["paper-table-row row-clickable",{"repo-inactive":o?.status=="expired"||o?.status=="removed"}]),role:"row",key:o?.conferenceID},[n("div",rV,[t[14]||(t[14]=n("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Conference"},[n("use",{href:"#project-icon-conference"})],-1)),n("div",aV,[n("a",{class:"repo-name",textContent:c(o?.name),href:e.safeUrl("/conference/"+o?.conferenceID)},null,8,lV),n("div",dV,[n("span",uV,[t[13]||(t[13]=g("ID ",-1)),n("span",{class:"commit-hash",textContent:c(o?.conferenceID)},null,8,cV),o?.url?(a(),l("span",pV,[t[12]||(t[12]=g(" \xB7 ",-1)),n("a",{target:"_blank",rel:"noopener",textContent:c(e.fmt?.limitTo(o?.url,60)),href:e.safeUrl(o?.url)},null,8,fV)])):f("v-if",!0)])])])]),n("div",hV,[n("div",mV,[n("span",{class:P(["status-dot","status-"+o?.status]),"aria-hidden":"true"},null,2),n("span",{class:"status-word",textContent:c(e.fmt?.statusLabel(o?.status))},null,8,gV)])]),n("div",vV,[t[15]||(t[15]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})],-1)),t[16]||(t[16]=g()),n("span",{textContent:c(e.fmt?.number(o?.nbRepositories||0))},null,8,yV)]),n("div",bV,[t[17]||(t[17]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),o?.startDate?(a(),l("span",wV,c(e.fmt?.date(o?.startDate,"mediumDate"))+" \u2013 "+c(e.fmt?.date(o?.endDate,"mediumDate")),1)):f("v-if",!0),o?.startDate?f("v-if",!0):(a(),l("span",kV,"\u2014"))]),n("div",CV,[n("div",EV,[n("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false",disabled:o?.removing,"aria-label":"Actions for "+o?.name},[...t[18]||(t[18]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-more"})],-1)])],8,SV),n("div",NV,[n("a",{class:"dropdown-item",href:e.safeUrl("/conference/"+o?.conferenceID+"/")},[...t[19]||(t[19]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),g(" View ",-1)])],8,RV),n("a",{class:"dropdown-item",href:e.safeUrl("/conference/"+o?.conferenceID+"/edit")},[...t[20]||(t[20]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),g(" Edit ",-1)])],8,PV),o?.status!="removed"?(a(),l("div",AV,[t[22]||(t[22]=n("div",{class:"dropdown-divider"},null,-1)),n("button",{type:"button",class:"dropdown-item dropdown-item-danger",onClick:d=>e.removeConference(o)},[...t[21]||(t[21]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1),g(" Remove ",-1)])],8,DV)])):f("v-if",!0)])])])],2))),128)),!e.loading&&!e.error&&e.filteredConferences?.length==0?(a(),l("div",TV,[e.conferences?.length==0?(a(),l("span",OV,[...t[23]||(t[23]=[n("svg",{class:"ui-icon"},[n("use",{href:"#project-icon-conference"})],-1)])])):f("v-if",!0),e.conferences?.length>0?(a(),l("svg",IV,[...t[24]||(t[24]=[n("use",{href:"#project-icon-inbox"},null,-1)])])):f("v-if",!0),e.conferences?.length==0?(a(),l(q,{key:2},[t[25]||(t[25]=n("strong",{class:"empty-title"},"No conferences yet",-1)),t[26]||(t[26]=n("span",null,"Create one to group submissions for a venue, share a dashboard with chairs, and set a single expiry date.",-1))],64)):f("v-if",!0),e.conferences?.length>0?(a(),l("span",MV,"Nothing matches the current filters.")):f("v-if",!0),n("div",VV,[e.conferences?.length==0?(a(),l("a",qV,[...t[27]||(t[27]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-plus"})],-1),g(" New conference",-1)])])):f("v-if",!0),e.conferences?.length>0?(a(),l("button",{key:1,type:"button",class:"btn btn-outline-ink",onClick:t[2]||(t[2]=o=>{e.search="",e.filters.status.ready=!0,e.filters.status.expired=!0,e.filters.status.removed=!0})},"Clear filters")):f("v-if",!0)])])):f("v-if",!0)])])])}var _V={class:"container page dashboard-page paper-page"},$V={class:"row"},LV={class:"w-100"},FV={class:"dashboard-heading page-head page-head-main"},UV={class:"dashboard-title-line"},BV={key:0,class:"dashboard-count-head","aria-hidden":"true"},zV={key:0},HV={class:"dashboard-heading-actions"},jV=["open"],GV=["aria-expanded"],WV=["stroke-dasharray"],KV={key:1,d:"M7 12c0-4 4-4 5 0s5 4 5 0-4-4-5 0-5 4-5 0",class:"quota-ring-unlimited"},YV={key:0,class:"quota-summary-value"},XV={key:0},JV={class:"quota-panel",id:"dashboard-usage"},QV={class:"quota-panel-heading"},ZV={key:1,class:"quota-loading",role:"status"},xV={key:0,class:"dashboard-meta"},eq={key:0,class:"dashboard-view-tabs",role:"group","aria-label":"Project view"},tq=["aria-pressed"],nq=["aria-pressed","aria-label"],sq=["aria-pressed","aria-label"],oq={key:0,class:"attention-count"},iq={key:0},rq={key:0},aq={key:1},lq={class:"search-wrap"},dq={type:"search",id:"search",class:"form-control","aria-label":"Search anonymizations",placeholder:"Search projects\u2026",autocomplete:"off"},uq=["aria-expanded"],cq={class:"btn-group",role:"group","aria-label":"Type"},pq=["aria-pressed"],fq=["aria-pressed"],hq=["aria-pressed"],mq=["aria-pressed"],gq={class:"dropdown"},vq={class:"btn dropdown-toggle",type:"button",id:"dropdownSort","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},yq={class:"filter-btn-value"},bq={class:"sr-only"},wq={class:"dropdown-menu","aria-labelledby":"dropdownSort"},kq={class:"form-check dropdown-item"},Cq=["onClick","checked","id"],Eq=["for"],Sq=["inert"],Nq={class:"btn dropdown-toggle",type:"button",id:"dropdownStatus","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},Rq={class:"filter-btn-value"},Pq={class:"dropdown-menu","aria-labelledby":"dropdownStatus"},Aq={key:0,class:"form-check dropdown-item"},Dq=["id"],Tq=["for"],Oq={key:1,class:"dashboard-active-filters dashboard-active-filters-row"},Iq=["onClick","aria-label","title"],Mq=["aria-busy"],Vq={class:"paper-table-head",role:"row"},qq=["aria-sort"],_q=["aria-sort"],$q=["aria-sort"],Lq=["aria-sort"],Fq={key:0,class:"paper-table-row paper-table-skeleton",role:"row","aria-hidden":"true"},Uq=["onClick"],Bq={class:"cell-anon",role:"cell"},zq=["aria-label","title"],Hq={class:"project-type-svg","aria-hidden":"true"},jq=["href"],Gq={class:"anon-text"},Wq={class:"anon-title"},Kq=["title","href"],Yq={class:"rn-owner"},Xq={class:"rn-repo"},Jq={key:1,class:"repo-name repo-name-static"},Qq={class:"rn-owner"},Zq={class:"rn-repo"},xq={key:2,class:"type-badge type-coauthor",title:"You are a co-author on this anonymization"},e_={key:0,class:"anon-sub"},t_=["title"],n_={class:"id-head"},s_={class:"id-tail"},o_=["title"],i_=["title"],r_=["textContent"],a_={class:"dashboard-row-meta",role:"presentation"},l_={class:"cell-status",role:"cell"},d_={class:"status-line"},u_=["textContent"],c_=["onClick"],p_=["textContent","title"],f_=["title"],h_=["href"],m_={key:3,class:"status-action-line"},g_={key:0,class:"status-stuck"},v_=["onClick","data-project-actions","aria-controls","aria-expanded"],y_=["onClick"],b_={key:5,class:"status-sub status-sub-date status-sub-removed"},w_={key:6,class:"status-sub status-sub-date"},k_=["data-unit","aria-label"],C_={class:"cell-expires",role:"cell"},E_={key:0,class:"expires-never"},S_=["textContent"],N_=["title"],R_={key:3,class:"expires-past"},P_={key:4,class:"expires-past"},A_={key:5,class:"empty-dash","aria-label":"Not applicable"},D_={class:"cell-actions",role:"cell"},T_=["onClick","disabled","title","aria-label"],O_={class:"sr-only","aria-live":"polite"},I_={class:"project-type-svg","aria-hidden":"true"},M_=["href"],V_={class:"copy-url-label","aria-hidden":"true"},q_=["href","aria-label"],__=["href","title","aria-label"],$_=["title","aria-label"],L_=["title","aria-label"],F_=["aria-label"],U_={key:6,class:"dropdown is-disabled"},B_=["aria-label"],z_={key:7,class:"dropdown"},H_=["data-project-actions","aria-label"],j_={class:"dropdown-menu dropdown-menu-right"},G_=["onClick","aria-controls","aria-expanded"],W_=["href"],K_=["href"],Y_=["onClick","disabled"],X_=["href"],J_=["onClick"],Q_=["onClick"],Z_=["onClick"],x_={key:5},e$=["onClick"],t$={key:1,class:"project-details-row",role:"row"},n$=["id","onKeydown"],s$={class:"project-details-heading"},o$=["onClick"],i$={class:"project-details-list"},r$={key:0},a$={key:1},l$={key:0},d$={key:2},u$={key:0,class:"project-progress-help"},c$=["href"],p$=["onSubmit"],f$=["for"],h$=["id"],m$={class:"project-name-controls"},g$=["id","aria-describedby","disabled"],v$=["disabled"],y$={key:0,class:"project-name-error",role:"alert"},b$={key:1,role:"status"},w$={key:0,class:"paper-table-empty"},k$={key:0},C$={key:1},E$={class:"paper-table-empty-actions"},S$={key:1,href:"/anonymize",class:"btn btn-ink"},N$={key:0,class:"dashboard-pagination"},R$={key:0,role:"alert"},P$=["disabled"];function up(e,t){let s=Xe("quota-usage"),i=Ae("field"),o=Ae("form");return a(),l("div",_V,[n("div",$V,[n("div",LV,[n("div",FV,[n("div",null,[n("div",UV,[t[27]||(t[27]=n("h1",{class:"paper-page-title"},"My work",-1)),!e.loading&&e.isPlainView()?(a(),l("span",BV,[g(c(e.fmt?.number(e.dashboardTotals?.filtered??e.filteredItems?.length))+" project",1),(e.dashboardTotals?.filtered??e.filteredItems?.length)!==1?(a(),l("span",zV,"s")):f("v-if",!0)])):f("v-if",!0)]),t[28]||(t[28]=n("p",{class:"paper-page-lede"},"Manage your anonymous links.",-1))]),n("div",HV,[n("details",{class:"dashboard-quota",open:e.quotaExpanded,onToggle:t[1]||(t[1]=r=>e.quotaExpanded=r.target.open),onKeydown:t[2]||(t[2]=kt(ae(r=>e.closeQuota(),["prevent","stop"]),["esc"]))},[n("summary",{"aria-controls":"dashboard-usage","aria-expanded":e.quotaExpanded,class:P(e.quota?"quota-level-"+e.quota.repository.level:""),style:Ie(e.quota&&!e.quota.repository.unlimited?{"--quota-pct":e.quota.repository.percent+"%"}:null)},[(a(),l("svg",{class:P(["quota-summary-ring",e.quota?"quota-"+e.quota.repository.level:""]),viewBox:"0 0 24 24","aria-hidden":"true"},[t[29]||(t[29]=n("circle",{class:"quota-ring-track",cx:"12",cy:"12",r:"9"},null,-1)),e.quota&&!e.quota.repository.unlimited?(a(),l("circle",{key:0,class:"quota-ring-fill",cx:"12",cy:"12",r:"9",pathLength:"100","stroke-dasharray":e.quota.repository.percent+" 100"},null,8,WV)):f("v-if",!0),e.quota?.repository.unlimited?(a(),l("path",KV)):f("v-if",!0)],2)),t[31]||(t[31]=n("span",{class:"quota-summary-label"},"Usage",-1)),e.quota?(a(),l("span",YV,[g(c(e.fmt.number(e.quota.repository.used)),1),e.quota.repository.unlimited?f("v-if",!0):(a(),l("span",XV," / "+c(e.fmt.number(e.quota.repository.total)),1)),t[30]||(t[30]=g(" repos",-1))])):f("v-if",!0),t[32]||(t[32]=n("svg",{class:"project-type-svg quota-summary-chevron","aria-hidden":"true"},[n("use",{href:"#project-icon-chevron"})],-1))],14,GV),n("div",JV,[n("div",QV,[t[34]||(t[34]=n("h2",null,"Account usage",-1)),n("button",{type:"button",class:"project-close","aria-label":"Close usage",onClick:t[0]||(t[0]=r=>e.closeQuota())},[...t[33]||(t[33]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])])]),e.quota?(a(),Gt(s,{key:0,quota:e.quota,fmt:e.fmt},null,8,["quota","fmt"])):(a(),l("p",ZV,"Loading usage\u2026"))])],40,jV),t[35]||(t[35]=Ee('New anonymization',1))])]),f(" Result count + active filter chips "),e.loading?f("v-if",!0):(a(),l("div",xV,[e.showViewTabs()?(a(),l("div",eq,[n("button",{type:"button","aria-pressed":e.statusView()==="active",onClick:t[3]||(t[3]=r=>e.setStatusView("active")),title:"Every project except removed links"},"Current",8,tq),e.attentionCount()>0||e.statusView()==="attention"?(a(),l("button",{key:0,type:"button","aria-pressed":e.statusView()==="attention",onClick:t[4]||(t[4]=r=>e.setStatusView("attention")),"aria-label":"Needs attention "+e.attentionCount()},[t[36]||(t[36]=n("span",{class:"dashboard-attention-prefix"},"Needs ",-1)),t[37]||(t[37]=n("span",null,"attention",-1)),t[38]||(t[38]=g()),n("span",{class:P(["attention-count",{"has-attention":e.attentionCount()>0}])},c(e.attentionCount()),3)],8,nq)):f("v-if",!0),e.removedCount>0||e.statusView()==="removed"||e.removedCount==null&&e.dashboardTotals?.total>e.dashboardTotals?.filtered?(a(),l("button",{key:1,type:"button","aria-pressed":e.statusView()==="removed",onClick:t[5]||(t[5]=r=>e.setStatusView("removed")),"aria-label":"Removed "+(e.removedCount??""),title:"Links reviewers can no longer open"},[t[39]||(t[39]=g("Removed ",-1)),e.removedCount!=null?(a(),l("span",oq,c(e.fmt?.number(e.removedCount)),1)):f("v-if",!0)],8,sq)):f("v-if",!0)])):f("v-if",!0),n("span",{class:P(["dashboard-count",{"is-plain":e.isPlainView()}])},[e.isPlainView()?(a(),l("span",iq,[g(c(e.fmt?.number(e.dashboardTotals?.filtered??e.filteredItems?.length))+" project",1),(e.dashboardTotals?.filtered??e.filteredItems?.length)!==1?(a(),l("span",rq,"s")):f("v-if",!0)])):(a(),l("span",aq,c(e.fmt?.number(e.dashboardTotals?.filtered??e.filteredItems?.length))+" shown",1))],2)])),f(" Search + filters "),D((a(),l("form",{class:"w-100 dashboard-filter-row","aria-label":"Filter anonymizations","accept-charset":"UTF-8",onSubmit:t[13]||(t[13]=ae(r=>e.submitForm(r,()=>{r.preventDefault()}),["prevent"]))},[n("div",lq,[D(n("input",dq,null,512),[[i,{state:e.viewState,set:r=>{e.search=r},value:e.search,form:null,options:{}}]])]),n("button",{class:"btn dashboard-filters-toggle",type:"button","aria-expanded":e.filtersExpanded,"aria-controls":"dashboard-filter-controls",onClick:t[6]||(t[6]=r=>e.filtersExpanded=!e.filtersExpanded)},[...t[40]||(t[40]=[g("Filters",-1),n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-filter"})],-1)])],8,uq),n("div",{id:"dashboard-filter-controls",class:P(["dashboard-filter-controls",{expanded:e.filtersExpanded}])},[n("div",cq,[n("button",{type:"button",class:P(["btn",{"btn-primary":e.typeFilter==="all"}]),onClick:t[7]||(t[7]=r=>e.typeFilter="all"),"aria-pressed":e.typeFilter==="all"},"All",10,pq),n("button",{type:"button",class:P(["btn dashboard-type-filter",{"btn-primary":e.typeFilter==="repo"}]),title:"Repositories",onClick:t[8]||(t[8]=r=>e.typeFilter="repo"),"aria-pressed":e.typeFilter==="repo"},[...t[41]||(t[41]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})],-1),n("span",{class:"type-filter-label"},"Repos",-1)])],10,fq),n("button",{type:"button",class:P(["btn dashboard-type-filter",{"btn-primary":e.typeFilter==="pr"}]),title:"Pull requests",onClick:t[9]||(t[9]=r=>e.typeFilter="pr"),"aria-pressed":e.typeFilter==="pr"},[...t[42]||(t[42]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-type-pr"})],-1),n("span",{class:"type-filter-label"},"PRs",-1)])],10,hq),n("button",{type:"button",class:P(["btn dashboard-type-filter",{"btn-primary":e.typeFilter==="gist"}]),title:"Gists",onClick:t[10]||(t[10]=r=>e.typeFilter="gist"),"aria-pressed":e.typeFilter==="gist"},[...t[43]||(t[43]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-type-gist"})],-1),n("span",{class:"type-filter-label"},"Gists",-1)])],10,mq)]),n("div",{id:"dashboard-extra-filters",class:P(["dashboard-extra-filters",{expanded:e.filtersExpanded}])},[n("div",gq,[n("button",vq,[t[45]||(t[45]=n("span",{class:"filter-btn-label"},"Sort",-1)),n("span",yq,c(e.sortLabel()),1),(a(),l("svg",{class:P(["project-type-svg sort-direction",{ascending:!e.sortDesc()}]),"aria-hidden":"true"},[...t[44]||(t[44]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)),n("span",bq,c(e.sortDesc()?"descending":"ascending"),1)]),n("div",wq,[t[46]||(t[46]=n("h6",{class:"dropdown-header"},"Order by",-1)),(a(!0),l(q,null,x(e.sortFields,(r,d,p)=>(a(),l("div",kq,[n("input",{class:"form-check-input",type:"radio",name:"sort",onClick:u=>e.setSort(d,r.defaultDesc),checked:e.isSortedBy(d),id:"sort-"+p},null,8,Cq),n("label",{class:"form-check-label",for:"sort-"+p},c(r?.label),9,Eq)]))),256)),t[47]||(t[47]=n("div",{class:"dropdown-divider"},null,-1)),n("button",{type:"button",class:"dropdown-item",onClick:t[11]||(t[11]=r=>e.toggleSortDirection())},c(e.sortDesc()?"Switch to ascending":"Switch to descending"),1)])]),n("div",{class:P(["dropdown dashboard-status-filter",{"is-view-hidden":e.statusView()==="removed"}]),inert:e.statusView()==="removed"?!0:null},[n("button",Nq,[t[48]||(t[48]=n("span",{class:"filter-btn-label"},"Status",-1)),n("span",Rq,c(e.statusChipKeys().length===0?"Any":e.statusChipKeys().length===1?"Hiding "+(e.statusKeyLabels[e.statusChipKeys()[0]]||"").toLowerCase():e.statusChipKeys().length+" hidden"),1)]),n("div",Pq,[t[49]||(t[49]=n("h6",{class:"dropdown-header"},"Show statuses",-1)),n("button",{type:"button",class:P(["dropdown-item status-preset",{active:e.statusChipKeys().length===0}]),onClick:t[12]||(t[12]=r=>e.statusChipKeys().forEach(d=>{e.filters.status[d]=!0}))},"Any status",2),t[50]||(t[50]=n("div",{class:"dropdown-divider"},null,-1)),(a(!0),l(q,null,x(e.statusKeyLabels,(r,d,p)=>(a(),l(q,{key:d},[d!=="removed"?(a(),l("div",Aq,[D(n("input",{class:"form-check-input",type:"checkbox",id:"status-"+d},null,8,Dq),[[i,{state:e.viewState,set:u=>{e.filters.status[d]=u},value:e.filters?.status[d],form:null,options:{}}]]),n("label",{class:"form-check-label",for:"status-"+d},c(r),9,Tq)])):f("v-if",!0)],64))),128))])],10,Sq)],2)],2)],32)),[[o,e.viewState]]),!e.loading&&e.showClearFilters()?(a(),l("div",Oq,[(a(!0),l(q,null,x(e.statusChipKeys(),r=>(a(),l("button",{key:r,type:"button",class:"filter-chip",onClick:d=>e.filters.status[r]=!0,"aria-label":"Show "+e.statusKeyLabels[r]+" again",title:"Show "+e.statusKeyLabels[r]+" again"},[g("Hiding "+c((e.statusKeyLabels[r]||"").toLowerCase()),1),t[51]||(t[51]=n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1))],8,Iq))),128)),e.typeFilter!=="all"?(a(),l("button",{key:0,type:"button",class:"filter-chip",onClick:t[14]||(t[14]=r=>e.typeFilter="all"),"aria-label":"Show all project types"},[g(c(e.typeFilter==="repo"?"Repositories":e.typeFilter==="pr"?"Pull requests":"Gists"),1),t[52]||(t[52]=n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1))])):f("v-if",!0),e.showClearFilters()?(a(),l("button",{key:1,type:"button",class:"btn-link-inline",onClick:t[15]||(t[15]=r=>e.clearFilters())},"Clear filters")):f("v-if",!0)])):f("v-if",!0)]),f(" Table "),n("div",{class:P(["paper-table paper-table-dashboard",{"is-removed-view":e.statusView()==="removed"}]),role:"table","aria-label":"Anonymizations","aria-busy":e.loading},[n("div",Vq,[n("div",{role:"columnheader","aria-sort":e.isSortedBy("_label")?e.sortDesc()?"descending":"ascending":"none"},[n("button",{type:"button",class:P(["sortable",{active:e.isSortedBy("_label")}]),onClick:t[16]||(t[16]=r=>e.setSort("_label"))},[t[54]||(t[54]=g(" Project ",-1)),e.isSortedBy("_label")?(a(),l("svg",{key:0,class:P(["project-type-svg sort-direction",{ascending:!e.sortDesc()}]),"aria-hidden":"true"},[...t[53]||(t[53]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)],8,qq),n("div",{role:"columnheader","aria-sort":e.isSortedBy("status")?e.sortDesc()?"descending":"ascending":"none"},[n("button",{type:"button",class:P(["sortable",{active:e.isSortedBy("status")}]),onClick:t[17]||(t[17]=r=>e.setSort("status"))},[t[56]||(t[56]=g(" Status ",-1)),e.isSortedBy("status")?(a(),l("svg",{key:0,class:P(["project-type-svg sort-direction",{ascending:!e.sortDesc()}]),"aria-hidden":"true"},[...t[55]||(t[55]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)],8,_q),n("div",{role:"columnheader",class:"num","aria-sort":e.isSortedBy("pageView")?e.sortDesc()?"descending":"ascending":"none"},[n("button",{type:"button",class:P(["sortable",{active:e.isSortedBy("pageView")}]),onClick:t[18]||(t[18]=r=>e.setSort("pageView"))},[t[58]||(t[58]=g(" Views ",-1)),e.isSortedBy("pageView")?(a(),l("svg",{key:0,class:P(["project-type-svg sort-direction",{ascending:!e.sortDesc()}]),"aria-hidden":"true"},[...t[57]||(t[57]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)],8,$q),n("div",{role:"columnheader","aria-sort":e.isSortedBy("options.expirationDate")?e.sortDesc()?"descending":"ascending":"none"},[n("button",{type:"button",class:P(["sortable",{active:e.isSortedBy("options.expirationDate")}]),onClick:t[19]||(t[19]=r=>e.setSort("options.expirationDate"))},[t[60]||(t[60]=g(" Expires ",-1)),e.isSortedBy("options.expirationDate")?(a(),l("svg",{key:0,class:P(["project-type-svg sort-direction",{ascending:!e.sortDesc()}]),"aria-hidden":"true"},[...t[59]||(t[59]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)],8,Lq),t[61]||(t[61]=n("div",{role:"columnheader",class:"col-link"},[n("span",{class:"sr-only"},"Actions")],-1))]),f(" Loading skeleton: keeps the layout stable while the three lists load "),(a(),l(q,null,x([1,2,3,4],(r,d)=>(a(),l(q,null,[e.loading?(a(),l("div",Fq,[...t[62]||(t[62]=[n("div",{class:"cell-anon",role:"cell"},[n("span",{class:"skeleton skeleton-badge"}),n("div",{class:"anon-text"},[n("span",{class:"skeleton skeleton-line",style:{width:"38%"}}),n("span",{class:"skeleton skeleton-line skeleton-line-sm",style:{width:"56%"}})])],-1),n("div",{class:"cell-status",role:"cell"},[n("span",{class:"skeleton skeleton-line",style:{width:"60%"}})],-1),n("div",{class:"cell-views num",role:"cell"},[n("span",{class:"skeleton skeleton-line",style:{width:"40%"}})],-1),n("div",{class:"cell-expires",role:"cell"},[n("span",{class:"skeleton skeleton-line",style:{width:"55%"}})],-1),n("div",{class:"cell-actions",role:"cell"},null,-1)])])):f("v-if",!0)],64))),64)),(a(!0),l(q,null,x(e.filteredItems,(r,d)=>(a(),l(q,{key:r?._type+":"+(r?._id||d)},[e.loading?f("v-if",!0):(a(),l("div",{key:0,class:P(["paper-table-row",{"repo-inactive":r?._statusKey=="expired"||r?._statusKey=="removed","repo-error":r?.status=="error","row-clickable":!!r?._viewUrl}]),role:"row",onClick:p=>e.openItem(r,p)},[n("div",Bq,[n("span",{class:"project-type-icon",role:"img","aria-label":r?._type==="repo"?"Repository":r?._type==="pr"?"Pull request":"Gist",title:r?._type==="repo"?"Repository":r?._type==="pr"?"Pull request":"Gist"},[(a(),l("svg",Hq,[n("use",{href:"#project-type-"+r._type},null,8,jq)]))],8,zq),n("div",Gq,[n("div",Wq,[r?._viewUrl?(a(),l("a",{key:0,class:"repo-name",title:r._label,href:e.safeUrl(r?._viewUrl)},[(r?._label||"").indexOf("/")>0?(a(),l(q,{key:0},[n("span",Yq,c(r._label.slice(0,r._label.indexOf("/")+1)),1),t[63]||(t[63]=n("wbr",null,null,-1)),n("span",Xq,c(r._label.slice(r._label.indexOf("/")+1)),1)],64)):(a(),l(q,{key:1},[g(c(r?._label),1)],64))],8,Kq)):f("v-if",!0),r?._viewUrl?f("v-if",!0):(a(),l("span",Jq,[(r?._label||"").indexOf("/")>0?(a(),l(q,{key:0},[n("span",Qq,c(r._label.slice(0,r._label.indexOf("/")+1)),1),t[64]||(t[64]=n("wbr",null,null,-1)),n("span",Zq,c(r._label.slice(r._label.indexOf("/")+1)),1)],64)):(a(),l(q,{key:1},[g(c(r?._label),1)],64))])),r?.role==="coauthor"?(a(),l("span",xq,"Co-author")):f("v-if",!0)]),r?._id||r?._type==="repo"&&r?.source?.commit||r?.conference?(a(),l("div",e_,[r?._id?(a(),l("code",{key:0,class:"anonymous-id",title:r._id},[r._id.length>14?(a(),l(q,{key:0},[n("span",n_,c(r._id.slice(0,-6)),1),n("span",s_,c(r._id.slice(-6)),1)],64)):(a(),l(q,{key:1},[g(c(r._id),1)],64))],8,t_)):f("v-if",!0),r?._type==="repo"&&r?.source?.commit?(a(),l("span",{key:1,class:"commit-hash",title:r.source.commit},c(r.source.commit.substring(0,7)),9,o_)):f("v-if",!0),r?.conference?(a(),l("span",{key:2,class:"cell-conf conf-tag",title:"Conference: "+r.conference},[t[65]||(t[65]=n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-conference"})],-1)),n("span",{class:"conf-name",textContent:c(r?.conference)},null,8,r_)],8,i_)):f("v-if",!0)])):f("v-if",!0)])]),n("div",a_,[n("div",l_,[n("div",d_,[n("span",{class:P(["status-dot","status-"+r?._statusKey]),"aria-hidden":"true"},null,2),n("span",{class:"status-word",textContent:c(e.fmt?.statusLabel(r?.status))},null,8,u_),r?.status=="removed"?(a(),l(q,{key:0},[t[66]||(t[66]=n("span",{class:"seg-sep status-removed-sep","aria-hidden":"true"},"\xB7",-1)),n("button",{type:"button",class:"project-attention-action status-enable",onClick:ae(p=>e.refreshItem(r),["stop"]),title:"Reviewers can no longer open this link"},"Enable again",8,c_)],64)):f("v-if",!0)]),r?.status=="error"&&r?.statusMessage?(a(),l("div",{key:0,class:"status-sub status-sub-error",textContent:c(e.fmt?.statusMsg(r?.statusMessage)),title:r?.statusMessage},null,8,p_)):f("v-if",!0),r?._stale?(a(),l("div",{key:1,class:"status-sub status-sub-warn",title:"Last activity "+e.fmt?.humanTime(r?.anonymizeDate||r?.lastView)},c(e.idleText(r)),9,f_)):f("v-if",!0),r.status==="error"&&r._editUrl?(a(),l("a",{key:2,class:"project-attention-action",href:e.safeUrl(r._editUrl)},"Fix source",8,h_)):f("v-if",!0),r._stale||r._broken?(a(),l("div",m_,[r._stale&&!r._broken?(a(),l("span",g_,[...t[67]||(t[67]=[g("May be stuck",-1),n("span",{"aria-hidden":"true"}," \xB7 ",-1)])])):f("v-if",!0),r._stale||r._broken?(a(),l("button",{key:1,type:"button",class:"project-attention-action",onClick:ae(p=>e.showProjectDetails(r),["stop"]),"data-project-actions":r._broken?encodeURIComponent(r._type+":"+r._id):null,"aria-controls":r._broken?e.projectDetailsId(r):null,"aria-expanded":r._broken?e.selectedProject===r:null},c(r._broken?"Review details":"Check progress"),9,v_)):f("v-if",!0)])):f("v-if",!0),r?.status=="expired"?(a(),l("button",{key:4,type:"button",class:"project-attention-action",onClick:ae(p=>e.extendItem(r),["stop"]),title:"Reviewers can no longer open this link"},"Extend 6 months",8,y_)):f("v-if",!0),r?.status=="removed"&&r?.anonymizeDate?(a(),l("div",b_,"anonymized "+c(e.fmt?.humanTime(r?.anonymizeDate)),1)):f("v-if",!0),r?.status!="error"&&r?.status!="expired"&&r?.status!="removed"&&!r?._stale&&r?.anonymizeDate?(a(),l("div",w_," anonymized "+c(e.fmt?.humanTime(r?.anonymizeDate)),1)):f("v-if",!0)]),n("div",{class:"cell-views num",role:"cell","data-unit":r.pageView===1?"view":"views","aria-label":e.fmt.number(r.pageView)+(r.pageView===1?" view":" views")},[t[68]||(t[68]=n("svg",{class:"project-type-svg mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1)),n("span",null,c(e.fmt.number(r.pageView)),1)],8,k_),n("div",C_,[t[72]||(t[72]=n("svg",{class:"project-type-svg mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),r?._expiry?.kind==="never"?(a(),l("span",E_,"No expiry")):f("v-if",!0),r?._expiry?.kind==="date"&&!r?._expiry?.soon?(a(),l("span",{key:1,textContent:c((e.fmt?.humanTime(r?._expiry?.date)||"").replace(/^on /,""))},null,8,S_)):f("v-if",!0),r?._expiry?.kind==="date"&&r?._expiry?.soon?(a(),l("span",{key:2,class:"expires-soon",title:"Expires "+e.fmt?.humanTime(r?._expiry?.date)},[t[69]||(t[69]=n("svg",{class:"project-type-svg expires-soon-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),t[70]||(t[70]=n("span",{class:"expires-soon-prefix"},"Expires ",-1)),g(c(r._expiry.soon),1)],8,N_)):f("v-if",!0),r?._expiry?.kind==="expired"&&r?._expiry?.date?(a(),l("span",R_,[t[71]||(t[71]=n("span",{class:"expires-past-prefix"},"Expired ",-1)),g(c(r?._expiry?.label||e.fmt?.humanTime(r?._expiry?.date)),1)])):f("v-if",!0),r?._expiry?.kind==="expired"&&!r?._expiry?.date?(a(),l("span",P_,"Expired")):f("v-if",!0),r?._expiry?.kind==="none"?(a(),l("span",A_,"\u2014")):f("v-if",!0)])]),n("div",D_,[r._viewUrl&&!(r?._statusKey=="expired"||r?._statusKey=="removed")?(a(),l("button",{key:0,type:"button",class:"copy-url",onClick:ae(p=>e.copyLink(r),["stop"]),disabled:!!e.copyingId,title:"Copy link: "+r._viewUrl,"aria-label":"Copy anonymous link for "+r._label},[n("span",O_,c(e.copyingId===r._type+":"+r._id?"Link copied":""),1),(a(),l("svg",I_,[n("use",{href:e.copyingId===r._type+":"+r._id?"#ui-icon-check":"#project-icon-copy"},null,8,M_)])),n("span",V_,c(e.copyingId===r._type+":"+r._id?"Copied":"Copy link"),1)],8,T_)):f("v-if",!0),r._viewUrl&&!(r?._statusKey=="expired"||r?._statusKey=="removed")?(a(),l("a",{key:1,class:"row-edit row-open",href:e.safeUrl(r._viewUrl),target:"_blank",rel:"noopener",title:"Open what reviewers see","aria-label":"Open anonymous page for "+r._label},[...t[73]||(t[73]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-external-link"})],-1)])],8,q_)):f("v-if",!0),r?._editUrl&&!r?._broken&&r?._statusKey!="removed"?(a(),l("a",{key:2,class:"row-edit",href:e.safeUrl(r._editUrl),title:"Edit "+r._name,"aria-label":"Edit "+r._name},[...t[74]||(t[74]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1)])],8,__)):f("v-if",!0),!(r._viewUrl&&!(r?._statusKey=="expired"||r?._statusKey=="removed"))&&r?._statusKey!="removed"&&r?._statusKey!="expired"?(a(),l("button",{key:3,type:"button",class:"copy-url is-disabled","aria-disabled":"true",onClick:t[20]||(t[20]=ae(()=>{},["stop"])),title:r?._statusKey=="expired"?"Link expired: reviewers can no longer open it":r?._statusKey=="removed"?"Link offline: reviewers can no longer open it":"No link: this record is incomplete","aria-label":"Copy link unavailable for "+r._label},[...t[75]||(t[75]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-copy"})],-1),n("span",{class:"copy-url-label","aria-hidden":"true"},"Copy link",-1)])],8,$_)):f("v-if",!0),!(r._viewUrl&&!(r?._statusKey=="expired"||r?._statusKey=="removed"))&&r?._statusKey!="removed"&&r?._statusKey!="expired"?(a(),l("button",{key:4,type:"button",class:"row-edit row-open is-disabled","aria-disabled":"true",onClick:t[21]||(t[21]=ae(()=>{},["stop"])),title:r?._statusKey=="expired"?"Link expired: reviewers can no longer open it":r?._statusKey=="removed"?"Link offline: reviewers can no longer open it":"No link: this record is incomplete","aria-label":"Open unavailable for "+r._label},[...t[76]||(t[76]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-external-link"})],-1)])],8,L_)):f("v-if",!0),r?._editUrl&&!r?._broken?f("v-if",!0):(a(),l("button",{key:5,type:"button",class:"row-edit is-disabled","aria-disabled":"true",onClick:t[22]||(t[22]=ae(()=>{},["stop"])),title:"Can't edit: this record is incomplete","aria-label":"Edit unavailable for "+r._label},[...t[77]||(t[77]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1)])],8,F_)),r?._broken?(a(),l("div",U_,[n("button",{type:"button",class:"btn btn-icon-dots is-disabled","aria-disabled":"true",onClick:t[23]||(t[23]=ae(()=>{},["stop"])),title:"No actions: this record is incomplete. Use Review details.","aria-label":"No actions available for "+r._label},[...t[78]||(t[78]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-more"})],-1)])],8,B_)])):f("v-if",!0),r?._broken?f("v-if",!0):(a(),l("div",z_,[n("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","data-project-actions":encodeURIComponent(r._type+":"+r._id),"aria-label":"Actions for "+r?._name},[...t[79]||(t[79]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-more"})],-1)])],8,H_),n("div",j_,[n("button",{type:"button",class:"dropdown-item",onClick:p=>e.showProjectDetails(r),"aria-controls":e.projectDetailsId(r),"aria-expanded":e.selectedProject===r},"Project details & name",8,G_),n("a",{class:"dropdown-item",href:e.safeUrl(r?._viewUrl)}," View ",8,W_),r?._type==="repo"&&r?.options?.page&&r?.status=="ready"?(a(),l("a",{key:0,class:"dropdown-item",target:"_self",href:e.safeUrl("/w/"+r?.repoId+"/")}," View page ",8,K_)):f("v-if",!0),r?._viewUrl?(a(),l("button",{key:1,type:"button",class:"dropdown-item",onClick:p=>e.copyLink(r),disabled:!!e.copyingId}," Copy anonymous link ",8,Y_)):f("v-if",!0),n("a",{class:"dropdown-item",href:e.safeUrl(r?._editUrl)}," Edit ",8,X_),r?.status=="ready"||r?.status=="error"?(a(),l("button",{key:2,type:"button",class:"dropdown-item",onClick:p=>e.refreshItem(r)}," Force update ",8,J_)):f("v-if",!0),r?.status=="removed"?(a(),l("button",{key:3,type:"button",class:"dropdown-item",onClick:p=>e.refreshItem(r)}," Enable ",8,Q_)):f("v-if",!0),r?.status=="expired"?(a(),l("button",{key:4,type:"button",class:"dropdown-item",onClick:p=>e.extendItem(r)}," Extend 6 months ",8,Z_)):f("v-if",!0),(r?.status=="ready"||r?.status=="expired"||r?.status=="error")&&r?.role!=="coauthor"?(a(),l("div",x_,[t[80]||(t[80]=n("div",{class:"dropdown-divider"},null,-1)),n("button",{type:"button",class:"dropdown-item dropdown-item-danger",onClick:p=>e.removeItem(r)}," Remove ",8,e$)])):f("v-if",!0)])]))])],10,Uq)),!e.loading&&e.selectedProject===r?(a(),l("div",t$,[n("div",{class:"project-details",role:"cell","aria-colspan":"5",id:e.projectDetailsId(r),tabindex:"-1",onKeydown:kt(ae(p=>e.closeProjectDetails(r),["stop"]),["esc"])},[n("div",s$,[t[82]||(t[82]=n("h2",null,"Project details",-1)),n("button",{type:"button",class:"project-close",onClick:p=>e.closeProjectDetails(r),"aria-label":"Close project details"},[...t[81]||(t[81]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])],8,o$)]),n("dl",i$,[n("div",null,[t[83]||(t[83]=n("dt",null,"Source",-1)),n("dd",null,c(r._source||"Not available"),1)]),n("div",null,[t[84]||(t[84]=n("dt",null,"Anonymous ID",-1)),n("dd",null,[n("code",null,c(r._id||"Missing identifier"),1)])]),r.source?.commit?(a(),l("div",r$,[t[85]||(t[85]=n("dt",null,"Commit",-1)),n("dd",null,[n("code",null,c(r.source.commit),1)])])):f("v-if",!0),r.conference?(a(),l("div",a$,[t[86]||(t[86]=n("dt",null,"Conference",-1)),n("dd",null,c(r.conference),1)])):f("v-if",!0),n("div",null,[t[87]||(t[87]=n("dt",null,"Status",-1)),n("dd",null,[g(c(e.fmt.statusLabel(r.status)),1),r.statusMessage?(a(),l("span",l$," \xB7 "+c(e.fmt.statusMsg(r.statusMessage)),1)):f("v-if",!0)])]),r.anonymizeDate?(a(),l("div",d$,[t[88]||(t[88]=n("dt",null,"Last anonymized",-1)),n("dd",null,c(e.fmt.humanTime(r.anonymizeDate)),1)])):f("v-if",!0)]),r._stale?(a(),l("p",u$,"This download has not progressed recently. Check the source access and selected branch before retrying.")):f("v-if",!0),r._editUrl?(a(),l("a",{key:1,class:"project-attention-action",href:e.safeUrl(r._editUrl)},c(e.needsAttention(r)?"Check source settings":"Edit anonymization settings"),9,c$)):f("v-if",!0),r._id?(a(),l("form",{key:2,class:"project-name-form",onSubmit:ae(p=>e.saveProjectName(r),["prevent"])},[n("label",{for:"project-name-"+r._type+"-"+r._id},"Project name",8,f$),n("p",{id:"project-name-help-"+r._type+"-"+r._id},"Only you see this name. Leave it blank to use the default.",8,h$),n("div",m$,[D(n("input",{class:"form-control",type:"text",id:"project-name-"+r._type+"-"+r._id,"aria-describedby":"project-name-help-"+r._type+"-"+r._id,maxlength:"100","onUpdate:modelValue":t[24]||(t[24]=p=>e.projectName=p),disabled:e.nameSaving},null,8,g$),[[pt,e.projectName]]),n("button",{class:"btn btn-ink",type:"submit",disabled:e.nameSaving},c(e.nameSaving?"Saving\u2026":"Save name"),9,v$)]),e.nameError?(a(),l("p",y$,c(e.nameError),1)):f("v-if",!0),e.nameMessage?(a(),l("p",b$,c(e.nameMessage),1)):f("v-if",!0)],40,p$)):f("v-if",!0)],40,n$)])):f("v-if",!0)],64))),128)),!e.loading&&e.filteredItems?.length==0?(a(),l("div",w$,[t[90]||(t[90]=n("svg",{class:"project-type-svg project-empty-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1)),e.hasProjects()?f("v-if",!0):(a(),l("span",k$,"You have no anonymizations yet.")),e.hasProjects()?(a(),l("span",C$,"Nothing matches the current filters.")):f("v-if",!0),n("div",E$,[e.hasActiveFilters()?(a(),l("button",{key:0,type:"button",class:"btn btn-outline-ink",onClick:t[25]||(t[25]=r=>e.clearFilters())},"Clear filters")):f("v-if",!0),e.hasProjects()?f("v-if",!0):(a(),l("a",S$,[...t[89]||(t[89]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-plus"})],-1),g(" New anonymization",-1)])]))])])):f("v-if",!0)],10,Mq)]),e.dashboardCursor||e.dashboardError?(a(),l("div",N$,[e.dashboardError?(a(),l("p",R$,c(e.dashboardError),1)):f("v-if",!0),e.dashboardCursor?(a(),l("button",{key:1,type:"button",class:"btn",onClick:t[26]||(t[26]=r=>e.loadMoreProjects()),disabled:e.loadingMore},c(e.loadingMore?"Loading\u2026":"Load more projects"),9,P$)):f("v-if",!0)])):f("v-if",!0)])}var A$={class:"viewer-bar"},D$={class:"vb-left"},T$=["aria-label","title"],O$=["href","title"],I$={class:"vb-artifact-id"},M$={class:"vb-right"},V$=["title"],q$={class:"vb-help"},_$=["aria-expanded"],$$={key:0,class:"acct-menu vb-help-menu",role:"menu"},L$=["aria-label","title"],F$={class:"ui-icon","aria-hidden":"true"},U$=["href"],B$={key:1,class:"acct"},z$=["aria-label","aria-expanded"],H$=["src"],j$={key:1,class:"acct-initial"},G$={key:0,class:"acct-menu",role:"menu"},W$={class:"acct-menu-head"},K$={key:2,class:"vb-signin",href:"/signin",target:"_self"},Y$={key:0,class:"vb-context"},X$=["href","title"],J$={key:0,class:"vb-context-date"},Q$=["aria-label"],Z$={class:"ui-icon","aria-hidden":"true"},x$=["href"],eL=["textContent"],tL={class:"leftCol-head"},nL={class:"leftCol-search"},sL={class:"tree-search-box"},oL=["href"],iL={type:"text",class:"tree-search-input",placeholder:"Search files","aria-label":"Search files"},rL=["title","href"],aL={class:"leftCol-body"},lL={key:0,class:"paper-inline-warning",role:"alert"},dL={key:1,class:"paper-inline-warning",role:"alert"},uL={class:"explorer-main"},cL={class:"breadcrumb paths","aria-label":"Path"},pL={class:"breadcrumb-item breadcrumb-root"},fL=["href","title","textContent"],hL=["aria-current","textContent"],mL=["aria-label","title"],gL={class:"ui-icon","aria-hidden":"true"},vL=["href"],yL={class:"status-bar-actions"},bL=["href"],wL={class:"d-none d-md-inline"},kL={class:"ui-icon","aria-hidden":"true"},CL=["href"],EL={class:"d-none d-md-inline"},SL=["href"],NL={class:"explorer-content"};function cp(e,t){let s=Xe("tree"),i=Xe("partial-view"),o=Ae("field");return a(),l("div",{class:P(["explorer-page",{"files-hidden":e.sidebarHidden}]),style:Ie({"--sidebar-w":e.sidebarWidth+"px"})},[n("header",A$,[n("div",D$,[t[15]||(t[15]=n("a",{class:"vb-logo",href:"/"},[g("Anonymous "),n("em",null,"GitHub")],-1)),n("button",{type:"button",class:"vb-icon vb-sidebar","aria-label":e.sidebarHidden?"Show file tree":"Hide file tree",title:e.sidebarHidden?"Show file tree":"Hide file tree",onClick:t[0]||(t[0]=r=>e.sidebarHidden=!e.sidebarHidden)},[...t[13]||(t[13]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-sidebar"})],-1)])],8,T$),e.repoId?(a(),l("a",{key:0,class:"vb-artifact",href:e.safeUrl("/r/"+e.repoId+"/"),title:"Anonymous artifact "+e.repoId},[t[14]||(t[14]=n("span",{class:"sr-only"},"Artifact ",-1)),n("span",I$,c(e.repoId),1)],8,O$)):f("v-if",!0)]),n("div",M$,[e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate?(a(),l("span",{key:0,class:"vb-snapshot",title:(e.options?.expirationDate?"Available until "+e.fmt?.date(e.options.expirationDate)+". ":"")+(e.options?.anonymizedAt&&!e.options?.publishedAt?"Older repositories have no recorded publication date. The source commit date does not establish when files became available here.":(e.options?.sourceCommitDate?"Source commit ":e.options?.anonymizedAt?"Anonymized ":"Updated ")+e.fmt?.date(e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate)+(e.options?.publishedAt?" \xB7 snapshot ready "+e.fmt?.date(e.options.publishedAt):""))},[t[16]||(t[16]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),t[17]||(t[17]=n("span",null,"Snapshot",-1)),n("span",null,c(e.fmt?.date(e.options?.publishedAt||e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate)),1)],8,V$)):f("v-if",!0),t[25]||(t[25]=n("a",{class:"vb-support",href:"https://ko-fi.com/tdurieux",target:"_blank",rel:"noopener",title:"Support Anonymous GitHub \u2014 help keep it free for researchers"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-heart"})]),n("span",null,"Support")],-1)),n("div",q$,[n("button",{type:"button",class:"vb-help-btn","aria-haspopup":"true","aria-expanded":e.helpOpen?"true":"false",onClick:t[1]||(t[1]=ae(r=>e.helpOpen=!e.helpOpen,["stop"]))},[...t[18]||(t[18]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-help"})],-1),n("span",null,"Help",-1)])],8,_$),e.helpOpen?(a(),l("div",$$,[...t[19]||(t[19]=[n("a",{role:"menuitem",href:"/faq"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-help"})]),n("span",null,[g("FAQ"),n("small",null,"How anonymization works")])],-1),n("a",{role:"menuitem",href:"https://github.com/tdurieux/anonymous_github/issues/new?template=issue_report.yml",target:"_blank",rel:"noopener"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-bug"})]),n("span",null,[g("Report a bug"),n("small",null,"About this service, not the paper")])],-1)])])):f("v-if",!0)]),n("button",{type:"button",class:"vb-icon","aria-label":e.isDarkMode?"Switch to light mode":"Switch to dark mode",title:e.isDarkMode?"Light mode":"Dark mode",onClick:t[2]||(t[2]=r=>e.darkMode(!e.isDarkMode))},[(a(),l("svg",F$,[n("use",{href:e.isDarkMode?"#ui-icon-sun":"#ui-icon-moon"},null,8,U$)]))],8,L$),e.user?(a(),l("div",B$,[n("button",{type:"button",class:"acct-chip","aria-haspopup":"true","aria-label":"Account: "+e.user?.username,"aria-expanded":e.accountOpen?"true":"false",onClick:t[3]||(t[3]=ae(r=>e.accountOpen=!e.accountOpen,["stop"]))},[e.user?.photo?(a(),l("img",{key:0,src:e.safeUrl(e.user.photo),alt:"",width:"26",height:"26"},null,8,H$)):(a(),l("span",j$,c((e.user?.username||"?").charAt(0).toUpperCase()),1))],8,z$),e.accountOpen?(a(),l("div",G$,[n("div",W$,[t[20]||(t[20]=g("Signed in as ",-1)),n("b",null,"@"+c(e.user?.username),1)]),t[21]||(t[21]=n("a",{role:"menuitem",href:"/dashboard"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-grid"})]),g("My work")],-1)),t[22]||(t[22]=n("a",{role:"menuitem",href:"/profile"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-user"})]),g("Settings")],-1)),t[23]||(t[23]=n("a",{role:"menuitem",href:"/api/user/logout",target:"_self"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-logout"})]),g("Sign out")],-1))])):f("v-if",!0)])):(a(),l("a",K$,[...t[24]||(t[24]=[n("i",{class:"fab fa-github","aria-hidden":"true"},null,-1),g("Sign in",-1)])]))])]),e.repoId?(a(),l("div",Y$,[n("a",{class:"vb-context-id",href:e.safeUrl("/r/"+e.repoId+"/"),title:"Anonymous artifact "+e.repoId},c(e.repoId),9,X$),e.options?.publishedAt||e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate?(a(),l("span",J$,"Snapshot "+c(e.fmt?.date(e.options?.publishedAt||e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate)),1)):f("v-if",!0)])):f("v-if",!0),D(n("button",{class:"sidebar-toggle",onClick:t[4]||(t[4]=r=>e.sidebarCollapsed=!e.sidebarCollapsed),"aria-label":e.sidebarCollapsed?"Show files":"Hide files"},[(a(),l("svg",Z$,[n("use",{href:e.sidebarCollapsed?"#ui-icon-folder":"#project-icon-close"},null,8,x$)])),n("span",{textContent:c(e.sidebarCollapsed?"Files":"Close")},null,8,eL)],8,Q$),[[Q,e.files?.length]]),D(n("div",{class:P(["leftCol",{collapsed:e.sidebarCollapsed}])},[n("div",tL,[t[27]||(t[27]=n("span",{class:"leftCol-eyebrow"},"Files",-1)),n("button",{class:"leftCol-close","aria-label":"Close files",onClick:t[5]||(t[5]=r=>e.sidebarCollapsed=!0)},[...t[26]||(t[26]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])])]),n("div",nL,[n("div",sL,[(a(),l("svg",{class:P(["ui-icon tree-search-icon",{"fa-spin":e.fileSearchLoading}]),"aria-hidden":"true"},[n("use",{href:e.fileSearchLoading?"#ui-icon-spinner":"#ui-icon-search"},null,8,oL)],2)),D(n("input",iL,null,512),[[o,{state:e.viewState,set:r=>{e.fileSearchQuery=r},value:e.fileSearchQuery,form:null,options:{debounce:300},change:()=>{e.onFileSearchChange()}}]]),D(n("kbd",{class:"tree-search-kbd"},c(e.isMac?"\u2318":"Ctrl+")+"K",513),[[Q,!e.fileSearchQuery]]),D(n("button",{class:"tree-search-clear","aria-label":"Clear search",onClick:t[6]||(t[6]=r=>{e.fileSearchQuery="",e.onFileSearchChange()})},"\xD7",512),[[Q,e.fileSearchQuery]])]),e.options?.download?(a(),l("a",{key:0,target:"_self",class:"search-zip","aria-label":"Download repository as ZIP",title:"Download the repository (snapshot "+e.fmt?.date(e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate)+") as ZIP",href:e.safeUrl("/api/repo/"+e.repoId+"/zip")},[...t[28]||(t[28]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-download"})],-1),n("span",{class:"search-zip-label","aria-hidden":"true"},"ZIP",-1)])],8,rL)):f("v-if",!0)]),n("div",aL,[e.options?.truncatedFolders?.length>0?(a(),l("div",lL,[t[29]||(t[29]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),g(" "+c(e.fmt?.translate("WARNINGS.repo_truncated")),1)])):f("v-if",!0),e.options?.hasSubmodules?(a(),l("div",dL,[t[30]||(t[30]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),g(" "+c(e.fmt?.translate("WARNINGS.submodules_not_included")),1)])):f("v-if",!0),Oe(s,{class:"files",file:e.files,"search-query":e.fileSearchQuery,"search-results":e.fileSearchResults,page:e.viewState},null,8,["file","search-query","search-results","page"])])],2),[[Q,e.files?.length]]),D(n("div",{class:"leftCol-resizer",role:"separator","aria-orientation":"vertical","aria-label":"Resize file tree",title:"Drag to resize",onPointerdown:t[7]||(t[7]=r=>e.startSidebarResize(r))},null,544),[[Q,e.files?.length&&!e.sidebarHidden]]),D(n("div",{class:"leftCol-backdrop",onClick:t[8]||(t[8]=r=>e.sidebarCollapsed=!0)},null,512),[[Q,e.files?.length&&!e.sidebarCollapsed]]),n("div",uL,[D(n("div",{class:P(["status-bar",{"is-redundant":["code","text","html"].includes(e.type)&&e.content!=null||e.fileFrame()}])},[D(n("button",{type:"button",class:"btn btn-sm status-files-btn","aria-label":"Show files",title:"Show files",onClick:t[9]||(t[9]=r=>e.sidebarHidden?e.sidebarHidden=!1:e.sidebarCollapsed=!1)},[...t[31]||(t[31]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-folder"})],-1),n("span",null,"Files",-1)])],512),[[Q,e.files?.length]]),n("ol",cL,[n("li",pL,[n("a",{href:e.safeUrl("/r/"+e.repoId+"/"),title:e.repoId,textContent:c(/^[0-9a-f]{8}-[0-9a-f]{4}-/i.test(e.repoId||"")?"repository":e.repoId)},null,8,fL)]),(a(!0),l(q,null,x(e.paths,(r,d)=>(a(),l("li",{class:"breadcrumb-item","aria-current":d===e.paths.length-1?"page":null,textContent:c(r)},null,8,hL))),256))]),D(n("button",{type:"button",class:"btn btn-sm btn-icon-only btn-ghost copy-path-btn","aria-label":e.pathCopied?"Path copied":"Copy path",title:e.pathCopied?"Path copied":"Copy path",onClick:t[10]||(t[10]=r=>e.copyPath())},[(a(),l("svg",gL,[n("use",{href:e.pathCopied?"#ui-icon-check":"#project-icon-copy"},null,8,vL)]))],8,mL),[[Q,e.filePath]]),n("div",yL,[e.options?.isAdmin||e.options?.isOwner?(a(),l("a",{key:0,class:"btn btn-sm","aria-label":"Edit",href:e.safeUrl("/anonymize/"+e.repoId)},[...t[32]||(t[32]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),n("span",{class:"d-none d-md-inline"}," Edit",-1)])],8,bL)):f("v-if",!0),e.type=="html-doc"&&!e.showSource?(a(),l("button",{key:1,class:P(["btn btn-sm",{"btn-active":e.allowScripts}]),"aria-label":"Allow this document to run JavaScript",title:"Scripts in this file are blocked by default. Enable them only if you trust the repository \u2014 the document stays isolated from your session either way.",onClick:t[11]||(t[11]=r=>e.toggleAllowScripts())},[t[33]||(t[33]=n("i",{class:"fab fa-js"},null,-1)),n("span",wL,c(e.allowScripts?"JS on":"JS off"),1)],2)):f("v-if",!0),e.type=="html-doc"?(a(),l("button",{key:2,class:"btn btn-sm","aria-label":"Toggle between the rendered document and its source",title:"Toggle between the rendered document and its source",onClick:t[12]||(t[12]=r=>e.toggleSource())},[(a(),l("svg",kL,[n("use",{href:e.showSource?"#project-icon-eye":"#ui-icon-code"},null,8,CL)])),n("span",EL,c(e.showSource?"Rendered":"Source"),1)])):f("v-if",!0),e.options?.hasWebsite?(a(),l("a",{key:3,target:"_self",class:"btn btn-sm","aria-label":"Website",href:e.safeUrl("/w/"+e.repoId+"/")},[...t[34]||(t[34]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-globe"})],-1),n("span",{class:"d-none d-md-inline"}," Website",-1)])],8,SL)):f("v-if",!0)])],2),[[Q,e.type!="error"||e.files?.length]]),n("div",NL,[Oe(i,{name:"partials/pageView.htm",state:e.viewState},null,8,["state"])])])],6)}var RL={class:"paper-faq"},PL={class:"paper-faq-body"},AL={class:"paper-faq-toc"},DL={class:"faq-search",role:"search"},TL={class:"faq-search-field"},OL={id:"faq-search-status",class:"faq-search-status","aria-live":"polite"},IL={key:0,class:"faq-search-empty"},ML={class:"faq-search-empty-actions"};function pp(e,t){let s=Xe("partial-view"),i=Ae("paper-scrollspy");return a(),l(q,null,[n("div",RL,[t[12]||(t[12]=n("div",{class:"paper-faq-hero"},[n("div",{class:"paper-faq-eyebrow"},"Help"),n("h1",{class:"paper-faq-title"},[g("Mirrors, redaction, and "),n("em",null,"what reviewers see.")]),n("p",{class:"paper-faq-lede"}," How to set up an anonymous mirror, what it hides, and how long it stays online. ")],-1)),n("div",PL,[D((a(),l("aside",AL,[...t[5]||(t[5]=[Ee('
Contents
',2)])])),[[i]]),n("section",{class:P(["faq-section",{"faq-searching":!!e.faqQuery.trim()}]),"aria-label":"FAQs"},[n("div",DL,[t[7]||(t[7]=n("label",{for:"faq-search-input"},"Search questions",-1)),n("div",TL,[t[6]||(t[6]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-search"})],-1)),D(n("input",{id:"faq-search-input",type:"search",class:"form-control","onUpdate:modelValue":t[0]||(t[0]=o=>e.faqQuery=o),onInput:t[1]||(t[1]=o=>e.filterFaq()),onSearch:t[2]||(t[2]=o=>e.filterFaq()),onKeydown:t[3]||(t[3]=kt(o=>e.clearFaqSearch(),["esc"])),placeholder:"e.g. expiry, pull request, PDF",autocomplete:"off",spellcheck:"false","aria-describedby":"faq-search-status"},null,544),[[pt,e.faqQuery]])]),n("p",OL,[e.faqQuery.trim()&&e.faqResults?(a(),l(q,{key:0},[g(c(e.faqResults===1?"1 result":e.faqResults+" results"),1)],64)):f("v-if",!0)])]),e.faqQuery.trim()&&e.faqResults===0?(a(),l("div",IL,[n("strong",null,"No questions match \u201C"+c(e.faqQuery.trim())+"\u201D.",1),t[9]||(t[9]=n("p",null,"Try a shorter word, or ask us directly.",-1)),n("div",ML,[n("button",{type:"button",class:"btn btn-outline-ink btn-sm",onClick:t[4]||(t[4]=o=>e.clearFaqSearch())},"Clear search"),t[8]||(t[8]=n("a",{class:"btn btn-link btn-sm",target:"_blank",rel:"noopener",href:"https://github.com/tdurieux/anonymous_github/issues/new?template=issue_report.yml"},"Open an issue",-1))])])):f("v-if",!0),t[10]||(t[10]=n("div",{class:"faq-list"},[f(" General "),n("h4",{class:"faq-cat"},[n("svg",{class:"ui-icon mr-2","aria-hidden":"true"},[n("use",{href:"#ui-icon-info"})]),g("General ")]),n("div",{class:"panel-group",id:"faq-general",role:"tablist","aria-multiselectable":"true"},[n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingWhatIs"},[n("h3",{class:"panel-title"},[n("a",{role:"button","data-toggle":"collapse","data-parent":"#faq-general",href:"#whatIs","aria-expanded":"true","aria-controls":"whatIs"}," What is Anonymous GitHub? ")])]),n("div",{id:"whatIs",class:"panel-collapse collapse show",role:"tabpanel","aria-labelledby":"headingWhatIs"},[n("div",{class:"panel-body p-3"},[n("p",null," Anonymous GitHub is an open-source tool with free hosting and optional paid plans that anonymizes GitHub repositories and pull requests for double-anonymous (double-blind) peer review. It replaces identifying information, such as the repository owner, organization name, and custom terms, so that reviewers cannot determine the identity of the authors through the code repository. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingHowWork"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-general",href:"#howWork","aria-expanded":"false","aria-controls":"howWork"}," How does Anonymous GitHub work? ")])]),n("div",{id:"howWork",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingHowWork"},[n("div",{class:"panel-body p-3"},[n("p",null," Anonymous GitHub either downloads the complete repository and anonymizes the content, or proxies requests to GitHub on the fly. In both cases, the original and anonymized versions of files are cached on the server. The system automatically detects and replaces the repository owner, organization name, and repository name. You can also specify additional custom terms to anonymize using one-per-line regex patterns. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingScope"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-general",href:"#scope","aria-expanded":"false","aria-controls":"scope"}," What is the scope of anonymization? ")])]),n("div",{id:"scope",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingScope"},[n("div",{class:"panel-body p-3"},[n("p",null," In double-anonymous peer review, the boundary of anonymization is the paper plus its online appendix, not the entire internet. Searching for any part of the paper or the online appendix can be considered a deliberate attempt to break anonymity. Anonymous GitHub anonymizes the repository owner, organization, repository name, file and directory names, and file contents across all text-based file types. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingCost"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-general",href:"#cost","aria-expanded":"false","aria-controls":"cost"}," How much does it cost? ")])]),n("div",{id:"cost",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingCost"},[n("div",{class:"panel-body p-3"},[n("p",null," A free account includes 5 owned repositories and 2 GiB of source files. Optional paid plans offer more capacity, automatic refresh, and, with an author subscription, never-expiring repositories. Reviewers can read shared repositories without an account or payment. "),n("p",null,[g(" See "),n("a",{href:"/profile#settings-billing"},"Plans and billing"),g(" for available plans and current prices. Offers depend on whether payments are enabled on this instance; the checkout shows the amount before you pay. Subscriptions help fund hosting, storage, backups, and continued maintenance. ")]),n("p",null,[g(" You can also support development through "),n("a",{href:"https://github.com/sponsors/tdurieux/",target:"_blank",rel:"noopener"},"GitHub Sponsors"),g(" or "),n("a",{href:"https://ko-fi.com/tdurieux",target:"_blank",rel:"noopener"},"Ko-fi"),g(". Donations are separate from subscriptions and do not automatically unlock paid features. ")])])])])]),f(" Plans and billing "),n("h4",{class:"faq-cat",id:"faq-plans-title"},"Plans and billing"),n("div",{class:"panel-group",id:"faq-plans",role:"tablist","aria-label":"Plans and billing","aria-multiselectable":"true"},[n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingWhyPaid"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#whyPaid","aria-expanded":"false","aria-controls":"whyPaid"},"Why is Anonymous GitHub no longer completely free?")])]),n("div",{id:"whyPaid",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingWhyPaid"},[n("div",{class:"panel-body p-3"},[n("p",null,"Anonymous GitHub started as a small free service and was paid for out of pocket. Three things have changed since then:"),n("ul",null,[n("li",null,[n("strong",null,"Servers cost much more."),g(" Every hosted repository needs storage, bandwidth and backups, and these costs have risen sharply.")]),n("li",null,[n("strong",null,"Many more people use it."),g(" More users means more repositories to store and keep up to date, more support requests and more maintenance.")]),n("li",null,[n("strong",null,"AI has made security work heavier."),g(" AI-driven scrapers and automated abuse send far more traffic than before. Blocking them and keeping hosted content safe takes constant work.")])]),n("p",null,"The core service stays free: anonymizing a repository, sharing the link and reviewer access cost nothing, and reviewers never need an account. Most authors never need to pay. The paid options are small one-time payments for one repository, plus an optional subscription for heavy users. They are priced to cover running costs, not to make a profit."),n("p",null,[g("The source code remains open, so you can still "),n("a",{href:"#faq-hosting"},"host your own instance"),g(" for free.")])])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingFreePlan"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#freePlan","aria-expanded":"false","aria-controls":"freePlan"},"What is included in a free account?")])]),n("div",{id:"freePlan",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingFreePlan"},[n("div",{class:"panel-body p-3"},[n("p",null,"The default free allowance is 5 repositories you own and 2 GiB of source files in total. Core anonymization and reviewer access remain free. You can manually refresh a repository within your allowance and choose a dated expiration up to 5 months ahead, then extend it again before it expires. Repositories submitted to a conference can stay online until the end of its review window."),n("p",null,"Repositories shared with you as a co-author do not use your own slots. Gists and pull requests are not included in these repository quotas. The usage shown in your account is the allowance available on this instance.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingAuthorPlans"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#authorPlans","aria-expanded":"false","aria-controls":"authorPlans"},"What do monthly and annual author subscriptions include?")])]),n("div",{id:"authorPlans",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingAuthorPlans"},[n("div",{class:"panel-body p-3"},[n("p",null,[g("Both include 20 owned repositories and 10 GiB of source files in total. They also allow automatic refresh when enabled in repository settings and let the owner choose "),n("strong",null,"Never expire"),g(".")]),n("p",null,[g("Monthly and annual plans offer the same features with different billing periods. They renew automatically until you cancel renewal. Current prices are shown in "),n("a",{href:"/profile#settings-billing"},"Plans and billing"),g(".")]),n("p",null,"Paid plans do not change how anonymization works. File-size limits and other service safeguards still apply. Review your anonymized content before sharing it.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingReviewPass"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#reviewPass","aria-expanded":"false","aria-controls":"reviewPass"},"Can I pay for one repository without subscribing?")])]),n("div",{id:"reviewPass",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingReviewPass"},[n("div",{class:"panel-body p-3"},[n("p",null,"Yes. These one-time add-ons apply to a single repository you own. None of them renews automatically:"),n("ul",null,[n("li",null,[n("strong",null,"Paper pack"),g(": an extra repository, automatic updates for 180 days and one more year before it expires, in a single payment. It covers what one paper usually needs during review.")]),n("li",null,[n("strong",null,"Extra repository"),g(": host one more repository once your free repositories are used up. It has its own 2 GiB allowance and does not count toward your free repositories. It lasts as long as the repository exists.")]),n("li",null,[n("strong",null,"Live updates"),g(": automatic refresh for 180 days, with a separate 2 GiB allowance.")]),n("li",null,[n("strong",null,"Extended expiration"),g(": choose an expiration date up to one year after purchase. Buying it again adds another year.")]),n("li",null,[n("strong",null,"Never expire"),g(": the repository has no expiration date. A full refund or a payment dispute ends it after a 90-day grace period.")])]),n("p",null,[g("When your free allowance is full, the Extra repository and Paper pack options are offered as you create the repository. You can also buy an add-on from the repository's edit page, or enter the anonymized ID of an existing repository in "),n("a",{href:"/profile#settings-billing"},"Plans and billing"),g(". Current prices are shown there.")])])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingConferencePlans"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#conferencePlans","aria-expanded":"false","aria-controls":"conferencePlans"},"Can a conference or lab pay for a group?")])]),n("div",{id:"conferencePlans",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingConferencePlans"},[n("div",{class:"panel-body p-3"},[n("p",null,"A conference review package provides a shared allowance for a review window of up to 180 days, with automatic updates for every submission. It comes in three sizes: Workshop (25 repositories, 10 GiB), Conference (100 repositories, 50 GiB) and Large conference (400 repositories, 200 GiB). Choose the size when you create the conference; it cannot change afterwards. The organizer pays once and authors pay nothing (the price is shown when you create the conference); the package does not renew automatically. A lab organizing a review can use this shared package too."),n("p",null,"New conferences no longer have a free plan: every new conference is a review package. Conferences created earlier keep working as before. The conference must be activated by payment before authors can submit under its Conference ID. Eligible repositories use the conference allowance before an author's personal allowance, so authors do not each need a subscription for that capacity."),n("p",null,"The package has a fixed review window. Never expire still requires the repository owner's author subscription or a Never expire add-on for that repository.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingPaidCoauthors"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#paidCoauthors","aria-expanded":"false","aria-controls":"paidCoauthors"},"Does every co-author need to pay?")])]),n("div",{id:"paidCoauthors",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingPaidCoauthors"},[n("div",{class:"panel-body p-3"},[n("p",null,"No. Co-authors can collaborate without buying a subscription. A shared repository uses its owner's allowance, unless a repository pass or paid conference covers it. It does not consume each co-author's personal allowance."),n("p",null,"A co-author's subscription does not increase the owner's allowance. If the owner's available capacity is exhausted, a co-author's refresh or edit may also be blocked. Reviewers never need a paid account.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingCapacity"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#capacity","aria-expanded":"false","aria-controls":"capacity"},"What counts toward my allowance, and what happens at the limit?")])]),n("div",{id:"capacity",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingCapacity"},[n("div",{class:"panel-body p-3"},[n("p",null,"The repository limit counts work you own. Storage counts the source-file sizes reserved for those repositories, not just files a reviewer opens. Archived or failed repositories can still reserve capacity, and a refresh does not automatically reduce a previous storage reservation."),n("p",null,"At the repository limit you cannot add another repository to that allowance. An edit or refresh must also fit the available storage. Remove work you no longer need, add an Extra repository for the new one, choose a subscription, or use an eligible conference allowance."),n("p",null,"Removing a repository releases its reservation when capacity is next checked. Expired repositories may continue to reserve capacity until cleanup. Reaching a limit does not itself delete existing review links.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingNeverExpire"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#neverExpire","aria-expanded":"false","aria-controls":"neverExpire"},"What happens to Never expire repositories if I stop subscribing?")])]),n("div",{id:"neverExpire",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingNeverExpire"},[n("div",{class:"panel-body p-3"},[n("p",null,[g("Never expire is available to monthly and annual author subscribers, or for one repository with the one-time Never expire add-on. If a subscription ends, these repositories remain available for a "),n("strong",null,"90-day grace period"),g(", then expire and their hosted content is removed.")]),n("p",null,"Renewing during the grace period keeps them active. After expiration, you must renew and explicitly reactivate the repository; restoring content also requires access to its GitHub source. A repository does not become public on GitHub when it expires."),n("p",null,"Existing never-expiring repositories created before this billing policy retain their settings. Never expire is not a guarantee of perpetual service availability.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingCancelPlan"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#cancelPlan","aria-expanded":"false","aria-controls":"cancelPlan"},"How do I cancel, and what happens after paid access ends?")])]),n("div",{id:"cancelPlan",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingCancelPlan"},[n("div",{class:"panel-body p-3"},[n("p",null,[g("Open "),n("a",{href:"/profile#settings-billing"},"Plans and billing"),g(" and choose "),n("strong",null,"Manage billing and invoices"),g(" to manage renewal. Cancelling renewal keeps subscription benefits until the end of the paid period.")]),n("p",null,"After paid access ends, repositories fall back to another eligible allowance or the free allowance. Automatic refresh pauses on the free allowance; manual refresh remains available within its limits. Existing review links keep their configured expiration dates, except paid Never expire repositories, which follow the 90-day grace period described above."),n("p",null,"A repository pass or conference package ends after its paid window without automatic renewal.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingRefunds"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#refunds","aria-expanded":"false","aria-controls":"refunds"},"Can I get a refund?")])]),n("div",{id:"refunds",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingRefunds"},[n("div",{class:"panel-body p-3"},[n("p",null,[g("Refunds are handled case by case. "),n("a",{href:"mailto:tdurieux@anonymous.4open.science"},"Email the maintainer"),g(" with the date of the payment and the repository it was for.")]),n("p",null,"A full refund ends what that payment bought. For a Paper pack, this means all three parts: the extra repository, automatic updates and the extended expiration. A Never expire repository then expires after a 90-day grace period. A partial refund keeps your access."),n("p",null,"To stop a subscription, cancel its renewal instead of asking for a refund. You keep access until the end of the period you paid for.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingPaymentHandling"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#paymentHandling","aria-expanded":"false","aria-controls":"paymentHandling"},"How are payments handled?")])]),n("div",{id:"paymentHandling",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingPaymentHandling"},[n("div",{class:"panel-body p-3"},[n("p",null,[g("Stripe processes checkout and billing management. Anonymous GitHub does not store your card details. You can access billing management and invoices from "),n("a",{href:"/profile#settings-billing"},"Plans and billing"),g(".")]),n("p",null,[g("Paid access is activated after payment is confirmed. If checkout succeeds but your account has not updated, choose "),n("strong",null,"Refresh payment status"),g(" before trying another purchase. If paid plans are unavailable on this instance, no checkout is offered.")])])])])]),f(" Features "),n("h4",{class:"faq-cat"},[n("svg",{class:"ui-icon mr-2","aria-hidden":"true"},[n("use",{href:"#project-icon-filter"})]),g("Features ")]),n("div",{class:"panel-group",id:"faq-features",role:"tablist","aria-multiselectable":"true"},[n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingFormats"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#formats","aria-expanded":"false","aria-controls":"formats"}," Which file formats are supported? ")])]),n("div",{id:"formats",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingFormats"},[n("div",{class:"panel-body p-3"},[n("p",null," Anonymous GitHub can display and render a wide variety of file types: "),n("ul",null,[n("li",null,[n("strong",null,"Text and source code"),g(": displayed with syntax highlighting")]),n("li",null,[n("strong",null,"Markdown"),g(": rendered as formatted HTML")]),n("li",null,[n("strong",null,"Images"),g(" (PNG, JPG, SVG, etc.): displayed inline")]),n("li",null,[n("strong",null,"PDFs"),g(": rendered directly in the browser")]),n("li",null,[n("strong",null,"Jupyter Notebooks"),g(": rendered with code cells and outputs")])]),n("p",null," Only text-based files are anonymized. Anonymous GitHub analyzes the content of each file to determine whether it is textual or binary. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingPR"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#pullRequests","aria-expanded":"false","aria-controls":"pullRequests"}," Can I anonymize pull requests? ")])]),n("div",{id:"pullRequests",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingPR"},[n("div",{class:"panel-body p-3"},[n("p",null," Yes. In addition to full repositories, Anonymous GitHub supports anonymizing individual pull requests. Simply paste the URL of a GitHub pull request when creating a new anonymized repository, and the system will automatically detect that it is a pull request and anonymize it accordingly. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingConference"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#conference","aria-expanded":"false","aria-controls":"conference"}," What is the Conference ID feature? ")])]),n("div",{id:"conference",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingConference"},[n("div",{class:"panel-body p-3"},[n("p",null," When creating an anonymized repository, you can associate it with a Conference ID. This allows conferences to define default anonymization settings (such as expiration dates) that are automatically applied to repositories submitted under that conference. If your conference provides a Conference ID, enter it during the anonymization setup. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingExpiration"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#expiration","aria-expanded":"false","aria-controls":"expiration"}," What happens when an anonymized repository expires? ")])]),n("div",{id:"expiration",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingExpiration"},[n("div",{class:"panel-body p-3"},[n("p",null," You can configure one of three expiration strategies when creating your anonymized repository: "),n("ul",null,[n("li",null,[n("strong",null,"Never expire"),g(": with a monthly or annual author subscription, no scheduled expiration while subscribed. A 90-day grace period applies after paid access ends. See "),n("a",{href:"#neverExpire"},"the subscription expiration policy"),g(".")]),n("li",null,[n("strong",null,"Redirect to GitHub"),g(": after expiration, visitors are redirected to the original GitHub repository.")]),n("li",null,[n("strong",null,"Remove content"),g(": after expiration, the anonymized content is deleted from the server.")])])])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingDownload"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#download","aria-expanded":"false","aria-controls":"download"}," Can I download an anonymized repository? ")])]),n("div",{id:"download",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingDownload"},[n("div",{class:"panel-body p-3"},[n("p",null," Yes. Anonymized repositories can be downloaded as a ZIP file. This is useful if reviewers want to build or test the code locally. The downloaded archive contains the fully anonymized version of the repository. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingUpdates"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#updates","aria-expanded":"false","aria-controls":"updates"}," Are updates to the original repository reflected in the anonymized version? ")])]),n("div",{id:"updates",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingUpdates"},[n("div",{class:"panel-body p-3"},[n("p",null," You can refresh the anonymized repository from GitHub without creating a new share link. Free accounts can request a manual refresh within their allowance. Automatic refresh requires an eligible paid allowance and must be enabled in repository settings. It pauses when the repository falls back to the free allowance. "),n("p",null," After changing files or contributor names, review your anonymization terms before sharing the updated content. If GitHub access is revoked or the source is deleted, the service cannot fetch updates. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingCLI"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#cli","aria-expanded":"false","aria-controls":"cli"}," Is there a command-line tool? ")])]),n("div",{id:"cli",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingCLI"},[n("div",{class:"panel-body p-3"},[n("p",null," Yes. Anonymous GitHub provides a CLI tool that lets you anonymize repositories locally, generating an anonymized ZIP file on your machine. Install it via npm: "),n("pre",{style:{"background-color":"var(--hover-bg-color)",padding:"12px","border-radius":"4px","margin-top":"8px",color:"var(--color)"}},[n("code",null,`npm install -g @tdurieux/anonymous_github -anonymous_github`)])])])])]),f(" Limitations "),n("h4",{class:"faq-cat"},[n("svg",{class:"ui-icon mr-2","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})]),g("Limitations ")]),n("div",{class:"panel-group",id:"faq-limitations",role:"tablist","aria-multiselectable":"true"},[n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingLimitation"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-limitations",href:"#limitation","aria-expanded":"false","aria-controls":"limitation"}," What are the limitations of Anonymous GitHub? ")])]),n("div",{id:"limitation",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingLimitation"},[n("div",{class:"panel-body p-3"},[n("ul",null,[n("li",null," Anonymous GitHub only anonymizes text-based files. Binary files (compiled executables, archives, etc.) are served as-is without anonymization. "),n("li",null," Files larger than 8 MB are not supported. "),n("li",null," Static site generators (such as Jekyll) used with GitHub Pages are not fully supported, although Markdown files are converted to HTML. "),n("li",null," The anonymization of terms within source code may change the behavior of the program (e.g., if a replaced term appears in a string literal or identifier). ")])])])])]),f(" Privacy and security "),n("h4",{class:"faq-cat"},[n("svg",{class:"ui-icon mr-2","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})]),g("Privacy and security ")]),n("div",{class:"panel-group",id:"faq-privacy",role:"tablist","aria-multiselectable":"true"},[n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingData"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-privacy",href:"#data","aria-expanded":"false","aria-controls":"data"}," How is my data handled? ")])]),n("div",{id:"data",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingData"},[n("div",{class:"panel-body p-3"},[n("p",null," Repository data is used to provide the anonymization service. If you purchase a plan, Stripe processes payment and billing information. When a repository is removed or expires, only its configuration is retained. This makes it easy to restore the repository if needed and ensures that no future repository reuses the same ID. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingPermissions"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-privacy",href:"#permissions","aria-expanded":"false","aria-controls":"permissions"}," Why does GitHub say Anonymous GitHub asks for write access? ")])]),n("div",{id:"permissions",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingPermissions"},[n("div",{class:"panel-body p-3"},[n("p",null,[g("The GitHub App has read-only access to the repositories you choose. You can change repository access on your "),n("a",{href:"/connections"},"GitHub connections"),g(" page.")]),n("p",null,"Legacy GitHub OAuth includes write access to private repositories because GitHub's OAuth scopes do not offer a read-only option for them. Existing OAuth anonymizations and gists can still use this connection."),n("p",null,"Anonymous GitHub reads repository content. It never pushes, modifies, or deletes files on GitHub.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingViewer"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-privacy",href:"#viewer","aria-expanded":"false","aria-controls":"viewer"}," Can repository owners see who viewed their anonymized repository? ")])]),n("div",{id:"viewer",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingViewer"},[n("div",{class:"panel-body p-3"},[n("p",null," No. Only the total number of views is tracked as an incremental counter. It is not possible for the repository owner or for Anonymous GitHub to identify individual viewers. Reviewer anonymity is fully preserved. ")])])])]),f(" Self-hosting "),n("h4",{class:"faq-cat"},[n("svg",{class:"ui-icon mr-2","aria-hidden":"true"},[n("use",{href:"#project-icon-storage"})]),g("Self"),n("span",{class:"serif-hy"},"-"),g("hosting ")]),n("div",{class:"panel-group",id:"faq-hosting",role:"tablist","aria-multiselectable":"true"},[n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingDeploy"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-hosting",href:"#deploy","aria-expanded":"false","aria-controls":"deploy"}," Can I deploy my own instance? ")])]),n("div",{id:"deploy",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingDeploy"},[n("div",{class:"panel-body p-3"},[n("p",null,[g(" Yes. Anonymous GitHub is fully open source (GPL-3.0) and supports Docker-based deployment. Billing is optional and disabled by default for self-hosted instances; paid hosted plans are not required to run your own server. You will need to configure a GitHub OAuth app and provide a GitHub token. Detailed setup instructions are available on the "),n("a",{href:"https://github.com/tdurieux/anonymous_github/",target:"_blank"},"GitHub repository"),g(". ")]),n("p",null," The basic steps are: "),n("ol",null,[n("li",null,"Clone the repository and install dependencies"),n("li",null,[g("Create a "),n("code",null,".env"),g(" file with your GitHub token, OAuth client ID, and client secret")]),n("li",null,[g("Run "),n("code",null,"docker-compose up -d")])])])])])])],-1))],2),t[11]||(t[11]=n("aside",{class:"paper-faq-help","aria-label":"More help"},[n("div",{class:"paper-faq-help-card"},[n("strong",null,"Still stuck?"),n("p",null,"Open an issue on GitHub about the service. For a paper's content, contact the conference instead."),n("a",{class:"btn btn-outline-ink btn-sm",target:"_blank",rel:"noopener",href:"https://github.com/tdurieux/anonymous_github/issues/new?template=issue_report.yml"},"Open an issue")])],-1))])]),Oe(s,{name:"partials/footer.htm",state:e.viewState},null,8,["state"])],64)}var VL={class:"pr-page"},qL={class:"container paper-page pr-page-inner"},_L={class:"pr-header"},$L={class:"pr-title-row"},LL={class:"paper-page-title pr-title"},FL=["textContent"],UL={key:1,class:"text-muted"},BL=["href"],zL={class:"pr-header-meta"},HL={key:0,class:"pr-meta-item"},jL=["textContent"],GL={key:1,class:"pr-meta-item"},WL=["textContent"],KL={key:2,class:"pr-meta-item"},YL=["textContent"],XL={key:0,class:"paper-tabs",role:"tablist"},JL=["aria-selected","tabindex"],QL=["textContent"],ZL=["aria-selected","tabindex"],xL=["textContent"],eF={class:"paper-tab-content"},tF={key:0,role:"tabpanel",id:"gist-files-panel","aria-labelledby":"gist-files-tab"},nF={class:"pr-comments"},sF={class:"pr-comment"},oF={class:"pr-comment-head"},iF=["textContent"],rF={key:0,class:"pr-comment-date"},aF={key:0,class:"paper-table-empty"},lF={key:1,role:"tabpanel",id:"gist-comments-panel","aria-labelledby":"gist-comments-tab"},dF={class:"pr-comments"},uF={class:"pr-comment"},cF={class:"pr-comment-head"},pF={key:0,class:"pr-comment-author"},fF=["textContent"],hF=["textContent"],mF={key:0,class:"pr-comment-body"},gF={key:0,class:"paper-table-empty"};function fp(e,t){let s=Xe("gist-file"),i=Xe("markdown");return a(),l("div",VL,[n("div",qL,[t[17]||(t[17]=n("div",{class:"paper-crumbs"},[n("a",{href:"/dashboard"},"Reviewer"),g(" \xA0/\xA0 "),n("span",{class:"here"},"Gist")],-1)),n("header",_L,[n("div",$L,[n("h1",LL,[e.details?.description?(a(),l("span",{key:0,textContent:c(e.details?.description)},null,8,FL)):f("v-if",!0),e.details?.description?f("v-if",!0):(a(),l("span",UL,"Untitled gist"))]),e.options?.isAdmin||e.options?.isOwner?(a(),l("a",{key:0,class:"btn btn-sm","aria-label":"Edit",href:e.safeUrl("/gist-anonymize/"+e.gistId)},[...t[4]||(t[4]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),n("span",{class:"d-none d-md-inline"}," Edit",-1)])],8,BL)):f("v-if",!0)]),n("div",zL,[n("span",{class:P(["paper-pill",{good:e.details?.isPublic,warn:!e.details?.isPublic}])},c(e.details?.isPublic?"Public":"Secret"),3),e.details?.ownerLogin?(a(),l("span",HL,[t[5]||(t[5]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-user"})],-1)),t[6]||(t[6]=g(" @",-1)),n("span",{textContent:c(e.details?.ownerLogin)},null,8,jL)])):f("v-if",!0),e.details?.updatedDate?(a(),l("span",GL,[t[7]||(t[7]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),t[8]||(t[8]=g()),n("span",{textContent:c(e.fmt?.date(e.details?.updatedDate))},null,8,WL)])):f("v-if",!0),e.details?.anonymizeDate?(a(),l("span",KL,[t[9]||(t[9]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1)),t[10]||(t[10]=g(" Anonymized ",-1)),n("span",{textContent:c(e.fmt?.date(e.details?.anonymizeDate))},null,8,YL)])):f("v-if",!0)])]),e.details?.files&&e.details?.files?.length||e.details?.comments&&e.details?.comments?.length?(a(),l("nav",XL,[e.details?.files?(a(),l("button",{key:0,class:P(["paper-tab",{active:e.tabState?.active=="files"}]),type:"button",role:"tab",id:"gist-files-tab","aria-selected":e.tabState?.active==="files","aria-controls":"gist-files-panel",tabindex:e.tabState?.active==="files"?0:-1,onKeydown:t[0]||(t[0]=o=>e.previewTabKeydown(o)),onClick:t[1]||(t[1]=o=>e.tabState.active="files")},[t[11]||(t[11]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-type-gist"})],-1)),n("span",{textContent:c(e.fmt.plural(e.details?.files?.length,{0:"No files",one:"1 file",other:"{} files"}))},null,8,QL)],42,JL)):f("v-if",!0),e.details?.comments?(a(),l("button",{key:1,class:P(["paper-tab",{active:e.tabState?.active=="comments"}]),type:"button",role:"tab",id:"gist-comments-tab","aria-selected":e.tabState?.active==="comments","aria-controls":"gist-comments-panel",tabindex:e.tabState?.active==="comments"?0:-1,onKeydown:t[2]||(t[2]=o=>e.previewTabKeydown(o)),onClick:t[3]||(t[3]=o=>e.tabState.active="comments")},[t[12]||(t[12]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-comment"})],-1)),n("span",{textContent:c(e.fmt.plural(e.details?.comments?.length,{0:"No comments",one:"1 comment",other:"{} comments"}))},null,8,xL)],42,ZL)):f("v-if",!0)])):f("v-if",!0),n("div",eF,[e.details?.files&&e.tabState?.active=="files"?(a(),l("div",tF,[n("ul",nF,[(a(!0),l(q,null,x(e.details?.files,(o,r)=>(a(),l("li",sF,[n("div",oF,[n("strong",{textContent:c(o?.filename)},null,8,iF),o?.language?(a(),l("span",rF,c(o?.language),1)):f("v-if",!0)]),Oe(s,{file:o},null,8,["file"])]))),256)),e.details?.files?.length?f("v-if",!0):(a(),l("li",aF,[...t[13]||(t[13]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-file"})],-1),n("span",null,"No files in this gist.",-1)])]))])])):f("v-if",!0),e.details?.comments&&e.tabState?.active=="comments"?(a(),l("div",lF,[n("ul",dF,[(a(!0),l(q,null,x(e.details?.comments,(o,r)=>(a(),l("li",uF,[n("div",cF,[o?.author?(a(),l("span",pF,[t[14]||(t[14]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-user"})],-1)),t[15]||(t[15]=g(" @",-1)),n("span",{textContent:c(o?.author)},null,8,fF)])):f("v-if",!0),o?.updatedDate?(a(),l("span",{key:1,class:"pr-comment-date",textContent:c(e.fmt?.date(o?.updatedDate))},null,8,hF)):f("v-if",!0)]),o?.body?(a(),l("div",mF,[Oe(i,{content:o?.body},null,8,["content"])])):f("v-if",!0)]))),256)),e.details?.comments?.length?f("v-if",!0):(a(),l("li",gF,[...t[16]||(t[16]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-comment"})],-1),n("span",null,"No comments on this gist.",-1)])]))])])):f("v-if",!0)])])])}var vF={key:0,class:"nav-support",href:"https://ko-fi.com/tdurieux",target:"_blank",rel:"noopener",title:"Donate on Ko-fi to help cover hosting costs","aria-label":"Donate on Ko-fi to help cover hosting costs"},yF={key:1,class:"nav-heart-m",href:"https://ko-fi.com/tdurieux",target:"_blank",rel:"noopener","aria-label":"Support Anonymous GitHub",title:"Support Anonymous GitHub"},bF=["aria-label","title"],wF={class:"ui-icon","aria-hidden":"true"},kF=["href"],CF={key:3,class:"nav-signin-m",href:"/signin",target:"_self","aria-label":"Sign in with GitHub"},EF={class:"collapse navbar-collapse",id:"navbarSupportedContent"},SF={class:"navbar-nav mr-auto smooth-scroll"},NF={key:0,class:"nav-item nav-home-item"},RF={key:1,class:"nav-item"},PF={key:2,class:"nav-item"},AF={key:3,class:"nav-item"},DF={class:"nav-item"},TF={key:4,class:"nav-item"},OF={class:"navbar-nav"},IF={key:0,class:"nav-item d-lg-none"},MF={key:1,class:"nav-item"},VF={key:2,class:"nav-item"},qF={key:3,class:"nav-item nav-signin-item"},_F={key:4,class:"nav-item"},$F={key:5,class:"nav-item dropdown user-chip-wrap"},LF={class:"nav-link user-chip dropdown-toggle",href:"#",id:"navbarDropdownMenuLink",role:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},FF=["src"],UF={class:"user-chip-name"},BF={class:"dropdown-menu dropdown-menu-right user-menu","aria-labelledby":"navbarDropdownMenuLink"},zF={class:"dropdown-header"},HF={key:0,class:"dropdown-item um-extra",href:"https://ko-fi.com/tdurieux",target:"_blank",rel:"noopener"},jF=["innerHTML"],GF=["disabled"],WF={key:0,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},KF={class:"email-prompt-actions"},YF=["disabled"],XF=["disabled"],JF=["disabled"];function hp(e,t){return a(),l(q,null,[n("nav",{class:P(["navbar navbar-expand-lg",{"navbar-dark":e.isDarkMode}])},[t[28]||(t[28]=n("a",{class:"navbar-brand",href:"/"},[g("Anonymous "),n("em",null,"GitHub")],-1)),e.headerShowSupport?(a(),l("a",vF,[...t[9]||(t[9]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-heart"})],-1),n("span",{class:"nav-support-label"},"Support",-1)])])):f("v-if",!0),/^\/(r|w|pr|gist)\//.test(e.path||"")?f("v-if",!0):(a(),l("a",yF,[...t[10]||(t[10]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-heart"})],-1)])])),/^\/(r|w|pr|gist)\//.test(e.path||"")?f("v-if",!0):(a(),l("button",{key:2,type:"button",class:"nav-theme-m","aria-label":e.isDarkMode?"Switch to light mode":"Switch to dark mode",title:e.isDarkMode?"Switch to light mode":"Switch to dark mode",onClick:t[0]||(t[0]=s=>e.darkMode(!e.isDarkMode))},[(a(),l("svg",wF,[n("use",{href:e.isDarkMode?"#ui-icon-sun":"#ui-icon-moon"},null,8,kF)]))],8,bF)),!e.user&&!/^\/(r|w|pr|gist)\//.test(e.path||"")?(a(),l("a",CF,[...t[11]||(t[11]=[n("i",{class:"fab fa-github","aria-hidden":"true"},null,-1),g("Sign in",-1)])])):f("v-if",!0),t[29]||(t[29]=n("button",{class:"navbar-toggler",type:"button","data-toggle":"collapse","data-target":"#navbarSupportedContent","aria-controls":"navbarSupportedContent","aria-expanded":"false","aria-label":"Toggle navigation"},[n("span",{class:"navbar-toggler-icon"})],-1)),n("div",EF,[n("ul",SF,[e.user?f("v-if",!0):(a(),l("li",NF,[n("a",{class:P(["nav-link",{active:e.path=="/"}]),href:"/"},[...t[12]||(t[12]=[n("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-home"})],-1),g(" Home ",-1)])],2)])),e.user?(a(),l("li",RF,[n("a",{class:P(["nav-link",{active:e.path=="/dashboard"}]),href:"/dashboard"},[...t[13]||(t[13]=[n("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-grid"})],-1),g(" My work ",-1)])],2)])):f("v-if",!0),e.user?(a(),l("li",PF,[n("a",{class:P(["nav-link",{active:e.path=="/anonymize"||e.path=="/pull-request-anonymize"}]),href:"/anonymize"},[...t[14]||(t[14]=[n("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1),g(" Anonymize ",-1)])],2)])):f("v-if",!0),e.user?(a(),l("li",AF,[n("a",{class:P(["nav-link",{active:e.path=="/conferences"||e.path?.startsWith("/conference/")}]),href:"/conferences"},[...t[15]||(t[15]=[n("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[n("use",{href:"#project-icon-conference"})],-1),g(" Conferences ",-1)])],2)])):f("v-if",!0),n("li",DF,[n("a",{class:P(["nav-link",{active:e.path=="/faq"}]),href:"/faq"},[...t[16]||(t[16]=[n("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-help"})],-1),g("FAQ",-1)])],2)]),e.user&&e.user?.isAdmin?(a(),l("li",TF,[n("a",{class:P(["nav-link",{active:e.path?.indexOf("/admin")===0}]),href:"/admin/"},[...t[17]||(t[17]=[n("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-user-shield"})],-1),g(" Admin ",-1)])],2)])):f("v-if",!0)]),n("ul",OF,[e.user||!e.isReviewerRoute?(a(),l("li",IF,[...t[18]||(t[18]=[n("a",{class:"nav-link nav-icon",target:"_blank",href:"https://github.com/tdurieux/anonymous_github/",title:"Anonymous GitHub source code","aria-label":"Anonymous GitHub source code on GitHub",rel:"noopener","data-offset":"30"},[n("i",{class:"fab fa-github","aria-hidden":"true"})],-1)])])):f("v-if",!0),f(` "Report a bug" is about this service. Reviewers who land on an +jane.smith@example.org`},null,10,_T),[[d,{state:e.viewState,set:u=>{e.terms=u},value:e.terms,form:"anonymize",options:{debounce:250}}]]),t[126]||(t[126]=n("small",{class:"form-text text-muted"},"One term per line.",-1)),n("details",$T,[t[121]||(t[121]=n("summary",null,"Regex & replacement syntax",-1)),t[122]||(t[122]=g()),n("small",LT,[t[115]||(t[115]=g("Regex is supported. Replaced by ",-1)),n("code",null,c(e.site_options?.ANONYMIZATION_MASK)+"-[N]",1),t[116]||(t[116]=g(", or use ",-1)),t[117]||(t[117]=n("code",null,"term=>replacement",-1)),t[118]||(t[118]=g(" to pick your own (e.g. ",-1)),t[119]||(t[119]=n("code",null,"Anonymous=>ABC",-1)),t[120]||(t[120]=g(").",-1))])]),(a(!0),l(q,null,J((e.termHints||[]).slice(0,3),u=>(a(),l("div",{class:"term-hint",key:u.line},[n("span",null,[t[123]||(t[123]=g("In ",-1)),n("code",null,c(u.term),1),t[124]||(t[124]=g(", ",-1)),n("code",null,c(u.symbols.join(" ")),1),g(" "+c(u.symbols.length>1?"are regex symbols":"is a regex symbol")+", so it may not match the text as written.",1)]),n("button",{type:"button",class:"btn btn-outline-ink btn-sm",onClick:y=>e.matchTermAsWritten(u.line)},"Match as written",8,FT)]))),128)),(e.termHints||[]).length>3?(a(),l("div",UT,c(e.termHints.length-3)+" more "+c(e.termHints.length-3===1?"term uses":"terms use")+" regex symbols.",1)):f("v-if",!0),D(n("div",BT,"Terms are in an invalid format.",512),[[Z,e.anonymize?.terms?.errors?.format]])]),D(n("div",zT,[n("div",HT,[t[127]||(t[127]=n("span",{class:"paper-field-label",id:"preserve-files-label"},"Unredacted files",-1)),n("span",jT,c(e.preserveSummary()),1)]),n("button",{type:"button",class:"btn btn-outline-ink btn-sm","aria-describedby":"preserve-files-label",disabled:!e.source?.commit,onClick:t[22]||(t[22]=u=>e.openPreserveFiles())},c((e.options?.preserveFiles||[]).length?"Edit":"Choose files"),9,GT)],512),[[Z,e.detectedType==="repo"]]),e.preserve?.open?(a(),l("dialog",{key:0,id:"preserve-files-dialog",class:"preserve-dialog","aria-labelledby":"preserve-files-title",onCancel:t[27]||(t[27]=ae(u=>e.closePreserveFiles(),["prevent"]))},[n("form",{onSubmit:t[26]||(t[26]=ae(u=>e.savePreserveFiles(),["prevent"]))},[t[131]||(t[131]=n("h2",{id:"preserve-files-title"},"Leave files unredacted",-1)),t[132]||(t[132]=n("p",{class:"preserve-intro"},"Checked files are shown exactly as written, for example a bibliography where redacted self-citations would reveal you. File names are still redacted.",-1)),D(n("input",{type:"search",id:"preserve-files-search",class:"form-control",placeholder:"Search files","aria-label":"Search files",autocomplete:"off","onUpdate:modelValue":t[23]||(t[23]=u=>e.preserve.search=u)},null,512),[[pt,e.preserve.search]]),n("div",WT,[e.preserve.loading?(a(),l("p",KT,"Loading files from GitHub\u2026")):e.preserve.error?(a(),l("p",YT,c(e.preserve.error),1)):(a(),l(q,{key:2},[(a(!0),l(q,null,J(e.preserveRows(),(u,y)=>(a(),l("div",{class:"preserve-item",key:u.kind+":"+u.path,style:Ie({paddingLeft:u.depth*18+6+"px"})},[u.kind==="dir"?(a(),l("button",{key:0,type:"button",class:"preserve-caret","aria-expanded":u.open?"true":"false","aria-label":(u.open?"Collapse ":"Expand ")+u.label,onClick:m=>e.togglePreserveDir(u.path)},c(u.open?"\u25BE":"\u25B8"),9,XT)):(a(),l("span",QT)),n("input",{type:"checkbox",id:"pf-"+y,"aria-label":u.kind==="dir"?"Leave folder "+u.path+" unredacted":null,checked:u.state==="all",".indeterminate":u.state==="some",disabled:u.locked,onChange:m=>u.kind==="dir"?e.togglePreserveFolder(u.path):e.togglePreserveFile(u.path)},null,40,JT),n("label",{for:u.kind==="file"?"pf-"+y:null,class:"preserve-name",onClick:m=>u.kind==="dir"&&e.togglePreserveDir(u.path)},c(u.label),9,ZT),u.note?(a(),l("span",xT,c(u.note),1)):f("v-if",!0)],4))),128)),!e.preserve.loading&&!e.preserveRows().length?(a(),l("p",e3,c(e.preserve.search?"No file matches your search.":"No text files in this commit."),1)):f("v-if",!0)],64))]),e.preserve.truncated?(a(),l("p",t3,"This repository has too many files to list them all. Use a pattern for files you cannot find.")):f("v-if",!0),n("details",{class:"preserve-patterns",open:e.preserve.patternsOpen},[t[128]||(t[128]=n("summary",null,"Patterns",-1)),D(n("textarea",{class:"form-control",rows:"3","aria-label":"Patterns",placeholder:`*.bib +paper/appendix/**`,"onUpdate:modelValue":t[24]||(t[24]=u=>e.preserve.patterns=u)},null,512),[[pt,e.preserve.patterns]]),t[129]||(t[129]=n("small",{class:"form-text text-muted"},[g("One per line, as in .gitignore: "),n("code",null,"*.bib"),g(" matches in any folder; "),n("code",null,"/refs.bib"),g(" and "),n("code",null,"paper/refs.bib"),g(" match from the repository root; a folder name such as "),n("code",null,"drafts/"),g(" covers everything inside it; "),n("code",null,"!private.bib"),g(" excludes again.")],-1))],8,n3),n("div",s3,[n("span",o3,c(e.preserve.loading||e.preserve.error?"":e.preserveCount()+(e.preserveCount()===1?" file":" files")+" will be shown as written"),1),n("span",i3,[n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[25]||(t[25]=u=>e.closePreserveFiles())},"Cancel"),t[130]||(t[130]=n("button",{type:"submit",class:"btn btn-ink"},"Save",-1))])])],32)],32)):f("v-if",!0)],512),[[Z,e.detectedType]]),D(n("section",r3,[t[153]||(t[153]=n("h2",{class:"paper-section-eyebrow"},"Display",-1)),D(n("div",null,[n("div",a3,[D(n("input",l3,null,512),[[d,{state:e.viewState,set:u=>{e.options.link=u},value:e.options?.link,form:"anonymize",options:{}}]]),t[134]||(t[134]=n("label",{class:"form-check-label",for:"link"},"Keep links",-1))]),n("div",d3,[D(n("input",u3,null,512),[[d,{state:e.viewState,set:u=>{e.options.image=u},value:e.options?.image,form:"anonymize",options:{}}]]),t[135]||(t[135]=n("label",{class:"form-check-label",for:"image"},"Display images",-1))]),n("div",c3,[D(n("input",p3,null,512),[[d,{state:e.viewState,set:u=>{e.options.pdf=u},value:e.options?.pdf,form:"anonymize",options:{}}]]),t[136]||(t[136]=n("label",{class:"form-check-label",for:"pdf"},"Display PDFs",-1))]),n("div",f3,[D(n("input",h3,null,512),[[d,{state:e.viewState,set:u=>{e.options.notebook=u},value:e.options?.notebook,form:"anonymize",options:{}}]]),t[137]||(t[137]=n("label",{class:"form-check-label",for:"notebook"},"Display notebooks",-1))]),n("div",m3,[D(n("input",{class:"form-check-input",type:"checkbox",id:"page",name:"page",disabled:!e.details?.hasPage||e.details?.pageSource&&e.details?.pageSource?.branch!==e.source?.branch},null,8,g3),[[d,{state:e.viewState,set:u=>{e.options.page=u},value:e.options?.page,form:"anonymize",options:{}}]]),t[138]||(t[138]=n("label",{class:"form-check-label",for:"page"},"GitHub Pages",-1)),e.details?.hasPage?f("v-if",!0):(a(),l("small",v3,c(e.fmt?.translate("WARNINGS.page_not_enabled_on_repo")),1)),e.details?.hasPage&&e.details?.pageSource?.branch&&e.source?.branch&&e.details.pageSource.branch!==e.source.branch?(a(),l("small",y3,c(e.fmt?.translate("WARNINGS.page_branch_mismatch",{pageBranch:e.details?.pageSource?.branch,selectedBranch:e.source?.branch})),1)):f("v-if",!0)])],512),[[Z,e.detectedType==="repo"]]),e.detectedType==="repo"&&(e.options.image||e.options.pdf)?(a(),l("p",b3,[...t[139]||(t[139]=[g("Images and PDFs are served unchanged. Review their contents and metadata before sharing. ",-1),n("a",{href:"/faq#formats"},"Supported formats",-1)])])):f("v-if",!0),D(n("div",null,[n("div",w3,[D(n("input",k3,null,512),[[d,{state:e.viewState,set:u=>{e.options.title=u},value:e.options?.title,form:"anonymize",options:{}}]]),t[140]||(t[140]=n("label",{class:"form-check-label",for:"title-gist"},"Gist description",-1))]),n("div",C3,[D(n("input",E3,null,512),[[d,{state:e.viewState,set:u=>{e.options.content=u},value:e.options?.content,form:"anonymize",options:{}}]]),t[141]||(t[141]=n("label",{class:"form-check-label",for:"content-gist"},"File contents",-1))]),n("div",S3,[D(n("input",N3,null,512),[[d,{state:e.viewState,set:u=>{e.options.comments=u},value:e.options?.comments,form:"anonymize",options:{}}]]),t[142]||(t[142]=n("label",{class:"form-check-label",for:"comments-gist"},"Comments",-1))]),n("div",R3,[D(n("input",A3,null,512),[[d,{state:e.viewState,set:u=>{e.options.username=u},value:e.options?.username,form:"anonymize",options:{}}]]),t[143]||(t[143]=n("label",{class:"form-check-label",for:"username-gist"},"Usernames",-1))]),n("div",P3,[D(n("input",D3,null,512),[[d,{state:e.viewState,set:u=>{e.options.date=u},value:e.options?.date,form:"anonymize",options:{}}]]),t[144]||(t[144]=n("label",{class:"form-check-label",for:"date-gist"},"Dates",-1))]),n("div",T3,[D(n("input",O3,null,512),[[d,{state:e.viewState,set:u=>{e.options.origin=u},value:e.options?.origin,form:"anonymize",options:{}}]]),t[145]||(t[145]=n("label",{class:"form-check-label",for:"origin-gist"},"Source gist ID",-1))])],512),[[Z,e.detectedType==="gist"]]),D(n("div",null,[n("div",I3,[D(n("input",M3,null,512),[[d,{state:e.viewState,set:u=>{e.options.title=u},value:e.options?.title,form:"anonymize",options:{}}]]),t[146]||(t[146]=n("label",{class:"form-check-label",for:"title"},"PR title",-1))]),n("div",V3,[D(n("input",q3,null,512),[[d,{state:e.viewState,set:u=>{e.options.body=u},value:e.options?.body,form:"anonymize",options:{}}]]),t[147]||(t[147]=n("label",{class:"form-check-label",for:"body"},"PR body",-1))]),n("div",_3,[D(n("input",$3,null,512),[[d,{state:e.viewState,set:u=>{e.options.diff=u},value:e.options?.diff,form:"anonymize",options:{}}]]),t[148]||(t[148]=n("label",{class:"form-check-label",for:"diff"},"Diff",-1))]),n("div",L3,[D(n("input",F3,null,512),[[d,{state:e.viewState,set:u=>{e.options.comments=u},value:e.options?.comments,form:"anonymize",options:{}}]]),t[149]||(t[149]=n("label",{class:"form-check-label",for:"comments"},"Comments",-1))]),n("div",U3,[D(n("input",B3,null,512),[[d,{state:e.viewState,set:u=>{e.options.username=u},value:e.options?.username,form:"anonymize",options:{}}]]),t[150]||(t[150]=n("label",{class:"form-check-label",for:"username"},"Usernames",-1))]),n("div",z3,[D(n("input",H3,null,512),[[d,{state:e.viewState,set:u=>{e.options.date=u},value:e.options?.date,form:"anonymize",options:{}}]]),t[151]||(t[151]=n("label",{class:"form-check-label",for:"date"},"Dates",-1))]),n("div",j3,[D(n("input",G3,null,512),[[d,{state:e.viewState,set:u=>{e.options.origin=u},value:e.options?.origin,form:"anonymize",options:{}}]]),t[152]||(t[152]=n("label",{class:"form-check-label",for:"origin"},"Project name",-1))])],512),[[Z,e.detectedType==="pr"]])],512),[[Z,e.detectedType]]),D(n("section",W3,[t[170]||(t[170]=n("h2",{class:"paper-section-eyebrow",id:"hosting-heading"},"Hosting & expiration",-1)),n("div",K3,[t[154]||(t[154]=n("label",{class:"paper-field-label",for:"conference"},[g("Conference code "),n("span",{class:"paper-optional"},"(optional)")],-1)),D(n("input",{class:A(["form-control",{"is-invalid":e.anonymize?.conference?.invalid}]),id:"conference",name:"conference"},null,2),[[d,{state:e.viewState,set:u=>{e.conference=u},value:e.conference,form:"anonymize",options:{debounce:{default:800,blur:0},updateOn:"default blur"}}]]),D(n("p",{class:A(["conference-hosting",{"is-covered":e.conferenceHosting()}]),role:"status"},[n("a",{target:"_blank",href:e.safeUrl(e.conference_data?.url)},c(e.conference_data?.name),9,Y3),e.conferenceHosting()?(a(),l(q,{key:0},[g(" hosts this repository until "+c(e.fmt?.date(e.conference_data?.endDate))+", with automatic updates. You don't pay anything.",1)],64)):e.billing?.enabled&&e.detectedType==="repo"?(a(),l(q,{key:1},[g(" runs until "+c(e.fmt?.date(e.conference_data?.endDate))+". It doesn't pay for hosting, so this repository uses your own allowance.",1)],64)):(a(),l(q,{key:2},[g(" runs until "+c(e.fmt?.date(e.conference_data?.endDate))+".",1)],64))],2),[[Z,e.conference_data]]),D(n("div",X3,"The conference is not activated.",512),[[Z,e.anonymize?.conference?.errors?.activated]]),D(n("small",Q3,"Submitting to a conference? Its code applies the venue's settings, and a paid conference hosts the repository for you.",512),[[Z,!e.conference_data]])]),e.detectedType==="repo"&&e.billing?.enabled&&!e.conferenceHosting()?(a(),l("p",J3,[e.isUpdate&&e.role!=="owner"?(a(),l("span",Z3,"Uses the owner's hosting")):e.hasAuthorHosting()?(a(),l("span",x3,"Your author subscription is active.")):e.hostingQuota?.repository?(a(),l("span",eO,c(e.hostingQuota.repository.used)+" of "+c(e.hostingQuota.repository.total)+" active repositories \xB7 Free",1)):f("v-if",!0)])):f("v-if",!0),e.detectedType==="repo"&&e.options?.update&&!e.liveUpdatesIncluded()?(a(),l("p",tO,[t[155]||(t[155]=g("Automatic updates need a paid option. On free hosting, the link keeps the version you create until you refresh it from My work. Once it exists, add Live updates",-1)),e.liveUpdatesPrice()?(a(),l(q,{key:0},[g(" ("+c(e.liveUpdatesPrice())+" once)",1)],64)):f("v-if",!0),t[156]||(t[156]=g(" or a Paper pack in ",-1)),t[157]||(t[157]=n("a",{href:"/profile?billing=1"},"Settings \u203A Hosting & billing",-1)),t[158]||(t[158]=g(", or take an author subscription.",-1))])):f("v-if",!0),e.detectedType==="repo"&&e.billing?.enabled?(a(),l("div",nO,[e.hostingNeedsPayment()&&!e.billingPending?(a(),l(q,{key:0},[e.options.expirationMode!=="never"||e.hostingQuotaBlocked?(a(),l("p",sO,c(e.options.update&&!e.hostingQuotaBlocked&&e.hostingQuota?.repository?.used(a(),l("label",{class:A(["hosting-option",{"is-selected":e.hostingChoice()===u.id||u.interval&&e.authorPlans().some(y=>y.id===e.hostingChoice())}]),key:u.id},[n("input",{type:"radio",name:"hosting-plan",value:u.id,checked:e.hostingChoice()===u.id||u.interval&&e.authorPlans().some(y=>y.id===e.hostingChoice()),onChange:y=>e.hostingPlan=u.interval?e.hostingSubscriptionPlan().id:u.id},null,40,rO),n("span",aO,[n("strong",null,c(e.hostingOptionName(u)),1),n("small",null,c(e.hostingOptionBlurb(u)),1),u.interval&&e.authorPlans().length>1&&e.authorPlans().some(y=>y.id===e.hostingChoice())?(a(),l("span",lO,[(a(!0),l(q,null,J(e.authorPlans(),y=>(a(),l("button",{type:"button",role:"radio",key:y.id,"aria-checked":e.hostingSubscriptionPlan().id===y.id?"true":"false",class:A({"is-on":e.hostingSubscriptionPlan().id===y.id}),onClick:ae(m=>{e.hostingCycle=y.id,e.hostingPlan=y.id},["prevent"])},[g(c(y.interval==="year"?"Yearly":"Monthly"),1),y.interval==="year"&&e.hostingAnnualSavings()?(a(),l("span",uO,"\u2212"+c(e.hostingAnnualSavings())+"%",1)):f("v-if",!0)],10,dO))),128))])):f("v-if",!0)]),n("span",cO,[n("strong",null,c(e.billingAmount(u.interval?e.hostingSubscriptionPlan():u)),1),n("small",null,c(u.interval?"per "+e.hostingSubscriptionPlan().interval:"once"),1)])],2))),128))])):(a(),l("p",pO,"New purchases are temporarily unavailable. Your draft is kept.")),e.authorPlans().some(u=>u.id===e.hostingChoice())?(a(),l("p",fO,"Renews "+c(e.hostingChoice()==="author_annual"?"yearly":"monthly")+" until you cancel. Tax shown at checkout.",1)):(a(),l("p",hO,"One-time payment, nothing renews. Tax shown at checkout.")),e.options.expirationMode!=="never"?(a(),l("details",mO,[t[159]||(t[159]=n("summary",null,"Keep using free hosting",-1)),t[160]||(t[160]=n("p",null,"Remove a repository you no longer need, or enter the code of a paid conference above. Removing a repository affects its review link.",-1)),t[161]||(t[161]=n("a",{href:"/dashboard"},"Review my repositories",-1)),n("button",{type:"button",class:"task-text-button",onClick:t[28]||(t[28]=u=>e.anonymizeRepo(u)),disabled:e.sourceLoading||e.billingBusy},"Recheck capacity and submit",8,gO)])):f("v-if",!0)],64)):f("v-if",!0)])):f("v-if",!0),e.hostingNeedsPayment()&&!e.billingPending?(a(),l("h4",vO,"Expiration")):f("v-if",!0),n("fieldset",yO,[t[167]||(t[167]=n("legend",{class:"sr-only"},"Expiration",-1)),n("label",bO,[n("input",{type:"radio",name:"expiration-choice",checked:e.options.expirationMode!=="never",onChange:t[29]||(t[29]=u=>e.useDatedHosting()),disabled:e.billingPending},null,40,wO),t[162]||(t[162]=n("span",null,"Expire on a date",-1))]),e.options.expirationMode!=="never"?(a(),l("div",kO,[e.options?.expirationMode!=="never"?(a(),l("div",CO,[t[163]||(t[163]=n("label",{class:"paper-field-label",for:"expirationDate"},"Expires",-1)),D(n("input",{class:A(["form-control",{"is-invalid":e.anonymize?.expirationDate?.invalid}]),type:"date",name:"expirationDate",id:"expirationDate",required:"",min:e.minExpirationDate,max:e.maxExpirationDate},null,10,EO),[[d,{state:e.viewState,set:u=>{e.options.expirationDate=u},value:e.options?.expirationDate,form:"anonymize",options:{}}]]),e.fmt?.dateEcho(e.options?.expirationDate)?(a(),l("p",SO,"Expires "+c(e.fmt?.dateEcho(e.options?.expirationDate)),1)):f("v-if",!0),D(n("div",NO,"Pick a date in the future.",512),[[Z,e.anonymize?.expirationDate?.errors?.min]]),D(n("div",{class:"invalid-feedback"},"Pick a date on or before "+c(e.fmt?.date(e.maxExpirationDate))+".",513),[[Z,e.anonymize?.expirationDate?.errors?.max]]),D(n("div",RO,"Enter a valid expiration date.",512),[[Z,e.anonymize?.expirationDate?.errors?.required||e.anonymize?.expirationDate?.errors?.date]])])):f("v-if",!0),n("div",AO,[t[165]||(t[165]=n("label",{for:"expiration"},"Then",-1)),D(n("select",{id:"expiration",class:"form-control","onUpdate:modelValue":t[30]||(t[30]=u=>e.options.expirationMode=u)},[...t[164]||(t[164]=[n("option",{value:"remove"},"Remove content",-1),n("option",{value:"redirect"},"Redirect to GitHub",-1)])],512),[[Ut,e.options.expirationMode]])])])):f("v-if",!0),e.detectedType==="repo"?(a(),l("label",PO,[n("input",{type:"radio",name:"expiration-choice",checked:e.options.expirationMode==="never",onChange:t[31]||(t[31]=u=>e.options.expirationMode="never"),disabled:e.billingPending},null,40,DO),n("span",null,[t[166]||(t[166]=g("Never expire",-1)),(e.options.expirationMode!=="never"||e.hasAuthorHosting()||e.repositoryGrants("repo_never").length)&&!(e.hostingNeedsPayment()&&e.hostingOptionPlans().length)?(a(),l("small",TO,c(e.neverExpireTag()),1)):f("v-if",!0)])])):f("v-if",!0)]),e.options.expirationMode==="redirect"?(a(),l("p",OO,"Visitors will be redirected to the original GitHub source on this date, revealing its identity.")):f("v-if",!0),e.detectedType==="repo"&&e.billing?.enabled?(a(),l("div",IO,[e.taskValidationError?(a(),l("p",MO,c(e.taskValidationError),1)):f("v-if",!0),e.billingError?(a(),l("p",VO,[g(c(e.billingError)+" ",1),n("button",{type:"button",class:"task-text-button",onClick:t[32]||(t[32]=u=>e.loadBilling()),disabled:e.billingBusy},"Reload billing",8,qO)])):f("v-if",!0),e.billingPending?(a(),l("div",_O,[...t[168]||(t[168]=[n("p",null,[n("strong",null,"Confirming your payment\u2026")],-1),n("p",{class:"form-text text-muted"},"Your draft is saved. Please do not pay again.",-1)])])):e.billingNotice?(a(),l("p",$O,c(e.billingNotice),1)):e.options.expirationMode==="never"&&!e.billingPending&&!e.hasAuthorHosting()&&e.repositoryGrants("repo_never").length?(a(),l("p",LO,"No scheduled expiration. Paid once for this repository.")):e.options.expirationMode==="never"&&!e.billingPending?(a(),l("p",FO,"No scheduled expiration while subscribed. A 90-day grace period applies if paid access ends.")):f("v-if",!0),e.isUpdate&&e.role==="owner"&&!e.hasAuthorHosting()&&!e.hostingNeedsPayment()&&e.repositoryAddonPlans().length?(a(),l("details",UO,[t[169]||(t[169]=n("summary",null,"Pay once for just this repository",-1)),(a(!0),l(q,null,J(e.repositoryAddonPlans(),u=>(a(),l("div",{key:u.id},[n("p",null,[n("strong",null,c(u.name),1),g(" \xB7 "+c(e.billingPrice(u))+". "+c(u.description),1)]),n("button",{type:"button",class:"btn btn-outline-ink",disabled:e.billingBusy||e.hostingSaving||e.sourceLoading||e.billing.checkoutEnabled===!1||e.billingPending,onClick:y=>e.checkoutRepository(u.id)},"Buy "+c(u.name.toLowerCase()),9,BO)]))),128))])):f("v-if",!0)])):f("v-if",!0)],512),[[Z,e.detectedType]]),D(n("section",zO,[t[174]||(t[174]=n("h2",{class:"paper-section-eyebrow"},"Co-authors",-1)),t[175]||(t[175]=n("p",{class:"form-text text-muted",style:{"margin-bottom":"8px"}}," Co-authors can view and edit these settings. They cannot delete the anonymization or manage co-authors. ",-1)),D(n("div",HO,[t[171]||(t[171]=n("label",{class:"paper-field-label",for:"coauthorSearch"},"Add a GitHub user",-1)),n("div",jO,[D(n("input",GO,null,512),[[d,{state:e.viewState,set:u=>{e.coauthorSearch=u},value:e.coauthorSearch,form:"anonymize",options:{debounce:300},change:()=>{e.searchCoauthors()}}]]),D(n("div",WO,[(a(!0),l(q,null,J(e.coauthorResults,(u,y)=>(a(),l("a",{href:"#",class:"dropdown-item d-flex align-items-center",onClick:ae(m=>e.addCoauthor(u,m),["prevent"])},[n("img",{alt:"",style:{width:"22px",height:"22px","border-radius":"50%","margin-right":"8px"},src:e.safeUrl(u?.photo)},null,8,YO),n("span",{textContent:c(u?.username)},null,8,XO)],8,KO))),256))],512),[[Z,e.coauthorResults?.length>0]])]),D(n("small",{class:"form-text text-muted",textContent:c(e.coauthorError)},null,8,QO),[[Z,e.coauthorError]])],512),[[Z,e.role==="owner"||e.role==="admin"]]),n("div",JO,[(a(!0),l(q,null,J(e.coauthors,(u,y)=>(a(),l("div",ZO,[u?.photo?(a(),l("img",{key:0,alt:"",style:{width:"24px",height:"24px","border-radius":"50%"},src:e.safeUrl(u?.photo)},null,8,xO)):f("v-if",!0),n("a",{target:"_blank",textContent:c(u?.username),href:e.safeUrl("https://github.com/"+u?.username)},null,8,eI),t[173]||(t[173]=n("span",{class:"type-badge type-coauthor"},"Co-author",-1)),D(n("button",{type:"button",class:"btn btn-sm btn-icon",style:{"margin-left":"auto"},title:"Remove co-author",onClick:m=>e.removeCoauthor(u),"aria-label":"Remove co-author"},[...t[172]||(t[172]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])],8,tI),[[Z,e.role==="owner"||e.role==="admin"]])]))),256)),D(n("div",nI," No co-authors yet. ",512),[[Z,!e.coauthors||e.coauthors?.length===0]])])],512),[[Z,e.isUpdate&&e.detectedType==="repo"]]),e.error?(a(),l("div",{key:0,class:"alert alert-danger",role:"alert",textContent:c(e.error)},null,8,sI)):f("v-if",!0)]),n("button",{type:"button",class:"btn btn-outline-ink mobile-preview-jump",onClick:t[33]||(t[33]=u=>e.selectMobilePane("preview"))},[...t[176]||(t[176]=[g("Review preview ",-1),n("span",{"aria-hidden":"true"},"\u2192",-1)])]),D(n("div",oI,[e.detectedType==="repo"?(a(),l(q,{key:0},[e.billingPending?(a(),l("button",{key:0,type:"button",class:"btn btn-ink",onClick:t[34]||(t[34]=u=>e.refreshBilling()),disabled:e.billingBusy},"Check payment status",8,iI)):(a(),l("button",{key:1,type:"submit",class:"btn btn-ink",disabled:e.sourceLoading||e.billingBusy||e.hostingSaving||e.billingLoading||e.hostingNeedsPayment()&&(!e.authorPlans().length&&!e.hostingOneTime()||e.billing?.checkoutEnabled===!1),onClick:t[35]||(t[35]=ae(u=>e.submitForm(u,()=>{e.submitRepository(u)}),["prevent"]))},c(e.hostingSaving?"Saving draft\u2026":e.hostingNeedsPayment()?"Continue to checkout":e.isUpdate?"Save changes":"Create anonymous link"),9,rI))],64)):f("v-if",!0),e.detectedType==="pr"&&!e.isUpdate?(a(),l("button",{key:1,type:"submit",disabled:e.sourceLoading||!e.details,class:"btn btn-ink",onClick:t[36]||(t[36]=ae(u=>e.submitForm(u,()=>{e.anonymizePullRequest(u)}),["prevent"]))}," Create anonymous link ",8,aI)):f("v-if",!0),e.detectedType==="pr"&&e.isUpdate?(a(),l("button",{key:2,type:"submit",disabled:e.sourceLoading,class:"btn btn-ink",onClick:t[37]||(t[37]=ae(u=>e.submitForm(u,()=>{e.anonymizePullRequest(u)}),["prevent"]))}," Save changes ",8,lI)):f("v-if",!0),e.detectedType==="gist"&&!e.isUpdate?(a(),l("button",{key:3,type:"submit",disabled:e.sourceLoading||!e.details,class:"btn btn-ink",onClick:t[38]||(t[38]=ae(u=>e.submitForm(u,()=>{e.anonymizeGist(u)}),["prevent"]))}," Create anonymous link ",8,dI)):f("v-if",!0),e.detectedType==="gist"&&e.isUpdate?(a(),l("button",{key:4,type:"submit",disabled:e.sourceLoading,class:"btn btn-ink",onClick:t[39]||(t[39]=ae(u=>e.submitForm(u,()=>{e.anonymizeGist(u)}),["prevent"]))}," Save changes ",8,uI)):f("v-if",!0),e.sourceLoading?(a(),l("p",cI,c(e.detectedType==="pr"?"Waiting for the pull request to load from GitHub\u2026":e.detectedType==="gist"?"Waiting for the gist to load from GitHub\u2026":"Waiting for the repository to load from GitHub\u2026"),1)):!e.details&&!e.isUpdate?(a(),l("p",pI,"Load an accessible source to continue. See the preview for details.")):f("v-if",!0),e.hostingNeedsPayment()&&!e.billingPending?(a(),l("p",fI,"You pay in Stripe, then come back here to finish.")):f("v-if",!0),e.draftRestored?(a(),l("div",hI,[t[177]||(t[177]=g("Your unsaved draft was restored. ",-1)),n("button",{type:"button",class:"draft-discard",onClick:t[40]||(t[40]=u=>e.discardDraft())},"Discard draft")])):e.unsavedChanges?(a(),l("div",mI,[g(c(e.draftSaved?"Draft saved \xB7":"Unsaved changes \xB7")+" ",1),n("button",{type:"button",class:"draft-discard",onClick:t[41]||(t[41]=u=>e.discardDraft())},c(e.isUpdate?"Restore saved":"Discard"),1)])):f("v-if",!0)],512),[[Z,e.detectedType]])])),[[p,e.viewState]])],8,kD),f(' Preview column (right): "What reviewers will see", a miniature reviewer window '),e.detectedType?(a(),l("div",{key:0,id:"workspace-preview",role:e.mobileWorkspace?"tabpanel":null,"aria-labelledby":e.mobileWorkspace?"workspace-preview-tab":null,class:"anonymize-preview-col reviewer-preview"},[n("div",vI,[t[180]||(t[180]=n("span",{class:"rp-title"},"What reviewers will see",-1)),e.detectedType==="repo"?(a(),l("button",{key:0,type:"button",class:"rp-open",onClick:t[42]||(t[42]=u=>e.previewViewer.sidebarCollapsed=!e.previewViewer.sidebarCollapsed),"aria-expanded":!e.previewViewer.sidebarCollapsed,"aria-controls":"preview-file-tree"},"Files",8,yI)):f("v-if",!0),e.previewStatus==="ready"&&e.previewRedactions()>0?(a(),l("span",{key:1,class:"rp-count",title:e.previewRedactions()+" redacted terms in this preview"},[n("span",wI,[n("i",null,c(e.previewRedactions()),1)]),t[178]||(t[178]=g(" redacted",-1))],8,bI)):e.previewStatus==="ready"&&!String(e.terms||"").trim()?(a(),l("span",kI,"No terms yet")):e.previewStatus==="ready"&&e.previewPreserved()?(a(),l("button",{key:3,type:"button",class:"rp-count rp-count-none",onClick:t[43]||(t[43]=u=>e.openPreserveFiles()),title:"Change it in Leave files unredacted"},c(e.previewName(e.previewFile?e.previewFile.slice(e.previewFile.lastIndexOf("/")+1):e.readmeName()))+" left unredacted",1)):f("v-if",!0),t[181]||(t[181]=n("span",{class:"rp-spacer"},null,-1)),e.isUpdate&&e.previewUrl()?(a(),l("a",{key:4,class:"rp-open is-external",href:e.safeUrl(e.previewPath()),target:"_blank",rel:"noopener"},[...t[179]||(t[179]=[g("Open reviewer page ",-1),n("span",{"aria-hidden":"true"},"\u2197",-1)])],8,CI)):(a(),l("button",{key:5,type:"button",class:"rp-open is-toggle",onClick:t[44]||(t[44]=u=>e.previewExpanded=!e.previewExpanded),"aria-pressed":!!e.previewExpanded},[(a(),l("svg",SI,[e.previewExpanded?(a(),l("path",RI)):(a(),l("path",NI))])),g(c(e.previewExpanded?"Back to settings":"Expand preview"),1)],8,EI))]),n("div",AI,[n("div",PI,[t[182]||(t[182]=n("i",null,null,-1)),t[183]||(t[183]=n("i",null,null,-1)),t[184]||(t[184]=n("i",null,null,-1)),n("span",DI,c(e.previewUrl()||"anonymous.4open.science"),1)]),n("div",TI,[t[185]||(t[185]=n("span",{class:"vb-logo"},[g("Anonymous "),n("em",null,"GitHub")],-1)),e.previewId()?(a(),l("span",OI,c(e.previewId()),1)):f("v-if",!0),e.detectedType!=="repo"?(a(),l("span",II,c(e.detectedType==="pr"?"Pull request":"Gist"),1)):f("v-if",!0)]),n("div",{class:A(["rp-body",{"reviewer-explorer":e.detectedType==="repo"}])},[e.detectedType==="repo"?(a(),l("aside",{key:0,id:"preview-file-tree",class:A(["leftCol",{collapsed:e.previewViewer.sidebarCollapsed}]),"aria-label":"Files reviewers will see"},[n("div",MI,[t[187]||(t[187]=n("span",{class:"leftCol-eyebrow"},"Files",-1)),n("button",{type:"button",class:"leftCol-close","aria-label":"Close files",onClick:t[45]||(t[45]=u=>e.previewViewer.sidebarCollapsed=!0)},[...t[186]||(t[186]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])])]),n("div",VI,[Oe(s,{class:"files",file:e.previewTreeFiles(),page:e.previewViewer,"selected-path":"/"+e.previewPathName(e.previewOpenPath()),onSelect:t[46]||(t[46]=u=>e.selectPreviewPath(u))},null,8,["file","page","selected-path"])])],2)):f("v-if",!0),e.detectedType==="repo"?D((a(),l("div",{key:1,class:"leftCol-backdrop",onClick:t[47]||(t[47]=u=>e.previewViewer.sidebarCollapsed=!0)},null,512)),[[Z,!e.previewViewer.sidebarCollapsed]]):f("v-if",!0),n("div",{class:A(e.detectedType==="repo"?"explorer-main":"rp-main")},[n("div",{class:A(e.detectedType==="repo"?"explorer-content":"rp-document")},[f(" Loading: skeleton inside the window "),e.previewStatus==="loading"||e.sourceLoading&&e.previewStatus!=="ready"&&e.previewStatus!=="error"?(a(),l("div",qI,[n("span",_I,c(e.previewDoc.loading?"Loading "+e.previewName(e.previewFile.slice(e.previewFile.lastIndexOf("/")+1))+" from GitHub\u2026":e.previewStatus==="loading"?"Updating the anonymized preview\u2026":e.detectedType==="pr"?"Loading the pull request from GitHub\u2026":e.detectedType==="gist"?"Loading the gist from GitHub\u2026":"Loading the repository from GitHub\u2026"),1),t[188]||(t[188]=Ce('',7))])):!e.details&&e.detectedType!=="repo"?(a(),l(q,{key:1},[f(" The source itself could not be loaded "),n("div",$I,[n("strong",null,"Couldn't load "+c(e.sourceSummary()||(e.detectedType==="pr"?"this pull request":"this gist")),1),n("p",null,c(e.error||"GitHub did not return it. Check that the link is right and that Anonymous GitHub can read it."),1),n("div",LI,[n("button",{type:"button",class:"btn btn-ink btn-sm",onClick:t[48]||(t[48]=u=>e.urlSelected(!0))},"Retry"),e.detectedType==="pr"&&e.githubConnection!=="oauth"?(a(),l("button",{key:0,type:"button",class:"btn btn-outline-ink btn-sm",onClick:t[49]||(t[49]=u=>e.grantGitHubAccess())},[...t[189]||(t[189]=[g("Manage GitHub access ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-external-link"})],-1)])])):(a(),l("a",FI,[...t[190]||(t[190]=[g("Manage GitHub access ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-external-link"})],-1)])]))])])],2112)):!e.details&&e.detectedType==="repo"&&!e.isUpdate&&e.error?(a(),l("div",UI,[t[192]||(t[192]=n("strong",null,"Couldn't load this repository",-1)),n("p",null,c(e.error),1),n("div",BI,[n("button",{type:"button",class:"btn btn-ink btn-sm",onClick:t[50]||(t[50]=u=>e.urlSelected(!0))},"Retry"),e.githubConnection!=="oauth"?(a(),l("button",{key:0,type:"button",class:"btn btn-outline-ink btn-sm",onClick:t[51]||(t[51]=u=>e.grantGitHubAccess())},[...t[191]||(t[191]=[g("Manage GitHub access ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-external-link"})],-1)])])):f("v-if",!0)])])):e.previewStatus==="error"&&e.previewDoc.loadError?(a(),l(q,{key:3},[f(" The open file could not be read from GitHub "),n("div",zI,[n("strong",null,"Couldn't load "+c(e.previewName(e.previewFile.slice(e.previewFile.lastIndexOf("/")+1))),1),n("p",null,c(e.previewDoc.loadError),1),n("div",HI,[n("button",{class:"btn btn-ink btn-sm",type:"button",onClick:t[52]||(t[52]=u=>e.retryPreview())},"Retry"),n("button",{class:"btn btn-outline-ink btn-sm",type:"button",onClick:t[53]||(t[53]=u=>e.openPreviewFile(""))},"Back to the README")])])],2112)):e.previewStatus==="error"?(a(),l(q,{key:4},[f(" The anonymized preview failed "),n("div",jI,[t[193]||(t[193]=n("strong",null,"Couldn't apply the redactions",-1)),t[194]||(t[194]=n("p",null,"Unable to generate the anonymized preview. The latest redactions have not been verified.",-1)),n("div",GI,[n("button",{class:"btn btn-ink btn-sm",type:"button",onClick:t[54]||(t[54]=u=>e.retryPreview())},"Retry preview")])])],2112)):e.detectedType==="repo"&&!e.previewFile&&!e.readme&&e.previewStatus==="idle"?(a(),l("div",WI,[...t[195]||(t[195]=[n("strong",null,"No README",-1),n("p",null,"Reviewers land on the file list. Open the files you will share and check them before sending the link.",-1)])])):e.detectedType==="repo"&&e.previewStatus==="ready"?(a(),Wt(i,{key:6,name:"partials/pageView.htm",state:e.previewViewer},null,8,["state"])):e.detectedType==="gist"&&e.previewStatus==="ready"?(a(),l("div",KI,[n("div",YI,[n("h2",XI,[e.options?.title?(a(),l("span",QI,c(e.anonymizeGistContent(e.details?.gist?.description)||"Untitled gist"),1)):f("v-if",!0),n("span",{class:A(["badge",{"badge-success":e.details?.gist?.isPublic,"badge-secondary":!e.details?.gist?.isPublic}])},c(e.details?.gist?.isPublic?"public":"secret"),3)]),e.options?.date?(a(),l("small",{key:0,textContent:c(e.fmt?.date(e.details?.gist?.updatedDate))},null,8,JI)):f("v-if",!0)]),e.options?.origin?(a(),l("small",ZI,"Gist ID: "+c(e.details?.source?.gistId),1)):f("v-if",!0),e.options?.username&&e.details?.gist?.ownerLogin?(a(),l("small",xI,"By @"+c(e.anonymizeGistContent(e.details?.gist?.ownerLogin)),1)):f("v-if",!0),e.options?.content&&e.previewGistFiles?.length?(a(),l("div",e5,[n("ul",t5,[(a(!0),l(q,null,J(e.previewGistFiles,(u,y)=>(a(),l("li",n5,[n("div",s5,[n("strong",{textContent:c(u?.filename)},null,8,o5),u?.language?(a(),l("span",i5,c(u?.language),1)):f("v-if",!0)]),Oe(o,{file:u,terms:e.terms,options:e.options},null,8,["file","terms","options"])]))),256))])])):f("v-if",!0),e.options?.comments&&e.details?.gist?.comments&&e.details?.gist?.comments?.length?(a(),l("div",r5,[t[198]||(t[198]=n("h3",{class:"paper-section-eyebrow mt-3"},"Comments",-1)),n("ul",a5,[(a(!0),l(q,null,J(e.details?.gist?.comments,(u,y)=>(a(),l("li",l5,[n("div",d5,[e.options?.username?(a(),l("span",u5,[t[196]||(t[196]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-user"})],-1)),t[197]||(t[197]=g(" @",-1)),n("span",{textContent:c(e.anonymizeGistContent(u?.author))},null,8,c5)])):f("v-if",!0),e.options?.date?(a(),l("span",{key:1,class:"pr-comment-date",textContent:c(e.fmt?.date(u?.updatedDate))},null,8,p5)):f("v-if",!0)]),e.options?.body?(a(),l("div",f5,[Oe(r,{content:e.anonymizeGistContent(u?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])])):f("v-if",!0)]))),256))])])):f("v-if",!0)])):e.detectedType==="pr"&&e.previewStatus==="ready"?(a(),l("div",h5,[n("div",m5,[n("h2",g5,[e.options?.title?(a(),l("span",v5,c(e.anonymizePrContent(e.details?.pullRequest?.title)),1)):f("v-if",!0),n("span",{class:A(["badge",{"badge-success":e.details?.pullRequest?.merged,"badge-warning":e.details?.pullRequest?.state=="open","badge-danger":e.details?.pullRequest?.state=="closed"&&!e.details?.pullRequest?.merged}])},c(e.fmt?.title(e.details?.pullRequest?.merged?"merged":e.details?.pullRequest?.state)),3)]),e.options?.date?(a(),l("small",{key:0,textContent:c(e.fmt?.date(e.details?.pullRequest?.updatedDate))},null,8,y5)):f("v-if",!0)]),e.options?.origin?(a(),l("small",b5,"Pull Request on "+c(e.details?.pullRequest?.baseRepositoryFullName),1)):f("v-if",!0),e.options?.body?(a(),l("div",w5,[Oe(r,{content:e.anonymizePrContent(e.details?.pullRequest?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])])):f("v-if",!0),e.options?.diff||e.options?.comments?(a(),l("nav",k5,[e.options?.diff?(a(),l("button",{key:0,class:A(["paper-tab",{active:e.prTabState?.active=="diff"}]),type:"button",role:"tab",id:"preview-pr-diff-tab","aria-selected":e.prTabState?.active==="diff","aria-controls":"preview-pr-diff-panel",tabindex:e.prTabState?.active==="diff"?0:-1,onKeydown:t[55]||(t[55]=u=>e.previewTabKeydown(u)),onClick:t[56]||(t[56]=u=>e.prTabState.active="diff")},[...t[199]||(t[199]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-code"})],-1),g(" Diff ",-1)])],42,C5)):f("v-if",!0),e.options?.comments?(a(),l("button",{key:1,class:A(["paper-tab",{active:e.prTabState?.active=="comments"}]),type:"button",role:"tab",id:"preview-pr-comments-tab","aria-selected":e.prTabState?.active==="comments","aria-controls":"preview-pr-comments-panel",tabindex:e.prTabState?.active==="comments"?0:-1,onKeydown:t[57]||(t[57]=u=>e.previewTabKeydown(u)),onClick:t[58]||(t[58]=u=>e.prTabState.active="comments")},[t[200]||(t[200]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-comment"})],-1)),n("span",{textContent:c(e.fmt.plural(e.details?.pullRequest?.comments?.length,{0:"No comments",one:"1 comment",other:"{} comments"}))},null,8,S5)],42,E5)):f("v-if",!0)])):f("v-if",!0),!e.options?.diff&&!e.options?.comments?(a(),l("div",N5,"Diff and comments are hidden by your display settings.")):f("v-if",!0),n("div",R5,[e.options?.diff&&e.prTabState?.active=="diff"?(a(),l("div",A5,[n("div",{class:"pr-diff",innerHTML:e.sanitize(e.fmt?.diff(e.anonymizePrContent(e.details?.pullRequest?.diff)))},null,8,P5)])):f("v-if",!0),e.options?.comments&&e.prTabState?.active=="comments"?(a(),l("div",D5,[n("ul",T5,[(a(!0),l(q,null,J(e.details?.pullRequest?.comments,(u,y)=>(a(),l("li",O5,[n("div",I5,[e.options?.username?(a(),l("span",M5,[t[201]||(t[201]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-user"})],-1)),t[202]||(t[202]=g(" @",-1)),n("span",{textContent:c(e.anonymizePrContent(u?.author))},null,8,V5)])):f("v-if",!0),e.options?.date?(a(),l("span",{key:1,class:"pr-comment-date",textContent:c(e.fmt?.date(u?.updatedDate))},null,8,q5)):f("v-if",!0)]),e.options?.body?(a(),l("div",_5,[Oe(r,{content:e.anonymizePrContent(u?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])])):f("v-if",!0)]))),256))])])):f("v-if",!0)])])):f("v-if",!0),f(" More below: a fade with a way to keep reading (hidden by CSS once the window is scrolled to the end) "),e.previewStatus==="ready"&&!(e.detectedType==="repo"&&e.previewFile&&e.previewDoc.note)?(a(),l("div",$5,[e.isUpdate&&e.previewUrl()?(a(),l("a",{key:0,class:"rp-more-btn",href:e.safeUrl(e.previewPath()),target:"_blank",rel:"noopener"},[...t[203]||(t[203]=[g("Continue reading on the reviewer page ",-1),n("span",{"aria-hidden":"true"},"\u2197",-1)])],8,L5)):e.previewExpanded?(a(),l("span",F5,"Scroll for more")):(a(),l("button",{key:1,type:"button",class:"rp-more-btn",onClick:t[59]||(t[59]=u=>e.previewExpanded=!0)},"Continue reading in the expanded preview"))])):f("v-if",!0)],2)],2)],2)])],8,gI)):f("v-if",!0)])],512),[[Z,e.workspaceOpen||e.isUpdate]])],2)}var U5={class:"container-fluid h-100 anonymize-page"},B5={class:"row h-100 flex-column flex-md-row"},z5={class:"col-md sidePanel shadow overflow-auto anonymize-form-col"},H5={class:"form-group"},j5={class:"form-group"},G5={class:"form-check"},W5={class:"form-check-input",type:"checkbox",id:"update",name:"update"},K5={class:"form-group"},Y5={class:"form-text text-muted"},X5=["href"],Q5={class:"invalid-feedback"},J5={class:"form-text text-muted"},Z5={class:"form-group"},x5={id:"idHelp",class:"form-text text-muted"},e8={class:"invalid-feedback"},t8={class:"form-group"},n8={class:"invalid-feedback"},s8={class:"form-group"},o8={class:"form-control",id:"expiration",name:"expiration"},i8={class:"form-group",id:"expiration-date-form"},r8={class:"form-control",type:"date",name:"expirationDate",id:"expirationDate"},a8={key:0,class:"date-echo","aria-live":"polite"},l8={class:"accordion mb-3",id:"options"},d8={class:"card"},u8={id:"collapseOne",class:"collapse show","aria-labelledby":"headingOne","data-parent":"#options"},c8={class:"card-body"},p8={class:"form-group mb-0"},f8={class:"form-check"},h8={class:"form-check-input",type:"checkbox",id:"link",name:"link"},m8={class:"form-check"},g8={class:"form-check-input",type:"checkbox",id:"image",name:"image"},v8={class:"form-check"},y8={class:"form-check-input",type:"checkbox",id:"date",name:"date"},b8={class:"form-check"},w8={class:"form-check-input",type:"checkbox",id:"username",name:"username"},k8={class:"form-check"},C8={class:"form-check-input",type:"checkbox",id:"comments",name:"comments"},E8={class:"form-check"},S8={class:"form-check-input",type:"checkbox",id:"diff",name:"diff"},N8={class:"form-check"},R8={class:"form-check-input",type:"checkbox",id:"origin",name:"origin"},A8={class:"form-check"},P8={class:"form-check-input",type:"checkbox",id:"title",name:"title"},D8={class:"form-check"},T8={class:"form-check-input",type:"checkbox",id:"body",name:"body"},O8=["textContent"],I8={class:"anonymize-submit-bar"},M8={key:0,class:"col-md-8 p-2 overflow-auto anonymize-preview-col"},V8={class:"d-flex w-100 justify-content-between align-items-center flex-wrap"},q8={class:"pr-title mb-1"},_8={key:0},$8=["textContent"],L8={key:0},F8={key:1,class:"pr-body shadow-sm p-3 mb-4 rounded",style:{background:"var(--sidebar-bg-color)"}},U8={class:"nav nav-tabs",id:"myTab",role:"tablist"},B8={key:0,class:"nav-item",role:"presentation"},z8={key:1,class:"nav-item",role:"presentation"},H8=["textContent"],j8={class:"tab-content",id:"pills-tabContent"},G8={class:"tab-pane show active",id:"pills-diff",role:"tabpanel","aria-labelledby":"pills-diff-tab"},W8={key:0,class:"pr-diff shadow-sm p-3 mb-4 rounded",style:{background:"var(--sidebar-bg-color)"}},K8={style:{"overflow-x":"auto"}},Y8=["innerHTML"],X8={key:0,class:"pr-comments list-group"},Q8={class:"pr-comment list-group-item"},J8={class:"d-flex w-100 justify-content-between flex-wrap"},Z8={key:0,class:"mb-1"},x8=["textContent"],eM={class:"mb-1"};function lp(e,t){let s=Xe("markdown"),i=Pe("field"),o=Pe("form");return a(),l("div",U5,[n("div",B5,[n("div",z5,[n("div",{class:A(["p-0 py-2 m-auto",{card:!e.pullRequestUrl,container:e.pullRequestUrl}])},[D((a(),l("form",{class:A(["form needs-validation",{"card-body":!e.pullRequestUrl}]),name:"anonymizeForm",novalidate:""},[t[30]||(t[30]=Ce('
Anonymize \xA0/\xA0 Pull request

Anonymize a pull request

Fill in the details \u2014 it only takes a minute.

Source
',4)),f(" pullRequestUrl "),n("div",H5,[t[2]||(t[2]=n("label",{for:"pullRequestUrl"},"URL of your pull request",-1)),D(n("input",{type:"text",class:A(["form-control",{"is-invalid":e.anonymize?.pullRequestUrl?.invalid}]),name:"pullRequestUrl",id:"pullRequestUrl",placeholder:"https://github.com/owner/repo/pull/123"},null,2),[[i,{state:e.viewState,set:r=>{e.pullRequestUrl=r},value:e.pullRequestUrl,form:"anonymizeForm",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"},change:()=>{e.pullRequestSelected()}}]]),D(n("div",{class:"invalid-feedback"},c(e.pullRequestUrl)+" is not accessible. Some organizations are restricting the access to the repositories. ",513),[[Z,e.anonymize?.pullRequestUrl?.errors?.access]]),D(n("div",{class:"invalid-feedback"},c(e.pullRequestUrl)+" does not exist or is not accessible ",513),[[Z,e.anonymize?.pullRequestUrl?.errors?.missing]]),D(n("div",{class:"invalid-feedback"},c(e.pullRequestUrl)+" is already anonymized ",513),[[Z,e.anonymize?.pullRequestUrl?.errors?.used]])]),D(n("div",null,[n("div",j5,[n("div",G5,[D(n("input",W5,null,512),[[i,{state:e.viewState,set:r=>{e.options.update=r},value:e.options?.update,form:"anonymizeForm",options:{}}]]),t[3]||(t[3]=n("label",{class:"form-check-label",for:"update"},"Auto update",-1)),t[4]||(t[4]=n("small",{id:"updateHelp",class:"form-text text-muted"},"Automatically update the anonymized pull request with the latest updates. The pull request is updated once per day maximum.",-1))])]),t[26]||(t[26]=n("div",{class:"paper-section-eyebrow anonymize-section-title"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-conference"})]),g(" Conference ID ")],-1)),f(" Conference "),n("div",K5,[t[5]||(t[5]=n("label",{for:"conference"},[g("Conference ID "),n("span",{class:"text-muted"},"(Optional)")],-1)),D(n("input",{class:A(["form-control",{"is-invalid":e.anonymize?.conference?.invalid}]),id:"conference",name:"conference"},null,2),[[i,{state:e.viewState,set:r=>{e.conference=r},value:e.conference,form:"anonymizeForm",options:{debounce:{default:800,blur:0},updateOn:"default blur"}}]]),D(n("small",Y5,[n("a",{target:"_target",href:e.safeUrl(e.conference_data?.url)},c(e.conference_data?.name),9,X5),g(" will expire on "+c(e.fmt?.date(e.conference_data?.endDate))+".",1)],512),[[Z,e.conference_data]]),D(n("div",Q5," The conference is not activated. ",512),[[Z,e.anonymize?.conference?.errors?.activated]]),D(n("small",J5," Use the Conference ID that your conference provided you. This will update automatically the anonymization options based on the conference preferences. ",512),[[Z,!e.conference_data]])]),t[27]||(t[27]=n("div",{class:"paper-section-eyebrow anonymize-section-title"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})]),g(" Anonymization Options ")],-1)),f(" Pull Request ID "),n("div",Z5,[t[6]||(t[6]=n("label",{for:"pullRequestId"},"Anonymized pull request id",-1)),D(n("input",{type:"text",class:A(["form-control",{"is-invalid":e.anonymize?.pullRequestId?.invalid}]),name:"pullRequestId",id:"pullRequestId"},null,2),[[i,{state:e.viewState,set:r=>{e.pullRequestId=r},value:e.pullRequestId,form:"anonymizeForm",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"}}]]),n("small",x5,"Id used in the url: https://anonymous.4open.science/r/"+c(e.pullRequestId),1),D(n("div",e8," Repository id can only contain letters and numbers ",512),[[Z,e.anonymize?.pullRequestId?.errors?.format]]),D(n("div",{class:"invalid-feedback"},c(e.pullRequestId)+" is already used ",513),[[Z,e.anonymize?.pullRequestId?.errors?.used]])]),f(" Terms "),n("div",t8,[t[7]||(t[7]=n("label",{for:"terms"},"Terms to anonymize",-1)),D(n("textarea",{class:A(["form-control",{"is-invalid":e.anonymize?.terms?.invalid}]),id:"terms",name:"terms",rows:"3"},null,2),[[i,{state:e.viewState,set:r=>{e.terms=r},value:e.terms,form:"anonymizeForm",options:{debounce:250}}]]),t[8]||(t[8]=n("small",{id:"termsHelp",class:"form-text text-muted"},"One term per line. Each term will be replaced by XXX.",-1)),D(n("div",n8," Terms are in an invalid format ",512),[[Z,e.anonymize?.terms?.errors?.format]])]),n("div",s8,[t[10]||(t[10]=n("label",{for:"expiration"},"Expiration strategy",-1)),D((a(),l("select",o8,[...t[9]||(t[9]=[n("option",{value:"never",selected:""},"Never expire",-1),n("option",{value:"redirect"}," Redirect to GitHub when expired ",-1),n("option",{value:"remove"},"Remove when expired",-1)])])),[[i,{state:e.viewState,set:r=>{e.options.expirationMode=r},value:e.options?.expirationMode,form:"anonymizeForm",options:{}}]]),t[11]||(t[11]=n("small",{class:"form-text text-muted"},"Define the expiration strategy for the anonymized repository.",-1))]),D(n("div",i8,[t[12]||(t[12]=n("label",{for:"expirationDate"},"Expiration date of the anonymized repository",-1)),D(n("input",r8,null,512),[[i,{state:e.viewState,set:r=>{e.options.expirationDate=r},value:e.options?.expirationDate,form:"anonymizeForm",options:{}}]]),e.fmt?.dateEcho(e.options?.expirationDate)?(a(),l("p",a8,"Expires "+c(e.fmt?.dateEcho(e.options?.expirationDate)),1)):f("v-if",!0),D(n("small",{class:"form-text text-muted"},"After "+c(e.fmt?.date(e.options?.expirationDate))+", the repository will be removed and the visitor will not be able to see the content of the repository.",513),[[Z,e.options?.expirationMode=="remove"]]),D(n("small",{class:"form-text text-muted"},"After "+c(e.fmt?.date(e.options?.expirationDate))+", the visitors of the anonymized repository will be redirected to "+c(e.pullRequestUrl)+".",513),[[Z,e.options?.expirationMode=="redirect"]])],512),[[Z,e.options?.expirationMode!="never"]]),n("div",l8,[n("div",d8,[t[25]||(t[25]=Ce('

',1)),n("div",u8,[n("div",c8,[n("div",p8,[n("div",f8,[D(n("input",h8,null,512),[[i,{state:e.viewState,set:r=>{e.options.link=r},value:e.options?.link,form:"anonymizeForm",options:{}}]]),t[13]||(t[13]=n("label",{class:"form-check-label",for:"link"},"Keep links",-1)),t[14]||(t[14]=n("small",{class:"form-text text-muted"},"Keep or remove all the links.",-1))]),n("div",m8,[D(n("input",g8,null,512),[[i,{state:e.viewState,set:r=>{e.options.image=r},value:e.options?.image,form:"anonymizeForm",options:{}}]]),t[15]||(t[15]=n("label",{class:"form-check-label",for:"image"},"Display images",-1)),t[16]||(t[16]=n("small",{class:"form-text text-muted"},"Images are not anonymized",-1))]),n("div",v8,[D(n("input",y8,null,512),[[i,{state:e.viewState,set:r=>{e.options.date=r},value:e.options?.date,form:"anonymizeForm",options:{}}]]),t[17]||(t[17]=n("label",{class:"form-check-label",for:"date"},"Display dates",-1)),t[18]||(t[18]=n("small",{class:"form-text text-muted"},"Display the date of the Pull Request and the date of the comments.",-1))]),n("div",b8,[D(n("input",w8,null,512),[[i,{state:e.viewState,set:r=>{e.options.username=r},value:e.options?.username,form:"anonymizeForm",options:{}}]]),t[19]||(t[19]=n("label",{class:"form-check-label",for:"username"},"Display username",-1))]),n("div",k8,[D(n("input",C8,null,512),[[i,{state:e.viewState,set:r=>{e.options.comments=r},value:e.options?.comments,form:"anonymizeForm",options:{}}]]),t[20]||(t[20]=n("label",{class:"form-check-label",for:"comments"},"Display comments",-1))]),n("div",E8,[D(n("input",S8,null,512),[[i,{state:e.viewState,set:r=>{e.options.diff=r},value:e.options?.diff,form:"anonymizeForm",options:{}}]]),t[21]||(t[21]=n("label",{class:"form-check-label",for:"diff"},"Display diff",-1))]),n("div",N8,[D(n("input",R8,null,512),[[i,{state:e.viewState,set:r=>{e.options.origin=r},value:e.options?.origin,form:"anonymizeForm",options:{}}]]),t[22]||(t[22]=n("label",{class:"form-check-label",for:"origin"},"Display the project name",-1))]),n("div",A8,[D(n("input",P8,null,512),[[i,{state:e.viewState,set:r=>{e.options.title=r},value:e.options?.title,form:"anonymizeForm",options:{}}]]),t[23]||(t[23]=n("label",{class:"form-check-label",for:"title"},"Display the PR title",-1))]),n("div",D8,[D(n("input",T8,null,512),[[i,{state:e.viewState,set:r=>{e.options.body=r},value:e.options?.body,form:"anonymizeForm",options:{}}]]),t[24]||(t[24]=n("label",{class:"form-check-label",for:"body"},"Display the PR body and comment bodies",-1))])])])])])])],512),[[Z,e.pullRequestUrl]]),e.error?(a(),l("div",{key:0,class:"alert alert-danger",role:"alert",textContent:c(e.error)},null,8,O8)):f("v-if",!0),D(n("div",I8,[e.isUpdate?f("v-if",!0):(a(),l("button",{key:0,id:"submit",type:"submit",class:"btn btn-ink btn-block",onClick:t[0]||(t[0]=ae(r=>e.submitForm(r,()=>{e.anonymizePullRequest(r)}),["prevent"]))},[...t[28]||(t[28]=[n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1),g(" Anonymize ",-1)])])),e.isUpdate?(a(),l("button",{key:1,id:"submit",type:"submit",class:"btn btn-ink btn-block",onClick:t[1]||(t[1]=ae(r=>e.submitForm(r,()=>{e.updatePullRequest(r)}),["prevent"]))},[...t[29]||(t[29]=[n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-save"})],-1),g(" Update ",-1)])])):f("v-if",!0)],512),[[Z,e.pullRequestUrl]])],2)),[[o,e.viewState]])],2)]),e.details?(a(),l("div",M8,[n("div",V8,[n("h2",q8,[e.options?.title?(a(),l("span",_8,c(e.anonymize(e.details?.pullRequest?.title)),1)):f("v-if",!0),n("span",{class:A(["badge",{"badge-success":e.details?.pullRequest?.merged,"badge-warning":e.details?.pullRequest?.state=="open","badge-danger":e.details?.pullRequest?.state=="closed"&&!e.details?.pullRequest?.merged}])},c(e.fmt?.title(e.details?.pullRequest?.merged?"merged":e.details?.pullRequest?.state)),3)]),e.options?.date?(a(),l("small",{key:0,textContent:c(e.fmt?.date(e.details?.pullRequest?.updatedDate))},null,8,$8)):f("v-if",!0)]),e.options?.origin?(a(),l("small",L8,"Pull Request on "+c(e.details?.pullRequest?.baseRepositoryFullName),1)):f("v-if",!0),e.options?.body?(a(),l("div",F8,[Oe(s,{content:e.anonymize(e.details?.pullRequest?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])])):f("v-if",!0),n("ul",U8,[e.options?.diff?(a(),l("li",B8,[...t[31]||(t[31]=[n("button",{class:"nav-link active",id:"pills-diff-tab","data-toggle":"pill","data-target":"#pills-diff",type:"button",role:"tab","aria-controls":"pills-diff","aria-selected":"true"}," Diff ",-1)])])):f("v-if",!0),e.options?.comments?(a(),l("li",z8,[n("button",{class:A(["nav-link",{active:!e.options?.diff}]),id:"pills-comments-tab","data-toggle":"pill","data-target":"#pills-comments",type:"button",role:"tab","aria-controls":"pills-comments","aria-selected":"false"},[n("span",{textContent:c(e.fmt.plural(e.details?.pullRequest?.comments?.length,{0:"No comment",one:"One Comment",other:"{} Comments"}))},null,8,H8)],2)])):f("v-if",!0)]),n("div",j8,[n("div",G8,[e.options?.diff?(a(),l("div",W8,[n("pre",K8,[n("code",{innerHTML:e.sanitize(e.fmt?.diff(e.anonymize(e.details?.pullRequest?.diff)))},null,8,Y8)])])):f("v-if",!0)]),n("div",{class:A(["tab-pane",{"show active":!e.options?.diff}]),id:"pills-comments",role:"tabpanel","aria-labelledby":"pills-comments-tab"},[e.options?.comments?(a(),l("ul",X8,[(a(!0),l(q,null,J(e.details?.pullRequest?.comments,(r,d)=>(a(),l("li",Q8,[n("div",J8,[e.options?.username?(a(),l("h5",Z8," @"+c(e.anonymize(r?.author)),1)):f("v-if",!0),e.options?.date?(a(),l("small",{key:1,textContent:c(e.fmt?.date(r?.updatedDate))},null,8,x8)):f("v-if",!0)]),n("p",eM,[e.options?.body?(a(),Wt(s,{key:0,class:"pr-comment-body",content:e.anonymize(r?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])):f("v-if",!0)])]))),256))])):f("v-if",!0)],2)])])):f("v-if",!0)])])}var tM={class:"container paper-page claim-page"},nM={class:"paper-settings-main claim-form"},sM={class:"form-group"},oM={class:"invalid-feedback"},iM={class:"form-group"};function dp(e,t){let s=Pe("field"),i=Pe("form");return a(),l("div",tM,[t[6]||(t[6]=Ce('
My work \xA0/\xA0 Claim

Claim an anonymization

Take ownership of an existing anonymized repository so it appears on your dashboard.

',3)),n("div",nM,[t[5]||(t[5]=n("p",{class:"paper-section-copy"},"Use this when an anonymization was created by a co-author or from another account. You must have access to the GitHub repository it was made from.",-1)),D((a(),l("form",{class:"form needs-validation",name:"claimForm",novalidate:"",onSubmit:t[0]||(t[0]=ae(o=>e.submitForm(o,()=>{e.claim()}),["prevent"]))},[n("div",sM,[t[1]||(t[1]=n("label",{class:"paper-field-label",for:"repoUrl"},"GitHub repository URL",-1)),D(n("input",{type:"text",class:A(["form-control",{"is-invalid":e.claimForm?.repoUrl?.invalid&&(e.claimForm?.repoUrl?.touched||e.claimForm?.submitted)}]),name:"repoUrl",id:"repoUrl",placeholder:"https://github.com/owner/repository",required:""},null,2),[[s,{state:e.viewState,set:o=>{e.repoUrl=o},value:e.repoUrl,form:"claimForm",options:{}}]]),D(n("div",oM," No anonymization matches this repository and ID. Check both values and that you can access the repository on GitHub. ",512),[[Z,e.claimForm?.repoUrl?.errors?.not_found]])]),n("div",iM,[t[2]||(t[2]=n("label",{class:"paper-field-label",for:"repoId"},"Anonymized repository ID",-1)),D(n("input",{type:"text",class:A(["form-control",{"is-invalid":e.claimForm?.repoId?.invalid&&(e.claimForm?.repoId?.touched||e.claimForm?.submitted)}]),name:"repoId",id:"repoId",placeholder:"e.g. my-paper-7F2A","aria-describedby":"idHelp",required:""},null,2),[[s,{state:e.viewState,set:o=>{e.repoId=o},value:e.repoId,form:"claimForm",options:{}}]]),t[3]||(t[3]=n("small",{id:"idHelp",class:"form-text text-muted"},[g("The ID is the last part of the anonymized URL: "),n("code",null,"anonymous.4open.science/r/"),g(".")],-1))]),t[4]||(t[4]=n("button",{id:"submit",type:"submit",class:"btn btn-ink"}," Claim anonymization ",-1))],32)),[[i,e.viewState]])])])}var rM={class:"container page paper-page conference-page"},aM={class:"paper-crumbs"},lM={class:"here"},dM={class:"d-flex align-items-end flex-wrap",style:{gap:"12px","justify-content":"space-between"}},uM={class:"conf-title-row"},cM=["textContent"],pM={key:0,class:"conf-status"},fM=["textContent"],hM={key:0,class:"paper-page-lede"},mM=["textContent","href"],gM={class:"d-flex align-items-center flex-wrap",style:{gap:"10px"}},vM=["href"],yM={class:"paper-meta-rule"},bM=["textContent"],wM=["textContent"],kM={key:0},CM={key:0,class:"conference-payment-status",role:"status"},EM=["disabled"],SM={key:1,role:"alert"},NM={key:2,class:"paper-settings-section","aria-labelledby":"conference-payment-heading"},RM={key:0,role:"status"},AM={key:1,role:"alert"},PM=["onClick","disabled"],DM={class:"dashboard-meta conf-view-meta"},TM={class:"dashboard-view-tabs",role:"group","aria-label":"Repository view"},OM=["aria-pressed"],IM=["aria-pressed","aria-label"],MM=["aria-pressed"],VM={class:"attention-count"},qM={class:"dashboard-count",role:"status"},_M={class:"search-wrap"},$M={type:"search",id:"search",class:"form-control","aria-label":"Search repositories",placeholder:"Search repositories\u2026",autocomplete:"off"},LM={class:"dashboard-filter-controls"},FM={class:"dropdown"},UM={class:"btn dropdown-toggle",type:"button",id:"dropdownSort","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},BM={class:"filter-btn-value"},zM={class:"dropdown-menu","aria-labelledby":"dropdownSort"},HM={class:"form-check dropdown-item"},jM={class:"form-check-input",type:"radio",name:"sort",id:"anonymizeDate",value:"-anonymizeDate"},GM={class:"form-check dropdown-item"},WM={class:"form-check-input",type:"radio",name:"sort",id:"sortID",value:"repoId"},KM={class:"form-check dropdown-item"},YM={class:"form-check-input",type:"radio",name:"sort",id:"sortStatus",value:"-status"},XM={class:"form-check dropdown-item"},QM={class:"form-check-input",type:"radio",name:"sort",id:"sortViews",value:"-pageView"},JM={class:"dashboard-page conf-rows"},ZM={class:"cell-anon",role:"cell"},xM={class:"anon-text"},e6={class:"anon-title"},t6=["title","href"],n6={class:"rn-owner"},s6={class:"rn-repo"},o6={class:"anon-sub"},i6=["title"],r6={class:"id-head"},a6={class:"id-tail"},l6=["title"],d6={class:"dashboard-row-meta",role:"presentation"},u6={class:"cell-status",role:"cell"},c6={class:"status-line"},p6=["textContent"],f6=["textContent","title"],h6=["href"],m6=["onClick","disabled"],g6={key:3,class:"status-sub status-sub-date"},v6=["data-unit","aria-label"],y6={class:"cell-expires",role:"cell"},b6={key:0,class:"expires-never"},w6=["textContent"],k6={key:2,class:"expires-past"},C6={key:3,class:"empty-dash","aria-label":"Not applicable"},E6={class:"cell-actions",role:"cell"},S6=["onClick","disabled","title","aria-label"],N6={class:"sr-only","aria-live":"polite"},R6={class:"project-type-svg","aria-hidden":"true"},A6=["href"],P6={class:"copy-url-label","aria-hidden":"true"},D6=["href","aria-label"],T6={class:"dropdown"},O6=["aria-label"],I6={class:"dropdown-menu dropdown-menu-right"},M6=["href"],V6=["href"],q6=["href"],_6={key:0,class:"paper-table-empty"},$6={key:0},L6={key:1},F6={key:2,class:"paper-table-empty-actions"};function up(e,t){let s=Pe("field"),i=Pe("form");return a(),l("div",rM,[n("div",null,[n("div",aM,[t[6]||(t[6]=n("a",{href:"/dashboard"},"My work",-1)),t[7]||(t[7]=g(" \xA0/\xA0 ",-1)),t[8]||(t[8]=n("a",{href:"/conferences"},"Conferences",-1)),t[9]||(t[9]=g(" \xA0/\xA0 ",-1)),n("span",lM,c(e.conference?.conferenceID),1)]),n("div",dM,[n("div",null,[n("div",uM,[n("h1",{class:"paper-page-title",textContent:c(e.conference?.name)},null,8,cM),e.conference?.status?(a(),l("span",pM,[n("span",{class:A(["status-dot","status-"+e.conference?.status]),"aria-hidden":"true"},null,2),n("span",{textContent:c(e.fmt?.statusLabel(e.conference?.status))},null,8,fM)])):f("v-if",!0)]),e.conference?.url?(a(),l("p",hM,[n("a",{target:"_blank",rel:"noopener",textContent:c(e.conference?.url),href:e.safeUrl(e.conference?.url)},null,8,mM)])):f("v-if",!0)]),n("div",gM,[n("a",{class:"btn btn-outline-ink",href:e.safeUrl("/conference/"+e.conference?.conferenceID+"/edit")},[...t[10]||(t[10]=[n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),g(" Edit conference",-1)])],8,vM)])]),n("div",yM,[n("span",null,[t[11]||(t[11]=g("ID ",-1)),n("b",{class:"commit-hash",textContent:c(e.conference?.conferenceID)},null,8,bM)]),n("span",null,[t[12]||(t[12]=g("Review window ",-1)),n("b",null,c(e.fmt?.date(e.conference?.startDate,"mediumDate"))+" \u2013 "+c(e.fmt?.date(e.conference?.endDate,"mediumDate")),1)]),n("span",null,[t[13]||(t[13]=g("Repositories ",-1)),n("b",null,c(e.fmt?.number(e.conference?.repositories?.length)),1)]),n("span",null,[t[14]||(t[14]=g("Plan ",-1)),n("b",{textContent:c(e.conferencePlanName(e.conference?.plan?.planID))},null,8,wM)]),e.conference?.price?(a(),l("span",kM,[t[15]||(t[15]=g("Cost so far ",-1)),n("b",null,c(e.fmt?.money(e.conference?.price)),1)])):f("v-if",!0)]),e.billingNotice?(a(),l("div",CM,[n("p",null,c(e.billingNotice),1),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[0]||(t[0]=o=>e.refreshBilling()),disabled:e.billingBusy},"Check payment status",8,EM)])):f("v-if",!0),e.billingError&&e.conference?.status!=="pending_payment"?(a(),l("p",SM,c(e.billingError),1)):f("v-if",!0),e.conference?.status==="pending_payment"?(a(),l("section",NM,[t[16]||(t[16]=n("h2",{id:"conference-payment-heading"},"Activate your review package",-1)),t[17]||(t[17]=n("p",null,"This conference is waiting for payment. Authors can join after payment is confirmed. Checkout returns to this conference. Authors within the package do not pay separately.",-1)),e.billingLoading?(a(),l("p",RM,"Loading payment options\u2026")):f("v-if",!0),e.billingError?(a(),l("p",AM,c(e.billingError),1)):f("v-if",!0),(a(!0),l(q,null,J((e.billing?.plans||[]).filter(o=>o.id===e.conference?.plan?.planID),o=>(a(),l("div",{key:o.id},[n("p",null,[n("strong",null,c(o.name)+" package",1),g(": "+c(e.billingPrice(o))+" for up to "+c(o.repositories)+" repositories and "+c(e.billingBytes(o.storage))+" of source files during the review window. Taxes, if applicable, appear at checkout.",1)]),n("button",{type:"button",class:"btn btn-primary",onClick:r=>e.checkout(o.id,e.conference.conferenceID),disabled:e.billingBusy||e.billingPending||e.billing?.checkoutEnabled===!1},c(e.billingBusy?"Please wait\u2026":"Pay for review package"),9,PM)]))),128)),t[18]||(t[18]=n("p",null,[n("a",{href:"/profile#settings-billing"},"Manage invoices")],-1))])):f("v-if",!0),n("div",DM,[n("div",TM,[n("button",{type:"button","aria-pressed":e.confView()==="current",onClick:t[1]||(t[1]=o=>e.setConfView("current")),title:"Every repository except removed links"},"Current",8,OM),e.confCount("attention")>0||e.confView()==="attention"?(a(),l("button",{key:0,type:"button","aria-pressed":e.confView()==="attention",onClick:t[2]||(t[2]=o=>e.setConfView("attention")),"aria-label":"Needs attention "+e.confCount("attention")},[t[19]||(t[19]=n("span",{class:"dashboard-attention-prefix"},"Needs ",-1)),t[20]||(t[20]=n("span",null,"attention",-1)),t[21]||(t[21]=g()),n("span",{class:A(["attention-count",{"has-attention":e.confCount("attention")>0}])},c(e.fmt?.number(e.confCount("attention"))),3)],8,IM)):f("v-if",!0),e.confCount("removed")>0||e.confView()==="removed"?(a(),l("button",{key:1,type:"button","aria-pressed":e.confView()==="removed",onClick:t[3]||(t[3]=o=>e.setConfView("removed")),title:"Links reviewers can no longer open"},[t[22]||(t[22]=g("Removed ",-1)),n("span",VM,c(e.fmt?.number(e.confCount("removed"))),1)],8,MM)):f("v-if",!0)]),n("span",qM,c(e.search.trim()?e.fmt?.number(e.filteredRepositories?.length||0)+" shown":e.fmt?.number(e.filteredRepositories?.length||0)+((e.filteredRepositories?.length||0)===1?" repository":" repositories")),1)]),D((a(),l("form",{class:"w-100 conf-repo-toolbar","aria-label":"Filter repositories","accept-charset":"UTF-8",onSubmit:t[4]||(t[4]=ae(o=>e.submitForm(o,()=>{o.preventDefault()}),["prevent"]))},[n("div",_M,[D(n("input",$M,null,512),[[s,{state:e.viewState,set:o=>{e.search=o},value:e.search,form:null,options:{}}]])]),n("div",LM,[n("div",FM,[n("button",UM,[t[23]||(t[23]=n("span",{class:"filter-btn-label"},"Sort",-1)),n("span",BM,c({"-anonymizeDate":"Anonymize date",repoId:"ID","-status":"Status","-pageView":"Views"}[e.orderBy]||"Custom"),1)]),n("div",zM,[t[28]||(t[28]=n("h6",{class:"dropdown-header"},"Order by",-1)),n("div",HM,[D(n("input",jM,null,512),[[s,{state:e.viewState,set:o=>{e.orderBy=o},value:e.orderBy,form:null,options:{}}]]),t[24]||(t[24]=n("label",{class:"form-check-label",for:"anonymizeDate"},"Anonymize date",-1))]),n("div",GM,[D(n("input",WM,null,512),[[s,{state:e.viewState,set:o=>{e.orderBy=o},value:e.orderBy,form:null,options:{}}]]),t[25]||(t[25]=n("label",{class:"form-check-label",for:"sortID"},"ID",-1))]),n("div",KM,[D(n("input",YM,null,512),[[s,{state:e.viewState,set:o=>{e.orderBy=o},value:e.orderBy,form:null,options:{}}]]),t[26]||(t[26]=n("label",{class:"form-check-label",for:"sortStatus"},"Status",-1))]),n("div",XM,[D(n("input",QM,null,512),[[s,{state:e.viewState,set:o=>{e.orderBy=o},value:e.orderBy,form:null,options:{}}]]),t[27]||(t[27]=n("label",{class:"form-check-label",for:"sortViews"},"Views",-1))])])])])],32)),[[i,e.viewState]]),n("div",JM,[n("div",{class:A(["paper-table paper-table-dashboard paper-table-conf w-100",{"is-removed-view":e.confView()==="removed"}]),role:"table","aria-label":"Repositories"},[t[37]||(t[37]=n("div",{class:"paper-table-head",role:"row"},[n("div",{role:"columnheader"},"Repository"),n("div",{role:"columnheader"},"Status"),n("div",{role:"columnheader",class:"num"},"Views"),n("div",{role:"columnheader"},"Expires"),n("div",{role:"columnheader"},[n("span",{class:"sr-only"},"Actions")])],-1)),(a(!0),l(q,null,J(e.filteredRepositories,(o,r)=>(a(),l("div",{class:A(["paper-table-row",{"repo-inactive":o?.status=="expired"||o?.status=="removed","repo-error":o?.status=="error"}]),role:"row",key:o?.repoId},[n("div",ZM,[t[30]||(t[30]=n("span",{class:"project-type-icon",role:"img","aria-label":"Repository",title:"Repository"},[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})])],-1)),n("div",xM,[n("div",e6,[n("a",{class:"repo-name",title:o?.source?.fullName,href:e.safeUrl("/r/"+o?.repoId+"/")},[(o?.source?.fullName||"").indexOf("/")>0?(a(),l(q,{key:0},[n("span",n6,c(o.source.fullName.slice(0,o.source.fullName.indexOf("/")+1)),1),t[29]||(t[29]=n("wbr",null,null,-1)),n("span",s6,c(o.source.fullName.slice(o.source.fullName.indexOf("/")+1)),1)],64)):(a(),l(q,{key:1},[g(c(o?.source?.fullName||o?.repoId),1)],64))],8,t6)]),n("div",o6,[n("code",{class:"anonymous-id",title:o?.repoId},[(o?.repoId||"").length>14?(a(),l(q,{key:0},[n("span",r6,c(o.repoId.slice(0,-6)),1),n("span",a6,c(o.repoId.slice(-6)),1)],64)):(a(),l(q,{key:1},[g(c(o?.repoId),1)],64))],8,i6),o?.source?.commit?(a(),l("span",{key:0,class:"commit-hash",title:o.source.commit},c(o.source.commit.substring(0,7)),9,l6)):f("v-if",!0)])])]),n("div",d6,[n("div",u6,[n("div",c6,[n("span",{class:A(["status-dot","status-"+(o?.status=="error"?"error":o?.status=="ready"?"ready":o?.status=="expired"||o?.status=="removed"?o?.status:"progress")]),"aria-hidden":"true"},null,2),n("span",{class:"status-word",textContent:c(e.fmt?.statusLabel(o?.status))},null,8,p6)]),o?.status=="error"&&o?.statusMessage?(a(),l("div",{key:0,class:"status-sub status-sub-error",textContent:c(e.fmt?.statusMsg(o?.statusMessage)),title:o?.statusMessage},null,8,f6)):f("v-if",!0),o?.status=="error"?(a(),l("a",{key:1,class:"project-attention-action",href:e.safeUrl("/status/"+o?.repoId)},"View status",8,h6)):f("v-if",!0),o?.status=="expired"?(a(),l("button",{key:2,type:"button",class:"project-attention-action",onClick:ae(d=>e.extendRepo(o),["stop"]),disabled:e.extendingId===o?.repoId,title:"Reviewers can no longer open this link"},"Extend 6 months",8,m6)):f("v-if",!0),o?.anonymizeDate&&o?.status!="error"&&o?.status!="expired"?(a(),l("div",g6,"anonymized "+c(e.fmt?.humanTime(o?.anonymizeDate)),1)):f("v-if",!0)]),n("div",{class:"cell-views num",role:"cell","data-unit":(o?.pageView||0)===1?"view":"views","aria-label":e.fmt?.number(o?.pageView||0)+((o?.pageView||0)===1?" view":" views")},[t[31]||(t[31]=n("svg",{class:"project-type-svg mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1)),n("span",null,c(e.fmt?.number(o?.pageView||0)),1)],8,v6),n("div",y6,[t[33]||(t[33]=n("svg",{class:"project-type-svg mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),o?.status=="ready"&&(o?.options?.expirationMode==="never"||!o?.options?.expirationDate)?(a(),l("span",b6,"No expiry")):f("v-if",!0),o?.status=="ready"&&o?.options?.expirationMode!=="never"&&o?.options?.expirationDate?(a(),l("span",{key:1,textContent:c((e.fmt?.humanTime(o?.options?.expirationDate)||"").replace(/^on /,""))},null,8,w6)):f("v-if",!0),o?.status=="expired"?(a(),l("span",k6,[t[32]||(t[32]=n("span",{class:"expires-past-prefix"},"Expired ",-1)),g(c(e.fmt?.shortDate(o?.options?.expirationDate)),1)])):f("v-if",!0),o?.status!="ready"&&o?.status!="expired"?(a(),l("span",C6,"\u2014")):f("v-if",!0)])]),n("div",E6,[o?.status!="expired"&&o?.status!="removed"?(a(),l("button",{key:0,type:"button",class:"copy-url",onClick:ae(d=>e.copyRepoLink(o),["stop"]),disabled:!!e.copyingId,title:"Copy link: /r/"+o?.repoId+"/","aria-label":"Copy anonymous link for "+o?.repoId},[n("span",N6,c(e.copyingId===o?.repoId?"Link copied":""),1),(a(),l("svg",R6,[n("use",{href:e.copyingId===o?.repoId?"#ui-icon-check":"#project-icon-copy"},null,8,A6)])),n("span",P6,c(e.copyingId===o?.repoId?"Copied":"Copy link"),1)],8,S6)):f("v-if",!0),o?.status!="expired"&&o?.status!="removed"?(a(),l("a",{key:1,class:"row-edit row-open",href:e.safeUrl("/r/"+o?.repoId+"/"),target:"_blank",rel:"noopener",title:"Open what reviewers see","aria-label":"Open anonymous page for "+o?.repoId},[...t[34]||(t[34]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-external-link"})],-1)])],8,D6)):f("v-if",!0),n("div",T6,[n("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions for "+o?.repoId},[...t[35]||(t[35]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-more"})],-1)])],8,O6),n("div",I6,[n("a",{class:"dropdown-item",href:e.safeUrl("/r/"+o?.repoId+"/")},"View",8,M6),n("a",{class:"dropdown-item",href:e.safeUrl("https://github.com/"+o?.source?.fullName+"/"),target:"_blank",rel:"noopener"},"Open source on GitHub",8,V6),n("a",{class:"dropdown-item",href:e.safeUrl("/anonymize/"+o?.repoId)},"Edit",8,q6)])])])],2))),128)),e.filteredRepositories?.length==0?(a(),l("div",_6,[t[36]||(t[36]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1)),e.conference?.repositories?.length?f("v-if",!0):(a(),l("span",$6,"No repository has been submitted to this conference yet.")),e.conference?.repositories?.length?(a(),l("span",L6,"Nothing matches the current filters.")):f("v-if",!0),e.conference?.repositories?.length?(a(),l("div",F6,[n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[5]||(t[5]=o=>{e.search="",e.setConfView("current")})},"Clear filters")])):f("v-if",!0)])):f("v-if",!0)],2)])])])}var U6={class:"container page paper-page conferences-page"},B6={class:"row"},z6={class:"w-100"},H6={class:"d-flex align-items-start justify-content-between flex-wrap page-head-row page-head page-head-main",style:{gap:"12px"}},j6={key:0,href:"/conference/new",class:"btn btn-primary"},G6={class:"search-wrap"},W6={type:"search",id:"search",class:"form-control","aria-label":"Search conferences",placeholder:"Search by name or ID\u2026",autocomplete:"off"},K6={class:"dashboard-filter-controls"},Y6={class:"dropdown"},X6={class:"btn dropdown-toggle",type:"button",id:"dropdownSort","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},Q6={class:"filter-btn-value"},J6={class:"dropdown-menu","aria-labelledby":"dropdownSort"},Z6={class:"form-check dropdown-item"},x6={class:"form-check-input",type:"radio",name:"sort",id:"sortName",value:"name"},eV={class:"form-check dropdown-item"},tV={class:"form-check-input",type:"radio",name:"sort",id:"sortID",value:"conferenceID"},nV={class:"form-check dropdown-item"},sV={class:"form-check-input",type:"radio",name:"sort",id:"sortStatus",value:"-status"},oV={class:"dropdown"},iV={class:"btn dropdown-toggle",type:"button",id:"dropdownStatus","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},rV={key:0,class:"filter-btn-value"},aV={key:1,class:"filter-btn-value"},lV={class:"dropdown-menu","aria-labelledby":"dropdownStatus"},dV={class:"form-check dropdown-item"},uV=["id"],cV=["for"],pV={key:1,class:"dashboard-meta"},fV={class:"dashboard-count"},hV={key:0},mV={key:0},gV={key:1},vV={key:0,class:"filter-chip"},yV=["onClick","aria-label"],bV={key:0,class:"conference-feedback",role:"alert"},wV={key:1,class:"conference-feedback",role:"status"},kV={class:"paper-table paper-table-conferences w-100",role:"table","aria-label":"Conferences"},CV={class:"cell-anon",role:"cell"},EV={class:"anon-text"},SV=["textContent","href"],NV={class:"anon-sub"},RV={class:"anon-source"},AV=["textContent"],PV={key:0},DV=["textContent","href"],TV={class:"cell-status",role:"cell"},OV={class:"status-line"},IV=["textContent"],MV={class:"cell-views num",role:"cell"},VV=["textContent"],qV={class:"cell-expires",role:"cell"},_V={key:0},$V={key:1,class:"empty-dash","aria-label":"No review window"},LV={class:"cell-actions",role:"cell"},FV={class:"dropdown"},UV=["disabled","aria-label"],BV={class:"dropdown-menu dropdown-menu-right"},zV=["href"],HV=["href"],jV={key:0},GV=["onClick"],WV={key:0,class:"paper-table-empty"},KV={key:0,class:"empty-icon","aria-hidden":"true"},YV={key:1,class:"ui-icon","aria-hidden":"true"},XV={key:3},QV={class:"paper-table-empty-actions"},JV={key:0,href:"/conference/new",class:"btn btn-primary conf-empty-new"};function cp(e,t){let s=Pe("field"),i=Pe("form");return a(),l("div",U6,[n("div",B6,[n("div",z6,[n("div",H6,[t[4]||(t[4]=n("div",null,[n("h1",{class:"paper-page-title"},[g("Your "),n("em",null,"conferences")]),n("p",{class:"paper-page-lede"},"Group anonymizations by venue, give chairs a shared dashboard, and set one expiry for every submission.")],-1)),e.conferences&&e.conferences.length==0?f("v-if",!0):(a(),l("a",j6,[...t[3]||(t[3]=[n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#project-icon-plus"})],-1),g(" New conference ",-1)])]))]),e.conferences?.length>0?D((a(),l("form",{key:0,class:"w-100 dashboard-filter-row","aria-label":"Filter conferences","accept-charset":"UTF-8",onSubmit:t[0]||(t[0]=ae(o=>e.submitForm(o,()=>{o.preventDefault()}),["prevent"]))},[n("div",G6,[D(n("input",W6,null,512),[[s,{state:e.viewState,set:o=>{e.search=o},value:e.search,form:null,options:{}}]])]),n("div",K6,[n("div",Y6,[n("button",X6,[t[5]||(t[5]=n("span",{class:"filter-btn-label"},"Sort",-1)),n("span",Q6,c({name:"Name",conferenceID:"ID","-status":"Status"}[e.orderBy]||"Custom"),1)]),n("div",J6,[t[9]||(t[9]=n("h6",{class:"dropdown-header"},"Order by",-1)),n("div",Z6,[D(n("input",x6,null,512),[[s,{state:e.viewState,set:o=>{e.orderBy=o},value:e.orderBy,form:null,options:{}}]]),t[6]||(t[6]=n("label",{class:"form-check-label",for:"sortName"},"Name",-1))]),n("div",eV,[D(n("input",tV,null,512),[[s,{state:e.viewState,set:o=>{e.orderBy=o},value:e.orderBy,form:null,options:{}}]]),t[7]||(t[7]=n("label",{class:"form-check-label",for:"sortID"},"ID",-1))]),n("div",nV,[D(n("input",sV,null,512),[[s,{state:e.viewState,set:o=>{e.orderBy=o},value:e.orderBy,form:null,options:{}}]]),t[8]||(t[8]=n("label",{class:"form-check-label",for:"sortStatus"},"Status",-1))])])]),n("div",oV,[n("button",iV,[t[10]||(t[10]=n("span",{class:"filter-btn-label"},"Status",-1)),e.filters?.status?.ready&&e.filters?.status?.expired&&e.filters?.status?.removed?(a(),l("span",rV,"All")):f("v-if",!0),e.filters?.status?.ready&&e.filters?.status?.expired&&e.filters?.status?.removed?f("v-if",!0):(a(),l("span",aV,c((e.filters?.status?.ready?0:1)+(e.filters?.status?.expired?0:1)+(e.filters?.status?.removed?0:1))+" hidden ",1))]),n("div",lV,[t[11]||(t[11]=n("h6",{class:"dropdown-header"},"Show statuses",-1)),(a(!0),l(q,null,J(e.statusLabels,(o,r,d)=>(a(),l("div",dV,[D(n("input",{class:"form-check-input",type:"checkbox",id:"status-"+r},null,8,uV),[[s,{state:e.viewState,set:p=>{e.filters.status[r]=p},value:e.filters?.status[r],form:null,options:{}}]]),n("label",{class:"form-check-label",for:"status-"+r},c(o),9,cV)]))),256))])])])],32)),[[i,e.viewState]]):f("v-if",!0),e.conferences?.length>0?(a(),l("div",pV,[n("span",fV,[e.filteredConferences?.length===e.conferences?.length?(a(),l("span",hV,[g(c(e.fmt?.number(e.conferences?.length))+" conference",1),e.conferences?.length!==1?(a(),l("span",mV,"s")):f("v-if",!0)])):f("v-if",!0),e.filteredConferences?.length!==e.conferences?.length?(a(),l("span",gV,c(e.fmt?.number(e.filteredConferences?.length))+" of "+c(e.fmt?.number(e.conferences?.length))+" shown",1)):f("v-if",!0)]),(a(!0),l(q,null,J(e.filters?.status,(o,r,d)=>(a(),l(q,null,[o===!1?(a(),l("span",vV,[g(" Hiding "+c(e.statusLabels[r])+" ",1),n("button",{type:"button",class:"filter-chip-close",onClick:p=>{e.filters.status[r]=!0},"aria-label":"Show "+e.statusLabels[r]+" again"},"\xD7",8,yV)])):f("v-if",!0)],64))),256))])):f("v-if",!0)]),e.error?(a(),l("div",bV,[n("span",null,c(e.error),1),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[1]||(t[1]=o=>e.loadConferences())},"Retry")])):f("v-if",!0),e.loading?(a(),l("div",wV,"Loading conferences\u2026")):f("v-if",!0),n("div",kV,[t[28]||(t[28]=n("div",{class:"paper-table-head",role:"row"},[n("div",{role:"columnheader"},"Conference"),n("div",{role:"columnheader"},"Status"),n("div",{role:"columnheader",class:"num"},"Repos"),n("div",{role:"columnheader"},"Review window"),n("div",{role:"columnheader"},[n("span",{class:"sr-only"},"Actions")])],-1)),(a(!0),l(q,null,J(e.filteredConferences,(o,r)=>(a(),l("div",{class:A(["paper-table-row row-clickable",{"repo-inactive":o?.status=="expired"||o?.status=="removed"}]),role:"row",key:o?.conferenceID},[n("div",CV,[t[14]||(t[14]=n("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Conference"},[n("use",{href:"#project-icon-conference"})],-1)),n("div",EV,[n("a",{class:"repo-name",textContent:c(o?.name),href:e.safeUrl("/conference/"+o?.conferenceID)},null,8,SV),n("div",NV,[n("span",RV,[t[13]||(t[13]=g("ID ",-1)),n("span",{class:"commit-hash",textContent:c(o?.conferenceID)},null,8,AV),o?.url?(a(),l("span",PV,[t[12]||(t[12]=g(" \xB7 ",-1)),n("a",{target:"_blank",rel:"noopener",textContent:c(e.fmt?.limitTo(o?.url,60)),href:e.safeUrl(o?.url)},null,8,DV)])):f("v-if",!0)])])])]),n("div",TV,[n("div",OV,[n("span",{class:A(["status-dot","status-"+o?.status]),"aria-hidden":"true"},null,2),n("span",{class:"status-word",textContent:c(e.fmt?.statusLabel(o?.status))},null,8,IV)])]),n("div",MV,[t[15]||(t[15]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})],-1)),t[16]||(t[16]=g()),n("span",{textContent:c(e.fmt?.number(o?.nbRepositories||0))},null,8,VV)]),n("div",qV,[t[17]||(t[17]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),o?.startDate?(a(),l("span",_V,c(e.fmt?.date(o?.startDate,"mediumDate"))+" \u2013 "+c(e.fmt?.date(o?.endDate,"mediumDate")),1)):f("v-if",!0),o?.startDate?f("v-if",!0):(a(),l("span",$V,"\u2014"))]),n("div",LV,[n("div",FV,[n("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false",disabled:o?.removing,"aria-label":"Actions for "+o?.name},[...t[18]||(t[18]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-more"})],-1)])],8,UV),n("div",BV,[n("a",{class:"dropdown-item",href:e.safeUrl("/conference/"+o?.conferenceID+"/")},[...t[19]||(t[19]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),g(" View ",-1)])],8,zV),n("a",{class:"dropdown-item",href:e.safeUrl("/conference/"+o?.conferenceID+"/edit")},[...t[20]||(t[20]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),g(" Edit ",-1)])],8,HV),o?.status!="removed"?(a(),l("div",jV,[t[22]||(t[22]=n("div",{class:"dropdown-divider"},null,-1)),n("button",{type:"button",class:"dropdown-item dropdown-item-danger",onClick:d=>e.removeConference(o)},[...t[21]||(t[21]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1),g(" Remove ",-1)])],8,GV)])):f("v-if",!0)])])])],2))),128)),!e.loading&&!e.error&&e.filteredConferences?.length==0?(a(),l("div",WV,[e.conferences?.length==0?(a(),l("span",KV,[...t[23]||(t[23]=[n("svg",{class:"ui-icon"},[n("use",{href:"#project-icon-conference"})],-1)])])):f("v-if",!0),e.conferences?.length>0?(a(),l("svg",YV,[...t[24]||(t[24]=[n("use",{href:"#project-icon-inbox"},null,-1)])])):f("v-if",!0),e.conferences?.length==0?(a(),l(q,{key:2},[t[25]||(t[25]=n("strong",{class:"empty-title"},"No conferences yet",-1)),t[26]||(t[26]=n("span",null,"Create one to group submissions for a venue, share a dashboard with chairs, and set a single expiry date.",-1))],64)):f("v-if",!0),e.conferences?.length>0?(a(),l("span",XV,"Nothing matches the current filters.")):f("v-if",!0),n("div",QV,[e.conferences?.length==0?(a(),l("a",JV,[...t[27]||(t[27]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-plus"})],-1),g(" New conference",-1)])])):f("v-if",!0),e.conferences?.length>0?(a(),l("button",{key:1,type:"button",class:"btn btn-outline-ink",onClick:t[2]||(t[2]=o=>{e.search="",e.filters.status.ready=!0,e.filters.status.expired=!0,e.filters.status.removed=!0})},"Clear filters")):f("v-if",!0)])])):f("v-if",!0)])])])}var ZV={class:"container page dashboard-page paper-page"},xV={class:"row"},eq={class:"w-100"},tq={class:"dashboard-heading page-head page-head-main"},nq={class:"dashboard-title-line"},sq={key:0,class:"dashboard-count-head","aria-hidden":"true"},oq={key:0},iq={class:"dashboard-heading-actions"},rq=["open"],aq=["aria-expanded"],lq=["stroke-dasharray"],dq={key:1,d:"M7 12c0-4 4-4 5 0s5 4 5 0-4-4-5 0-5 4-5 0",class:"quota-ring-unlimited"},uq={key:0,class:"quota-summary-value"},cq={key:0},pq={class:"quota-panel",id:"dashboard-usage"},fq={class:"quota-panel-heading"},hq={key:1,class:"quota-loading",role:"status"},mq={key:0,class:"dashboard-meta"},gq={key:0,class:"dashboard-view-tabs",role:"group","aria-label":"Project view"},vq=["aria-pressed"],yq=["aria-pressed","aria-label"],bq=["aria-pressed","aria-label"],wq={key:0,class:"attention-count"},kq={key:0},Cq={key:0},Eq={key:1},Sq={class:"search-wrap"},Nq={type:"search",id:"search",class:"form-control","aria-label":"Search anonymizations",placeholder:"Search projects\u2026",autocomplete:"off"},Rq=["aria-expanded"],Aq={class:"btn-group",role:"group","aria-label":"Type"},Pq=["aria-pressed"],Dq=["aria-pressed"],Tq=["aria-pressed"],Oq=["aria-pressed"],Iq={class:"dropdown"},Mq={class:"btn dropdown-toggle",type:"button",id:"dropdownSort","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},Vq={class:"filter-btn-value"},qq={class:"sr-only"},_q={class:"dropdown-menu","aria-labelledby":"dropdownSort"},$q={class:"form-check dropdown-item"},Lq=["onClick","checked","id"],Fq=["for"],Uq=["inert"],Bq={class:"btn dropdown-toggle",type:"button",id:"dropdownStatus","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},zq={class:"filter-btn-value"},Hq={class:"dropdown-menu","aria-labelledby":"dropdownStatus"},jq={key:0,class:"form-check dropdown-item"},Gq=["id"],Wq=["for"],Kq={key:1,class:"dashboard-active-filters dashboard-active-filters-row"},Yq=["onClick","aria-label","title"],Xq=["aria-busy"],Qq={class:"paper-table-head",role:"row"},Jq=["aria-sort"],Zq=["aria-sort"],xq=["aria-sort"],e_=["aria-sort"],t_={key:0,class:"paper-table-row paper-table-skeleton",role:"row","aria-hidden":"true"},n_=["onClick"],s_={class:"cell-anon",role:"cell"},o_=["aria-label","title"],i_={class:"project-type-svg","aria-hidden":"true"},r_=["href"],a_={class:"anon-text"},l_={class:"anon-title"},d_=["title","href"],u_={class:"rn-owner"},c_={class:"rn-repo"},p_={key:1,class:"repo-name repo-name-static"},f_={class:"rn-owner"},h_={class:"rn-repo"},m_={key:2,class:"type-badge type-coauthor",title:"You are a co-author on this anonymization"},g_={key:0,class:"anon-sub"},v_=["title"],y_={class:"id-head"},b_={class:"id-tail"},w_=["title"],k_=["title"],C_=["textContent"],E_={class:"dashboard-row-meta",role:"presentation"},S_={class:"cell-status",role:"cell"},N_={class:"status-line"},R_=["textContent"],A_=["onClick"],P_=["textContent","title"],D_=["title"],T_=["href"],O_={key:3,class:"status-action-line"},I_={key:0,class:"status-stuck"},M_=["onClick","data-project-actions","aria-controls","aria-expanded"],V_=["onClick"],q_={key:5,class:"status-sub status-sub-date status-sub-removed"},__={key:6,class:"status-sub status-sub-date"},$_=["data-unit","aria-label"],L_={class:"cell-expires",role:"cell"},F_={key:0,class:"expires-never"},U_=["textContent"],B_=["title"],z_={key:3,class:"expires-past"},H_={key:4,class:"expires-past"},j_={key:5,class:"empty-dash","aria-label":"Not applicable"},G_={class:"cell-actions",role:"cell"},W_=["onClick","disabled","title","aria-label"],K_={class:"sr-only","aria-live":"polite"},Y_={class:"project-type-svg","aria-hidden":"true"},X_=["href"],Q_={class:"copy-url-label","aria-hidden":"true"},J_=["href","aria-label"],Z_=["href","title","aria-label"],x_=["title","aria-label"],e$=["title","aria-label"],t$=["aria-label"],n$={key:6,class:"dropdown is-disabled"},s$=["aria-label"],o$={key:7,class:"dropdown"},i$=["data-project-actions","aria-label"],r$={class:"dropdown-menu dropdown-menu-right"},a$=["onClick","aria-controls","aria-expanded"],l$=["href"],d$=["href"],u$=["onClick","disabled"],c$=["href"],p$=["onClick"],f$=["onClick"],h$=["onClick"],m$={key:5},g$=["onClick"],v$={key:1,class:"project-details-row",role:"row"},y$=["id","onKeydown"],b$={class:"project-details-heading"},w$=["onClick"],k$={class:"project-details-list"},C$={key:0},E$={key:1},S$={key:0},N$={key:2},R$={key:0,class:"project-progress-help"},A$=["href"],P$=["onSubmit"],D$=["for"],T$=["id"],O$={class:"project-name-controls"},I$=["id","aria-describedby","disabled"],M$=["disabled"],V$={key:0,class:"project-name-error",role:"alert"},q$={key:1,role:"status"},_$={key:0,class:"paper-table-empty"},$$={key:0},L$={key:1},F$={class:"paper-table-empty-actions"},U$={key:1,href:"/anonymize",class:"btn btn-ink"},B$={key:0,class:"dashboard-pagination"},z$={key:0,role:"alert"},H$=["disabled"];function pp(e,t){let s=Xe("quota-usage"),i=Pe("field"),o=Pe("form");return a(),l("div",ZV,[n("div",xV,[n("div",eq,[n("div",tq,[n("div",null,[n("div",nq,[t[27]||(t[27]=n("h1",{class:"paper-page-title"},"My work",-1)),!e.loading&&e.isPlainView()?(a(),l("span",sq,[g(c(e.fmt?.number(e.dashboardTotals?.filtered??e.filteredItems?.length))+" project",1),(e.dashboardTotals?.filtered??e.filteredItems?.length)!==1?(a(),l("span",oq,"s")):f("v-if",!0)])):f("v-if",!0)]),t[28]||(t[28]=n("p",{class:"paper-page-lede"},"Manage your anonymous links.",-1))]),n("div",iq,[n("details",{class:"dashboard-quota",open:e.quotaExpanded,onToggle:t[1]||(t[1]=r=>e.quotaExpanded=r.target.open),onKeydown:t[2]||(t[2]=kt(ae(r=>e.closeQuota(),["prevent","stop"]),["esc"]))},[n("summary",{"aria-controls":"dashboard-usage","aria-expanded":e.quotaExpanded,class:A(e.quota?"quota-level-"+e.quota.repository.level:""),style:Ie(e.quota&&!e.quota.repository.unlimited?{"--quota-pct":e.quota.repository.percent+"%"}:null)},[(a(),l("svg",{class:A(["quota-summary-ring",e.quota?"quota-"+e.quota.repository.level:""]),viewBox:"0 0 24 24","aria-hidden":"true"},[t[29]||(t[29]=n("circle",{class:"quota-ring-track",cx:"12",cy:"12",r:"9"},null,-1)),e.quota&&!e.quota.repository.unlimited?(a(),l("circle",{key:0,class:"quota-ring-fill",cx:"12",cy:"12",r:"9",pathLength:"100","stroke-dasharray":e.quota.repository.percent+" 100"},null,8,lq)):f("v-if",!0),e.quota?.repository.unlimited?(a(),l("path",dq)):f("v-if",!0)],2)),t[31]||(t[31]=n("span",{class:"quota-summary-label"},"Usage",-1)),e.quota?(a(),l("span",uq,[g(c(e.fmt.number(e.quota.repository.used)),1),e.quota.repository.unlimited?f("v-if",!0):(a(),l("span",cq," / "+c(e.fmt.number(e.quota.repository.total)),1)),t[30]||(t[30]=g(" repos",-1))])):f("v-if",!0),t[32]||(t[32]=n("svg",{class:"project-type-svg quota-summary-chevron","aria-hidden":"true"},[n("use",{href:"#project-icon-chevron"})],-1))],14,aq),n("div",pq,[n("div",fq,[t[34]||(t[34]=n("h2",null,"Account usage",-1)),n("button",{type:"button",class:"project-close","aria-label":"Close usage",onClick:t[0]||(t[0]=r=>e.closeQuota())},[...t[33]||(t[33]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])])]),e.quota?(a(),Wt(s,{key:0,quota:e.quota,fmt:e.fmt},null,8,["quota","fmt"])):(a(),l("p",hq,"Loading usage\u2026"))])],40,rq),t[35]||(t[35]=Ce('New anonymization',1))])]),f(" Result count + active filter chips "),e.loading?f("v-if",!0):(a(),l("div",mq,[e.showViewTabs()?(a(),l("div",gq,[n("button",{type:"button","aria-pressed":e.statusView()==="active",onClick:t[3]||(t[3]=r=>e.setStatusView("active")),title:"Every project except removed links"},"Current",8,vq),e.attentionCount()>0||e.statusView()==="attention"?(a(),l("button",{key:0,type:"button","aria-pressed":e.statusView()==="attention",onClick:t[4]||(t[4]=r=>e.setStatusView("attention")),"aria-label":"Needs attention "+e.attentionCount()},[t[36]||(t[36]=n("span",{class:"dashboard-attention-prefix"},"Needs ",-1)),t[37]||(t[37]=n("span",null,"attention",-1)),t[38]||(t[38]=g()),n("span",{class:A(["attention-count",{"has-attention":e.attentionCount()>0}])},c(e.attentionCount()),3)],8,yq)):f("v-if",!0),e.removedCount>0||e.statusView()==="removed"||e.removedCount==null&&e.dashboardTotals?.total>e.dashboardTotals?.filtered?(a(),l("button",{key:1,type:"button","aria-pressed":e.statusView()==="removed",onClick:t[5]||(t[5]=r=>e.setStatusView("removed")),"aria-label":"Removed "+(e.removedCount??""),title:"Links reviewers can no longer open"},[t[39]||(t[39]=g("Removed ",-1)),e.removedCount!=null?(a(),l("span",wq,c(e.fmt?.number(e.removedCount)),1)):f("v-if",!0)],8,bq)):f("v-if",!0)])):f("v-if",!0),n("span",{class:A(["dashboard-count",{"is-plain":e.isPlainView()}])},[e.isPlainView()?(a(),l("span",kq,[g(c(e.fmt?.number(e.dashboardTotals?.filtered??e.filteredItems?.length))+" project",1),(e.dashboardTotals?.filtered??e.filteredItems?.length)!==1?(a(),l("span",Cq,"s")):f("v-if",!0)])):(a(),l("span",Eq,c(e.fmt?.number(e.dashboardTotals?.filtered??e.filteredItems?.length))+" shown",1))],2)])),f(" Search + filters "),D((a(),l("form",{class:"w-100 dashboard-filter-row","aria-label":"Filter anonymizations","accept-charset":"UTF-8",onSubmit:t[13]||(t[13]=ae(r=>e.submitForm(r,()=>{r.preventDefault()}),["prevent"]))},[n("div",Sq,[D(n("input",Nq,null,512),[[i,{state:e.viewState,set:r=>{e.search=r},value:e.search,form:null,options:{}}]])]),n("button",{class:"btn dashboard-filters-toggle",type:"button","aria-expanded":e.filtersExpanded,"aria-controls":"dashboard-filter-controls",onClick:t[6]||(t[6]=r=>e.filtersExpanded=!e.filtersExpanded)},[...t[40]||(t[40]=[g("Filters",-1),n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-filter"})],-1)])],8,Rq),n("div",{id:"dashboard-filter-controls",class:A(["dashboard-filter-controls",{expanded:e.filtersExpanded}])},[n("div",Aq,[n("button",{type:"button",class:A(["btn",{"btn-primary":e.typeFilter==="all"}]),onClick:t[7]||(t[7]=r=>e.typeFilter="all"),"aria-pressed":e.typeFilter==="all"},"All",10,Pq),n("button",{type:"button",class:A(["btn dashboard-type-filter",{"btn-primary":e.typeFilter==="repo"}]),title:"Repositories",onClick:t[8]||(t[8]=r=>e.typeFilter="repo"),"aria-pressed":e.typeFilter==="repo"},[...t[41]||(t[41]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})],-1),n("span",{class:"type-filter-label"},"Repos",-1)])],10,Dq),n("button",{type:"button",class:A(["btn dashboard-type-filter",{"btn-primary":e.typeFilter==="pr"}]),title:"Pull requests",onClick:t[9]||(t[9]=r=>e.typeFilter="pr"),"aria-pressed":e.typeFilter==="pr"},[...t[42]||(t[42]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-type-pr"})],-1),n("span",{class:"type-filter-label"},"PRs",-1)])],10,Tq),n("button",{type:"button",class:A(["btn dashboard-type-filter",{"btn-primary":e.typeFilter==="gist"}]),title:"Gists",onClick:t[10]||(t[10]=r=>e.typeFilter="gist"),"aria-pressed":e.typeFilter==="gist"},[...t[43]||(t[43]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-type-gist"})],-1),n("span",{class:"type-filter-label"},"Gists",-1)])],10,Oq)]),n("div",{id:"dashboard-extra-filters",class:A(["dashboard-extra-filters",{expanded:e.filtersExpanded}])},[n("div",Iq,[n("button",Mq,[t[45]||(t[45]=n("span",{class:"filter-btn-label"},"Sort",-1)),n("span",Vq,c(e.sortLabel()),1),(a(),l("svg",{class:A(["project-type-svg sort-direction",{ascending:!e.sortDesc()}]),"aria-hidden":"true"},[...t[44]||(t[44]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)),n("span",qq,c(e.sortDesc()?"descending":"ascending"),1)]),n("div",_q,[t[46]||(t[46]=n("h6",{class:"dropdown-header"},"Order by",-1)),(a(!0),l(q,null,J(e.sortFields,(r,d,p)=>(a(),l("div",$q,[n("input",{class:"form-check-input",type:"radio",name:"sort",onClick:u=>e.setSort(d,r.defaultDesc),checked:e.isSortedBy(d),id:"sort-"+p},null,8,Lq),n("label",{class:"form-check-label",for:"sort-"+p},c(r?.label),9,Fq)]))),256)),t[47]||(t[47]=n("div",{class:"dropdown-divider"},null,-1)),n("button",{type:"button",class:"dropdown-item",onClick:t[11]||(t[11]=r=>e.toggleSortDirection())},c(e.sortDesc()?"Switch to ascending":"Switch to descending"),1)])]),n("div",{class:A(["dropdown dashboard-status-filter",{"is-view-hidden":e.statusView()==="removed"}]),inert:e.statusView()==="removed"?!0:null},[n("button",Bq,[t[48]||(t[48]=n("span",{class:"filter-btn-label"},"Status",-1)),n("span",zq,c(e.statusChipKeys().length===0?"Any":e.statusChipKeys().length===1?"Hiding "+(e.statusKeyLabels[e.statusChipKeys()[0]]||"").toLowerCase():e.statusChipKeys().length+" hidden"),1)]),n("div",Hq,[t[49]||(t[49]=n("h6",{class:"dropdown-header"},"Show statuses",-1)),n("button",{type:"button",class:A(["dropdown-item status-preset",{active:e.statusChipKeys().length===0}]),onClick:t[12]||(t[12]=r=>e.statusChipKeys().forEach(d=>{e.filters.status[d]=!0}))},"Any status",2),t[50]||(t[50]=n("div",{class:"dropdown-divider"},null,-1)),(a(!0),l(q,null,J(e.statusKeyLabels,(r,d,p)=>(a(),l(q,{key:d},[d!=="removed"?(a(),l("div",jq,[D(n("input",{class:"form-check-input",type:"checkbox",id:"status-"+d},null,8,Gq),[[i,{state:e.viewState,set:u=>{e.filters.status[d]=u},value:e.filters?.status[d],form:null,options:{}}]]),n("label",{class:"form-check-label",for:"status-"+d},c(r),9,Wq)])):f("v-if",!0)],64))),128))])],10,Uq)],2)],2)],32)),[[o,e.viewState]]),!e.loading&&e.showClearFilters()?(a(),l("div",Kq,[(a(!0),l(q,null,J(e.statusChipKeys(),r=>(a(),l("button",{key:r,type:"button",class:"filter-chip",onClick:d=>e.filters.status[r]=!0,"aria-label":"Show "+e.statusKeyLabels[r]+" again",title:"Show "+e.statusKeyLabels[r]+" again"},[g("Hiding "+c((e.statusKeyLabels[r]||"").toLowerCase()),1),t[51]||(t[51]=n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1))],8,Yq))),128)),e.typeFilter!=="all"?(a(),l("button",{key:0,type:"button",class:"filter-chip",onClick:t[14]||(t[14]=r=>e.typeFilter="all"),"aria-label":"Show all project types"},[g(c(e.typeFilter==="repo"?"Repositories":e.typeFilter==="pr"?"Pull requests":"Gists"),1),t[52]||(t[52]=n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1))])):f("v-if",!0),e.showClearFilters()?(a(),l("button",{key:1,type:"button",class:"btn-link-inline",onClick:t[15]||(t[15]=r=>e.clearFilters())},"Clear filters")):f("v-if",!0)])):f("v-if",!0)]),f(" Table "),n("div",{class:A(["paper-table paper-table-dashboard",{"is-removed-view":e.statusView()==="removed"}]),role:"table","aria-label":"Anonymizations","aria-busy":e.loading},[n("div",Qq,[n("div",{role:"columnheader","aria-sort":e.isSortedBy("_label")?e.sortDesc()?"descending":"ascending":"none"},[n("button",{type:"button",class:A(["sortable",{active:e.isSortedBy("_label")}]),onClick:t[16]||(t[16]=r=>e.setSort("_label"))},[t[54]||(t[54]=g(" Project ",-1)),e.isSortedBy("_label")?(a(),l("svg",{key:0,class:A(["project-type-svg sort-direction",{ascending:!e.sortDesc()}]),"aria-hidden":"true"},[...t[53]||(t[53]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)],8,Jq),n("div",{role:"columnheader","aria-sort":e.isSortedBy("status")?e.sortDesc()?"descending":"ascending":"none"},[n("button",{type:"button",class:A(["sortable",{active:e.isSortedBy("status")}]),onClick:t[17]||(t[17]=r=>e.setSort("status"))},[t[56]||(t[56]=g(" Status ",-1)),e.isSortedBy("status")?(a(),l("svg",{key:0,class:A(["project-type-svg sort-direction",{ascending:!e.sortDesc()}]),"aria-hidden":"true"},[...t[55]||(t[55]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)],8,Zq),n("div",{role:"columnheader",class:"num","aria-sort":e.isSortedBy("pageView")?e.sortDesc()?"descending":"ascending":"none"},[n("button",{type:"button",class:A(["sortable",{active:e.isSortedBy("pageView")}]),onClick:t[18]||(t[18]=r=>e.setSort("pageView"))},[t[58]||(t[58]=g(" Views ",-1)),e.isSortedBy("pageView")?(a(),l("svg",{key:0,class:A(["project-type-svg sort-direction",{ascending:!e.sortDesc()}]),"aria-hidden":"true"},[...t[57]||(t[57]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)],8,xq),n("div",{role:"columnheader","aria-sort":e.isSortedBy("options.expirationDate")?e.sortDesc()?"descending":"ascending":"none"},[n("button",{type:"button",class:A(["sortable",{active:e.isSortedBy("options.expirationDate")}]),onClick:t[19]||(t[19]=r=>e.setSort("options.expirationDate"))},[t[60]||(t[60]=g(" Expires ",-1)),e.isSortedBy("options.expirationDate")?(a(),l("svg",{key:0,class:A(["project-type-svg sort-direction",{ascending:!e.sortDesc()}]),"aria-hidden":"true"},[...t[59]||(t[59]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)],8,e_),t[61]||(t[61]=n("div",{role:"columnheader",class:"col-link"},[n("span",{class:"sr-only"},"Actions")],-1))]),f(" Loading skeleton: keeps the layout stable while the three lists load "),(a(),l(q,null,J([1,2,3,4],(r,d)=>(a(),l(q,null,[e.loading?(a(),l("div",t_,[...t[62]||(t[62]=[n("div",{class:"cell-anon",role:"cell"},[n("span",{class:"skeleton skeleton-badge"}),n("div",{class:"anon-text"},[n("span",{class:"skeleton skeleton-line",style:{width:"38%"}}),n("span",{class:"skeleton skeleton-line skeleton-line-sm",style:{width:"56%"}})])],-1),n("div",{class:"cell-status",role:"cell"},[n("span",{class:"skeleton skeleton-line",style:{width:"60%"}})],-1),n("div",{class:"cell-views num",role:"cell"},[n("span",{class:"skeleton skeleton-line",style:{width:"40%"}})],-1),n("div",{class:"cell-expires",role:"cell"},[n("span",{class:"skeleton skeleton-line",style:{width:"55%"}})],-1),n("div",{class:"cell-actions",role:"cell"},null,-1)])])):f("v-if",!0)],64))),64)),(a(!0),l(q,null,J(e.filteredItems,(r,d)=>(a(),l(q,{key:r?._type+":"+(r?._id||d)},[e.loading?f("v-if",!0):(a(),l("div",{key:0,class:A(["paper-table-row",{"repo-inactive":r?._statusKey=="expired"||r?._statusKey=="removed","repo-error":r?.status=="error","row-clickable":!!r?._viewUrl}]),role:"row",onClick:p=>e.openItem(r,p)},[n("div",s_,[n("span",{class:"project-type-icon",role:"img","aria-label":r?._type==="repo"?"Repository":r?._type==="pr"?"Pull request":"Gist",title:r?._type==="repo"?"Repository":r?._type==="pr"?"Pull request":"Gist"},[(a(),l("svg",i_,[n("use",{href:"#project-type-"+r._type},null,8,r_)]))],8,o_),n("div",a_,[n("div",l_,[r?._viewUrl?(a(),l("a",{key:0,class:"repo-name",title:r._label,href:e.safeUrl(r?._viewUrl)},[(r?._label||"").indexOf("/")>0?(a(),l(q,{key:0},[n("span",u_,c(r._label.slice(0,r._label.indexOf("/")+1)),1),t[63]||(t[63]=n("wbr",null,null,-1)),n("span",c_,c(r._label.slice(r._label.indexOf("/")+1)),1)],64)):(a(),l(q,{key:1},[g(c(r?._label),1)],64))],8,d_)):f("v-if",!0),r?._viewUrl?f("v-if",!0):(a(),l("span",p_,[(r?._label||"").indexOf("/")>0?(a(),l(q,{key:0},[n("span",f_,c(r._label.slice(0,r._label.indexOf("/")+1)),1),t[64]||(t[64]=n("wbr",null,null,-1)),n("span",h_,c(r._label.slice(r._label.indexOf("/")+1)),1)],64)):(a(),l(q,{key:1},[g(c(r?._label),1)],64))])),r?.role==="coauthor"?(a(),l("span",m_,"Co-author")):f("v-if",!0)]),r?._id||r?._type==="repo"&&r?.source?.commit||r?.conference?(a(),l("div",g_,[r?._id?(a(),l("code",{key:0,class:"anonymous-id",title:r._id},[r._id.length>14?(a(),l(q,{key:0},[n("span",y_,c(r._id.slice(0,-6)),1),n("span",b_,c(r._id.slice(-6)),1)],64)):(a(),l(q,{key:1},[g(c(r._id),1)],64))],8,v_)):f("v-if",!0),r?._type==="repo"&&r?.source?.commit?(a(),l("span",{key:1,class:"commit-hash",title:r.source.commit},c(r.source.commit.substring(0,7)),9,w_)):f("v-if",!0),r?.conference?(a(),l("span",{key:2,class:"cell-conf conf-tag",title:"Conference: "+r.conference},[t[65]||(t[65]=n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-conference"})],-1)),n("span",{class:"conf-name",textContent:c(r?.conference)},null,8,C_)],8,k_)):f("v-if",!0)])):f("v-if",!0)])]),n("div",E_,[n("div",S_,[n("div",N_,[n("span",{class:A(["status-dot","status-"+r?._statusKey]),"aria-hidden":"true"},null,2),n("span",{class:"status-word",textContent:c(e.fmt?.statusLabel(r?.status))},null,8,R_),r?.status=="removed"?(a(),l(q,{key:0},[t[66]||(t[66]=n("span",{class:"seg-sep status-removed-sep","aria-hidden":"true"},"\xB7",-1)),n("button",{type:"button",class:"project-attention-action status-enable",onClick:ae(p=>e.refreshItem(r),["stop"]),title:"Reviewers can no longer open this link"},"Enable again",8,A_)],64)):f("v-if",!0)]),r?.status=="error"&&r?.statusMessage?(a(),l("div",{key:0,class:"status-sub status-sub-error",textContent:c(e.fmt?.statusMsg(r?.statusMessage)),title:r?.statusMessage},null,8,P_)):f("v-if",!0),r?._stale?(a(),l("div",{key:1,class:"status-sub status-sub-warn",title:"Last activity "+e.fmt?.humanTime(r?.anonymizeDate||r?.lastView)},c(e.idleText(r)),9,D_)):f("v-if",!0),r.status==="error"&&r._editUrl?(a(),l("a",{key:2,class:"project-attention-action",href:e.safeUrl(r._editUrl)},"Fix source",8,T_)):f("v-if",!0),r._stale||r._broken?(a(),l("div",O_,[r._stale&&!r._broken?(a(),l("span",I_,[...t[67]||(t[67]=[g("May be stuck",-1),n("span",{"aria-hidden":"true"}," \xB7 ",-1)])])):f("v-if",!0),r._stale||r._broken?(a(),l("button",{key:1,type:"button",class:"project-attention-action",onClick:ae(p=>e.showProjectDetails(r),["stop"]),"data-project-actions":r._broken?encodeURIComponent(r._type+":"+r._id):null,"aria-controls":r._broken?e.projectDetailsId(r):null,"aria-expanded":r._broken?e.selectedProject===r:null},c(r._broken?"Review details":"Check progress"),9,M_)):f("v-if",!0)])):f("v-if",!0),r?.status=="expired"?(a(),l("button",{key:4,type:"button",class:"project-attention-action",onClick:ae(p=>e.extendItem(r),["stop"]),title:"Reviewers can no longer open this link"},"Extend 6 months",8,V_)):f("v-if",!0),r?.status=="removed"&&r?.anonymizeDate?(a(),l("div",q_,"anonymized "+c(e.fmt?.humanTime(r?.anonymizeDate)),1)):f("v-if",!0),r?.status!="error"&&r?.status!="expired"&&r?.status!="removed"&&!r?._stale&&r?.anonymizeDate?(a(),l("div",__," anonymized "+c(e.fmt?.humanTime(r?.anonymizeDate)),1)):f("v-if",!0)]),n("div",{class:"cell-views num",role:"cell","data-unit":r.pageView===1?"view":"views","aria-label":e.fmt.number(r.pageView)+(r.pageView===1?" view":" views")},[t[68]||(t[68]=n("svg",{class:"project-type-svg mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1)),n("span",null,c(e.fmt.number(r.pageView)),1)],8,$_),n("div",L_,[t[72]||(t[72]=n("svg",{class:"project-type-svg mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),r?._expiry?.kind==="never"?(a(),l("span",F_,"No expiry")):f("v-if",!0),r?._expiry?.kind==="date"&&!r?._expiry?.soon?(a(),l("span",{key:1,textContent:c((e.fmt?.humanTime(r?._expiry?.date)||"").replace(/^on /,""))},null,8,U_)):f("v-if",!0),r?._expiry?.kind==="date"&&r?._expiry?.soon?(a(),l("span",{key:2,class:"expires-soon",title:"Expires "+e.fmt?.humanTime(r?._expiry?.date)},[t[69]||(t[69]=n("svg",{class:"project-type-svg expires-soon-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),t[70]||(t[70]=n("span",{class:"expires-soon-prefix"},"Expires ",-1)),g(c(r._expiry.soon),1)],8,B_)):f("v-if",!0),r?._expiry?.kind==="expired"&&r?._expiry?.date?(a(),l("span",z_,[t[71]||(t[71]=n("span",{class:"expires-past-prefix"},"Expired ",-1)),g(c(r?._expiry?.label||e.fmt?.humanTime(r?._expiry?.date)),1)])):f("v-if",!0),r?._expiry?.kind==="expired"&&!r?._expiry?.date?(a(),l("span",H_,"Expired")):f("v-if",!0),r?._expiry?.kind==="none"?(a(),l("span",j_,"\u2014")):f("v-if",!0)])]),n("div",G_,[r._viewUrl&&!(r?._statusKey=="expired"||r?._statusKey=="removed")?(a(),l("button",{key:0,type:"button",class:"copy-url",onClick:ae(p=>e.copyLink(r),["stop"]),disabled:!!e.copyingId,title:"Copy link: "+r._viewUrl,"aria-label":"Copy anonymous link for "+r._label},[n("span",K_,c(e.copyingId===r._type+":"+r._id?"Link copied":""),1),(a(),l("svg",Y_,[n("use",{href:e.copyingId===r._type+":"+r._id?"#ui-icon-check":"#project-icon-copy"},null,8,X_)])),n("span",Q_,c(e.copyingId===r._type+":"+r._id?"Copied":"Copy link"),1)],8,W_)):f("v-if",!0),r._viewUrl&&!(r?._statusKey=="expired"||r?._statusKey=="removed")?(a(),l("a",{key:1,class:"row-edit row-open",href:e.safeUrl(r._viewUrl),target:"_blank",rel:"noopener",title:"Open what reviewers see","aria-label":"Open anonymous page for "+r._label},[...t[73]||(t[73]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-external-link"})],-1)])],8,J_)):f("v-if",!0),r?._editUrl&&!r?._broken&&r?._statusKey!="removed"?(a(),l("a",{key:2,class:"row-edit",href:e.safeUrl(r._editUrl),title:"Edit "+r._name,"aria-label":"Edit "+r._name},[...t[74]||(t[74]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1)])],8,Z_)):f("v-if",!0),!(r._viewUrl&&!(r?._statusKey=="expired"||r?._statusKey=="removed"))&&r?._statusKey!="removed"&&r?._statusKey!="expired"?(a(),l("button",{key:3,type:"button",class:"copy-url is-disabled","aria-disabled":"true",onClick:t[20]||(t[20]=ae(()=>{},["stop"])),title:r?._statusKey=="expired"?"Link expired: reviewers can no longer open it":r?._statusKey=="removed"?"Link offline: reviewers can no longer open it":"No link: this record is incomplete","aria-label":"Copy link unavailable for "+r._label},[...t[75]||(t[75]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-copy"})],-1),n("span",{class:"copy-url-label","aria-hidden":"true"},"Copy link",-1)])],8,x_)):f("v-if",!0),!(r._viewUrl&&!(r?._statusKey=="expired"||r?._statusKey=="removed"))&&r?._statusKey!="removed"&&r?._statusKey!="expired"?(a(),l("button",{key:4,type:"button",class:"row-edit row-open is-disabled","aria-disabled":"true",onClick:t[21]||(t[21]=ae(()=>{},["stop"])),title:r?._statusKey=="expired"?"Link expired: reviewers can no longer open it":r?._statusKey=="removed"?"Link offline: reviewers can no longer open it":"No link: this record is incomplete","aria-label":"Open unavailable for "+r._label},[...t[76]||(t[76]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-external-link"})],-1)])],8,e$)):f("v-if",!0),r?._editUrl&&!r?._broken?f("v-if",!0):(a(),l("button",{key:5,type:"button",class:"row-edit is-disabled","aria-disabled":"true",onClick:t[22]||(t[22]=ae(()=>{},["stop"])),title:"Can't edit: this record is incomplete","aria-label":"Edit unavailable for "+r._label},[...t[77]||(t[77]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1)])],8,t$)),r?._broken?(a(),l("div",n$,[n("button",{type:"button",class:"btn btn-icon-dots is-disabled","aria-disabled":"true",onClick:t[23]||(t[23]=ae(()=>{},["stop"])),title:"No actions: this record is incomplete. Use Review details.","aria-label":"No actions available for "+r._label},[...t[78]||(t[78]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-more"})],-1)])],8,s$)])):f("v-if",!0),r?._broken?f("v-if",!0):(a(),l("div",o$,[n("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","data-project-actions":encodeURIComponent(r._type+":"+r._id),"aria-label":"Actions for "+r?._name},[...t[79]||(t[79]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-more"})],-1)])],8,i$),n("div",r$,[n("button",{type:"button",class:"dropdown-item",onClick:p=>e.showProjectDetails(r),"aria-controls":e.projectDetailsId(r),"aria-expanded":e.selectedProject===r},"Project details & name",8,a$),n("a",{class:"dropdown-item",href:e.safeUrl(r?._viewUrl)}," View ",8,l$),r?._type==="repo"&&r?.options?.page&&r?.status=="ready"?(a(),l("a",{key:0,class:"dropdown-item",target:"_self",href:e.safeUrl("/w/"+r?.repoId+"/")}," View page ",8,d$)):f("v-if",!0),r?._viewUrl?(a(),l("button",{key:1,type:"button",class:"dropdown-item",onClick:p=>e.copyLink(r),disabled:!!e.copyingId}," Copy anonymous link ",8,u$)):f("v-if",!0),n("a",{class:"dropdown-item",href:e.safeUrl(r?._editUrl)}," Edit ",8,c$),r?.status=="ready"||r?.status=="error"?(a(),l("button",{key:2,type:"button",class:"dropdown-item",onClick:p=>e.refreshItem(r)}," Force update ",8,p$)):f("v-if",!0),r?.status=="removed"?(a(),l("button",{key:3,type:"button",class:"dropdown-item",onClick:p=>e.refreshItem(r)}," Enable ",8,f$)):f("v-if",!0),r?.status=="expired"?(a(),l("button",{key:4,type:"button",class:"dropdown-item",onClick:p=>e.extendItem(r)}," Extend 6 months ",8,h$)):f("v-if",!0),(r?.status=="ready"||r?.status=="expired"||r?.status=="error")&&r?.role!=="coauthor"?(a(),l("div",m$,[t[80]||(t[80]=n("div",{class:"dropdown-divider"},null,-1)),n("button",{type:"button",class:"dropdown-item dropdown-item-danger",onClick:p=>e.removeItem(r)}," Remove ",8,g$)])):f("v-if",!0)])]))])],10,n_)),!e.loading&&e.selectedProject===r?(a(),l("div",v$,[n("div",{class:"project-details",role:"cell","aria-colspan":"5",id:e.projectDetailsId(r),tabindex:"-1",onKeydown:kt(ae(p=>e.closeProjectDetails(r),["stop"]),["esc"])},[n("div",b$,[t[82]||(t[82]=n("h2",null,"Project details",-1)),n("button",{type:"button",class:"project-close",onClick:p=>e.closeProjectDetails(r),"aria-label":"Close project details"},[...t[81]||(t[81]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])],8,w$)]),n("dl",k$,[n("div",null,[t[83]||(t[83]=n("dt",null,"Source",-1)),n("dd",null,c(r._source||"Not available"),1)]),n("div",null,[t[84]||(t[84]=n("dt",null,"Anonymous ID",-1)),n("dd",null,[n("code",null,c(r._id||"Missing identifier"),1)])]),r.source?.commit?(a(),l("div",C$,[t[85]||(t[85]=n("dt",null,"Commit",-1)),n("dd",null,[n("code",null,c(r.source.commit),1)])])):f("v-if",!0),r.conference?(a(),l("div",E$,[t[86]||(t[86]=n("dt",null,"Conference",-1)),n("dd",null,c(r.conference),1)])):f("v-if",!0),n("div",null,[t[87]||(t[87]=n("dt",null,"Status",-1)),n("dd",null,[g(c(e.fmt.statusLabel(r.status)),1),r.statusMessage?(a(),l("span",S$," \xB7 "+c(e.fmt.statusMsg(r.statusMessage)),1)):f("v-if",!0)])]),r.anonymizeDate?(a(),l("div",N$,[t[88]||(t[88]=n("dt",null,"Last anonymized",-1)),n("dd",null,c(e.fmt.humanTime(r.anonymizeDate)),1)])):f("v-if",!0)]),r._stale?(a(),l("p",R$,"This download has not progressed recently. Check the source access and selected branch before retrying.")):f("v-if",!0),r._editUrl?(a(),l("a",{key:1,class:"project-attention-action",href:e.safeUrl(r._editUrl)},c(e.needsAttention(r)?"Check source settings":"Edit anonymization settings"),9,A$)):f("v-if",!0),r._id?(a(),l("form",{key:2,class:"project-name-form",onSubmit:ae(p=>e.saveProjectName(r),["prevent"])},[n("label",{for:"project-name-"+r._type+"-"+r._id},"Project name",8,D$),n("p",{id:"project-name-help-"+r._type+"-"+r._id},"Only you see this name. Leave it blank to use the default.",8,T$),n("div",O$,[D(n("input",{class:"form-control",type:"text",id:"project-name-"+r._type+"-"+r._id,"aria-describedby":"project-name-help-"+r._type+"-"+r._id,maxlength:"100","onUpdate:modelValue":t[24]||(t[24]=p=>e.projectName=p),disabled:e.nameSaving},null,8,I$),[[pt,e.projectName]]),n("button",{class:"btn btn-ink",type:"submit",disabled:e.nameSaving},c(e.nameSaving?"Saving\u2026":"Save name"),9,M$)]),e.nameError?(a(),l("p",V$,c(e.nameError),1)):f("v-if",!0),e.nameMessage?(a(),l("p",q$,c(e.nameMessage),1)):f("v-if",!0)],40,P$)):f("v-if",!0)],40,y$)])):f("v-if",!0)],64))),128)),!e.loading&&e.filteredItems?.length==0?(a(),l("div",_$,[t[90]||(t[90]=n("svg",{class:"project-type-svg project-empty-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1)),e.hasProjects()?f("v-if",!0):(a(),l("span",$$,"You have no anonymizations yet.")),e.hasProjects()?(a(),l("span",L$,"Nothing matches the current filters.")):f("v-if",!0),n("div",F$,[e.hasActiveFilters()?(a(),l("button",{key:0,type:"button",class:"btn btn-outline-ink",onClick:t[25]||(t[25]=r=>e.clearFilters())},"Clear filters")):f("v-if",!0),e.hasProjects()?f("v-if",!0):(a(),l("a",U$,[...t[89]||(t[89]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-plus"})],-1),g(" New anonymization",-1)])]))])])):f("v-if",!0)],10,Xq)]),e.dashboardCursor||e.dashboardError?(a(),l("div",B$,[e.dashboardError?(a(),l("p",z$,c(e.dashboardError),1)):f("v-if",!0),e.dashboardCursor?(a(),l("button",{key:1,type:"button",class:"btn",onClick:t[26]||(t[26]=r=>e.loadMoreProjects()),disabled:e.loadingMore},c(e.loadingMore?"Loading\u2026":"Load more projects"),9,H$)):f("v-if",!0)])):f("v-if",!0)])}var j$={class:"viewer-bar"},G$={class:"vb-left"},W$=["aria-label","title"],K$=["href","title"],Y$={class:"vb-artifact-id"},X$={class:"vb-right"},Q$=["title"],J$={class:"vb-help"},Z$=["aria-expanded"],x$={key:0,class:"acct-menu vb-help-menu",role:"menu"},eL=["aria-label","title"],tL={class:"ui-icon","aria-hidden":"true"},nL=["href"],sL={key:1,class:"acct"},oL=["aria-label","aria-expanded"],iL=["src"],rL={key:1,class:"acct-initial"},aL={key:0,class:"acct-menu",role:"menu"},lL={class:"acct-menu-head"},dL={key:2,class:"vb-signin",href:"/signin",target:"_self"},uL={key:0,class:"vb-context"},cL=["href","title"],pL={key:0,class:"vb-context-date"},fL=["aria-label"],hL={class:"ui-icon","aria-hidden":"true"},mL=["href"],gL=["textContent"],vL={class:"leftCol-head"},yL={class:"leftCol-search"},bL={class:"tree-search-box"},wL=["href"],kL={type:"text",class:"tree-search-input",placeholder:"Search files","aria-label":"Search files"},CL=["title","href"],EL={class:"leftCol-body"},SL={key:0,class:"paper-inline-warning",role:"alert"},NL={key:1,class:"paper-inline-warning",role:"alert"},RL={class:"explorer-main"},AL={class:"breadcrumb paths","aria-label":"Path"},PL={class:"breadcrumb-item breadcrumb-root"},DL=["href","title","textContent"],TL=["aria-current","textContent"],OL=["aria-label","title"],IL={class:"ui-icon","aria-hidden":"true"},ML=["href"],VL={class:"status-bar-actions"},qL=["href"],_L={class:"d-none d-md-inline"},$L={class:"ui-icon","aria-hidden":"true"},LL=["href"],FL={class:"d-none d-md-inline"},UL=["href"],BL={class:"explorer-content"};function fp(e,t){let s=Xe("tree"),i=Xe("partial-view"),o=Pe("field");return a(),l("div",{class:A(["explorer-page",{"files-hidden":e.sidebarHidden}]),style:Ie({"--sidebar-w":e.sidebarWidth+"px"})},[n("header",j$,[n("div",G$,[t[15]||(t[15]=n("a",{class:"vb-logo",href:"/"},[g("Anonymous "),n("em",null,"GitHub")],-1)),n("button",{type:"button",class:"vb-icon vb-sidebar","aria-label":e.sidebarHidden?"Show file tree":"Hide file tree",title:e.sidebarHidden?"Show file tree":"Hide file tree",onClick:t[0]||(t[0]=r=>e.sidebarHidden=!e.sidebarHidden)},[...t[13]||(t[13]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-sidebar"})],-1)])],8,W$),e.repoId?(a(),l("a",{key:0,class:"vb-artifact",href:e.safeUrl("/r/"+e.repoId+"/"),title:"Anonymous artifact "+e.repoId},[t[14]||(t[14]=n("span",{class:"sr-only"},"Artifact ",-1)),n("span",Y$,c(e.repoId),1)],8,K$)):f("v-if",!0)]),n("div",X$,[e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate?(a(),l("span",{key:0,class:"vb-snapshot",title:(e.options?.expirationDate?"Available until "+e.fmt?.date(e.options.expirationDate)+". ":"")+(e.options?.anonymizedAt&&!e.options?.publishedAt?"Older repositories have no recorded publication date. The source commit date does not establish when files became available here.":(e.options?.sourceCommitDate?"Source commit ":e.options?.anonymizedAt?"Anonymized ":"Updated ")+e.fmt?.date(e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate)+(e.options?.publishedAt?" \xB7 snapshot ready "+e.fmt?.date(e.options.publishedAt):""))},[t[16]||(t[16]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),t[17]||(t[17]=n("span",null,"Snapshot",-1)),n("span",null,c(e.fmt?.date(e.options?.publishedAt||e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate)),1)],8,Q$)):f("v-if",!0),t[25]||(t[25]=n("a",{class:"vb-support",href:"https://ko-fi.com/tdurieux",target:"_blank",rel:"noopener",title:"Support Anonymous GitHub \u2014 help keep it free for researchers"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-heart"})]),n("span",null,"Support")],-1)),n("div",J$,[n("button",{type:"button",class:"vb-help-btn","aria-haspopup":"true","aria-expanded":e.helpOpen?"true":"false",onClick:t[1]||(t[1]=ae(r=>e.helpOpen=!e.helpOpen,["stop"]))},[...t[18]||(t[18]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-help"})],-1),n("span",null,"Help",-1)])],8,Z$),e.helpOpen?(a(),l("div",x$,[...t[19]||(t[19]=[n("a",{role:"menuitem",href:"/faq"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-help"})]),n("span",null,[g("FAQ"),n("small",null,"How anonymization works")])],-1),n("a",{role:"menuitem",href:"https://github.com/tdurieux/anonymous_github/issues/new?template=issue_report.yml",target:"_blank",rel:"noopener"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-bug"})]),n("span",null,[g("Report a bug"),n("small",null,"About this service, not the paper")])],-1)])])):f("v-if",!0)]),n("button",{type:"button",class:"vb-icon","aria-label":e.isDarkMode?"Switch to light mode":"Switch to dark mode",title:e.isDarkMode?"Light mode":"Dark mode",onClick:t[2]||(t[2]=r=>e.darkMode(!e.isDarkMode))},[(a(),l("svg",tL,[n("use",{href:e.isDarkMode?"#ui-icon-sun":"#ui-icon-moon"},null,8,nL)]))],8,eL),e.user?(a(),l("div",sL,[n("button",{type:"button",class:"acct-chip","aria-haspopup":"true","aria-label":"Account: "+e.user?.username,"aria-expanded":e.accountOpen?"true":"false",onClick:t[3]||(t[3]=ae(r=>e.accountOpen=!e.accountOpen,["stop"]))},[e.user?.photo?(a(),l("img",{key:0,src:e.safeUrl(e.user.photo),alt:"",width:"26",height:"26"},null,8,iL)):(a(),l("span",rL,c((e.user?.username||"?").charAt(0).toUpperCase()),1))],8,oL),e.accountOpen?(a(),l("div",aL,[n("div",lL,[t[20]||(t[20]=g("Signed in as ",-1)),n("b",null,"@"+c(e.user?.username),1)]),t[21]||(t[21]=n("a",{role:"menuitem",href:"/dashboard"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-grid"})]),g("My work")],-1)),t[22]||(t[22]=n("a",{role:"menuitem",href:"/profile"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-user"})]),g("Settings")],-1)),t[23]||(t[23]=n("a",{role:"menuitem",href:"/api/user/logout",target:"_self"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-logout"})]),g("Sign out")],-1))])):f("v-if",!0)])):(a(),l("a",dL,[...t[24]||(t[24]=[n("i",{class:"fab fa-github","aria-hidden":"true"},null,-1),g("Sign in",-1)])]))])]),e.repoId?(a(),l("div",uL,[n("a",{class:"vb-context-id",href:e.safeUrl("/r/"+e.repoId+"/"),title:"Anonymous artifact "+e.repoId},c(e.repoId),9,cL),e.options?.publishedAt||e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate?(a(),l("span",pL,"Snapshot "+c(e.fmt?.date(e.options?.publishedAt||e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate)),1)):f("v-if",!0)])):f("v-if",!0),D(n("button",{class:"sidebar-toggle",onClick:t[4]||(t[4]=r=>e.sidebarCollapsed=!e.sidebarCollapsed),"aria-label":e.sidebarCollapsed?"Show files":"Hide files"},[(a(),l("svg",hL,[n("use",{href:e.sidebarCollapsed?"#ui-icon-folder":"#project-icon-close"},null,8,mL)])),n("span",{textContent:c(e.sidebarCollapsed?"Files":"Close")},null,8,gL)],8,fL),[[Z,e.files?.length]]),D(n("div",{class:A(["leftCol",{collapsed:e.sidebarCollapsed}])},[n("div",vL,[t[27]||(t[27]=n("span",{class:"leftCol-eyebrow"},"Files",-1)),n("button",{class:"leftCol-close","aria-label":"Close files",onClick:t[5]||(t[5]=r=>e.sidebarCollapsed=!0)},[...t[26]||(t[26]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])])]),n("div",yL,[n("div",bL,[(a(),l("svg",{class:A(["ui-icon tree-search-icon",{"fa-spin":e.fileSearchLoading}]),"aria-hidden":"true"},[n("use",{href:e.fileSearchLoading?"#ui-icon-spinner":"#ui-icon-search"},null,8,wL)],2)),D(n("input",kL,null,512),[[o,{state:e.viewState,set:r=>{e.fileSearchQuery=r},value:e.fileSearchQuery,form:null,options:{debounce:300},change:()=>{e.onFileSearchChange()}}]]),D(n("kbd",{class:"tree-search-kbd"},c(e.isMac?"\u2318":"Ctrl+")+"K",513),[[Z,!e.fileSearchQuery]]),D(n("button",{class:"tree-search-clear","aria-label":"Clear search",onClick:t[6]||(t[6]=r=>{e.fileSearchQuery="",e.onFileSearchChange()})},"\xD7",512),[[Z,e.fileSearchQuery]])]),e.options?.download?(a(),l("a",{key:0,target:"_self",class:"search-zip","aria-label":"Download repository as ZIP",title:"Download the repository (snapshot "+e.fmt?.date(e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate)+") as ZIP",href:e.safeUrl("/api/repo/"+e.repoId+"/zip")},[...t[28]||(t[28]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-download"})],-1),n("span",{class:"search-zip-label","aria-hidden":"true"},"ZIP",-1)])],8,CL)):f("v-if",!0)]),n("div",EL,[e.options?.truncatedFolders?.length>0?(a(),l("div",SL,[t[29]||(t[29]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),g(" "+c(e.fmt?.translate("WARNINGS.repo_truncated")),1)])):f("v-if",!0),e.options?.hasSubmodules?(a(),l("div",NL,[t[30]||(t[30]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),g(" "+c(e.fmt?.translate("WARNINGS.submodules_not_included")),1)])):f("v-if",!0),Oe(s,{class:"files",file:e.files,"search-query":e.fileSearchQuery,"search-results":e.fileSearchResults,page:e.viewState},null,8,["file","search-query","search-results","page"])])],2),[[Z,e.files?.length]]),D(n("div",{class:"leftCol-resizer",role:"separator","aria-orientation":"vertical","aria-label":"Resize file tree",title:"Drag to resize",onPointerdown:t[7]||(t[7]=r=>e.startSidebarResize(r))},null,544),[[Z,e.files?.length&&!e.sidebarHidden]]),D(n("div",{class:"leftCol-backdrop",onClick:t[8]||(t[8]=r=>e.sidebarCollapsed=!0)},null,512),[[Z,e.files?.length&&!e.sidebarCollapsed]]),n("div",RL,[D(n("div",{class:A(["status-bar",{"is-redundant":["code","text","html"].includes(e.type)&&e.content!=null||e.fileFrame()}])},[D(n("button",{type:"button",class:"btn btn-sm status-files-btn","aria-label":"Show files",title:"Show files",onClick:t[9]||(t[9]=r=>e.sidebarHidden?e.sidebarHidden=!1:e.sidebarCollapsed=!1)},[...t[31]||(t[31]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-folder"})],-1),n("span",null,"Files",-1)])],512),[[Z,e.files?.length]]),n("ol",AL,[n("li",PL,[n("a",{href:e.safeUrl("/r/"+e.repoId+"/"),title:e.repoId,textContent:c(/^[0-9a-f]{8}-[0-9a-f]{4}-/i.test(e.repoId||"")?"repository":e.repoId)},null,8,DL)]),(a(!0),l(q,null,J(e.paths,(r,d)=>(a(),l("li",{class:"breadcrumb-item","aria-current":d===e.paths.length-1?"page":null,textContent:c(r)},null,8,TL))),256))]),D(n("button",{type:"button",class:"btn btn-sm btn-icon-only btn-ghost copy-path-btn","aria-label":e.pathCopied?"Path copied":"Copy path",title:e.pathCopied?"Path copied":"Copy path",onClick:t[10]||(t[10]=r=>e.copyPath())},[(a(),l("svg",IL,[n("use",{href:e.pathCopied?"#ui-icon-check":"#project-icon-copy"},null,8,ML)]))],8,OL),[[Z,e.filePath]]),n("div",VL,[e.options?.isAdmin||e.options?.isOwner?(a(),l("a",{key:0,class:"btn btn-sm","aria-label":"Edit",href:e.safeUrl("/anonymize/"+e.repoId)},[...t[32]||(t[32]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),n("span",{class:"d-none d-md-inline"}," Edit",-1)])],8,qL)):f("v-if",!0),e.type=="html-doc"&&!e.showSource?(a(),l("button",{key:1,class:A(["btn btn-sm",{"btn-active":e.allowScripts}]),"aria-label":"Allow this document to run JavaScript",title:"Scripts in this file are blocked by default. Enable them only if you trust the repository \u2014 the document stays isolated from your session either way.",onClick:t[11]||(t[11]=r=>e.toggleAllowScripts())},[t[33]||(t[33]=n("i",{class:"fab fa-js"},null,-1)),n("span",_L,c(e.allowScripts?"JS on":"JS off"),1)],2)):f("v-if",!0),e.type=="html-doc"?(a(),l("button",{key:2,class:"btn btn-sm","aria-label":"Toggle between the rendered document and its source",title:"Toggle between the rendered document and its source",onClick:t[12]||(t[12]=r=>e.toggleSource())},[(a(),l("svg",$L,[n("use",{href:e.showSource?"#project-icon-eye":"#ui-icon-code"},null,8,LL)])),n("span",FL,c(e.showSource?"Rendered":"Source"),1)])):f("v-if",!0),e.options?.hasWebsite?(a(),l("a",{key:3,target:"_self",class:"btn btn-sm","aria-label":"Website",href:e.safeUrl("/w/"+e.repoId+"/")},[...t[34]||(t[34]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-globe"})],-1),n("span",{class:"d-none d-md-inline"}," Website",-1)])],8,UL)):f("v-if",!0)])],2),[[Z,e.type!="error"||e.files?.length]]),n("div",BL,[Oe(i,{name:"partials/pageView.htm",state:e.viewState},null,8,["state"])])])],6)}var zL={class:"paper-faq"},HL={class:"paper-faq-body"},jL={class:"paper-faq-toc"},GL={class:"faq-search",role:"search"},WL={class:"faq-search-field"},KL={id:"faq-search-status",class:"faq-search-status","aria-live":"polite"},YL={key:0,class:"faq-search-empty"},XL={class:"faq-search-empty-actions"};function hp(e,t){let s=Xe("partial-view"),i=Pe("paper-scrollspy");return a(),l(q,null,[n("div",zL,[t[12]||(t[12]=n("div",{class:"paper-faq-hero"},[n("div",{class:"paper-faq-eyebrow"},"Help"),n("h1",{class:"paper-faq-title"},[g("Mirrors, redaction, and "),n("em",null,"what reviewers see.")]),n("p",{class:"paper-faq-lede"}," How to set up an anonymous mirror, what it hides, and how long it stays online. ")],-1)),n("div",HL,[D((a(),l("aside",jL,[...t[5]||(t[5]=[Ce('
Contents
',2)])])),[[i]]),n("section",{class:A(["faq-section",{"faq-searching":!!e.faqQuery.trim()}]),"aria-label":"FAQs"},[n("div",GL,[t[7]||(t[7]=n("label",{for:"faq-search-input"},"Search questions",-1)),n("div",WL,[t[6]||(t[6]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-search"})],-1)),D(n("input",{id:"faq-search-input",type:"search",class:"form-control","onUpdate:modelValue":t[0]||(t[0]=o=>e.faqQuery=o),onInput:t[1]||(t[1]=o=>e.filterFaq()),onSearch:t[2]||(t[2]=o=>e.filterFaq()),onKeydown:t[3]||(t[3]=kt(o=>e.clearFaqSearch(),["esc"])),placeholder:"e.g. expiry, pull request, PDF",autocomplete:"off",spellcheck:"false","aria-describedby":"faq-search-status"},null,544),[[pt,e.faqQuery]])]),n("p",KL,[e.faqQuery.trim()&&e.faqResults?(a(),l(q,{key:0},[g(c(e.faqResults===1?"1 result":e.faqResults+" results"),1)],64)):f("v-if",!0)])]),e.faqQuery.trim()&&e.faqResults===0?(a(),l("div",YL,[n("strong",null,"No questions match \u201C"+c(e.faqQuery.trim())+"\u201D.",1),t[9]||(t[9]=n("p",null,"Try a shorter word, or ask us directly.",-1)),n("div",XL,[n("button",{type:"button",class:"btn btn-outline-ink btn-sm",onClick:t[4]||(t[4]=o=>e.clearFaqSearch())},"Clear search"),t[8]||(t[8]=n("a",{class:"btn btn-link btn-sm",target:"_blank",rel:"noopener",href:"https://github.com/tdurieux/anonymous_github/issues/new?template=issue_report.yml"},"Open an issue",-1))])])):f("v-if",!0),t[10]||(t[10]=n("div",{class:"faq-list"},[f(" General "),n("h4",{class:"faq-cat"},[n("svg",{class:"ui-icon mr-2","aria-hidden":"true"},[n("use",{href:"#ui-icon-info"})]),g("General ")]),n("div",{class:"panel-group",id:"faq-general",role:"tablist","aria-multiselectable":"true"},[n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingWhatIs"},[n("h3",{class:"panel-title"},[n("a",{role:"button","data-toggle":"collapse","data-parent":"#faq-general",href:"#whatIs","aria-expanded":"true","aria-controls":"whatIs"}," What is Anonymous GitHub? ")])]),n("div",{id:"whatIs",class:"panel-collapse collapse show",role:"tabpanel","aria-labelledby":"headingWhatIs"},[n("div",{class:"panel-body p-3"},[n("p",null," Anonymous GitHub is an open-source tool with free hosting and optional paid plans that anonymizes GitHub repositories and pull requests for double-anonymous (double-blind) peer review. It replaces identifying information, such as the repository owner, organization name, and custom terms, so that reviewers cannot determine the identity of the authors through the code repository. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingHowWork"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-general",href:"#howWork","aria-expanded":"false","aria-controls":"howWork"}," How does Anonymous GitHub work? ")])]),n("div",{id:"howWork",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingHowWork"},[n("div",{class:"panel-body p-3"},[n("p",null," Anonymous GitHub either downloads the complete repository and anonymizes the content, or proxies requests to GitHub on the fly. In both cases, the original and anonymized versions of files are cached on the server. The system automatically detects and replaces the repository owner, organization name, and repository name. You can also specify additional custom terms to anonymize using one-per-line regex patterns. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingScope"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-general",href:"#scope","aria-expanded":"false","aria-controls":"scope"}," What is the scope of anonymization? ")])]),n("div",{id:"scope",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingScope"},[n("div",{class:"panel-body p-3"},[n("p",null," In double-anonymous peer review, the boundary of anonymization is the paper plus its online appendix, not the entire internet. Searching for any part of the paper or the online appendix can be considered a deliberate attempt to break anonymity. Anonymous GitHub anonymizes the repository owner, organization, repository name, file and directory names, and file contents across all text-based file types. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingCost"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-general",href:"#cost","aria-expanded":"false","aria-controls":"cost"}," How much does it cost? ")])]),n("div",{id:"cost",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingCost"},[n("div",{class:"panel-body p-3"},[n("p",null," A free account includes 5 owned repositories and 2 GiB of source files. Optional paid plans offer more capacity, automatic refresh, and, with an author subscription, never-expiring repositories. Reviewers can read shared repositories without an account or payment. "),n("p",null,[g(" See "),n("a",{href:"/profile#settings-billing"},"Plans and billing"),g(" for available plans and current prices. Offers depend on whether payments are enabled on this instance; the checkout shows the amount before you pay. Subscriptions help fund hosting, storage, backups, and continued maintenance. ")]),n("p",null,[g(" You can also support development through "),n("a",{href:"https://github.com/sponsors/tdurieux/",target:"_blank",rel:"noopener"},"GitHub Sponsors"),g(" or "),n("a",{href:"https://ko-fi.com/tdurieux",target:"_blank",rel:"noopener"},"Ko-fi"),g(". Donations are separate from subscriptions and do not automatically unlock paid features. ")])])])])]),f(" Plans and billing "),n("h4",{class:"faq-cat",id:"faq-plans-title"},"Plans and billing"),n("div",{class:"panel-group",id:"faq-plans",role:"tablist","aria-label":"Plans and billing","aria-multiselectable":"true"},[n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingWhyPaid"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#whyPaid","aria-expanded":"false","aria-controls":"whyPaid"},"Why is Anonymous GitHub no longer completely free?")])]),n("div",{id:"whyPaid",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingWhyPaid"},[n("div",{class:"panel-body p-3"},[n("p",null,"Anonymous GitHub started as a small free service and was paid for out of pocket. Three things have changed since then:"),n("ul",null,[n("li",null,[n("strong",null,"Servers cost much more."),g(" Every hosted repository needs storage, bandwidth and backups, and these costs have risen sharply.")]),n("li",null,[n("strong",null,"Many more people use it."),g(" More users means more repositories to store and keep up to date, more support requests and more maintenance.")]),n("li",null,[n("strong",null,"AI has made security work heavier."),g(" AI-driven scrapers and automated abuse send far more traffic than before. Blocking them and keeping hosted content safe takes constant work.")])]),n("p",null,"The core service stays free: anonymizing a repository, sharing the link and reviewer access cost nothing, and reviewers never need an account. Most authors never need to pay. The paid options are small one-time payments for one repository, plus an optional subscription for heavy users. They are priced to cover running costs, not to make a profit."),n("p",null,[g("The source code remains open, so you can still "),n("a",{href:"#faq-hosting"},"host your own instance"),g(" for free.")])])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingFreePlan"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#freePlan","aria-expanded":"false","aria-controls":"freePlan"},"What is included in a free account?")])]),n("div",{id:"freePlan",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingFreePlan"},[n("div",{class:"panel-body p-3"},[n("p",null,"The default free allowance is 5 repositories you own and 2 GiB of source files in total. Core anonymization and reviewer access remain free. You can manually refresh a repository within your allowance and choose a dated expiration up to 5 months ahead, then extend it again before it expires. Repositories submitted to a conference can stay online until the end of its review window."),n("p",null,"Repositories shared with you as a co-author do not use your own slots. Gists and pull requests are not included in these repository quotas. The usage shown in your account is the allowance available on this instance.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingAuthorPlans"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#authorPlans","aria-expanded":"false","aria-controls":"authorPlans"},"What do monthly and annual author subscriptions include?")])]),n("div",{id:"authorPlans",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingAuthorPlans"},[n("div",{class:"panel-body p-3"},[n("p",null,[g("Both include 20 owned repositories and 10 GiB of source files in total. They also allow automatic refresh when enabled in repository settings and let the owner choose "),n("strong",null,"Never expire"),g(".")]),n("p",null,[g("Monthly and annual plans offer the same features with different billing periods. They renew automatically until you cancel renewal. Current prices are shown in "),n("a",{href:"/profile#settings-billing"},"Plans and billing"),g(".")]),n("p",null,"Paid plans do not change how anonymization works. File-size limits and other service safeguards still apply. Review your anonymized content before sharing it.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingReviewPass"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#reviewPass","aria-expanded":"false","aria-controls":"reviewPass"},"Can I pay for one repository without subscribing?")])]),n("div",{id:"reviewPass",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingReviewPass"},[n("div",{class:"panel-body p-3"},[n("p",null,"Yes. These one-time add-ons apply to a single repository you own. None of them renews automatically:"),n("ul",null,[n("li",null,[n("strong",null,"Paper pack"),g(": an extra repository, automatic updates for 180 days and one more year before it expires, in a single payment. It covers what one paper usually needs during review.")]),n("li",null,[n("strong",null,"Extra repository"),g(": host one more repository once your free repositories are used up. It has its own 2 GiB allowance and does not count toward your free repositories. It lasts as long as the repository exists.")]),n("li",null,[n("strong",null,"Live updates"),g(": automatic refresh for 180 days, with a separate 2 GiB allowance.")]),n("li",null,[n("strong",null,"Extended expiration"),g(": choose an expiration date up to one year after purchase. Buying it again adds another year.")]),n("li",null,[n("strong",null,"Never expire"),g(": the repository has no expiration date. A full refund or a payment dispute ends it after a 90-day grace period.")])]),n("p",null,[g("When your free allowance is full, the Extra repository and Paper pack options are offered as you create the repository. You can also buy an add-on from the repository's edit page, or enter the anonymized ID of an existing repository in "),n("a",{href:"/profile#settings-billing"},"Plans and billing"),g(". Current prices are shown there.")])])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingConferencePlans"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#conferencePlans","aria-expanded":"false","aria-controls":"conferencePlans"},"Can a conference or lab pay for a group?")])]),n("div",{id:"conferencePlans",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingConferencePlans"},[n("div",{class:"panel-body p-3"},[n("p",null,"A conference review package provides a shared allowance for a review window of up to 180 days, with automatic updates for every submission. It comes in three sizes: Workshop (25 repositories, 10 GiB), Conference (100 repositories, 50 GiB) and Large conference (400 repositories, 200 GiB). Choose the size when you create the conference; it cannot change afterwards. The organizer pays once and authors pay nothing (the price is shown when you create the conference); the package does not renew automatically. A lab organizing a review can use this shared package too."),n("p",null,"New conferences no longer have a free plan: every new conference is a review package. Conferences created earlier keep working as before. The conference must be activated by payment before authors can submit under its Conference ID. Eligible repositories use the conference allowance before an author's personal allowance, so authors do not each need a subscription for that capacity."),n("p",null,"The package has a fixed review window. Never expire still requires the repository owner's author subscription or a Never expire add-on for that repository.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingPaidCoauthors"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#paidCoauthors","aria-expanded":"false","aria-controls":"paidCoauthors"},"Does every co-author need to pay?")])]),n("div",{id:"paidCoauthors",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingPaidCoauthors"},[n("div",{class:"panel-body p-3"},[n("p",null,"No. Co-authors can collaborate without buying a subscription. A shared repository uses its owner's allowance, unless a repository pass or paid conference covers it. It does not consume each co-author's personal allowance."),n("p",null,"A co-author's subscription does not increase the owner's allowance. If the owner's available capacity is exhausted, a co-author's refresh or edit may also be blocked. Reviewers never need a paid account.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingCapacity"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#capacity","aria-expanded":"false","aria-controls":"capacity"},"What counts toward my allowance, and what happens at the limit?")])]),n("div",{id:"capacity",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingCapacity"},[n("div",{class:"panel-body p-3"},[n("p",null,"The repository limit counts work you own. Storage counts the source-file sizes reserved for those repositories, not just files a reviewer opens. Archived or failed repositories can still reserve capacity, and a refresh does not automatically reduce a previous storage reservation."),n("p",null,"At the repository limit you cannot add another repository to that allowance. An edit or refresh must also fit the available storage. Remove work you no longer need, add an Extra repository for the new one, choose a subscription, or use an eligible conference allowance."),n("p",null,"Removing a repository releases its reservation when capacity is next checked. Expired repositories may continue to reserve capacity until cleanup. Reaching a limit does not itself delete existing review links.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingNeverExpire"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#neverExpire","aria-expanded":"false","aria-controls":"neverExpire"},"What happens to Never expire repositories if I stop subscribing?")])]),n("div",{id:"neverExpire",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingNeverExpire"},[n("div",{class:"panel-body p-3"},[n("p",null,[g("Never expire is available to monthly and annual author subscribers, or for one repository with the one-time Never expire add-on. If a subscription ends, these repositories remain available for a "),n("strong",null,"90-day grace period"),g(", then expire and their hosted content is removed.")]),n("p",null,"Renewing during the grace period keeps them active. After expiration, you must renew and explicitly reactivate the repository; restoring content also requires access to its GitHub source. A repository does not become public on GitHub when it expires."),n("p",null,"Existing never-expiring repositories created before this billing policy retain their settings. Never expire is not a guarantee of perpetual service availability.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingCancelPlan"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#cancelPlan","aria-expanded":"false","aria-controls":"cancelPlan"},"How do I cancel, and what happens after paid access ends?")])]),n("div",{id:"cancelPlan",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingCancelPlan"},[n("div",{class:"panel-body p-3"},[n("p",null,[g("Open "),n("a",{href:"/profile#settings-billing"},"Plans and billing"),g(" and choose "),n("strong",null,"Manage billing and invoices"),g(" to manage renewal. Cancelling renewal keeps subscription benefits until the end of the paid period.")]),n("p",null,"After paid access ends, repositories fall back to another eligible allowance or the free allowance. Automatic refresh pauses on the free allowance; manual refresh remains available within its limits. Existing review links keep their configured expiration dates, except paid Never expire repositories, which follow the 90-day grace period described above."),n("p",null,"A repository pass or conference package ends after its paid window without automatic renewal.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingRefunds"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#refunds","aria-expanded":"false","aria-controls":"refunds"},"Can I get a refund?")])]),n("div",{id:"refunds",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingRefunds"},[n("div",{class:"panel-body p-3"},[n("p",null,[g("Refunds are handled case by case. "),n("a",{href:"mailto:tdurieux@anonymous.4open.science"},"Email the maintainer"),g(" with the date of the payment and the repository it was for.")]),n("p",null,"A full refund ends what that payment bought. For a Paper pack, this means all three parts: the extra repository, automatic updates and the extended expiration. A Never expire repository then expires after a 90-day grace period. A partial refund keeps your access."),n("p",null,"To stop a subscription, cancel its renewal instead of asking for a refund. You keep access until the end of the period you paid for.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingPaymentHandling"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#paymentHandling","aria-expanded":"false","aria-controls":"paymentHandling"},"How are payments handled?")])]),n("div",{id:"paymentHandling",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingPaymentHandling"},[n("div",{class:"panel-body p-3"},[n("p",null,[g("Stripe processes checkout and billing management. Anonymous GitHub does not store your card details. You can access billing management and invoices from "),n("a",{href:"/profile#settings-billing"},"Plans and billing"),g(".")]),n("p",null,[g("Paid access is activated after payment is confirmed. If checkout succeeds but your account has not updated, choose "),n("strong",null,"Refresh payment status"),g(" before trying another purchase. If paid plans are unavailable on this instance, no checkout is offered.")])])])])]),f(" Features "),n("h4",{class:"faq-cat"},[n("svg",{class:"ui-icon mr-2","aria-hidden":"true"},[n("use",{href:"#project-icon-filter"})]),g("Features ")]),n("div",{class:"panel-group",id:"faq-features",role:"tablist","aria-multiselectable":"true"},[n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingFormats"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#formats","aria-expanded":"false","aria-controls":"formats"}," Which file formats are supported? ")])]),n("div",{id:"formats",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingFormats"},[n("div",{class:"panel-body p-3"},[n("p",null," Anonymous GitHub can display and render a wide variety of file types: "),n("ul",null,[n("li",null,[n("strong",null,"Text and source code"),g(": displayed with syntax highlighting")]),n("li",null,[n("strong",null,"Markdown"),g(": rendered as formatted HTML")]),n("li",null,[n("strong",null,"Images"),g(" (PNG, JPG, SVG, etc.): displayed inline")]),n("li",null,[n("strong",null,"PDFs"),g(": rendered directly in the browser")]),n("li",null,[n("strong",null,"Jupyter Notebooks"),g(": rendered with code cells and outputs")])]),n("p",null," Only text-based files are anonymized. Anonymous GitHub analyzes the content of each file to determine whether it is textual or binary. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingPR"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#pullRequests","aria-expanded":"false","aria-controls":"pullRequests"}," Can I anonymize pull requests? ")])]),n("div",{id:"pullRequests",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingPR"},[n("div",{class:"panel-body p-3"},[n("p",null," Yes. In addition to full repositories, Anonymous GitHub supports anonymizing individual pull requests. Simply paste the URL of a GitHub pull request when creating a new anonymized repository, and the system will automatically detect that it is a pull request and anonymize it accordingly. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingConference"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#conference","aria-expanded":"false","aria-controls":"conference"}," What is the Conference ID feature? ")])]),n("div",{id:"conference",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingConference"},[n("div",{class:"panel-body p-3"},[n("p",null," When creating an anonymized repository, you can associate it with a Conference ID. This allows conferences to define default anonymization settings (such as expiration dates) that are automatically applied to repositories submitted under that conference. If your conference provides a Conference ID, enter it during the anonymization setup. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingExpiration"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#expiration","aria-expanded":"false","aria-controls":"expiration"}," What happens when an anonymized repository expires? ")])]),n("div",{id:"expiration",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingExpiration"},[n("div",{class:"panel-body p-3"},[n("p",null," You can configure one of three expiration strategies when creating your anonymized repository: "),n("ul",null,[n("li",null,[n("strong",null,"Never expire"),g(": with a monthly or annual author subscription, no scheduled expiration while subscribed. A 90-day grace period applies after paid access ends. See "),n("a",{href:"#neverExpire"},"the subscription expiration policy"),g(".")]),n("li",null,[n("strong",null,"Redirect to GitHub"),g(": after expiration, visitors are redirected to the original GitHub repository.")]),n("li",null,[n("strong",null,"Remove content"),g(": after expiration, the anonymized content is deleted from the server.")])])])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingDownload"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#download","aria-expanded":"false","aria-controls":"download"}," Can I download an anonymized repository? ")])]),n("div",{id:"download",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingDownload"},[n("div",{class:"panel-body p-3"},[n("p",null," Yes. Anonymized repositories can be downloaded as a ZIP file. This is useful if reviewers want to build or test the code locally. The downloaded archive contains the fully anonymized version of the repository. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingUpdates"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#updates","aria-expanded":"false","aria-controls":"updates"}," Are updates to the original repository reflected in the anonymized version? ")])]),n("div",{id:"updates",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingUpdates"},[n("div",{class:"panel-body p-3"},[n("p",null," You can refresh the anonymized repository from GitHub without creating a new share link. Free accounts can request a manual refresh within their allowance. Automatic refresh requires an eligible paid allowance and must be enabled in repository settings. It pauses when the repository falls back to the free allowance. "),n("p",null," After changing files or contributor names, review your anonymization terms before sharing the updated content. If GitHub access is revoked or the source is deleted, the service cannot fetch updates. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingCLI"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#cli","aria-expanded":"false","aria-controls":"cli"}," Is there a command-line tool? ")])]),n("div",{id:"cli",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingCLI"},[n("div",{class:"panel-body p-3"},[n("p",null," Yes. Anonymous GitHub provides a CLI tool that lets you anonymize repositories locally, generating an anonymized ZIP file on your machine. Install it via npm: "),n("pre",{style:{"background-color":"var(--hover-bg-color)",padding:"12px","border-radius":"4px","margin-top":"8px",color:"var(--color)"}},[n("code",null,`npm install -g @tdurieux/anonymous_github +anonymous_github`)])])])])]),f(" Limitations "),n("h4",{class:"faq-cat"},[n("svg",{class:"ui-icon mr-2","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})]),g("Limitations ")]),n("div",{class:"panel-group",id:"faq-limitations",role:"tablist","aria-multiselectable":"true"},[n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingLimitation"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-limitations",href:"#limitation","aria-expanded":"false","aria-controls":"limitation"}," What are the limitations of Anonymous GitHub? ")])]),n("div",{id:"limitation",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingLimitation"},[n("div",{class:"panel-body p-3"},[n("ul",null,[n("li",null," Anonymous GitHub only anonymizes text-based files. Binary files (compiled executables, archives, etc.) are served as-is without anonymization. "),n("li",null," Files larger than 8 MB are not supported. "),n("li",null," Static site generators (such as Jekyll) used with GitHub Pages are not fully supported, although Markdown files are converted to HTML. "),n("li",null," The anonymization of terms within source code may change the behavior of the program (e.g., if a replaced term appears in a string literal or identifier). ")])])])])]),f(" Privacy and security "),n("h4",{class:"faq-cat"},[n("svg",{class:"ui-icon mr-2","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})]),g("Privacy and security ")]),n("div",{class:"panel-group",id:"faq-privacy",role:"tablist","aria-multiselectable":"true"},[n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingData"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-privacy",href:"#data","aria-expanded":"false","aria-controls":"data"}," How is my data handled? ")])]),n("div",{id:"data",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingData"},[n("div",{class:"panel-body p-3"},[n("p",null," Repository data is used to provide the anonymization service. If you purchase a plan, Stripe processes payment and billing information. When a repository is removed or expires, only its configuration is retained. This makes it easy to restore the repository if needed and ensures that no future repository reuses the same ID. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingPermissions"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-privacy",href:"#permissions","aria-expanded":"false","aria-controls":"permissions"}," Why does GitHub say Anonymous GitHub asks for write access? ")])]),n("div",{id:"permissions",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingPermissions"},[n("div",{class:"panel-body p-3"},[n("p",null,[g("The GitHub App has read-only access to the repositories you choose. You can change repository access on your "),n("a",{href:"/connections"},"GitHub connections"),g(" page.")]),n("p",null,"Legacy GitHub OAuth includes write access to private repositories because GitHub's OAuth scopes do not offer a read-only option for them. Existing OAuth anonymizations and gists can still use this connection."),n("p",null,"Anonymous GitHub reads repository content. It never pushes, modifies, or deletes files on GitHub.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingViewer"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-privacy",href:"#viewer","aria-expanded":"false","aria-controls":"viewer"}," Can repository owners see who viewed their anonymized repository? ")])]),n("div",{id:"viewer",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingViewer"},[n("div",{class:"panel-body p-3"},[n("p",null," No. Only the total number of views is tracked as an incremental counter. It is not possible for the repository owner or for Anonymous GitHub to identify individual viewers. Reviewer anonymity is fully preserved. ")])])])]),f(" Self-hosting "),n("h4",{class:"faq-cat"},[n("svg",{class:"ui-icon mr-2","aria-hidden":"true"},[n("use",{href:"#project-icon-storage"})]),g("Self"),n("span",{class:"serif-hy"},"-"),g("hosting ")]),n("div",{class:"panel-group",id:"faq-hosting",role:"tablist","aria-multiselectable":"true"},[n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingDeploy"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-hosting",href:"#deploy","aria-expanded":"false","aria-controls":"deploy"}," Can I deploy my own instance? ")])]),n("div",{id:"deploy",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingDeploy"},[n("div",{class:"panel-body p-3"},[n("p",null,[g(" Yes. Anonymous GitHub is fully open source (GPL-3.0) and supports Docker-based deployment. Billing is optional and disabled by default for self-hosted instances; paid hosted plans are not required to run your own server. You will need to configure a GitHub OAuth app and provide a GitHub token. Detailed setup instructions are available on the "),n("a",{href:"https://github.com/tdurieux/anonymous_github/",target:"_blank"},"GitHub repository"),g(". ")]),n("p",null," The basic steps are: "),n("ol",null,[n("li",null,"Clone the repository and install dependencies"),n("li",null,[g("Create a "),n("code",null,".env"),g(" file with your GitHub token, OAuth client ID, and client secret")]),n("li",null,[g("Run "),n("code",null,"docker-compose up -d")])])])])])])],-1))],2),t[11]||(t[11]=n("aside",{class:"paper-faq-help","aria-label":"More help"},[n("div",{class:"paper-faq-help-card"},[n("strong",null,"Still stuck?"),n("p",null,"Open an issue on GitHub about the service. For a paper's content, contact the conference instead."),n("a",{class:"btn btn-outline-ink btn-sm",target:"_blank",rel:"noopener",href:"https://github.com/tdurieux/anonymous_github/issues/new?template=issue_report.yml"},"Open an issue")])],-1))])]),Oe(s,{name:"partials/footer.htm",state:e.viewState},null,8,["state"])],64)}var QL={class:"pr-page"},JL={class:"container paper-page pr-page-inner"},ZL={class:"pr-header"},xL={class:"pr-title-row"},eF={class:"paper-page-title pr-title"},tF=["textContent"],nF={key:1,class:"text-muted"},sF=["href"],oF={class:"pr-header-meta"},iF={key:0,class:"pr-meta-item"},rF=["textContent"],aF={key:1,class:"pr-meta-item"},lF=["textContent"],dF={key:2,class:"pr-meta-item"},uF=["textContent"],cF={key:0,class:"paper-tabs",role:"tablist"},pF=["aria-selected","tabindex"],fF=["textContent"],hF=["aria-selected","tabindex"],mF=["textContent"],gF={class:"paper-tab-content"},vF={key:0,role:"tabpanel",id:"gist-files-panel","aria-labelledby":"gist-files-tab"},yF={class:"pr-comments"},bF={class:"pr-comment"},wF={class:"pr-comment-head"},kF=["textContent"],CF={key:0,class:"pr-comment-date"},EF={key:0,class:"paper-table-empty"},SF={key:1,role:"tabpanel",id:"gist-comments-panel","aria-labelledby":"gist-comments-tab"},NF={class:"pr-comments"},RF={class:"pr-comment"},AF={class:"pr-comment-head"},PF={key:0,class:"pr-comment-author"},DF=["textContent"],TF=["textContent"],OF={key:0,class:"pr-comment-body"},IF={key:0,class:"paper-table-empty"};function mp(e,t){let s=Xe("gist-file"),i=Xe("markdown");return a(),l("div",QL,[n("div",JL,[t[17]||(t[17]=n("div",{class:"paper-crumbs"},[n("a",{href:"/dashboard"},"Reviewer"),g(" \xA0/\xA0 "),n("span",{class:"here"},"Gist")],-1)),n("header",ZL,[n("div",xL,[n("h1",eF,[e.details?.description?(a(),l("span",{key:0,textContent:c(e.details?.description)},null,8,tF)):f("v-if",!0),e.details?.description?f("v-if",!0):(a(),l("span",nF,"Untitled gist"))]),e.options?.isAdmin||e.options?.isOwner?(a(),l("a",{key:0,class:"btn btn-sm","aria-label":"Edit",href:e.safeUrl("/gist-anonymize/"+e.gistId)},[...t[4]||(t[4]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),n("span",{class:"d-none d-md-inline"}," Edit",-1)])],8,sF)):f("v-if",!0)]),n("div",oF,[n("span",{class:A(["paper-pill",{good:e.details?.isPublic,warn:!e.details?.isPublic}])},c(e.details?.isPublic?"Public":"Secret"),3),e.details?.ownerLogin?(a(),l("span",iF,[t[5]||(t[5]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-user"})],-1)),t[6]||(t[6]=g(" @",-1)),n("span",{textContent:c(e.details?.ownerLogin)},null,8,rF)])):f("v-if",!0),e.details?.updatedDate?(a(),l("span",aF,[t[7]||(t[7]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),t[8]||(t[8]=g()),n("span",{textContent:c(e.fmt?.date(e.details?.updatedDate))},null,8,lF)])):f("v-if",!0),e.details?.anonymizeDate?(a(),l("span",dF,[t[9]||(t[9]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1)),t[10]||(t[10]=g(" Anonymized ",-1)),n("span",{textContent:c(e.fmt?.date(e.details?.anonymizeDate))},null,8,uF)])):f("v-if",!0)])]),e.details?.files&&e.details?.files?.length||e.details?.comments&&e.details?.comments?.length?(a(),l("nav",cF,[e.details?.files?(a(),l("button",{key:0,class:A(["paper-tab",{active:e.tabState?.active=="files"}]),type:"button",role:"tab",id:"gist-files-tab","aria-selected":e.tabState?.active==="files","aria-controls":"gist-files-panel",tabindex:e.tabState?.active==="files"?0:-1,onKeydown:t[0]||(t[0]=o=>e.previewTabKeydown(o)),onClick:t[1]||(t[1]=o=>e.tabState.active="files")},[t[11]||(t[11]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-type-gist"})],-1)),n("span",{textContent:c(e.fmt.plural(e.details?.files?.length,{0:"No files",one:"1 file",other:"{} files"}))},null,8,fF)],42,pF)):f("v-if",!0),e.details?.comments?(a(),l("button",{key:1,class:A(["paper-tab",{active:e.tabState?.active=="comments"}]),type:"button",role:"tab",id:"gist-comments-tab","aria-selected":e.tabState?.active==="comments","aria-controls":"gist-comments-panel",tabindex:e.tabState?.active==="comments"?0:-1,onKeydown:t[2]||(t[2]=o=>e.previewTabKeydown(o)),onClick:t[3]||(t[3]=o=>e.tabState.active="comments")},[t[12]||(t[12]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-comment"})],-1)),n("span",{textContent:c(e.fmt.plural(e.details?.comments?.length,{0:"No comments",one:"1 comment",other:"{} comments"}))},null,8,mF)],42,hF)):f("v-if",!0)])):f("v-if",!0),n("div",gF,[e.details?.files&&e.tabState?.active=="files"?(a(),l("div",vF,[n("ul",yF,[(a(!0),l(q,null,J(e.details?.files,(o,r)=>(a(),l("li",bF,[n("div",wF,[n("strong",{textContent:c(o?.filename)},null,8,kF),o?.language?(a(),l("span",CF,c(o?.language),1)):f("v-if",!0)]),Oe(s,{file:o},null,8,["file"])]))),256)),e.details?.files?.length?f("v-if",!0):(a(),l("li",EF,[...t[13]||(t[13]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-file"})],-1),n("span",null,"No files in this gist.",-1)])]))])])):f("v-if",!0),e.details?.comments&&e.tabState?.active=="comments"?(a(),l("div",SF,[n("ul",NF,[(a(!0),l(q,null,J(e.details?.comments,(o,r)=>(a(),l("li",RF,[n("div",AF,[o?.author?(a(),l("span",PF,[t[14]||(t[14]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-user"})],-1)),t[15]||(t[15]=g(" @",-1)),n("span",{textContent:c(o?.author)},null,8,DF)])):f("v-if",!0),o?.updatedDate?(a(),l("span",{key:1,class:"pr-comment-date",textContent:c(e.fmt?.date(o?.updatedDate))},null,8,TF)):f("v-if",!0)]),o?.body?(a(),l("div",OF,[Oe(i,{content:o?.body},null,8,["content"])])):f("v-if",!0)]))),256)),e.details?.comments?.length?f("v-if",!0):(a(),l("li",IF,[...t[16]||(t[16]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-comment"})],-1),n("span",null,"No comments on this gist.",-1)])]))])])):f("v-if",!0)])])])}var MF={key:0,class:"nav-support",href:"https://ko-fi.com/tdurieux",target:"_blank",rel:"noopener",title:"Donate on Ko-fi to help cover hosting costs","aria-label":"Donate on Ko-fi to help cover hosting costs"},VF={key:1,class:"nav-heart-m",href:"https://ko-fi.com/tdurieux",target:"_blank",rel:"noopener","aria-label":"Support Anonymous GitHub",title:"Support Anonymous GitHub"},qF=["aria-label","title"],_F={class:"ui-icon","aria-hidden":"true"},$F=["href"],LF={key:3,class:"nav-signin-m",href:"/signin",target:"_self","aria-label":"Sign in with GitHub"},FF={class:"collapse navbar-collapse",id:"navbarSupportedContent"},UF={class:"navbar-nav mr-auto smooth-scroll"},BF={key:0,class:"nav-item nav-home-item"},zF={key:1,class:"nav-item"},HF={key:2,class:"nav-item"},jF={key:3,class:"nav-item"},GF={class:"nav-item"},WF={key:4,class:"nav-item"},KF={class:"navbar-nav"},YF={key:0,class:"nav-item d-lg-none"},XF={key:1,class:"nav-item"},QF={key:2,class:"nav-item"},JF={key:3,class:"nav-item nav-signin-item"},ZF={key:4,class:"nav-item"},xF={key:5,class:"nav-item dropdown user-chip-wrap"},eU={class:"nav-link user-chip dropdown-toggle",href:"#",id:"navbarDropdownMenuLink",role:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},tU=["src"],nU={class:"user-chip-name"},sU={class:"dropdown-menu dropdown-menu-right user-menu","aria-labelledby":"navbarDropdownMenuLink"},oU={class:"dropdown-header"},iU={key:0,class:"dropdown-item um-extra",href:"https://ko-fi.com/tdurieux",target:"_blank",rel:"noopener"},rU=["innerHTML"],aU=["disabled"],lU={key:0,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},dU={class:"email-prompt-actions"},uU=["disabled"],cU=["disabled"],pU=["disabled"];function gp(e,t){return a(),l(q,null,[n("nav",{class:A(["navbar navbar-expand-lg",{"navbar-dark":e.isDarkMode}])},[t[28]||(t[28]=n("a",{class:"navbar-brand",href:"/"},[g("Anonymous "),n("em",null,"GitHub")],-1)),e.headerShowSupport?(a(),l("a",MF,[...t[9]||(t[9]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-heart"})],-1),n("span",{class:"nav-support-label"},"Support",-1)])])):f("v-if",!0),/^\/(r|w|pr|gist)\//.test(e.path||"")?f("v-if",!0):(a(),l("a",VF,[...t[10]||(t[10]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-heart"})],-1)])])),/^\/(r|w|pr|gist)\//.test(e.path||"")?f("v-if",!0):(a(),l("button",{key:2,type:"button",class:"nav-theme-m","aria-label":e.isDarkMode?"Switch to light mode":"Switch to dark mode",title:e.isDarkMode?"Switch to light mode":"Switch to dark mode",onClick:t[0]||(t[0]=s=>e.darkMode(!e.isDarkMode))},[(a(),l("svg",_F,[n("use",{href:e.isDarkMode?"#ui-icon-sun":"#ui-icon-moon"},null,8,$F)]))],8,qF)),!e.user&&!/^\/(r|w|pr|gist)\//.test(e.path||"")?(a(),l("a",LF,[...t[11]||(t[11]=[n("i",{class:"fab fa-github","aria-hidden":"true"},null,-1),g("Sign in",-1)])])):f("v-if",!0),t[29]||(t[29]=n("button",{class:"navbar-toggler",type:"button","data-toggle":"collapse","data-target":"#navbarSupportedContent","aria-controls":"navbarSupportedContent","aria-expanded":"false","aria-label":"Toggle navigation"},[n("span",{class:"navbar-toggler-icon"})],-1)),n("div",FF,[n("ul",UF,[e.user?f("v-if",!0):(a(),l("li",BF,[n("a",{class:A(["nav-link",{active:e.path=="/"}]),href:"/"},[...t[12]||(t[12]=[n("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-home"})],-1),g(" Home ",-1)])],2)])),e.user?(a(),l("li",zF,[n("a",{class:A(["nav-link",{active:e.path=="/dashboard"}]),href:"/dashboard"},[...t[13]||(t[13]=[n("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-grid"})],-1),g(" My work ",-1)])],2)])):f("v-if",!0),e.user?(a(),l("li",HF,[n("a",{class:A(["nav-link",{active:e.path=="/anonymize"||e.path=="/pull-request-anonymize"}]),href:"/anonymize"},[...t[14]||(t[14]=[n("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1),g(" Anonymize ",-1)])],2)])):f("v-if",!0),e.user?(a(),l("li",jF,[n("a",{class:A(["nav-link",{active:e.path=="/conferences"||e.path?.startsWith("/conference/")}]),href:"/conferences"},[...t[15]||(t[15]=[n("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[n("use",{href:"#project-icon-conference"})],-1),g(" Conferences ",-1)])],2)])):f("v-if",!0),n("li",GF,[n("a",{class:A(["nav-link",{active:e.path=="/faq"}]),href:"/faq"},[...t[16]||(t[16]=[n("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-help"})],-1),g("FAQ",-1)])],2)]),e.user&&e.user?.isAdmin?(a(),l("li",WF,[n("a",{class:A(["nav-link",{active:e.path?.indexOf("/admin")===0}]),href:"/admin/"},[...t[17]||(t[17]=[n("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-user-shield"})],-1),g(" Admin ",-1)])],2)])):f("v-if",!0)]),n("ul",KF,[e.user||!e.isReviewerRoute?(a(),l("li",YF,[...t[18]||(t[18]=[n("a",{class:"nav-link nav-icon",target:"_blank",href:"https://github.com/tdurieux/anonymous_github/",title:"Anonymous GitHub source code","aria-label":"Anonymous GitHub source code on GitHub",rel:"noopener","data-offset":"30"},[n("i",{class:"fab fa-github","aria-hidden":"true"})],-1)])])):f("v-if",!0),f(` "Report a bug" is about this service. Reviewers who land on an anonymized repository often think it is about the paper, so the - label names the service and the tooltip says who to contact. `),n("li",{class:P(["nav-item nav-extra-item d-none d-lg-block",{"in-user-menu":!!e.user?.username}])},[...t[19]||(t[19]=[n("a",{class:"nav-link",target:"_blank",rel:"noopener",href:"https://github.com/tdurieux/anonymous_github/issues/new?template=issue_report.yml",title:"Report a problem with the Anonymous GitHub service. Questions about an anonymized repository or paper go to its authors.","data-offset":"30"},[n("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-bug"})]),g("Report a bug ")],-1)])],2),n("li",{class:P(["nav-item nav-support-item nav-extra-item d-none d-lg-block",{"in-user-menu":!!e.user?.username}])},[...t[20]||(t[20]=[n("a",{class:"nav-link nav-support-inline",href:"https://ko-fi.com/tdurieux",target:"_blank",rel:"noopener",title:"Donate on Ko-fi to help cover hosting costs"},[n("svg",{class:"ui-icon nav-heart","aria-hidden":"true"},[n("use",{href:"#ui-icon-heart"})]),g("Support ")],-1)])],2),e.isDarkMode?f("v-if",!0):(a(),l("li",MF,[n("button",{type:"button",class:"nav-link nav-icon",title:"Switch to dark mode","aria-label":"Switch to dark mode",onClick:t[1]||(t[1]=s=>{e.darkMode(!0)})},[...t[21]||(t[21]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-moon"})],-1)])])])),e.isDarkMode?(a(),l("li",VF,[n("button",{type:"button",class:"nav-link nav-icon",title:"Switch to light mode","aria-label":"Switch to light mode",onClick:t[2]||(t[2]=s=>{e.darkMode(!1)})},[...t[22]||(t[22]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-sun"})],-1)])])])):f("v-if",!0),!e.user&&!e.isReviewerRoute?(a(),l("li",qF,[...t[23]||(t[23]=[n("a",{class:"nav-link btn-signin",target:"_self",href:"/signin","data-offset":"30"},[n("i",{class:"fab fa-github mr-1"}),g(" Sign in ")],-1)])])):f("v-if",!0),e.user?.username&&e.headerCanUpgrade&&!e.headerBillingPending?(a(),l("li",_F,[n("a",{class:"nav-link nav-upgrade",href:"/profile?upgrade=1",onClick:t[3]||(t[3]=ae(s=>e.openHeaderUpgrade(),["prevent"]))},"Upgrade")])):f("v-if",!0),e.user?(a(),l("li",$F,[n("a",LF,[e.user?.photo?(a(),l("img",{key:0,width:"22",height:"22",class:"rounded-circle",src:e.safeUrl(e.user?.photo)},null,8,FF)):f("v-if",!0),n("span",UF,c(e.user?.username),1)]),n("div",BF,[n("h6",zF,"Signed in as @"+c(e.user?.username),1),t[25]||(t[25]=Ee('SettingsDefaults, quotas, accountGitHub connectionsRepository access and OAuthClaim an anonymizationAttach an existing mirror to your accountReport a bugAbout this service, not a paperSource code',6)),e.headerShowSupport?(a(),l("a",HF,[...t[24]||(t[24]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-heart"})],-1),n("span",null,"Support the project",-1)])])):f("v-if",!0),t[26]||(t[26]=n("div",{class:"dropdown-divider"},null,-1)),t[27]||(t[27]=n("a",{class:"dropdown-item",href:"/api/user/logout",target:"_self"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-logout"})]),n("span",null,"Sign out")],-1))])])):f("v-if",!0)])])],2),e.generalMessage?(a(),l("div",{key:0,class:"navbar shadow generalMessage",innerHTML:e.sanitize(e.generalMessage)},null,8,jF)):f("v-if",!0),e.emailPromptOpen?(a(),l("dialog",{key:1,id:"email-prompt",class:"email-prompt","aria-labelledby":"email-prompt-title","aria-describedby":"email-prompt-reason",onCancel:t[8]||(t[8]=ae(s=>e.respondToEmailPrompt("later"),["prevent"]))},[n("form",{onSubmit:t[7]||(t[7]=ae(s=>e.respondToEmailPrompt("save"),["prevent"]))},[t[30]||(t[30]=n("h2",{id:"email-prompt-title"},"Stay informed about access problems",-1)),t[31]||(t[31]=n("p",{id:"email-prompt-reason"},"Get email alerts when your GitHub token or repository access fails.",-1)),t[32]||(t[32]=n("label",{for:"email-prompt-address"},"Email address",-1)),D(n("input",{id:"email-prompt-address",class:"form-control",type:"email",autocomplete:"email",maxlength:"254",required:"","onUpdate:modelValue":t[4]||(t[4]=s=>e.emailPromptAddress=s),disabled:e.emailPromptBusy},null,8,GF),[[pt,e.emailPromptAddress]]),e.emailPromptError?(a(),l("p",WF,c(e.emailPromptError),1)):f("v-if",!0),n("div",KF,[n("button",{type:"button",class:"btn btn-outline-ink",disabled:e.emailPromptBusy,onClick:t[5]||(t[5]=s=>e.respondToEmailPrompt("later"))},"Remind me later",8,YF),n("button",{type:"button",class:"btn btn-outline-ink",disabled:e.emailPromptBusy,onClick:t[6]||(t[6]=s=>e.respondToEmailPrompt("never"))},"Never",8,XF),n("button",{type:"submit",class:"btn btn-ink",disabled:e.emailPromptBusy},c(e.emailPromptBusy?"Saving\u2026":"Save"),9,JF)])],32)],32)):f("v-if",!0)],64)}var QF={class:"paper-landing"},ZF={class:"paper-hero"},xF={class:"paper-hero-copy"},eU={class:"paper-cta-row"},tU={key:0,href:"/signin",target:"_self",class:"btn-hero"},nU={key:1,href:"/anonymize",class:"btn-hero"},sU={class:"paper-stats-meta"},oU={key:0,class:"paper-stats-meta-left"},iU={key:0,class:"paper-stats-grid"},rU={class:"paper-stat-label"},aU={key:0,class:"paper-stat-delta"},lU={class:"demo paper-wrap","aria-label":"Try redaction"},dU={class:"demo-terms"},uU={class:"demo-panes"},cU={class:"pane"},pU={class:"demo-input-wrap"},fU={class:"pane-body demo-backdrop","aria-hidden":"true"},hU={key:0,class:"demo-match"},mU={class:"pane pane-after"},gU={class:"pane-header"},vU={class:"pane-url"},yU={class:"meta-redact"},bU={class:"pane-body demo-output","aria-live":"polite"},wU=["title"],kU={class:"paper-features paper-wrap","aria-label":"Product features"},CU={class:"paper-features-list",role:"tablist","aria-label":"Features","aria-orientation":"vertical"},EU=["onClick","onKeydown","id","aria-controls","aria-selected","tabindex"],SU={class:"paper-eyebrow"},NU={class:"pf-num"},RU={class:"pf-name"},PU={class:"paper-feature-title"},AU={key:0,class:"serif-hy"},DU={class:"paper-feature-more"},TU={class:"paper-feature-title paper-feature-title-m","aria-hidden":"true"},OU={key:0,class:"serif-hy"},IU=["href","target"],MU={class:"paper-features-stage"},VU=["id","aria-labelledby"],qU={class:"paper-frame"},_U={class:"paper-frame-bar","aria-hidden":"true"},$U={class:"url"},LU=["aria-label"],FU={key:0,class:"fm-form"},UU={key:1,class:"fm-viewer"},BU={key:2,class:"fm-dash"};function mp(e,t){let s=Xe("partial-view");return a(),l("div",QF,[f(" Hero: copy on the left, the product on the right "),n("section",ZF,[n("div",xF,[t[5]||(t[5]=n("div",{class:"paper-eyebrow"},"For double-anonymous peer review",-1)),t[6]||(t[6]=n("h1",{class:"hero-title"},[g(" Share the code,"),n("br"),n("span",{class:"accent"},"not the author.")],-1)),t[7]||(t[7]=n("p",{class:"hero-subtitle"}," Anonymous GitHub makes a read-only mirror of your repository, pull request, or gist. It redacts the terms you choose in text files, so reviewers can browse your artifact through an anonymous link. ",-1)),n("div",eU,[e.user?f("v-if",!0):(a(),l("a",tU,[...t[3]||(t[3]=[n("i",{class:"fab fa-github mr-2","aria-hidden":"true"},null,-1),g("Sign in with GitHub ",-1)])])),e.user?(a(),l("a",nU," Anonymize a repository \u2192 ")):f("v-if",!0),t[4]||(t[4]=n("a",{class:"paper-link-arrow",target:"_self",href:"https://anonymous.4open.science/r/840c8c57-3c32-451e-bf12-0e20be300389/"},"See an anonymized repository \u2192",-1))]),t[8]||(t[8]=n("ul",{class:"paper-reassure"},[n("li",null,"Free, open source"),n("li",null,"Read-only access"),n("li",null,"Set an expiry date")],-1)),t[9]||(t[9]=n("p",{class:"paper-proof-mobile"},"Used by authors at ICSE \xB7 FSE \xB7 OOPSLA",-1))]),t[10]||(t[10]=n("div",{class:"paper-hero-shot"},[n("div",{class:"paper-frame"},[n("div",{class:"paper-frame-bar","aria-hidden":"true"},[n("span",{class:"dots"},[n("i"),n("i"),n("i")]),n("span",{class:"url"},"anonymous.4open.science/r/paper-7f2a")]),n("div",{class:"hero-mock",role:"img","aria-label":"A reviewer browsing an anonymized repository: the author, affiliation, and email in the README are replaced by anonymous terms"},[n("div",{class:"hero-mock-tree","aria-hidden":"true"},[n("div",{class:"hero-mock-tree-title"},"Files"),n("div",{class:"hero-mock-row is-folder"},[n("svg",{viewBox:"0 0 16 16"},[n("path",{d:"M1.5 3.5h4l1.5 1.5h7.5v8h-13z"})]),g("data")]),n("div",{class:"hero-mock-row is-folder"},[n("svg",{viewBox:"0 0 16 16"},[n("path",{d:"M1.5 3.5h4l1.5 1.5h7.5v8h-13z"})]),g("experiments")]),n("div",{class:"hero-mock-row is-folder"},[n("svg",{viewBox:"0 0 16 16"},[n("path",{d:"M1.5 3.5h4l1.5 1.5h7.5v8h-13z"})]),g("src")]),n("div",{class:"hero-mock-row"},[n("svg",{viewBox:"0 0 16 16"},[n("path",{d:"M3.5 1.5h6l3 3v10h-9z"})]),g("LICENSE")]),n("div",{class:"hero-mock-row is-active"},[n("svg",{viewBox:"0 0 16 16"},[n("path",{d:"M3.5 1.5h6l3 3v10h-9z"})]),g("README.md")]),n("div",{class:"hero-mock-row"},[n("svg",{viewBox:"0 0 16 16"},[n("path",{d:"M3.5 1.5h6l3 3v10h-9z"})]),g("requirements.txt")])]),n("div",{class:"hero-mock-doc","aria-hidden":"true"},[n("div",{class:"hero-mock-doc-bar"},[n("strong",null,"README.md"),n("span",{class:"hero-mock-count"},"3 redacted")]),n("div",{class:"hero-mock-doc-body"},[n("div",{class:"hero-mock-h1"},"DeepLearnUtils"),n("p",null,[g("Developed by "),n("span",{class:"redact",role:"img","aria-label":"Redacted term 1"},[n("i",null,"1")]),g(" at "),n("span",{class:"redact",role:"img","aria-label":"Redacted term 2"},[n("i",null,"2")]),g(".")]),n("p",{class:"hm-opt"},"Utilities for reproducing the paper\u2019s experiments."),n("div",{class:"hero-mock-h2 hm-opt"},"Quick start"),n("pre",{class:"hm-opt"},`pip install -r requirements.txt -python experiments/run.py`),n("p",null,[g("Contact: "),n("span",{class:"redact",role:"img","aria-label":"Redacted term 3"},[n("i",null,"3")])])])])])])],-1))]),f(" Live stats "),n("section",{class:P(["paper-stats paper-wrap",{"is-empty":e.statsEmpty()}]),id:"metrics","aria-label":"Usage over the last 60 days"},[n("div",sU,[e.statsEmpty()?f("v-if",!0):(a(),l("div",oU,[...t[11]||(t[11]=[n("span",{class:"paper-stats-dot","aria-hidden":"true"},null,-1),g(),n("span",null,[g("Live \xB7 last 60 days"),n("span",{class:"paper-stats-daily"}," \xB7 updated daily")],-1)])])),t[12]||(t[12]=n("div",{class:"paper-stats-meta-right"},"Used by authors at ICSE \xB7 FSE \xB7 OOPSLA",-1))]),e.statsEmpty()?f("v-if",!0):(a(),l("div",iU,[(a(!0),l(q,null,x(e.cards,(i,o)=>(a(),l("div",{class:"paper-stat-card",key:i?.key},[n("div",{class:P(["paper-stat-value",{"is-pending":!e.stat}])},c(e.stat?e.fmt?.bigNum(i?.total):"\u2014"),3),n("div",rU,c(i?.label),1),e.history[i?.key].bars?.length>1&&e.history[i?.key].deltaToday>0?(a(),l("div",aU," +"+c(e.fmt?.number(e.history[i?.key].deltaToday))+" today ",1)):f("v-if",!0)]))),128))]))],2),f(" Before / after "),t[22]||(t[22]=n("section",{class:"paper-section-head paper-wrap"},[n("div",null,[n("div",{class:"paper-eyebrow"},"Try it"),n("h2",null,[g("The same repository, "),n("em",null,"minus you.")])]),n("p",null," Names, affiliations, emails, and any term you list are replaced across the README, source files, notebooks, and PDF links. Reviewers browse the real thing, not a zip. ")],-1)),n("div",lU,[n("div",dU,[t[13]||(t[13]=n("label",{for:"demo-terms"},[g("Terms to redact "),n("span",null,[g("comma-separated"),n("span",{class:"dt-try"},", try adding your own")])],-1)),D(n("textarea",{id:"demo-terms",class:"demo-terms-input",rows:"1","onUpdate:modelValue":t[0]||(t[0]=i=>e.demoTerms=i),spellcheck:"false",autocomplete:"off",onKeydown:t[1]||(t[1]=kt(ae(()=>{},["prevent"]),["enter"]))},null,544),[[pt,e.demoTerms]])]),n("div",uU,[n("div",cU,[t[15]||(t[15]=n("div",{class:"pane-header"},[n("span",{class:"pane-label"},[g("Your repository "),n("span",{class:"pane-edit-hint"},"\xB7 editable")]),n("span",{class:"pane-url"},"github.com/jane-smith/DeepLearnUtils")],-1)),n("div",pU,[n("div",fU,[(a(!0),l(q,null,x(e.demoParts(),(i,o)=>(a(),l(q,{key:o},[i.redacted?(a(),l("mark",hU,c(i.original),1)):(a(),l(q,{key:1},[g(c(i.text),1)],64))],64))),128)),t[14]||(t[14]=g("\u200B",-1))]),D(n("textarea",{class:"pane-body demo-input","onUpdate:modelValue":t[2]||(t[2]=i=>e.demoText=i),spellcheck:"false","aria-label":"Sample README to anonymize"},null,512),[[pt,e.demoText]])])]),n("div",mU,[n("div",gU,[t[16]||(t[16]=n("span",{class:"pane-label"},"What reviewers see",-1)),n("span",vU,[n("span",yU,c(e.demoCount())+" redacted",1)])]),n("div",bU,[(a(!0),l(q,null,x(e.demoParts(),(i,o)=>(a(),l(q,{key:o},[i.redacted?(a(),l("span",{key:0,class:"redact-chip",title:"Replaces \u201C"+i.original+"\u201D"},c(i.text),9,wU)):(a(),l(q,{key:1},[g(c(i.text),1)],64))],64))),128))])])])]),f(" What you get: one screenshot, three tabs "),t[23]||(t[23]=n("section",{class:"paper-section-head paper-wrap",id:"about"},[n("div",null,[n("div",{class:"paper-eyebrow"},"What you get"),n("h2",null,"Anonymize, review, manage.")]),n("p",null," Terms are redacted in text files. Enabled images and PDFs are served unchanged, so review them for identifying content before sharing. Monitor your mirror, update it, or remove it when the review is over. ")],-1)),n("section",kU,[n("div",CU,[(a(!0),l(q,null,x(e.features,(i,o)=>(a(),l("div",{class:P(["paper-feature",{"is-on":e.feature===i?.key}]),key:i?.key},[n("button",{type:"button",class:"paper-feature-tab",role:"tab",onClick:r=>e.selectFeature(i.key),onKeydown:r=>e.featureKeydown(r,o),id:"feature-tab-"+i?.key,"aria-controls":"feature-panel-"+i?.key,"aria-selected":e.feature===i?.key,tabindex:e.feature===i?.key?0:-1},[n("span",SU,[n("span",NU,c(i?.num),1),t[17]||(t[17]=n("span",{class:"pf-sep"}," \xB7 ",-1)),n("span",RU,c(i?.eyebrow),1)]),n("span",PU,[g(c(i?.title.split("-")[0]),1),i?.title.includes("-")?(a(),l("span",AU,"-")):f("v-if",!0),g(c(i?.title.split("-").slice(1).join("-"))+" "+c(i?.accent),1)])],40,EU),n("div",DU,[n("span",TU,[g(c(i?.title.split("-")[0]),1),i?.title.includes("-")?(a(),l("span",OU,"-")):f("v-if",!0),g(c(i?.title.split("-").slice(1).join("-"))+" "+c(i?.accent),1)]),n("p",null,c(i?.text),1),n("a",{class:"paper-link-arrow",href:e.safeUrl(e.featureHref(i)),target:e.featureTarget(i)},c(i?.cta)+" \u2192",9,IU)])],2))),128))]),n("div",MU,[(a(!0),l(q,null,x(e.features,(i,o)=>D((a(),l("div",{class:"paper-feature-panel",role:"tabpanel",key:i?.key,id:"feature-panel-"+i?.key,"aria-labelledby":"feature-tab-"+i?.key},[n("div",qU,[n("div",_U,[t[18]||(t[18]=n("span",{class:"dots"},[n("i"),n("i"),n("i")],-1)),n("span",$U,c(i?.url),1)]),n("div",{class:P(["feat-mock","is-"+i?.key]),role:"img","aria-label":i?.alt},[i?.key==="anonymize"?(a(),l("div",FU,[...t[19]||(t[19]=[Ee('
GitHub repository
github.com/jane-smith/DeepLearnUtils
Terms to redact
Jane SmithMIT CSAILjane.smith@mit.edu+ Add term
Reviewers can see
ImagesPDFsLinksNotebooks
Expires
Mar 31, 2027
Anonymize repository
',6)])])):i?.key==="review"?(a(),l("div",UU,[...t[20]||(t[20]=[Ee(`
data
src
train.py
README.md
LICENSE
train.py48 lines \xB7 Python
1# Training loop for DeepLearnUtils
+           label names the service and the tooltip says who to contact. `),n("li",{class:A(["nav-item nav-extra-item d-none d-lg-block",{"in-user-menu":!!e.user?.username}])},[...t[19]||(t[19]=[n("a",{class:"nav-link",target:"_blank",rel:"noopener",href:"https://github.com/tdurieux/anonymous_github/issues/new?template=issue_report.yml",title:"Report a problem with the Anonymous GitHub service. Questions about an anonymized repository or paper go to its authors.","data-offset":"30"},[n("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-bug"})]),g("Report a bug ")],-1)])],2),n("li",{class:A(["nav-item nav-support-item nav-extra-item d-none d-lg-block",{"in-user-menu":!!e.user?.username}])},[...t[20]||(t[20]=[n("a",{class:"nav-link nav-support-inline",href:"https://ko-fi.com/tdurieux",target:"_blank",rel:"noopener",title:"Donate on Ko-fi to help cover hosting costs"},[n("svg",{class:"ui-icon nav-heart","aria-hidden":"true"},[n("use",{href:"#ui-icon-heart"})]),g("Support ")],-1)])],2),e.isDarkMode?f("v-if",!0):(a(),l("li",XF,[n("button",{type:"button",class:"nav-link nav-icon",title:"Switch to dark mode","aria-label":"Switch to dark mode",onClick:t[1]||(t[1]=s=>{e.darkMode(!0)})},[...t[21]||(t[21]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-moon"})],-1)])])])),e.isDarkMode?(a(),l("li",QF,[n("button",{type:"button",class:"nav-link nav-icon",title:"Switch to light mode","aria-label":"Switch to light mode",onClick:t[2]||(t[2]=s=>{e.darkMode(!1)})},[...t[22]||(t[22]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-sun"})],-1)])])])):f("v-if",!0),!e.user&&!e.isReviewerRoute?(a(),l("li",JF,[...t[23]||(t[23]=[n("a",{class:"nav-link btn-signin",target:"_self",href:"/signin","data-offset":"30"},[n("i",{class:"fab fa-github mr-1"}),g(" Sign in ")],-1)])])):f("v-if",!0),e.user?.username&&e.headerCanUpgrade&&!e.headerBillingPending?(a(),l("li",ZF,[n("a",{class:"nav-link nav-upgrade",href:"/profile?upgrade=1",onClick:t[3]||(t[3]=ae(s=>e.openHeaderUpgrade(),["prevent"]))},"Upgrade")])):f("v-if",!0),e.user?(a(),l("li",xF,[n("a",eU,[e.user?.photo?(a(),l("img",{key:0,width:"22",height:"22",class:"rounded-circle",src:e.safeUrl(e.user?.photo)},null,8,tU)):f("v-if",!0),n("span",nU,c(e.user?.username),1)]),n("div",sU,[n("h6",oU,"Signed in as @"+c(e.user?.username),1),t[25]||(t[25]=Ce('SettingsDefaults, quotas, accountGitHub connectionsRepository access and OAuthClaim an anonymizationAttach an existing mirror to your accountReport a bugAbout this service, not a paperSource code',6)),e.headerShowSupport?(a(),l("a",iU,[...t[24]||(t[24]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-heart"})],-1),n("span",null,"Support the project",-1)])])):f("v-if",!0),t[26]||(t[26]=n("div",{class:"dropdown-divider"},null,-1)),t[27]||(t[27]=n("a",{class:"dropdown-item",href:"/api/user/logout",target:"_self"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-logout"})]),n("span",null,"Sign out")],-1))])])):f("v-if",!0)])])],2),e.generalMessage?(a(),l("div",{key:0,class:"navbar shadow generalMessage",innerHTML:e.sanitize(e.generalMessage)},null,8,rU)):f("v-if",!0),e.emailPromptOpen?(a(),l("dialog",{key:1,id:"email-prompt",class:"email-prompt","aria-labelledby":"email-prompt-title","aria-describedby":"email-prompt-reason",onCancel:t[8]||(t[8]=ae(s=>e.respondToEmailPrompt("later"),["prevent"]))},[n("form",{onSubmit:t[7]||(t[7]=ae(s=>e.respondToEmailPrompt("save"),["prevent"]))},[t[30]||(t[30]=n("h2",{id:"email-prompt-title"},"Stay informed about access problems",-1)),t[31]||(t[31]=n("p",{id:"email-prompt-reason"},"Get email alerts when your GitHub token or repository access fails.",-1)),t[32]||(t[32]=n("label",{for:"email-prompt-address"},"Email address",-1)),D(n("input",{id:"email-prompt-address",class:"form-control",type:"email",autocomplete:"email",maxlength:"254",required:"","onUpdate:modelValue":t[4]||(t[4]=s=>e.emailPromptAddress=s),disabled:e.emailPromptBusy},null,8,aU),[[pt,e.emailPromptAddress]]),e.emailPromptError?(a(),l("p",lU,c(e.emailPromptError),1)):f("v-if",!0),n("div",dU,[n("button",{type:"button",class:"btn btn-outline-ink",disabled:e.emailPromptBusy,onClick:t[5]||(t[5]=s=>e.respondToEmailPrompt("later"))},"Remind me later",8,uU),n("button",{type:"button",class:"btn btn-outline-ink",disabled:e.emailPromptBusy,onClick:t[6]||(t[6]=s=>e.respondToEmailPrompt("never"))},"Never",8,cU),n("button",{type:"submit",class:"btn btn-ink",disabled:e.emailPromptBusy},c(e.emailPromptBusy?"Saving\u2026":"Save"),9,pU)])],32)],32)):f("v-if",!0)],64)}var fU={class:"paper-landing"},hU={class:"paper-hero"},mU={class:"paper-hero-copy"},gU={class:"paper-cta-row"},vU={key:0,href:"/signin",target:"_self",class:"btn-hero"},yU={key:1,href:"/anonymize",class:"btn-hero"},bU={class:"paper-stats-meta"},wU={key:0,class:"paper-stats-meta-left"},kU={key:0,class:"paper-stats-grid"},CU={class:"paper-stat-label"},EU={key:0,class:"paper-stat-delta"},SU={class:"demo paper-wrap","aria-label":"Try redaction"},NU={class:"demo-terms"},RU={class:"demo-panes"},AU={class:"pane"},PU={class:"demo-input-wrap"},DU={class:"pane-body demo-backdrop","aria-hidden":"true"},TU={key:0,class:"demo-match"},OU={class:"pane pane-after"},IU={class:"pane-header"},MU={class:"pane-url"},VU={class:"meta-redact"},qU={class:"pane-body demo-output","aria-live":"polite"},_U=["title"],$U={class:"paper-features paper-wrap","aria-label":"Product features"},LU={class:"paper-features-list",role:"tablist","aria-label":"Features","aria-orientation":"vertical"},FU=["onClick","onKeydown","id","aria-controls","aria-selected","tabindex"],UU={class:"paper-eyebrow"},BU={class:"pf-num"},zU={class:"pf-name"},HU={class:"paper-feature-title"},jU={key:0,class:"serif-hy"},GU={class:"paper-feature-more"},WU={class:"paper-feature-title paper-feature-title-m","aria-hidden":"true"},KU={key:0,class:"serif-hy"},YU=["href","target"],XU={class:"paper-features-stage"},QU=["id","aria-labelledby"],JU={class:"paper-frame"},ZU={class:"paper-frame-bar","aria-hidden":"true"},xU={class:"url"},e7=["aria-label"],t7={key:0,class:"fm-form"},n7={key:1,class:"fm-viewer"},s7={key:2,class:"fm-dash"};function vp(e,t){let s=Xe("partial-view");return a(),l("div",fU,[f(" Hero: copy on the left, the product on the right "),n("section",hU,[n("div",mU,[t[5]||(t[5]=n("div",{class:"paper-eyebrow"},"For double-anonymous peer review",-1)),t[6]||(t[6]=n("h1",{class:"hero-title"},[g(" Share the code,"),n("br"),n("span",{class:"accent"},"not the author.")],-1)),t[7]||(t[7]=n("p",{class:"hero-subtitle"}," Anonymous GitHub makes a read-only mirror of your repository, pull request, or gist. It redacts the terms you choose in text files, so reviewers can browse your artifact through an anonymous link. ",-1)),n("div",gU,[e.user?f("v-if",!0):(a(),l("a",vU,[...t[3]||(t[3]=[n("i",{class:"fab fa-github mr-2","aria-hidden":"true"},null,-1),g("Sign in with GitHub ",-1)])])),e.user?(a(),l("a",yU," Anonymize a repository \u2192 ")):f("v-if",!0),t[4]||(t[4]=n("a",{class:"paper-link-arrow",target:"_self",href:"https://anonymous.4open.science/r/840c8c57-3c32-451e-bf12-0e20be300389/"},"See an anonymized repository \u2192",-1))]),t[8]||(t[8]=n("ul",{class:"paper-reassure"},[n("li",null,"Free, open source"),n("li",null,"Read-only access"),n("li",null,"Set an expiry date")],-1)),t[9]||(t[9]=n("p",{class:"paper-proof-mobile"},"Used by authors at ICSE \xB7 FSE \xB7 OOPSLA",-1))]),t[10]||(t[10]=n("div",{class:"paper-hero-shot"},[n("div",{class:"paper-frame"},[n("div",{class:"paper-frame-bar","aria-hidden":"true"},[n("span",{class:"dots"},[n("i"),n("i"),n("i")]),n("span",{class:"url"},"anonymous.4open.science/r/paper-7f2a")]),n("div",{class:"hero-mock",role:"img","aria-label":"A reviewer browsing an anonymized repository: the author, affiliation, and email in the README are replaced by anonymous terms"},[n("div",{class:"hero-mock-tree","aria-hidden":"true"},[n("div",{class:"hero-mock-tree-title"},"Files"),n("div",{class:"hero-mock-row is-folder"},[n("svg",{viewBox:"0 0 16 16"},[n("path",{d:"M1.5 3.5h4l1.5 1.5h7.5v8h-13z"})]),g("data")]),n("div",{class:"hero-mock-row is-folder"},[n("svg",{viewBox:"0 0 16 16"},[n("path",{d:"M1.5 3.5h4l1.5 1.5h7.5v8h-13z"})]),g("experiments")]),n("div",{class:"hero-mock-row is-folder"},[n("svg",{viewBox:"0 0 16 16"},[n("path",{d:"M1.5 3.5h4l1.5 1.5h7.5v8h-13z"})]),g("src")]),n("div",{class:"hero-mock-row"},[n("svg",{viewBox:"0 0 16 16"},[n("path",{d:"M3.5 1.5h6l3 3v10h-9z"})]),g("LICENSE")]),n("div",{class:"hero-mock-row is-active"},[n("svg",{viewBox:"0 0 16 16"},[n("path",{d:"M3.5 1.5h6l3 3v10h-9z"})]),g("README.md")]),n("div",{class:"hero-mock-row"},[n("svg",{viewBox:"0 0 16 16"},[n("path",{d:"M3.5 1.5h6l3 3v10h-9z"})]),g("requirements.txt")])]),n("div",{class:"hero-mock-doc","aria-hidden":"true"},[n("div",{class:"hero-mock-doc-bar"},[n("strong",null,"README.md"),n("span",{class:"hero-mock-count"},"3 redacted")]),n("div",{class:"hero-mock-doc-body"},[n("div",{class:"hero-mock-h1"},"DeepLearnUtils"),n("p",null,[g("Developed by "),n("span",{class:"redact",role:"img","aria-label":"Redacted term 1"},[n("i",null,"1")]),g(" at "),n("span",{class:"redact",role:"img","aria-label":"Redacted term 2"},[n("i",null,"2")]),g(".")]),n("p",{class:"hm-opt"},"Utilities for reproducing the paper\u2019s experiments."),n("div",{class:"hero-mock-h2 hm-opt"},"Quick start"),n("pre",{class:"hm-opt"},`pip install -r requirements.txt
+python experiments/run.py`),n("p",null,[g("Contact: "),n("span",{class:"redact",role:"img","aria-label":"Redacted term 3"},[n("i",null,"3")])])])])])])],-1))]),f(" Live stats "),n("section",{class:A(["paper-stats paper-wrap",{"is-empty":e.statsEmpty()}]),id:"metrics","aria-label":"Usage over the last 60 days"},[n("div",bU,[e.statsEmpty()?f("v-if",!0):(a(),l("div",wU,[...t[11]||(t[11]=[n("span",{class:"paper-stats-dot","aria-hidden":"true"},null,-1),g(),n("span",null,[g("Live \xB7 last 60 days"),n("span",{class:"paper-stats-daily"}," \xB7 updated daily")],-1)])])),t[12]||(t[12]=n("div",{class:"paper-stats-meta-right"},"Used by authors at ICSE \xB7 FSE \xB7 OOPSLA",-1))]),e.statsEmpty()?f("v-if",!0):(a(),l("div",kU,[(a(!0),l(q,null,J(e.cards,(i,o)=>(a(),l("div",{class:"paper-stat-card",key:i?.key},[n("div",{class:A(["paper-stat-value",{"is-pending":!e.stat}])},c(e.stat?e.fmt?.bigNum(i?.total):"\u2014"),3),n("div",CU,c(i?.label),1),e.history[i?.key].bars?.length>1&&e.history[i?.key].deltaToday>0?(a(),l("div",EU," +"+c(e.fmt?.number(e.history[i?.key].deltaToday))+" today ",1)):f("v-if",!0)]))),128))]))],2),f(" Before / after "),t[22]||(t[22]=n("section",{class:"paper-section-head paper-wrap"},[n("div",null,[n("div",{class:"paper-eyebrow"},"Try it"),n("h2",null,[g("The same repository, "),n("em",null,"minus you.")])]),n("p",null," Names, affiliations, emails, and any term you list are replaced across the README, source files, notebooks, and PDF links. Reviewers browse the real thing, not a zip. ")],-1)),n("div",SU,[n("div",NU,[t[13]||(t[13]=n("label",{for:"demo-terms"},[g("Terms to redact "),n("span",null,[g("comma-separated"),n("span",{class:"dt-try"},", try adding your own")])],-1)),D(n("textarea",{id:"demo-terms",class:"demo-terms-input",rows:"1","onUpdate:modelValue":t[0]||(t[0]=i=>e.demoTerms=i),spellcheck:"false",autocomplete:"off",onKeydown:t[1]||(t[1]=kt(ae(()=>{},["prevent"]),["enter"]))},null,544),[[pt,e.demoTerms]])]),n("div",RU,[n("div",AU,[t[15]||(t[15]=n("div",{class:"pane-header"},[n("span",{class:"pane-label"},[g("Your repository "),n("span",{class:"pane-edit-hint"},"\xB7 editable")]),n("span",{class:"pane-url"},"github.com/jane-smith/DeepLearnUtils")],-1)),n("div",PU,[n("div",DU,[(a(!0),l(q,null,J(e.demoParts(),(i,o)=>(a(),l(q,{key:o},[i.redacted?(a(),l("mark",TU,c(i.original),1)):(a(),l(q,{key:1},[g(c(i.text),1)],64))],64))),128)),t[14]||(t[14]=g("\u200B",-1))]),D(n("textarea",{class:"pane-body demo-input","onUpdate:modelValue":t[2]||(t[2]=i=>e.demoText=i),spellcheck:"false","aria-label":"Sample README to anonymize"},null,512),[[pt,e.demoText]])])]),n("div",OU,[n("div",IU,[t[16]||(t[16]=n("span",{class:"pane-label"},"What reviewers see",-1)),n("span",MU,[n("span",VU,c(e.demoCount())+" redacted",1)])]),n("div",qU,[(a(!0),l(q,null,J(e.demoParts(),(i,o)=>(a(),l(q,{key:o},[i.redacted?(a(),l("span",{key:0,class:"redact-chip",title:"Replaces \u201C"+i.original+"\u201D"},c(i.text),9,_U)):(a(),l(q,{key:1},[g(c(i.text),1)],64))],64))),128))])])])]),f(" What you get: one screenshot, three tabs "),t[23]||(t[23]=n("section",{class:"paper-section-head paper-wrap",id:"about"},[n("div",null,[n("div",{class:"paper-eyebrow"},"What you get"),n("h2",null,"Anonymize, review, manage.")]),n("p",null," Terms are redacted in text files. Enabled images and PDFs are served unchanged, so review them for identifying content before sharing. Monitor your mirror, update it, or remove it when the review is over. ")],-1)),n("section",$U,[n("div",LU,[(a(!0),l(q,null,J(e.features,(i,o)=>(a(),l("div",{class:A(["paper-feature",{"is-on":e.feature===i?.key}]),key:i?.key},[n("button",{type:"button",class:"paper-feature-tab",role:"tab",onClick:r=>e.selectFeature(i.key),onKeydown:r=>e.featureKeydown(r,o),id:"feature-tab-"+i?.key,"aria-controls":"feature-panel-"+i?.key,"aria-selected":e.feature===i?.key,tabindex:e.feature===i?.key?0:-1},[n("span",UU,[n("span",BU,c(i?.num),1),t[17]||(t[17]=n("span",{class:"pf-sep"}," \xB7 ",-1)),n("span",zU,c(i?.eyebrow),1)]),n("span",HU,[g(c(i?.title.split("-")[0]),1),i?.title.includes("-")?(a(),l("span",jU,"-")):f("v-if",!0),g(c(i?.title.split("-").slice(1).join("-"))+" "+c(i?.accent),1)])],40,FU),n("div",GU,[n("span",WU,[g(c(i?.title.split("-")[0]),1),i?.title.includes("-")?(a(),l("span",KU,"-")):f("v-if",!0),g(c(i?.title.split("-").slice(1).join("-"))+" "+c(i?.accent),1)]),n("p",null,c(i?.text),1),n("a",{class:"paper-link-arrow",href:e.safeUrl(e.featureHref(i)),target:e.featureTarget(i)},c(i?.cta)+" \u2192",9,YU)])],2))),128))]),n("div",XU,[(a(!0),l(q,null,J(e.features,(i,o)=>D((a(),l("div",{class:"paper-feature-panel",role:"tabpanel",key:i?.key,id:"feature-panel-"+i?.key,"aria-labelledby":"feature-tab-"+i?.key},[n("div",JU,[n("div",ZU,[t[18]||(t[18]=n("span",{class:"dots"},[n("i"),n("i"),n("i")],-1)),n("span",xU,c(i?.url),1)]),n("div",{class:A(["feat-mock","is-"+i?.key]),role:"img","aria-label":i?.alt},[i?.key==="anonymize"?(a(),l("div",t7,[...t[19]||(t[19]=[Ce('
GitHub repository
github.com/jane-smith/DeepLearnUtils
Terms to redact
Jane SmithMIT CSAILjane.smith@mit.edu+ Add term
Reviewers can see
ImagesPDFsLinksNotebooks
Expires
Mar 31, 2027
Anonymize repository
',6)])])):i?.key==="review"?(a(),l("div",n7,[...t[20]||(t[20]=[Ce(`
data
src
train.py
README.md
LICENSE
train.py48 lines \xB7 Python
1# Training loop for DeepLearnUtils
 2# Author: XXXX-1, XXXX-2
 3import torch
 4from utils import load_config
@@ -55,18 +55,18 @@ python experiments/run.py`),n("p",null,[g("Contact: "),n("span",{class:"redact",
 7    model = build_model(config)
 8    for epoch in range(config.epochs):
 9        loss = step(model)
-10        log("epoch %d: %.3f", epoch, loss)
`,2)])])):(a(),l("div",BU,[...t[21]||(t[21]=[Ee('
ProjectStatusViewsExpires
DeepLearnUtilspaper-7f2a \xB7 ICSE 2027Ready41Mar 31, 2027
vision-bench#212pull request \xB7 FSE 2027Ready12Never
graph-repairgr-91abUpdating5Jan 5, 2027
JarSiftOOPSLA 2025Expired72Sep 28, 2026
',5)])]))],10,LU)])],8,VU)),[[Q,e.feature===i?.key]])),128))])]),f(" FAQ teaser "),t[24]||(t[24]=Ee('
Before you sign in

The questions that come up most.

Read the full FAQ \u2192
What access does GitHub sign-in require?

The GitHub App has read-only access to gists and the repositories you choose. Legacy OAuth uses broader permissions. Anonymous GitHub never writes to your repositories.

Which file formats are supported?

Source code with syntax highlighting, Markdown, Jupyter notebooks, PDFs, images, and GitHub Pages sites. Text files are anonymized; enabled images and PDFs are served unchanged.

What happens when an anonymized repository expires?

You choose: the mirror is removed, or visitors are redirected to the original GitHub repository once the review is over.

Ready for review?

Create an anonymous mirror in a couple of minutes. Reviewers just open the link.

',2)),Oe(s,{name:"partials/footer.htm",state:e.viewState},null,8,["state"])])}var zU={class:"paper-empty"},HU={class:"paper-empty-inner"},jU={key:0,class:"paper-eyebrow"},GU={key:1,class:"paper-eyebrow"},WU={key:2,class:"paper-empty-title"},KU=["textContent"];function gp(e,t){return a(),l("div",zU,[n("div",HU,[e.error?f("v-if",!0):(a(),l("div",jU,"Working")),e.error?(a(),l("div",GU,"Error")):f("v-if",!0),e.error?f("v-if",!0):(a(),l("h1",WU,[...t[0]||(t[0]=[g(" Loading",-1),n("span",{class:"dot-anim"},"\u2026",-1)])])),e.error?(a(),l("h1",{key:3,class:"paper-empty-title",textContent:c(e.fmt.translate(e.error))},null,8,KU)):f("v-if",!0)])])}var YU={class:"container paper-page paper-settings"},XU={class:"paper-crumbs"},JU={class:"here"},QU={class:"paper-page-title"},ZU={class:"paper-settings-body"},xU={class:"paper-settings-toc"},e7={href:"#conf-billing"},t7={class:"form needs-validation paper-settings-main",name:"conference",novalidate:""},n7={id:"conf-basics",class:"paper-settings-section"},s7={class:"form-group"},o7={class:"invalid-feedback"},i7={class:"invalid-feedback"},r7={class:"form-group"},a7={class:"invalid-feedback"},l7={class:"form-group"},d7={class:"invalid-feedback"},u7={class:"invalid-feedback"},c7={id:"conf-window",class:"paper-settings-section"},p7={class:"form-grid-2"},f7={class:"form-group"},h7={class:"invalid-feedback"},m7={class:"invalid-feedback"},g7={class:"form-group"},v7={class:"invalid-feedback"},y7={class:"invalid-feedback"},b7={id:"conf-rendering",class:"paper-settings-section"},w7={class:"form-check"},k7={class:"form-check-input",type:"checkbox",id:"link",name:"link"},C7={class:"form-check"},E7={class:"form-check-input",type:"checkbox",id:"image",name:"image"},S7={class:"form-check"},N7={class:"form-check-input",type:"checkbox",id:"pdf",name:"pdf"},R7={class:"form-check"},P7={class:"form-check-input",type:"checkbox",id:"notebook",name:"notebook"},A7={id:"conf-features",class:"paper-settings-section"},D7={class:"form-check"},T7={class:"form-check-input",type:"checkbox",id:"update",name:"update"},O7={class:"form-check"},I7={class:"form-check-input",type:"checkbox",id:"page",name:"page"},M7={id:"conf-plan",class:"paper-settings-section"},V7={key:0,class:"paper-section-copy"},q7={class:"conference-tiers",role:"radiogroup","aria-label":"Review package size"},_7=["value","checked","onChange"],$7={class:"conference-tier-head"},L7={key:0,class:"conference-tier-pill"},F7={class:"conference-tier-who"},U7={key:0,class:"conference-tier-price"},B7={class:"conference-tier-size"},z7={key:1,class:"conference-tier-per"},H7={key:2,class:"paper-plan-grid"},j7=["value"],G7=["textContent"],W7={class:"paper-plan-price"},K7=["innerHTML"],Y7={key:3,class:"settings-notice",role:"status"},X7={key:0,id:"conf-billing",class:"paper-settings-section"},J7={class:"form-group"},Q7={class:"form-group"},Z7={class:"form-group"},x7={class:"form-group"},e9={class:"form-grid-3"},t9={class:"form-group"},n9={class:"form-group"},s9={class:"form-group"},o9={class:"form-group"},i9={class:"paper-settings-footer"},r9=["textContent"],a9=["textContent"],l9=["disabled"];function vp(e,t){let s=Ae("paper-scrollspy"),i=Ae("field"),o=Ae("form");return a(),l("div",YU,[n("div",XU,[t[1]||(t[1]=n("a",{href:"/dashboard"},"My work",-1)),t[2]||(t[2]=g(" \xA0/\xA0 ",-1)),t[3]||(t[3]=n("a",{href:"/conferences"},"Conferences",-1)),t[4]||(t[4]=g(" \xA0/\xA0 ",-1)),n("span",JU,c(e.editionMode?"Edit":"New"),1)]),n("h1",QU,[g(c(e.editionMode?"Edit":"Create a")+" ",1),t[5]||(t[5]=n("em",null,"conference",-1))]),t[44]||(t[44]=n("p",{class:"paper-page-lede"}," Give chairs access to every anonymization submitted to a venue. One payment hosts every submission, so authors don't pay during the review window. ",-1)),n("div",ZU,[D((a(),l("aside",xU,[t[7]||(t[7]=n("div",{class:"paper-settings-toc-head"},"On this page",-1)),n("nav",null,[t[6]||(t[6]=Ee('BasicsReview windowRendering defaultsFeaturesPlan',5)),D(n("a",e7,"Billing",512),[[Q,e.plan?.pricePerRepo>0]])])])),[[s]]),D((a(),l("form",t7,[n("section",n7,[t[12]||(t[12]=n("div",{class:"paper-section-eyebrow"},"Basics",-1)),n("div",s7,[t[8]||(t[8]=n("label",{class:"paper-field-label",for:"name"},"Conference name",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.conference?.name?.invalid&&(e.conference?.name?.touched||e.conference?.submitted)}]),name:"name",id:"name",required:"",placeholder:"e.g. International Conference on Software Engineering"},null,2),[[i,{state:e.viewState,set:r=>{e.options.name=r},value:e.options?.name,form:"conference",options:{}}]]),D(n("div",o7," The name of the conference is invalid. ",512),[[Q,e.conference?.name?.errors?.invalid]]),D(n("div",i7," The name of the conference is required. ",512),[[Q,e.conference?.name?.errors?.required]])]),n("div",r7,[t[9]||(t[9]=n("label",{class:"paper-field-label",for:"url"},"Website",-1)),D(n("input",{type:"url",class:P(["form-control",{"is-invalid":e.conference?.url?.invalid&&(e.conference?.url?.touched||e.conference?.submitted)}]),name:"url",id:"url",placeholder:"https://example.org"},null,2),[[i,{state:e.viewState,set:r=>{e.options.url=r},value:e.options?.url,form:"conference",options:{}}]]),D(n("div",a7," The url of the conference is invalid. ",512),[[Q,e.conference?.url?.errors?.url]])]),n("div",l7,[t[10]||(t[10]=n("label",{class:"paper-field-label",for:"conferenceID"},"Conference ID",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.conference?.conferenceID?.invalid&&(e.conference?.conferenceID?.touched||e.conference?.submitted)}]),name:"conferenceID",id:"conferenceID",required:"",pattern:"[a-zA-Z0-9\\-_]{3,10}",placeholder:"ICSE26"},null,2),[[i,{state:e.viewState,set:r=>{e.options.conferenceID=r},value:e.options?.conferenceID,form:"conference",options:{}}]]),t[11]||(t[11]=n("small",{class:"form-text text-muted"},[g("3\u201310 characters, letters, numbers, "),n("code",null,"-"),g(" and "),n("code",null,"_"),g(". Authors reference this when they anonymize.")],-1)),D(n("div",{class:"invalid-feedback"}," The conference ID '"+c(e.options?.conferenceID)+"' is already used. ",513),[[Q,e.conference?.conferenceID?.errors?.used]]),D(n("div",d7," The conference ID is required. ",512),[[Q,e.conference?.conferenceID?.errors?.required]]),D(n("div",u7," The format of the conference ID is incorrect ([a-zA-Z0-9-_]{3,10}). ",512),[[Q,e.conference?.conferenceID?.errors?.pattern]])])]),n("section",c7,[t[17]||(t[17]=n("div",{class:"paper-section-eyebrow"},"Review window",-1)),n("div",p7,[n("div",f7,[t[13]||(t[13]=n("label",{class:"paper-field-label",for:"startDate"},"Start date",-1)),D(n("input",{type:"date",class:P(["form-control",{"is-invalid":e.conference?.startDate?.invalid&&(e.conference?.startDate?.touched||e.conference?.submitted)}]),name:"startDate",id:"startDate",required:""},null,2),[[i,{state:e.viewState,set:r=>{e.options.startDate=r},value:e.options?.startDate,form:"conference",options:{}}]]),t[14]||(t[14]=n("small",{class:"form-text text-muted"},"Beginning of the review process.",-1)),D(n("div",h7," Start date is required. ",512),[[Q,e.conference?.startDate?.errors?.required]]),D(n("div",m7," Start date must be before end date. ",512),[[Q,e.conference?.startDate?.errors?.invalid]])]),n("div",g7,[t[15]||(t[15]=n("label",{class:"paper-field-label",for:"endDate"},"End date",-1)),D(n("input",{type:"date",class:P(["form-control",{"is-invalid":e.conference?.endDate?.invalid&&(e.conference?.endDate?.touched||e.conference?.submitted)}]),name:"endDate",id:"endDate",required:""},null,2),[[i,{state:e.viewState,set:r=>{e.options.endDate=r},value:e.options?.endDate,form:"conference",options:{}}]]),t[16]||(t[16]=n("small",{class:"form-text text-muted"},"All repositories expire on this date.",-1)),D(n("div",v7," End date is required. ",512),[[Q,e.conference?.endDate?.errors?.required]]),D(n("div",y7," End date is invalid. ",512),[[Q,e.conference?.endDate?.errors?.invalid]])])])]),n("section",b7,[t[26]||(t[26]=n("div",{class:"paper-section-eyebrow"},"Rendering defaults",-1)),n("div",w7,[D(n("input",k7,null,512),[[i,{state:e.viewState,set:r=>{e.options.options.link=r},value:e.options?.options?.link,form:"conference",options:{}}]]),t[18]||(t[18]=n("label",{class:"form-check-label",for:"link"},"Keep links",-1)),t[19]||(t[19]=n("small",{class:"form-text text-muted"},"Keep or remove all links from text files.",-1))]),n("div",C7,[D(n("input",E7,null,512),[[i,{state:e.viewState,set:r=>{e.options.options.image=r},value:e.options?.options?.image,form:"conference",options:{}}]]),t[20]||(t[20]=n("label",{class:"form-check-label",for:"image"},"Display images",-1)),t[21]||(t[21]=n("small",{class:"form-text text-muted"},"Images are not anonymized.",-1))]),n("div",S7,[D(n("input",N7,null,512),[[i,{state:e.viewState,set:r=>{e.options.options.pdf=r},value:e.options?.options?.pdf,form:"conference",options:{}}]]),t[22]||(t[22]=n("label",{class:"form-check-label",for:"pdf"},"Display PDFs",-1)),t[23]||(t[23]=n("small",{class:"form-text text-muted"},"PDFs are not anonymized.",-1))]),n("div",R7,[D(n("input",P7,null,512),[[i,{state:e.viewState,set:r=>{e.options.options.notebook=r},value:e.options?.options?.notebook,form:"conference",options:{}}]]),t[24]||(t[24]=n("label",{class:"form-check-label",for:"notebook"},"Display notebooks",-1)),t[25]||(t[25]=n("small",{class:"form-text text-muted"},"Render Jupyter notebooks instead of raw JSON.",-1))])]),n("section",A7,[t[31]||(t[31]=n("div",{class:"paper-section-eyebrow"},"Features",-1)),n("div",D7,[D(n("input",T7,null,512),[[i,{state:e.viewState,set:r=>{e.options.options.update=r},value:e.options?.options?.update,form:"conference",options:{}}]]),t[27]||(t[27]=n("label",{class:"form-check-label",for:"update"},"Auto-update from GitHub",-1)),t[28]||(t[28]=n("small",{class:"form-text text-muted"},"Pull the latest commit automatically (hourly maximum).",-1))]),n("div",O7,[D(n("input",I7,null,512),[[i,{state:e.viewState,set:r=>{e.options.options.page=r},value:e.options?.options?.page,form:"conference",options:{}}]]),t[29]||(t[29]=n("label",{class:"form-check-label",for:"page"},"GitHub Pages",-1)),t[30]||(t[30]=n("small",{class:"form-text text-muted"},"Enable anonymized GitHub pages.",-1))])]),n("section",M7,[t[35]||(t[35]=n("div",{class:"paper-section-eyebrow"},"Plan",-1)),e.editionMode?(a(),l("p",V7,c(e.conferencePlanName(e.options?.plan?.planID))+". The plan and review dates can't change after creation.",1)):e.conferenceTiers().length?(a(),l(q,{key:1},[t[33]||(t[33]=n("p",{class:"paper-section-copy"},"Pick the package that fits the number of submissions you expect. One payment hosts every submission, so authors don't pay.",-1)),n("div",q7,[(a(!0),l(q,null,x(e.conferenceTiers(),r=>(a(),l("label",{class:P(["conference-tier",{"is-selected":e.options?.plan?.planID===r.id}]),key:r.id},[n("input",{type:"radio",name:"planPicker",value:r.id,checked:e.options?.plan?.planID===r.id,onChange:d=>e.options.plan.planID=r.id},null,40,_7),n("span",$7,[n("strong",null,c(r.name),1),r.id==="conference"&&e.conferenceTiers().length>1?(a(),l("span",L7,"Most common")):f("v-if",!0)]),n("span",F7,c(e.conferenceAudience(r.id)),1),r.amount!=null?(a(),l("span",U7,[n("strong",null,c(e.conferenceAmount(r)),1),t[32]||(t[32]=g(" once",-1))])):f("v-if",!0),n("span",B7,"Up to "+c(r.repositories)+" papers \xB7 "+c(e.conferenceBytes(r.storage)),1),r.amount!=null&&r.repositories?(a(),l("span",z7,"About "+c(e.conferenceAmount(r,r.amount/r.repositories))+" per paper",1)):f("v-if",!0)],2))),128))]),t[34]||(t[34]=Ee('

Every package includes

  • A review window of up to 180 days
  • Automatic updates for every submission
  • Links stay online until the review window ends
  • A dashboard of every submission for chairs

Nothing renews \xB7 Tax shown at checkout \xB7 Expecting more submissions? Email tdurieux@anonymous.4open.science

Create the conference, then pay from its page. Authors can submit once the payment is confirmed.

',2))],64)):e.plans.length?(a(),l("div",H7,[(a(!0),l(q,null,x(e.plans,r=>(a(),l("label",{class:P(["paper-plan-card",{selected:e.options?.plan?.planID==r?.id}]),key:r.id},[D(n("input",{type:"radio",name:"planPicker",value:r?.id},null,8,j7),[[i,{state:e.viewState,set:d=>{e.options.plan.planID=d},value:e.options?.plan?.planID,form:"conference",options:{}}]]),n("div",{class:"paper-plan-head",textContent:c(r?.name)},null,8,G7),n("div",W7,c(r.pricePerRepo>0?e.fmt?.number(r.pricePerRepo,2)+" \u20AC per repository":"Free"),1),n("div",{class:"paper-plan-desc",innerHTML:e.sanitize(r?.description)},null,8,K7)],2))),128))])):e.plansLoaded?(a(),l("p",Y7,"New conferences are unavailable right now. Please try again later.")):f("v-if",!0)]),e.plan?.pricePerRepo>0?(a(),l("section",X7,[t[43]||(t[43]=n("div",{class:"paper-section-eyebrow"},"Billing",-1)),n("div",J7,[t[36]||(t[36]=n("label",{class:"paper-field-label",for:"billing_name"},"Name",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.conference?.billing_name?.invalid&&(e.conference?.billing_name?.touched||e.conference?.submitted)}]),name:"billing_name",id:"billing_name",required:"",placeholder:"First & last name"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.name=r},value:e.options?.billing?.name,form:"conference",options:{}}]])]),n("div",Q7,[t[37]||(t[37]=n("label",{class:"paper-field-label",for:"email"},"Email",-1)),D(n("input",{type:"email",class:P(["form-control",{"is-invalid":e.conference?.email?.invalid&&(e.conference?.email?.touched||e.conference?.submitted)}]),name:"email",id:"email",required:"",placeholder:"you@example.org"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.email=r},value:e.options?.billing?.email,form:"conference",options:{}}]])]),n("div",Z7,[t[38]||(t[38]=n("label",{class:"paper-field-label",for:"inputAddress"},"Address",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.conference?.inputAddress?.invalid&&(e.conference?.inputAddress?.touched||e.conference?.submitted)}]),name:"inputAddress",id:"inputAddress",required:"",placeholder:"1234 Main St"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.address=r},value:e.options?.billing?.address,form:"conference",options:{}}]])]),n("div",x7,[D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.conference?.inputAddress2?.invalid&&(e.conference?.inputAddress2?.touched||e.conference?.submitted)}]),name:"inputAddress2",id:"inputAddress2",placeholder:"Apartment, studio, or floor"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.address2=r},value:e.options?.billing?.address2,form:"conference",options:{}}]])]),n("div",e9,[n("div",t9,[t[39]||(t[39]=n("label",{class:"paper-field-label",for:"city"},"City",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.conference?.city?.invalid&&(e.conference?.city?.touched||e.conference?.submitted)}]),name:"city",id:"city",required:"",placeholder:"City"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.city=r},value:e.options?.billing?.city,form:"conference",options:{}}]])]),n("div",n9,[t[40]||(t[40]=n("label",{class:"paper-field-label",for:"country"},"Country",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.conference?.country?.invalid&&(e.conference?.country?.touched||e.conference?.submitted)}]),name:"country",id:"country",required:"",placeholder:"Country"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.country=r},value:e.options?.billing?.country,form:"conference",options:{}}]])]),n("div",s9,[t[41]||(t[41]=n("label",{class:"paper-field-label",for:"zip"},"Zip",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.conference?.zip?.invalid&&(e.conference?.zip?.touched||e.conference?.submitted)}]),name:"zip",id:"zip",required:"",placeholder:"Zip"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.zip=r},value:e.options?.billing?.zip,form:"conference",options:{}}]])])]),n("div",o9,[t[42]||(t[42]=n("label",{class:"paper-field-label",for:"vat"},"VAT number",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.conference?.vat?.invalid&&(e.conference?.vat?.touched||e.conference?.submitted)}]),name:"vat",id:"vat",placeholder:"VAT Number"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.vat=r},value:e.options?.billing?.vat,form:"conference",options:{}}]])])])):f("v-if",!0),n("div",i9,[e.error?(a(),l("div",{key:0,class:"alert alert-danger",role:"alert",textContent:c(e.error)},null,8,r9)):f("v-if",!0),e.message?(a(),l("div",{key:1,class:"alert alert-success",role:"alert",textContent:c(e.message)},null,8,a9)):f("v-if",!0),n("button",{id:"send",disabled:e.saving,type:"submit",class:"btn btn-ink",onClick:t[0]||(t[0]=ae(r=>e.submitForm(r,()=>{e.submit(r)}),["prevent"]))},c(e.saving?e.editionMode?"Updating\u2026":"Creating\u2026":e.editionMode?"Update conference":"Create conference"),9,l9)])])),[[o,e.viewState]])])])}var d9={key:0,class:"dir-card","aria-label":"Repository files"},u9=["onClick"],c9={class:"dir-name"},p9=["href"],f9={class:"dir-name"},h9={class:"dir-meta"},m9={class:"file-card-head"},g9={class:"file-card-path"},v9={class:"breadcrumb paths","aria-label":"Path"},y9={class:"breadcrumb-item breadcrumb-root"},b9=["href","title","textContent"],w9=["aria-current"],k9=["aria-label"],C9={class:"mobile-sub ms"},E9=["title"],S9={class:"ms-item"},N9={key:1,class:"ms-item"},R9={key:2,class:"ms-item"},P9=["aria-label","title"],A9={class:"ui-icon","aria-hidden":"true"},D9=["href"],T9={key:0,class:"file-card-meta"},O9=["title"],I9={class:"meta-extra"},M9={key:1,class:"file-card-meta"},V9=["title"],q9={class:"file-card-actions"},_9={key:0,class:"csv-toggle seg-filter",role:"radiogroup","aria-label":"CSV view"},$9=["aria-checked"],L9=["aria-checked"],F9={key:1,class:"symbols"},U9=["aria-expanded"],B9={key:0,class:"symbols-menu",role:"menu"},z9={class:"symbols-head"},H9=["onClick"],j9={class:"symbols-name"},G9={class:"symbols-line"},W9=["title"],K9={key:3,class:"tb-view",role:"group","aria-label":"View tools"},Y9=["title"],X9=["aria-pressed"],J9=["title"],Q9={key:4,class:"tb-file",role:"group","aria-label":"File actions"},Z9=["target","title","href"],x9=["aria-label","title"],eB={class:"ui-icon","aria-hidden":"true"},tB=["href"],nB=["target","href","download"],sB=["aria-label"],oB={class:"ui-icon","aria-hidden":"true"},iB=["href"],rB={key:6,class:"tb-toc-m"},aB=["aria-expanded"],lB=["onClick"],dB={class:"tb-more"},uB=["aria-expanded"],cB={viewBox:"0 0 24 24",class:"ui-icon","aria-hidden":"true",style:{fill:"currentColor",stroke:"none"}},pB={key:0,class:"tb-menu-note"},fB={key:1,class:"tb-menu-note tb-menu-meta"},hB={key:2,class:"tb-menu-sep"},mB={key:4,class:"tb-menu-sep"},gB=["aria-checked"],vB={key:0,class:"tb-menu-check"},yB={class:"ui-icon","aria-hidden":"true"},bB=["href"],wB={key:9,class:"tb-menu-sep"},kB=["target","href"],CB=["target","href"],EB=["target","href","download"],SB=["target","href"],NB=["href"],RB=["target","href"],PB=["placeholder","aria-invalid"],AB=["aria-label"],DB={class:"csv-table"},TB=["aria-label"],OB={class:"csv-rownum"},IB=["aria-label"],MB={key:1,class:"file-card-body"},VB={key:2,class:"md-find-bar",role:"search"},qB=["value"],_B={class:"md-find-nav"},$B=["disabled"],LB=["disabled"],FB={class:"md-find-count","aria-live":"polite"},UB=["aria-pressed"],BB={key:3,class:"reading-layout"},zB=["innerHTML"],HB={key:0,class:"readme-toc","aria-label":"On this page"},jB={class:"toc-rail"},GB=["href","onClick"],WB={class:"file-card-head"},KB={class:"file-card-path"},YB={class:"breadcrumb paths","aria-label":"Path"},XB={class:"breadcrumb-item breadcrumb-root"},JB=["href","title","textContent"],QB=["aria-current"],ZB=["aria-label"],xB={class:"mobile-sub ms"},ez=["title"],tz={class:"ms-item"},nz={key:1,class:"ms-item"},sz={key:2,class:"ms-item"},oz=["aria-label","title"],iz={class:"ui-icon","aria-hidden":"true"},rz=["href"],az={class:"file-card-meta"},lz=["title"],dz={class:"file-card-actions"},uz={key:0,class:"file-card-state",title:"Files over the size limit can't be previewed or downloaded from this link"},cz={key:1,class:"tb-file",role:"group","aria-label":"File actions"},pz=["target","title","href"],fz=["target","href","download"],hz={class:"tb-more"},mz=["aria-expanded"],gz={viewBox:"0 0 24 24",class:"ui-icon","aria-hidden":"true",style:{fill:"currentColor",stroke:"none"}},vz={key:0,class:"tb-menu-note"},yz={key:1,class:"tb-menu-sep"},bz=["target","href"],wz=["target","href","download"],kz=["target","href"],Cz={key:0,class:"media-stage"},Ez=["src","alt"],Sz={key:1,class:"media-stage"},Nz=["src"],Rz={key:2,class:"media-stage is-audio"},Pz=["src"],Az={key:4,class:"notebook-body"},Dz={key:5,class:"file-state"},Tz={class:"file-state-msg"},Oz={key:0,class:"file-state-actions"},Iz=["target","href","download"],Mz={key:6,class:"file-state",role:"alert"},Vz={class:"file-state-title"},qz={key:0,class:"file-state-msg"},_z={key:1,class:"file-state-msg"},$z={key:2,class:"file-state-actions"},Lz=["href"],Fz={key:7,class:"file-state"},Uz={key:4,class:"file-error container d-flex h-100"},Bz={class:"paper-ratelimit-card m-auto",style:{"max-width":"520px"}},zz={class:"paper-error-msg"},Hz={key:5,class:"file-error container d-flex h-100"},jz={class:"viewer-error paper-error-card file-error-card m-auto",role:"alert","aria-labelledby":"viewer-error-title"},Gz={id:"viewer-error-title",class:"paper-empty-title"},Wz={class:"paper-error-actions"},Kz={key:0,href:"/",class:"btn btn-sm"},Yz={key:1,href:"/faq",class:"btn btn-sm"},Xz={key:2,class:"btn btn-outline-ink",href:"/dashboard"},Jz={key:6,class:"viewer-loading","aria-busy":"true"},Qz={class:"viewer-loading-status",role:"status","aria-live":"polite"},Zz={class:"viewer-loading-name sr-only"},xz={key:0},eH={class:"viewer-loading-lines","aria-hidden":"true"},tH={key:7,class:"file-error container d-flex h-100"},nH={key:8,class:"file-error container d-flex h-100"};function yp(e,t){let s=Xe("html-doc"),i=Xe("pdfviewer"),o=Xe("notebook"),r=Ae("code-editor");return a(),l(q,null,[e.sidebarHidden&&e.type=="html"&&e.content!=null&&e.paths?.length===1&&/^readme/i.test(e.paths[0]||"")&&e.files?.length?(a(),l("section",d9,[t[46]||(t[46]=n("header",{class:"dir-card-head"},[n("span",{class:"dir-card-title"},"Files"),n("span",{class:"dir-card-sub"},"Snapshot of the repository at review time")],-1)),n("ul",{class:P(["dir-list",{"is-expanded":e.dirExpanded}])},[(a(!0),l(q,null,x(e.rootEntries(),d=>(a(),l("li",{key:d.name},[d.size==null?(a(),l("button",{key:0,type:"button",class:"dir-row",onClick:p=>e.revealFolder(d.name)},[t[43]||(t[43]=n("svg",{class:"dir-icon",viewBox:"0 0 16 16","aria-hidden":"true"},[n("path",{d:"M1.5 3.5h4l1.5 1.5h7.5v8h-13z"})],-1)),n("span",c9,c(d.name),1),t[44]||(t[44]=n("span",{class:"dir-meta"},"Folder",-1))],8,u9)):(a(),l("a",{key:1,class:P(["dir-row",{"is-current":d.name===e.paths[0]}]),href:e.safeUrl("/r/"+e.repoId+"/"+encodeURIComponent(d.name))},[t[45]||(t[45]=n("svg",{class:"dir-icon",viewBox:"0 0 16 16","aria-hidden":"true"},[n("path",{d:"M3.5 1.5h6l3 3v10h-9z"})],-1)),n("span",f9,c(d.name),1),n("span",h9,c(e.formatSize(d.size)),1)],10,p9))]))),128))],2),!e.dirExpanded&&e.files.length>8?(a(),l("button",{key:0,type:"button",class:"dir-more",onClick:t[0]||(t[0]=d=>e.dirExpanded=!0)},"Show all "+c(e.files.length)+" items",1)):f("v-if",!0)])):f("v-if",!0),(e.type=="text"||e.type=="code"||e.type=="html"||e.type=="html-doc"&&e.showSource)&&e.content!=null?(a(),l("section",{key:1,class:P(["file-card",{"is-code":e.type!="html","no-wrap":!e.wrapLines}])},[n("header",m9,[n("div",g9,[n("button",{type:"button",class:P(["btn btn-sm btn-icon-only btn-ghost card-files-btn",{"is-needed":e.sidebarHidden}]),title:"Show file tree",onClick:t[1]||(t[1]=d=>e.sidebarHidden?e.sidebarHidden=!1:e.sidebarCollapsed=!1)},[...t[47]||(t[47]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-sidebar"})],-1),n("span",{class:"card-files-label"},"Files",-1)])],2),n("ol",v9,[n("li",y9,[n("a",{href:e.safeUrl("/r/"+e.repoId+"/"),title:e.repoId,textContent:c(/^[0-9a-f]{8}-[0-9a-f]{4}-/i.test(e.repoId||"")?"repository":e.repoId)},null,8,b9)]),(a(!0),l(q,null,x(e.paths,(d,p)=>(a(),l("li",{class:"breadcrumb-item","aria-current":p===e.paths.length-1?"page":null},[(a(!0),l(q,null,x(e.redactParts(d),(u,y)=>(a(),l(q,{key:y},[u.n?(a(),l("span",{key:0,class:"redact-slot",role:"img","aria-label":"Redacted term "+u.n},[n("i",null,c(u.n),1)],8,k9)):(a(),l(q,{key:1},[g(c(u.t),1)],64))],64))),128))],8,w9))),256))]),n("span",C9,[e.redactionCount()?(a(),l("b",{key:0,class:"ms-item ms-redact",title:e.redactionCount()+" redacted terms"},[g(c(e.redactionCount()),1),t[48]||(t[48]=n("span",{class:"meta-redact-word"}," redacted",-1))],8,E9)):f("v-if",!0),n("span",S9,c(e.type=="html"?"Markdown":e.languageName||"Text"),1),e.fileSize(e.filePath)!=null?(a(),l("span",N9,c(e.formatSize(e.fileSize(e.filePath))),1)):f("v-if",!0),e.type!="html"&&typeof e.content=="string"?(a(),l("span",R9,c(e.fmt?.number(e.content.split(` -`).length))+" lines",1)):f("v-if",!0)]),D(n("button",{type:"button",class:"btn btn-sm btn-icon-only btn-ghost copy-path-btn","aria-label":e.pathCopied?"Path copied":"Copy file path",title:e.pathCopied?"Path copied":"Copy file path",onClick:t[2]||(t[2]=d=>e.copyPath())},[(a(),l("svg",A9,[n("use",{href:e.pathCopied?"#ui-icon-check":"#ui-icon-link"},null,8,D9)]))],8,P9),[[Q,e.filePath]])]),e.type!="html"&&typeof e.content=="string"?(a(),l("span",T9,[e.redactionCount()?(a(),l(q,{key:0},[n("span",{class:"meta-redact",title:e.redactionCount()+" redacted terms"},[g(c(e.redactionCount()),1),t[49]||(t[49]=n("span",{class:"meta-redact-word"}," redacted",-1))],8,O9),t[50]||(t[50]=n("span",{class:"sep"},"\xB7",-1))],64)):f("v-if",!0),g(c(e.languageName||"Text"),1),n("span",I9,[t[51]||(t[51]=n("span",{class:"sep"},"\xB7",-1)),g(c(e.content.length<1024?e.content.length+" B":(e.content.length/1024).toFixed(1)+" KB"),1)]),t[52]||(t[52]=n("span",{class:"sep"},"\xB7",-1)),g(c(e.fmt?.number(e.content.split(` -`).length))+" lines",1)])):f("v-if",!0),e.type=="html"?(a(),l("span",M9,[e.redactionCount()?(a(),l(q,{key:0},[n("span",{class:"meta-redact",title:e.redactionCount()+" redacted terms"},[g(c(e.redactionCount()),1),t[53]||(t[53]=n("span",{class:"meta-redact-word"}," redacted",-1))],8,V9),t[54]||(t[54]=n("span",{class:"sep"},"\xB7",-1))],64)):f("v-if",!0),t[56]||(t[56]=g("Markdown",-1)),e.fileSize(e.filePath)!=null?(a(),l(q,{key:1},[t[55]||(t[55]=n("span",{class:"sep"},"\xB7",-1)),g(c(e.formatSize(e.fileSize(e.filePath))),1)],64)):f("v-if",!0)])):f("v-if",!0),e.preview&&e.previewPreserved()?(a(),l("button",{key:2,type:"button",class:"rp-preserved-tag",onClick:t[3]||(t[3]=d=>e.openPreserveFiles())},"Left unredacted")):f("v-if",!0),n("div",q9,[e.isCsv()?(a(),l("div",_9,[n("button",{type:"button",role:"radio",class:P(["seg-chip",{active:e.csvView==="table"}]),"aria-checked":e.csvView==="table",onClick:t[4]||(t[4]=d=>e.csvView="table")},"Table",10,$9),n("button",{type:"button",role:"radio",class:P(["seg-chip",{active:e.csvView==="raw"}]),"aria-checked":e.csvView==="raw",onClick:t[5]||(t[5]=d=>e.csvView="raw"),title:"Show the file as text with line numbers"},"Text",10,L9)])):f("v-if",!0),e.type!="html"&&e.symbols().length>1?(a(),l("div",F9,[n("button",{type:"button",class:P(["btn btn-sm btn-ghost btn-symbols",{"is-on":e.symbolsOpen}]),"aria-expanded":e.symbolsOpen?"true":"false","aria-haspopup":"true",title:"Symbols in this file",onClick:t[6]||(t[6]=d=>e.symbolsOpen=!e.symbolsOpen)},[...t[57]||(t[57]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-list"})],-1),n("span",{class:"btn-find-label"},"Symbols",-1)])],10,U9),e.symbolsOpen?(a(),l("div",B9,[n("div",z9,c(e.symbols().length)+" "+c(e.symbols().length===1?"symbol":"symbols"),1),(a(!0),l(q,null,x(e.symbols(),d=>(a(),l("button",{type:"button",class:"symbols-item",role:"menuitem",key:d.line+d.name,onClick:p=>e.goToSymbol(d.line)},[n("span",{class:P(["symbols-kind","is-"+d.kind])},c(d.kind==="class"?"C":d.kind==="function"?"\u0192":"v"),3),n("span",j9,c(d.name),1),n("span",G9,c(d.line),1)],8,H9))),128))])):f("v-if",!0)])):f("v-if",!0),e.type=="html"?(a(),l("button",{key:2,type:"button",class:P(["btn btn-sm btn-ghost btn-icon-only btn-find btn-md-find",{"is-on":e.mdFindOpen}]),"aria-label":"Find on this page",title:"Find on this page ("+(e.isMac?"\u2318":"Ctrl+")+"F)",onClick:t[7]||(t[7]=d=>e.toggleMdFind())},[...t[58]||(t[58]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-search"})],-1)])],10,W9)):f("v-if",!0),e.type!="html"&&!(e.isCsv()&&e.csvView==="table")?(a(),l("div",K9,[e.type!="html"?(a(),l("button",{key:0,type:"button",class:"btn btn-sm btn-ghost btn-icon-only btn-goto","aria-label":"Go to line",title:"Go to line ("+(e.isMac?"\u2318":"Ctrl+")+"G)",onClick:t[8]||(t[8]=d=>e.gotoLine())},[...t[59]||(t[59]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-goto"})],-1)])],8,Y9)):f("v-if",!0),e.type!="html"?(a(),l("button",{key:1,type:"button",class:P(["btn btn-sm btn-icon-only btn-ghost btn-toggle",{"is-on":e.wrapLines}]),"aria-pressed":e.wrapLines?"true":"false","aria-label":"Wrap lines",title:"Wrap lines (Alt+Z)",onClick:t[9]||(t[9]=d=>e.toggleWrap())},[...t[60]||(t[60]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-wrap"})],-1)])],10,X9)):f("v-if",!0),e.type!="html"?(a(),l("button",{key:2,type:"button",class:"btn btn-sm btn-ghost btn-icon-only btn-find","aria-label":"Find in file",title:"Find in file ("+(e.isMac?"\u2318":"Ctrl+")+"F)",onClick:t[10]||(t[10]=d=>e.findInFile())},[...t[61]||(t[61]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-search"})],-1)])],8,J9)):f("v-if",!0)])):f("v-if",!0),!e.preview||e.url?(a(),l("div",Q9,[n("a",{target:e.preview?"_blank":"_self",class:"tb-seg-btn",title:e.type=="html"?"Open the Markdown source":"Open the raw file",href:e.safeUrl(e.url)},"Raw",8,Z9),typeof e.content=="string"?(a(),l("button",{key:0,type:"button",class:"tb-seg-btn tb-seg-icon","aria-label":e.contentCopied?"Copied":"Copy file contents",title:e.contentCopied?"Copied":"Copy file contents",onClick:t[11]||(t[11]=d=>e.copyContent())},[(a(),l("svg",eB,[n("use",{href:e.contentCopied?"#ui-icon-check":"#project-icon-copy"},null,8,tB)]))],8,x9)):f("v-if",!0),n("a",{target:e.preview?"_blank":"_self",class:"tb-seg-btn tb-seg-icon","aria-label":"Download file",title:"Download file",href:e.safeUrl(e.downloadUrl()),download:e.preview?e.paths[e.paths.length-1]:null},[...t[62]||(t[62]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-download"})],-1)])],8,nB)])):f("v-if",!0),typeof e.content=="string"?(a(),l("button",{key:5,type:"button",class:"btn btn-sm btn-icon-only btn-ghost tb-copy-m","aria-label":e.contentCopied?"Copied":"Copy file contents",onClick:t[12]||(t[12]=d=>e.copyContent())},[(a(),l("svg",oB,[n("use",{href:e.contentCopied?"#ui-icon-check":"#project-icon-copy"},null,8,iB)]))],8,sB)):f("v-if",!0),e.type=="html"&&e.readmeToc().length>=3?(a(),l("div",rB,[n("button",{type:"button",class:P(["btn btn-sm btn-icon-only btn-ghost tb-toc-btn",{"is-on":e.tocOpen}]),"aria-label":"On this page",title:"On this page","aria-haspopup":"true","aria-expanded":e.tocOpen?"true":"false",onClick:t[13]||(t[13]=ae(d=>{e.tocOpen=!e.tocOpen,e.moreOpen=!1},["stop"]))},[...t[63]||(t[63]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-outline"})],-1)])],10,aB),e.tocOpen?(a(),l("div",{key:0,class:"tb-menu tb-toc-menu",role:"menu",onClick:t[15]||(t[15]=d=>e.tocOpen=!1)},[t[64]||(t[64]=n("div",{class:"tb-menu-label"},"On this page",-1)),n("button",{type:"button",role:"menuitem",class:P(["tb-menu-toc","lvl-2",{"is-active":!e.activeHeading}]),onClick:t[14]||(t[14]=d=>e.scrollToHeading(null))},"Introduction",2),(a(!0),l(q,null,x(e.readmeToc(),d=>(a(),l("button",{type:"button",role:"menuitem",key:"m-"+d.id,class:P(["tb-menu-toc","lvl-"+d.level,{"is-active":e.activeHeading===d.id}]),onClick:p=>e.scrollToHeading(d.id)},c(d.text),11,lB))),128))])):f("v-if",!0)])):f("v-if",!0),n("div",dB,[n("button",{type:"button",class:P(["btn btn-sm btn-icon-only btn-ghost tb-more-btn",{"is-on":e.moreOpen}]),"aria-label":"More actions","aria-haspopup":"true","aria-expanded":e.moreOpen?"true":"false",onClick:t[16]||(t[16]=ae(d=>{e.tocOpen=!1,e.moreOpen=!e.moreOpen},["stop"]))},[(a(),l("svg",cB,[...t[65]||(t[65]=[n("circle",{cx:"5",cy:"12",r:"1.8"},null,-1),n("circle",{cx:"12",cy:"12",r:"1.8"},null,-1),n("circle",{cx:"19",cy:"12",r:"1.8"},null,-1)])]))],10,uB),e.moreOpen?(a(),l("div",{key:0,class:"tb-menu",role:"menu",onClick:t[23]||(t[23]=d=>e.moreOpen=!1)},[e.options?.publishedAt||e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate?(a(),l("div",pB,[t[66]||(t[66]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),g("Snapshot \xB7 "+c(e.fmt?.date(e.options?.publishedAt||e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate)),1)])):f("v-if",!0),typeof e.content=="string"?(a(),l("div",fB,[g(c(e.type=="html"?"Markdown":e.languageName||"Text")+" \xB7 "+c(e.type=="html"&&e.fileSize(e.filePath)!=null?e.formatSize(e.fileSize(e.filePath)):e.content.length<1024?e.content.length+" B":(e.content.length/1024).toFixed(1)+" KB"),1),e.type!="html"?(a(),l(q,{key:0},[g(" \xB7 "+c(e.fmt?.number(e.content.split(` -`).length))+" lines",1)],64)):f("v-if",!0)])):f("v-if",!0),e.options?.publishedAt||e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate?(a(),l("div",hB)):f("v-if",!0),e.type=="html"?(a(),l("button",{key:3,type:"button",role:"menuitem",onClick:t[17]||(t[17]=d=>e.toggleMdFind())},[...t[67]||(t[67]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-search"})],-1),g("Find in file",-1)])])):f("v-if",!0),e.type=="html"?(a(),l("div",mB)):f("v-if",!0),e.type!="html"?(a(),l("button",{key:5,type:"button",role:"menuitem",onClick:t[18]||(t[18]=d=>e.findInFile())},[...t[68]||(t[68]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-search"})],-1),g("Find in file",-1)])])):f("v-if",!0),e.type!="html"?(a(),l("button",{key:6,type:"button",role:"menuitem",onClick:t[19]||(t[19]=d=>e.gotoLine())},[...t[69]||(t[69]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-goto"})],-1),g("Go to line",-1)])])):f("v-if",!0),e.type!="html"?(a(),l("button",{key:7,type:"button",role:"menuitemcheckbox","aria-checked":e.wrapLines?"true":"false",onClick:t[20]||(t[20]=d=>e.toggleWrap())},[t[70]||(t[70]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-wrap"})],-1)),t[71]||(t[71]=g("Wrap lines",-1)),e.wrapLines?(a(),l("span",vB,"\u2713")):f("v-if",!0)],8,gB)):f("v-if",!0),e.isCsv()?(a(),l("button",{key:8,type:"button",role:"menuitem",class:"tb-csv-view",onClick:t[21]||(t[21]=d=>{e.csvView=e.csvView==="table"?"raw":"table",e.moreOpen=!1})},[(a(),l("svg",yB,[n("use",{href:e.csvView==="table"?"#ui-icon-code":"#ui-icon-list"},null,8,bB)])),g(c(e.csvView==="table"?"Show as text":"Show as table"),1)])):f("v-if",!0),e.type!="html"?(a(),l("div",wB)):f("v-if",!0),e.type=="html"&&(!e.preview||e.url)?(a(),l("a",{key:10,role:"menuitem",target:e.preview?"_blank":"_self",href:e.safeUrl(e.url)},[...t[72]||(t[72]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-code"})],-1),g("View raw",-1)])],8,kB)):f("v-if",!0),e.type!="html"&&(!e.preview||e.url)?(a(),l("a",{key:11,role:"menuitem",target:e.preview?"_blank":"_self",href:e.safeUrl(e.url)},[...t[73]||(t[73]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-code"})],-1),g("View raw",-1)])],8,CB)):f("v-if",!0),!e.preview||e.url?(a(),l("a",{key:12,role:"menuitem",target:e.preview?"_blank":"_self",href:e.safeUrl(e.downloadUrl()),download:e.preview?e.paths[e.paths.length-1]:null},[...t[74]||(t[74]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-download"})],-1),g("Download file",-1)])],8,EB)):f("v-if",!0),e.options?.hasWebsite?(a(),l("a",{key:13,role:"menuitem",target:e.preview?"_blank":"_self",href:e.safeUrl("/w/"+e.repoId+"/")},[...t[75]||(t[75]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-globe"})],-1),g("Open website",-1)])],8,SB)):f("v-if",!0),e.options?.isAdmin||e.options?.isOwner?(a(),l("a",{key:14,role:"menuitem",href:e.safeUrl("/anonymize/"+e.repoId)},[...t[76]||(t[76]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),g("Edit anonymization",-1)])],8,NB)):f("v-if",!0),e.options?.download?(a(),l("a",{key:15,role:"menuitem",target:e.preview?"_blank":"_self",href:e.safeUrl("/api/repo/"+e.repoId+"/zip")},[...t[77]||(t[77]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-archive"})],-1),g("Download ZIP",-1)])],8,RB)):f("v-if",!0),n("button",{type:"button",role:"menuitem",onClick:t[22]||(t[22]=d=>e.copyPath())},[...t[78]||(t[78]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-link"})],-1),g("Copy file path",-1)])]),t[79]||(t[79]=n("div",{class:"tb-menu-sep"},null,-1)),t[80]||(t[80]=n("a",{role:"menuitem",href:"/faq"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-help"})]),g("FAQ")],-1)),t[81]||(t[81]=n("a",{role:"menuitem",href:"https://github.com/tdurieux/anonymous_github/issues/new?template=issue_report.yml",target:"_blank",rel:"noopener"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-bug"})]),g("Report a bug")],-1))])):f("v-if",!0)])]),e.gotoOpen&&e.type!="html"?(a(),l("form",{key:3,class:"goto-pop",role:"dialog","aria-label":"Go to line",onSubmit:t[26]||(t[26]=ae(d=>e.submitGoto(),["prevent"]))},[t[82]||(t[82]=n("label",{class:"goto-label",for:"goto-input"},"Go to line",-1)),D(n("input",{id:"goto-input",class:"goto-input",type:"text",inputmode:"numeric",autocomplete:"off",spellcheck:"false",placeholder:"1\u2013"+e.fmt?.number(typeof e.content=="string"?e.content.split(` -`).length:1),"aria-invalid":e.gotoError?"true":"false","onUpdate:modelValue":t[24]||(t[24]=d=>e.gotoValue=d),onKeydown:t[25]||(t[25]=kt(ae(d=>e.closeGoto(),["prevent","stop"]),["esc"]))},null,40,PB),[[pt,e.gotoValue]]),n("span",{class:P(["goto-hint",{"is-error":e.gotoError}])},c(e.gotoError||"Line, or line:column"),3)],32)):f("v-if",!0)]),e.isCsv()&&e.csvView==="table"?(a(),l("div",{key:0,class:"csv-table-wrap",tabindex:"0",role:"region","aria-label":"Table view of "+(e.paths?.[e.paths.length-1]||"file")},[n("table",DB,[n("thead",null,[n("tr",null,[t[83]||(t[83]=n("th",{class:"csv-rownum",scope:"col"},[n("span",{class:"sr-only"},"Row")],-1)),(a(!0),l(q,null,x(e.csvRows()[0]||[],(d,p)=>(a(),l("th",{scope:"col",key:p,class:P({"is-num":e.csvNumCol(p)})},[(a(!0),l(q,null,x(e.redactParts(d),(u,y)=>(a(),l(q,{key:y},[u.n?(a(),l("span",{key:0,class:"redact-slot",role:"img","aria-label":"Redacted term "+u.n},[n("i",null,c(u.n),1)],8,TB)):(a(),l(q,{key:1},[g(c(u.t),1)],64))],64))),128))],2))),128))])]),n("tbody",null,[(a(!0),l(q,null,x(e.csvRows().slice(1),(d,p)=>(a(),l("tr",{key:p},[n("td",OB,c(p+1),1),(a(!0),l(q,null,x(d,(u,y)=>(a(),l("td",{key:y,class:P({"is-num":e.csvNumCol(y)})},[(a(!0),l(q,null,x(e.redactParts(u),(m,b)=>(a(),l(q,{key:b},[m.n?(a(),l("span",{key:0,class:"redact-slot",role:"img","aria-label":"Redacted term "+m.n},[n("i",null,c(m.n),1)],8,IB)):(a(),l(q,{key:1},[g(c(m.t),1)],64))],64))),128))],2))),128))]))),128))])])],8,AB)):f("v-if",!0),e.type!="html"&&!(e.isCsv()&&e.csvView==="table")?D((a(),l("div",MB,null,512)),[[r,{content:e.content,options:e.aceOption}]]):f("v-if",!0),e.type=="html"&&e.mdFindOpen?(a(),l("div",VB,[n("input",{type:"search",class:"md-find-input",placeholder:"Find on this page","aria-label":"Find on this page",value:e.mdFindQuery,onInput:t[27]||(t[27]=d=>{e.mdFindQuery=d.target.value,e.runMdFind()}),onKeydown:[t[28]||(t[28]=kt(ae(d=>d.shiftKey?e.stepMdFind(-1):e.stepMdFind(1),["prevent"]),["enter"])),t[29]||(t[29]=kt(ae(d=>e.toggleMdFind(!1),["prevent"]),["esc"]))]},null,40,qB),n("span",_B,[n("button",{type:"button","aria-label":"Previous match",onClick:t[30]||(t[30]=d=>e.stepMdFind(-1)),disabled:!e.mdFindTotal},[...t[84]||(t[84]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1)])],8,$B),n("button",{type:"button","aria-label":"Next match",onClick:t[31]||(t[31]=d=>e.stepMdFind(1)),disabled:!e.mdFindTotal},[...t[85]||(t[85]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,LB)]),n("span",FB,c(e.mdFindQuery?e.mdFindTotal?e.mdFindIndex+1+" of "+e.mdFindTotal:"No results":""),1),n("button",{type:"button",class:P(["md-find-opt",{"is-on":e.mdFindCase}]),"aria-pressed":e.mdFindCase?"true":"false",title:"Match case","aria-label":"Match case",onClick:t[32]||(t[32]=d=>{e.mdFindCase=!e.mdFindCase,e.runMdFind()})},"Aa",10,UB),n("button",{type:"button",class:"md-find-close","aria-label":"Close find",onClick:t[33]||(t[33]=d=>e.toggleMdFind(!1))},"\xD7")])):f("v-if",!0),e.type=="html"?(a(),l("div",BB,[n("div",{class:"file-content markdown-body",innerHTML:e.renderReadme(e.sanitize(e.content))},null,8,zB),e.readmeToc().length>=3?(a(),l("aside",HB,[t[86]||(t[86]=n("div",{class:"readme-toc-head"},"On this page",-1)),n("nav",jB,[n("a",{href:"#",class:P(["lvl-2 toc-top",{"is-active":!e.activeHeading}]),onClick:t[34]||(t[34]=ae(d=>e.scrollToHeading(null),["prevent"]))},"Introduction",2),(a(!0),l(q,null,x(e.readmeToc(),(d,p)=>(a(),l("a",{key:d.id,href:"#"+d.id,class:P(["lvl-"+d.level,{"is-active":e.activeHeading===d.id}]),onClick:ae(u=>e.scrollToHeading(d.id),["prevent"])},c(d.text),11,GB))),128))])])):f("v-if",!0)])):f("v-if",!0)],2)):f("v-if",!0),e.type=="html-doc"&&!e.showSource&&e.content!=null?(a(),Gt(s,{key:2,content:e.content,"base-url":e.fileBaseUrl,"allow-scripts":e.allowScripts},null,8,["content","base-url","allow-scripts"])):f("v-if",!0),e.fileFrame()?(a(),l("section",{key:3,class:P(["file-card file-card-media","view-"+e.type])},[n("header",WB,[n("div",KB,[n("button",{type:"button",class:P(["btn btn-sm btn-icon-only btn-ghost card-files-btn",{"is-needed":e.sidebarHidden}]),title:"Show file tree",onClick:t[35]||(t[35]=d=>e.sidebarHidden?e.sidebarHidden=!1:e.sidebarCollapsed=!1)},[...t[87]||(t[87]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-sidebar"})],-1),n("span",{class:"card-files-label"},"Files",-1)])],2),n("ol",YB,[n("li",XB,[n("a",{href:e.safeUrl("/r/"+e.repoId+"/"),title:e.repoId,textContent:c(/^[0-9a-f]{8}-[0-9a-f]{4}-/i.test(e.repoId||"")?"repository":e.repoId)},null,8,JB)]),(a(!0),l(q,null,x(e.paths,(d,p)=>(a(),l("li",{class:"breadcrumb-item","aria-current":p===e.paths.length-1?"page":null},[(a(!0),l(q,null,x(e.redactParts(d),(u,y)=>(a(),l(q,{key:y},[u.n?(a(),l("span",{key:0,class:"redact-slot",role:"img","aria-label":"Redacted term "+u.n},[n("i",null,c(u.n),1)],8,ZB)):(a(),l(q,{key:1},[g(c(u.t),1)],64))],64))),128))],8,QB))),256))]),n("span",xB,[e.type=="IPython"&&e.redactionCount()?(a(),l("b",{key:0,class:"ms-item ms-redact",title:e.redactionCount()+" redacted terms"},[g(c(e.redactionCount()),1),t[88]||(t[88]=n("span",{class:"meta-redact-word"}," redacted",-1))],8,ez)):f("v-if",!0),n("span",tz,c(e.fileKind()),1),e.imageSize?(a(),l("span",nz,c(e.imageSize),1)):f("v-if",!0),e.fileSize(e.filePath)!=null?(a(),l("span",sz,c(e.formatSize(e.fileSize(e.filePath))),1)):f("v-if",!0)]),D(n("button",{type:"button",class:"btn btn-sm btn-icon-only btn-ghost copy-path-btn","aria-label":e.pathCopied?"Path copied":"Copy file path",title:e.pathCopied?"Path copied":"Copy file path",onClick:t[36]||(t[36]=d=>e.copyPath())},[(a(),l("svg",iz,[n("use",{href:e.pathCopied?"#ui-icon-check":"#ui-icon-link"},null,8,rz)]))],8,oz),[[Q,e.filePath]])]),n("span",az,[e.type=="IPython"&&e.redactionCount()?(a(),l(q,{key:0},[n("span",{class:"meta-redact",title:e.redactionCount()+" redacted terms"},[g(c(e.redactionCount()),1),t[89]||(t[89]=n("span",{class:"meta-redact-word"}," redacted",-1))],8,lz),t[90]||(t[90]=n("span",{class:"sep"},"\xB7",-1))],64)):f("v-if",!0),g(c(e.fileKind()),1),e.imageSize?(a(),l(q,{key:1},[t[91]||(t[91]=n("span",{class:"sep"},"\xB7",-1)),g(c(e.imageSize),1)],64)):f("v-if",!0),e.fileSize(e.filePath)!=null?(a(),l(q,{key:2},[t[92]||(t[92]=n("span",{class:"sep"},"\xB7",-1)),g(c(e.formatSize(e.fileSize(e.filePath))),1)],64)):f("v-if",!0)]),e.preview&&e.previewPreserved()?(a(),l("button",{key:0,type:"button",class:"rp-preserved-tag",onClick:t[37]||(t[37]=d=>e.openPreserveFiles())},"Left unredacted")):f("v-if",!0),n("div",dz,[e.type=="error"&&e.content==="file_too_big"?(a(),l("span",uz,[...t[93]||(t[93]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-info"})],-1),g("Over the size limit",-1)])])):f("v-if",!0),e.type!="error"&&(!e.preview||e.url)?(a(),l("div",cz,[n("a",{target:e.preview?"_blank":"_self",class:"tb-seg-btn",title:e.type=="IPython"?"Open the notebook JSON":"Open the raw file",href:e.safeUrl(e.url)},"Raw",8,pz),n("a",{target:e.preview?"_blank":"_self",class:"tb-seg-btn tb-seg-icon","aria-label":"Download file",title:"Download file",href:e.safeUrl(e.downloadUrl()),download:e.preview?e.paths[e.paths.length-1]:null},[...t[94]||(t[94]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-download"})],-1)])],8,fz)])):f("v-if",!0),n("div",hz,[n("button",{type:"button",class:P(["btn btn-sm btn-icon-only btn-ghost tb-more-btn",{"is-on":e.moreOpen}]),"aria-label":"More actions","aria-haspopup":"true","aria-expanded":e.moreOpen?"true":"false",onClick:t[38]||(t[38]=ae(d=>e.moreOpen=!e.moreOpen,["stop"]))},[(a(),l("svg",gz,[...t[95]||(t[95]=[n("circle",{cx:"5",cy:"12",r:"1.8"},null,-1),n("circle",{cx:"12",cy:"12",r:"1.8"},null,-1),n("circle",{cx:"19",cy:"12",r:"1.8"},null,-1)])]))],10,mz),e.moreOpen?(a(),l("div",{key:0,class:"tb-menu",role:"menu",onClick:t[40]||(t[40]=d=>e.moreOpen=!1)},[e.options?.publishedAt||e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate?(a(),l("div",vz,[t[96]||(t[96]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),g("Snapshot \xB7 "+c(e.fmt?.date(e.options?.publishedAt||e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate)),1)])):f("v-if",!0),e.options?.publishedAt||e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate?(a(),l("div",yz)):f("v-if",!0),e.type!="error"&&(!e.preview||e.url)?(a(),l("a",{key:2,role:"menuitem",target:e.preview?"_blank":"_self",href:e.safeUrl(e.url)},[t[97]||(t[97]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-code"})],-1)),g(c(e.type=="IPython"?"View notebook JSON":"View raw"),1)],8,bz)):f("v-if",!0),e.type!="error"&&(!e.preview||e.url)?(a(),l("a",{key:3,role:"menuitem",target:e.preview?"_blank":"_self",href:e.safeUrl(e.downloadUrl()),download:e.preview?e.paths[e.paths.length-1]:null},[...t[98]||(t[98]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-download"})],-1),g("Download file",-1)])],8,wz)):f("v-if",!0),e.options?.download?(a(),l("a",{key:4,role:"menuitem",target:e.preview?"_blank":"_self",href:e.safeUrl("/api/repo/"+e.repoId+"/zip")},[...t[99]||(t[99]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-archive"})],-1),g("Download ZIP",-1)])],8,kz)):f("v-if",!0),n("button",{type:"button",role:"menuitem",onClick:t[39]||(t[39]=d=>e.copyPath())},[...t[100]||(t[100]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-link"})],-1),g("Copy file path",-1)])]),t[101]||(t[101]=n("div",{class:"tb-menu-sep"},null,-1)),t[102]||(t[102]=n("a",{role:"menuitem",href:"/faq"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-help"})]),g("FAQ")],-1)),t[103]||(t[103]=n("a",{role:"menuitem",href:"https://github.com/tdurieux/anonymous_github/issues/new?template=issue_report.yml",target:"_blank",rel:"noopener"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-bug"})]),g("Report a bug")],-1))])):f("v-if",!0)])])]),e.type=="image"?(a(),l("div",Cz,[n("img",{class:"image-content",src:e.safeUrl(e.url),alt:e.paths[e.paths.length-1],onLoad:t[41]||(t[41]=d=>e.onImageLoad(d))},null,40,Ez)])):f("v-if",!0),e.type=="media"?(a(),l("div",Sz,[n("video",{class:"video-content",controls:"",preload:"metadata",playsinline:"",src:e.safeUrl(e.url)},null,8,Nz)])):f("v-if",!0),e.type=="audio"?(a(),l("div",Rz,[n("audio",{controls:"",preload:"metadata",src:e.safeUrl(e.url)},null,8,Pz)])):f("v-if",!0),e.type=="pdf"?(a(),Gt(i,{key:3,src:e.safeUrl(e.url)},null,8,["src"])):f("v-if",!0),e.type=="IPython"?(a(),l("div",Az,[Oe(o,{class:"markdown-body",file:e.url,content:e.content},null,8,["file","content"])])):f("v-if",!0),e.type=="binary"?(a(),l("div",Dz,[t[105]||(t[105]=n("svg",{class:"ui-icon file-state-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-file"})],-1)),t[106]||(t[106]=n("h2",{class:"file-state-title"},"No preview for this file",-1)),n("p",Tz,c(e.preview?"Reviewers can open this file; it is not previewed here.":"This is a binary file. Download it to open it on your computer."),1),e.preview?f("v-if",!0):(a(),l("div",Oz,[n("a",{target:e.preview?"_blank":"_self",class:"btn btn-primary",href:e.safeUrl(e.downloadUrl()),download:e.preview?e.paths[e.paths.length-1]:null},[...t[104]||(t[104]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-download"})],-1),g("Download file",-1)])],8,Iz)]))])):f("v-if",!0),e.type=="error"?(a(),l("div",Mz,[t[108]||(t[108]=n("svg",{class:"ui-icon file-state-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),n("h2",Vz,c(e.content==="file_too_big"?"This file is too large to preview":"This file can't be shown"),1),e.content==="file_too_big"?(a(),l("p",qz,c(e.preview?"Reviewers can open this file; it is not previewed here. Files over 1 MB are only shown on the reviewer page.":"It is over the size limit for anonymized files, so it can't be previewed or downloaded from this link."),1)):(a(),l("p",_z,c(e.fmt.translate("ERRORS."+e.content)),1)),e.preview?f("v-if",!0):(a(),l("div",$z,[n("a",{class:"btn btn-primary",href:e.safeUrl("/r/"+e.repoId+"/")},"Back to the repository",8,Lz),t[107]||(t[107]=n("a",{class:"btn btn-outline-ink",href:"/faq#formats"},"Supported files",-1))]))])):f("v-if",!0),e.content==null&&e.type!="error"?(a(),l("div",Fz,[...t[109]||(t[109]=[n("svg",{class:"ui-icon file-state-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-file"})],-1),n("h2",{class:"file-state-title"},"This file is empty",-1),n("p",{class:"file-state-msg"},"It has no content in this snapshot.",-1)])])):f("v-if",!0)],2)):f("v-if",!0),e.type=="rate_limited"?(a(),l("div",Uz,[n("div",Bz,[t[112]||(t[112]=Ee('
Temporarily paused
GitHub API rate limit reached
',1)),n("p",zz,[t[110]||(t[110]=g("This repository will be available in ",-1)),n("strong",null,c(e.rateLimitCountdown),1),t[111]||(t[111]=g(". The page will reload automatically.",-1))])])])):f("v-if",!0),e.type=="error"&&!e.fileFrame()?(a(),l("div",Hz,[n("section",jz,[n("h1",Gz,c(e.fmt.translate(e.isSourceAccessError()?"VIEWER_ERRORS.access_title":"VIEWER_ERRORS.title")),1),n("p",null,c(e.fmt.translate("ERRORS."+e.content)),1),e.isSourceAccessError()?(a(),l(q,{key:0},[n("p",null,c(e.fmt.translate("VIEWER_ERRORS.reader_help")),1),n("p",null,c(e.fmt.translate("VIEWER_ERRORS.owner_help")),1)],64)):f("v-if",!0),n("div",Wz,[e.isSourceAccessError()?f("v-if",!0):(a(),l("a",Kz,"Back to home")),e.isSourceAccessError()?f("v-if",!0):(a(),l("a",Yz,"Read the FAQ")),n("button",{type:"button",class:"btn btn-primary",onClick:t[42]||(t[42]=d=>e.retryContent())},c(e.fmt.translate("VIEWER_ERRORS.retry")),1),e.isSourceAccessError()?(a(),l("a",Xz,c(e.fmt.translate("VIEWER_ERRORS.dashboard")),1)):f("v-if",!0)])])])):f("v-if",!0),e.type=="loading"&&!e.error?(a(),l("section",Jz,[n("div",Qz,[n("strong",null,c(e.fmt.translate(e.fileReceivedBytes?"VIEWER_LOADING.receiving":"VIEWER_LOADING.loading")),1),n("span",Zz,c(e.filePath),1),e.fileLoadingSlow?(a(),l("p",xz,c(e.fmt.translate("VIEWER_LOADING.slow")),1)):f("v-if",!0)]),n("div",eH,[(a(),l(q,null,x(10,d=>n("span",{key:d})),64))])])):f("v-if",!0),e.type=="empty"?(a(),l("div",tH,[...t[113]||(t[113]=[n("h1",{class:"paper-empty-title m-auto"},[g("Empty "),n("em",null,"repository"),g(".")],-1)])])):f("v-if",!0),e.content==null&&!["empty","loading","error","rate_limited"].includes(e.type)&&!e.fileFrame()?(a(),l("div",nH,[...t[114]||(t[114]=[n("h1",{class:"paper-empty-title m-auto"},[g("Empty "),n("em",null,"file"),g(".")],-1)])])):f("v-if",!0)],64)}var sH={class:"container page dashboard-page paper-page"},oH={class:"row"},iH={class:"w-100"},rH={class:"w-100","aria-label":"Pull Requests","accept-charset":"UTF-8"},aH={class:"d-flex flex-column flex-md-row align-items-md-center",style:{gap:"8px"}},lH={class:"flex-grow-1"},dH={type:"search",id:"search",class:"form-control","aria-label":"Find a pull request...",placeholder:"Find a pull request...",autocomplete:"off"},uH={class:"d-flex flex-wrap",style:{gap:"6px"}},cH={class:"dropdown"},pH={class:"dropdown-menu","aria-labelledby":"dropdownSort"},fH={class:"form-check dropdown-item"},hH={class:"form-check-input",type:"radio",name:"sort",id:"sortFullName",value:"fullName"},mH={class:"form-check dropdown-item"},gH={class:"form-check-input",type:"radio",name:"sort",id:"sortAnonymizeDate",value:"-anonymizeDate"},vH={class:"form-check dropdown-item"},yH={class:"form-check-input",type:"radio",name:"sort",id:"sortStatus",value:"-status"},bH={class:"form-check dropdown-item"},wH={class:"form-check-input",type:"radio",name:"sort",id:"sortLastView",value:"-lastView"},kH={class:"form-check dropdown-item"},CH={class:"form-check-input",type:"radio",name:"sort",id:"sortPageView",value:"-pageView"},EH={class:"dropdown"},SH={class:"dropdown-menu","aria-labelledby":"dropdownStatus"},NH={class:"form-check dropdown-item"},RH={class:"form-check-input",type:"checkbox",name:"sort",id:"statusReady",value:"ready"},PH={class:"form-check dropdown-item"},AH={class:"form-check-input",type:"checkbox",name:"sort",id:"statusExpired",value:"expired"},DH={class:"form-check dropdown-item"},TH={class:"form-check-input",type:"checkbox",name:"sort",id:"statusRemoved",value:"removed"},OH={class:"d-flex flex-wrap mt-2",style:{gap:"6px"}},IH={class:"filter-chip"},MH=["onClick"],VH={class:"repo-list w-100"},qH={class:"repo-list-item-content"},_H={class:"repo-list-item-main"},$H={class:"repo-list-item-header"},LH=["textContent","href"],FH=["textContent"],UH=["textContent"],BH={class:"repo-source"},zH=["href"],HH={class:"repo-date"},jH={class:"repo-meta"},GH={key:0,title:"Conference"},WH=["title"],KH=["title"],YH=["title"],XH={key:1},JH={class:"repo-list-item-actions"},QH={class:"dropdown"},ZH={class:"dropdown-menu dropdown-menu-right"},xH=["href"],ej=["onClick"],tj=["onClick"],nj=["onClick"],sj=["href"],oj={key:0,class:"repo-list-empty"};function bp(e,t){let s=Ae("field"),i=Ae("form");return a(),l("div",sH,[n("div",oH,[n("div",iH,[t[12]||(t[12]=Ee('
My work \xA0/\xA0 Pull requests

Anonymized pull requests

Track PR mirrors you\u2019ve created and their reviewer traffic.

',2)),f(" Search + filters row "),D((a(),l("form",rH,[n("div",aH,[n("div",lH,[D(n("input",dH,null,512),[[s,{state:e.viewState,set:o=>{e.search=o},value:e.search,form:null,options:{}}]])]),n("div",uH,[n("div",cH,[t[6]||(t[6]=n("button",{class:"btn btn-sm dropdown-toggle",type:"button",id:"dropdownSort","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"}," Sort ",-1)),n("div",pH,[t[5]||(t[5]=n("h6",{class:"dropdown-header"},"Select order",-1)),n("div",fH,[D(n("input",hH,null,512),[[s,{state:e.viewState,set:o=>{e.orderBy=o},value:e.orderBy,form:null,options:{}}]]),t[0]||(t[0]=n("label",{class:"form-check-label",for:"sortFullName"},"Pull Request",-1))]),n("div",mH,[D(n("input",gH,null,512),[[s,{state:e.viewState,set:o=>{e.orderBy=o},value:e.orderBy,form:null,options:{}}]]),t[1]||(t[1]=n("label",{class:"form-check-label",for:"sortAnonymizeDate"},"Anonymize Date",-1))]),n("div",vH,[D(n("input",yH,null,512),[[s,{state:e.viewState,set:o=>{e.orderBy=o},value:e.orderBy,form:null,options:{}}]]),t[2]||(t[2]=n("label",{class:"form-check-label",for:"sortStatus"},"Status",-1))]),n("div",bH,[D(n("input",wH,null,512),[[s,{state:e.viewState,set:o=>{e.orderBy=o},value:e.orderBy,form:null,options:{}}]]),t[3]||(t[3]=n("label",{class:"form-check-label",for:"sortLastView"},"Last View",-1))]),n("div",kH,[D(n("input",CH,null,512),[[s,{state:e.viewState,set:o=>{e.orderBy=o},value:e.orderBy,form:null,options:{}}]]),t[4]||(t[4]=n("label",{class:"form-check-label",for:"sortPageView"},"Page View",-1))])])]),n("div",EH,[t[11]||(t[11]=n("button",{class:"btn btn-sm dropdown-toggle",type:"button",id:"dropdownStatus","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"}," Status ",-1)),n("div",SH,[t[10]||(t[10]=n("h6",{class:"dropdown-header"},"Select status",-1)),n("div",NH,[D(n("input",RH,null,512),[[s,{state:e.viewState,set:o=>{e.filters.status.ready=o},value:e.filters?.status?.ready,form:null,options:{}}]]),t[7]||(t[7]=n("label",{class:"form-check-label",for:"statusReady"},"Ready",-1))]),n("div",PH,[D(n("input",AH,null,512),[[s,{state:e.viewState,set:o=>{e.filters.status.expired=o},value:e.filters?.status?.expired,form:null,options:{}}]]),t[8]||(t[8]=n("label",{class:"form-check-label",for:"statusExpired"},"Expired",-1))]),n("div",DH,[D(n("input",TH,null,512),[[s,{state:e.viewState,set:o=>{e.filters.status.removed=o},value:e.filters?.status?.removed,form:null,options:{}}]]),t[9]||(t[9]=n("label",{class:"form-check-label",for:"statusRemoved"},"Removed",-1))])])])])])])),[[i,e.viewState]]),f(" Active filter chips "),D(n("div",OH,[(a(!0),l(q,null,x(e.filters?.status,(o,r,d)=>D((a(),l("span",IH,[g(c(e.fmt?.title(r))+" ",1),n("button",{type:"button",class:"filter-chip-close","aria-label":"Remove filter",onClick:p=>{e.filters.status[r]=!0}}," \xD7 ",8,MH)],512)),[[Q,!o]])),256))],512),[[Q,e.filters?.status?.ready===!1||e.filters?.status?.expired===!1||e.filters?.status?.removed===!1]])]),f(" Pull request list "),n("ul",VH,[(a(!0),l(q,null,x(e.filteredPullRequests,(o,r)=>(a(),l("li",{class:P(["repo-list-item",{"repo-inactive":o?.status=="expired"||o?.status=="removed"||o?.status=="error"}])},[n("div",qH,[n("div",_H,[n("div",$H,[n("a",{class:"repo-name",textContent:c(o?.pullRequestId),href:e.safeUrl("/pr/"+o?.pullRequestId)},null,8,LH),n("span",{class:P(["status-badge",{"status-removed":o?.status=="removed"||o?.status=="expired"||o?.status=="removing"||o?.status=="expiring","status-preparing":o?.status=="preparing"||o?.status=="download","status-ready":o?.status=="ready","status-error":o?.status=="error"}])},[n("span",{textContent:c(e.fmt?.title(o?.status))},null,8,FH),o?.status=="error"?(a(),l("span",{key:0,textContent:c(": "+o?.statusMessage)},null,8,UH)):f("v-if",!0)],2)]),n("div",BH,[n("span",null,[t[13]||(t[13]=n("i",{class:"fab fa-github","aria-hidden":"true"},null,-1)),n("a",{href:e.safeUrl("https://github.com/"+o?.source?.repositoryFullName+"/pull/"+o?.source?.pullRequestId)},c(o?.source?.repositoryFullName)+"#"+c(o?.source?.pullRequestId),9,zH)]),n("span",{class:P(["status-badge",{"status-ready":o?.merged,"status-removed":o?.state=="open","status-error":o?.state=="closed"&&!o?.merged}]),style:{"font-size":"10px"}},c(e.fmt?.title(o?.merged?"merged":o?.state)),3),n("span",HH,"anonymized "+c(e.fmt?.humanTime(o?.anonymizeDate)),1)])]),n("div",jH,[o?.conference?(a(),l("span",GH,[t[14]||(t[14]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-conference"})],-1)),g(" "+c(o?.conference),1)])):f("v-if",!0),n("span",{"data-toggle":"tooltip","data-placement":"bottom",title:"Terms: "+o?.options?.terms?.join(", ")},[t[15]||(t[15]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1)),g(" "+c(e.fmt?.number(o?.options?.terms?.length)),1)],8,WH),n("span",{"data-toggle":"tooltip","data-placement":"bottom",title:"Views: "+e.fmt?.number(o?.pageView)},[t[16]||(t[16]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1)),g(" "+c(e.fmt?.number(o?.pageView)),1)],8,KH),n("span",{"data-toggle":"tooltip","data-placement":"bottom",title:"Last view: "+e.fmt?.date(o?.lastView)},[t[17]||(t[17]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-calendar"})],-1)),g(" "+c(e.fmt?.humanTime(o?.lastView)),1)],8,YH),o?.options?.expirationMode!="never"&&o?.status=="ready"?(a(),l("span",XH,[t[18]||(t[18]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),g(" Expire: "+c(e.fmt?.humanTime(o?.options?.expirationDate)),1)])):f("v-if",!0)])]),n("div",JH,[n("div",QH,[t[24]||(t[24]=n("button",{class:"btn btn-sm dropdown-toggle",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"}," Actions ",-1)),n("div",ZH,[n("a",{class:"dropdown-item",href:e.safeUrl("/pull-request-anonymize/"+o?.pullRequestId)},[...t[19]||(t[19]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),g(" Edit ",-1)])],8,xH),D(n("a",{class:"dropdown-item",href:"#",onClick:ae(d=>e.updatePullRequest(o),["prevent"])},[...t[20]||(t[20]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),g(" Force update ",-1)])],8,ej),[[Q,o?.status=="ready"||o?.status=="error"]]),D(n("a",{class:"dropdown-item",href:"#",onClick:ae(d=>e.updatePullRequest(o),["prevent"])},[...t[21]||(t[21]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-check-circle"})],-1),g(" Enable ",-1)])],8,tj),[[Q,o?.status=="removed"]]),D(n("a",{class:"dropdown-item",href:"#",onClick:ae(d=>e.removePullRequest(o),["prevent"])},[...t[22]||(t[22]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1),g(" Remove ",-1)])],8,nj),[[Q,o?.status=="ready"]]),n("a",{class:"dropdown-item",href:e.safeUrl("/pr/"+o?.pullRequestId+"/")},[...t[23]||(t[23]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),g(" View PR ",-1)])],8,sj)])])])],2))),256)),e.filteredPullRequests?.length==0?(a(),l("li",oj,[...t[25]||(t[25]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1),n("span",null,"No pull requests to display.",-1)])])):f("v-if",!0)])])])}var ij={class:"container paper-page user-settings"},rj={class:"settings-nav","aria-label":"Settings"},aj=["aria-current","onClick"],lj={class:"settings-row"},dj=["rows"],uj={class:"settings-syntax"},cj={class:"invalid-feedback"},pj={class:"settings-row"},fj={class:"settings-checks"},hj={class:"settings-check"},mj={class:"form-check-input",type:"checkbox",id:"link",name:"link"},gj={class:"settings-check"},vj={class:"form-check-input",type:"checkbox",id:"image",name:"image"},yj={class:"settings-check"},bj={class:"form-check-input",type:"checkbox",id:"pdf",name:"pdf"},wj={class:"settings-check"},kj={class:"form-check-input",type:"checkbox",id:"notebook",name:"notebook"},Cj={class:"settings-check"},Ej={class:"form-check-input",type:"checkbox",id:"loc",name:"loc"},Sj={class:"settings-check"},Nj={class:"form-check-input",type:"checkbox",id:"page",name:"page"},Rj={class:"settings-row"},Pj={class:"settings-check"},Aj={class:"form-check-input",type:"checkbox",id:"update",name:"update"},Dj={class:"settings-row"},Tj={class:"form-control",id:"expiration",name:"expiration"},Oj={class:"settings-help"},Ij={class:"settings-save"},Mj={class:"settings-save-status draft-status",role:"status"},Vj={key:0},qj={key:1},_j={key:2},$j=["disabled"],Lj={key:1,class:"settings-save-error",role:"alert"},Fj=["aria-busy"],Uj={key:0,role:"status"},Bj={key:1,class:"settings-notice",role:"alert"},zj=["disabled"],Hj={key:2,class:"settings-notice",role:"status"},jj={key:3,class:"settings-notice",role:"status"},Gj=["disabled"],Wj={class:"billing-summary"},Kj={class:"billing-summary-head"},Yj={class:"billing-plan-name"},Xj={key:0,class:"billing-plan-meta"},Jj={key:1,class:"billing-plan-meta"},Qj={key:0,class:"billing-summary-actions"},Zj=["disabled"],xj={id:"settings-quota"},eG={key:1,role:"status"},tG={key:0,class:"settings-notice"},nG={key:1,class:"settings-notice"},sG={key:2,class:"settings-notice"},oG={key:4,class:"billing-section","aria-labelledby":"settings-plan-comparison"},iG={key:0,class:"billing-offers"},rG={key:0,class:"billing-offer is-recommended"},aG={class:"billing-offer-price"},lG={class:"billing-offer-list"},dG=["disabled"],uG={key:1,class:"billing-offer"},cG={class:"billing-offer-head"},pG={class:"billing-toggle",role:"radiogroup","aria-label":"Billing frequency"},fG=["aria-checked","onClick"],hG={key:0,class:"billing-toggle-save"},mG={class:"billing-offer-price"},gG={class:"billing-offer-list"},vG=["disabled"],yG={key:1,class:"billing-addons"},bG={class:"billing-addon-rows"},wG={class:"billing-addon-price"},kG=["onClick","disabled"],CG={key:2,class:"billing-buy",id:"settings-addons-title",tabindex:"-1"},EG={class:"billing-buy-info"},SG={class:"billing-offer-price"},NG={class:"billing-offer-list"},RG={class:"billing-buy-form"},PG=["value"],AG=["disabled"],DG={key:1,class:"billing-buy-desc"},TG={key:2,class:"billing-footnote"},OG={class:"billing-compare"},IG={class:"billing-compare-card"},MG={class:"settings-comparison"},VG={key:0,scope:"col",class:"is-recommended"},qG={key:1,scope:"col"},_G={key:0,class:"is-recommended"},$G={key:1},LG={key:0,class:"is-recommended"},FG={key:1},UG={key:0,class:"is-recommended"},BG={key:1},zG={key:0,class:"is-recommended"},HG={key:1},jG={key:0,class:"is-recommended"},GG={key:1},WG={key:0,class:"is-recommended"},KG={key:1},YG={key:3,class:"billing-footnote"},XG={key:5,class:"billing-section"},JG={class:"billing-section-head"},QG=["disabled"],ZG={key:0,class:"billing-empty"},xG={key:1,class:"billing-history-head","aria-hidden":"true"},eW={key:2,class:"billing-history"},tW={class:"billing-history-main"},nW=["href"],sW=["href"],oW={class:"billing-history-term"},iW={class:"billing-history-paid"},rW={class:"billing-history-status"},aW={class:"billing-manage"},lW={key:0},dW={key:1},uW=["disabled"],cW={class:"billing-conference"},pW={id:"settings-account",class:"settings-account-panel"},fW={class:"paper-account-card"},hW=["src"],mW={class:"paper-account-identity"},gW={class:"paper-account-name"},vW=["disabled"],yW={key:0,role:"status"},bW={key:1,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},wW=["disabled"],kW={key:3,role:"status"},CW={class:"paper-danger-zone"},EW={key:0,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},SW=["textContent"],NW=["disabled"],RW={key:1,class:"settings-delete-confirm"},PW={for:"delete-username"},AW={class:"settings-actions"},DW=["disabled"],TW=["disabled"];function wp(e,t){let s=Xe("quota-usage"),i=Ae("field"),o=Ae("form");return a(),l("div",ij,[t[107]||(t[107]=n("header",{class:"settings-title page-head page-head-main"},[n("h1",null,"Settings"),n("p",{class:"paper-page-lede"},"Defaults for new anonymizations, hosting and your account.")],-1)),n("nav",rj,[(a(),l(q,null,x([{id:"defaults",label:"Anonymization defaults"},{id:"billing",label:"Hosting & billing"},{id:"account",label:"Account"}],r=>n("button",{type:"button","aria-current":e.settingsTab===r.id?"page":null,onClick:d=>e.settingsTab=r.id},c(r.label),9,aj)),64))]),D(n("div",null,[t[41]||(t[41]=n("p",{class:"settings-scope"},"For new anonymizations only. Existing repositories keep their settings.",-1)),D((a(),l("form",{class:"form needs-validation",name:"defaultsForm",novalidate:"",onInput:t[1]||(t[1]=r=>e.unsavedChanges=!0),onSubmit:t[2]||(t[2]=ae(r=>e.submitForm(r,()=>{e.saveDefault(r)}),["prevent"]))},[n("section",lj,[t[26]||(t[26]=n("div",null,[n("label",{class:"settings-label",for:"terms"},"Terms to redact"),n("p",{class:"settings-help"},"One term per line.")],-1)),n("div",null,[D(n("textarea",{class:"form-control",id:"terms",name:"terms",rows:Math.min(14,Math.max(3,String(e.terms||"").split(` +10 log("epoch %d: %.3f", epoch, loss)
`,2)])])):(a(),l("div",s7,[...t[21]||(t[21]=[Ce('
ProjectStatusViewsExpires
DeepLearnUtilspaper-7f2a \xB7 ICSE 2027Ready41Mar 31, 2027
vision-bench#212pull request \xB7 FSE 2027Ready12Never
graph-repairgr-91abUpdating5Jan 5, 2027
JarSiftOOPSLA 2025Expired72Sep 28, 2026
',5)])]))],10,e7)])],8,QU)),[[Z,e.feature===i?.key]])),128))])]),f(" FAQ teaser "),t[24]||(t[24]=Ce('
Before you sign in

The questions that come up most.

Read the full FAQ \u2192
What access does GitHub sign-in require?

The GitHub App has read-only access to gists and the repositories you choose. Legacy OAuth uses broader permissions. Anonymous GitHub never writes to your repositories.

Which file formats are supported?

Source code with syntax highlighting, Markdown, Jupyter notebooks, PDFs, images, and GitHub Pages sites. Text files are anonymized; enabled images and PDFs are served unchanged.

What happens when an anonymized repository expires?

You choose: the mirror is removed, or visitors are redirected to the original GitHub repository once the review is over.

Ready for review?

Create an anonymous mirror in a couple of minutes. Reviewers just open the link.

',2)),Oe(s,{name:"partials/footer.htm",state:e.viewState},null,8,["state"])])}var o7={class:"paper-empty"},i7={class:"paper-empty-inner"},r7={key:0,class:"paper-eyebrow"},a7={key:1,class:"paper-eyebrow"},l7={key:2,class:"paper-empty-title"},d7=["textContent"];function yp(e,t){return a(),l("div",o7,[n("div",i7,[e.error?f("v-if",!0):(a(),l("div",r7,"Working")),e.error?(a(),l("div",a7,"Error")):f("v-if",!0),e.error?f("v-if",!0):(a(),l("h1",l7,[...t[0]||(t[0]=[g(" Loading",-1),n("span",{class:"dot-anim"},"\u2026",-1)])])),e.error?(a(),l("h1",{key:3,class:"paper-empty-title",textContent:c(e.fmt.translate(e.error))},null,8,d7)):f("v-if",!0)])])}var u7={class:"container paper-page paper-settings"},c7={class:"paper-crumbs"},p7={class:"here"},f7={class:"paper-page-title"},h7={class:"paper-settings-body"},m7={class:"paper-settings-toc"},g7={href:"#conf-billing"},v7={class:"form needs-validation paper-settings-main",name:"conference",novalidate:""},y7={id:"conf-basics",class:"paper-settings-section"},b7={class:"form-group"},w7={class:"invalid-feedback"},k7={class:"invalid-feedback"},C7={class:"form-group"},E7={class:"invalid-feedback"},S7={class:"form-group"},N7={class:"invalid-feedback"},R7={class:"invalid-feedback"},A7={id:"conf-window",class:"paper-settings-section"},P7={class:"form-grid-2"},D7={class:"form-group"},T7={class:"invalid-feedback"},O7={class:"invalid-feedback"},I7={class:"form-group"},M7={class:"invalid-feedback"},V7={class:"invalid-feedback"},q7={id:"conf-rendering",class:"paper-settings-section"},_7={class:"form-check"},$7={class:"form-check-input",type:"checkbox",id:"link",name:"link"},L7={class:"form-check"},F7={class:"form-check-input",type:"checkbox",id:"image",name:"image"},U7={class:"form-check"},B7={class:"form-check-input",type:"checkbox",id:"pdf",name:"pdf"},z7={class:"form-check"},H7={class:"form-check-input",type:"checkbox",id:"notebook",name:"notebook"},j7={id:"conf-features",class:"paper-settings-section"},G7={class:"form-check"},W7={class:"form-check-input",type:"checkbox",id:"update",name:"update"},K7={class:"form-check"},Y7={class:"form-check-input",type:"checkbox",id:"page",name:"page"},X7={id:"conf-plan",class:"paper-settings-section"},Q7={key:0,class:"paper-section-copy"},J7={class:"conference-tiers",role:"radiogroup","aria-label":"Review package size"},Z7=["value","checked","onChange"],x7={class:"conference-tier-head"},e9={key:0,class:"conference-tier-pill"},t9={class:"conference-tier-who"},n9={key:0,class:"conference-tier-price"},s9={class:"conference-tier-size"},o9={key:1,class:"conference-tier-per"},i9={key:2,class:"paper-plan-grid"},r9=["value"],a9=["textContent"],l9={class:"paper-plan-price"},d9=["innerHTML"],u9={key:3,class:"settings-notice",role:"status"},c9={key:0,id:"conf-billing",class:"paper-settings-section"},p9={class:"form-group"},f9={class:"form-group"},h9={class:"form-group"},m9={class:"form-group"},g9={class:"form-grid-3"},v9={class:"form-group"},y9={class:"form-group"},b9={class:"form-group"},w9={class:"form-group"},k9={class:"paper-settings-footer"},C9=["textContent"],E9=["textContent"],S9=["disabled"];function bp(e,t){let s=Pe("paper-scrollspy"),i=Pe("field"),o=Pe("form");return a(),l("div",u7,[n("div",c7,[t[1]||(t[1]=n("a",{href:"/dashboard"},"My work",-1)),t[2]||(t[2]=g(" \xA0/\xA0 ",-1)),t[3]||(t[3]=n("a",{href:"/conferences"},"Conferences",-1)),t[4]||(t[4]=g(" \xA0/\xA0 ",-1)),n("span",p7,c(e.editionMode?"Edit":"New"),1)]),n("h1",f7,[g(c(e.editionMode?"Edit":"Create a")+" ",1),t[5]||(t[5]=n("em",null,"conference",-1))]),t[44]||(t[44]=n("p",{class:"paper-page-lede"}," Give chairs access to every anonymization submitted to a venue. One payment hosts every submission, so authors don't pay during the review window. ",-1)),n("div",h7,[D((a(),l("aside",m7,[t[7]||(t[7]=n("div",{class:"paper-settings-toc-head"},"On this page",-1)),n("nav",null,[t[6]||(t[6]=Ce('BasicsReview windowRendering defaultsFeaturesPlan',5)),D(n("a",g7,"Billing",512),[[Z,e.plan?.pricePerRepo>0]])])])),[[s]]),D((a(),l("form",v7,[n("section",y7,[t[12]||(t[12]=n("div",{class:"paper-section-eyebrow"},"Basics",-1)),n("div",b7,[t[8]||(t[8]=n("label",{class:"paper-field-label",for:"name"},"Conference name",-1)),D(n("input",{type:"text",class:A(["form-control",{"is-invalid":e.conference?.name?.invalid&&(e.conference?.name?.touched||e.conference?.submitted)}]),name:"name",id:"name",required:"",placeholder:"e.g. International Conference on Software Engineering"},null,2),[[i,{state:e.viewState,set:r=>{e.options.name=r},value:e.options?.name,form:"conference",options:{}}]]),D(n("div",w7," The name of the conference is invalid. ",512),[[Z,e.conference?.name?.errors?.invalid]]),D(n("div",k7," The name of the conference is required. ",512),[[Z,e.conference?.name?.errors?.required]])]),n("div",C7,[t[9]||(t[9]=n("label",{class:"paper-field-label",for:"url"},"Website",-1)),D(n("input",{type:"url",class:A(["form-control",{"is-invalid":e.conference?.url?.invalid&&(e.conference?.url?.touched||e.conference?.submitted)}]),name:"url",id:"url",placeholder:"https://example.org"},null,2),[[i,{state:e.viewState,set:r=>{e.options.url=r},value:e.options?.url,form:"conference",options:{}}]]),D(n("div",E7," The url of the conference is invalid. ",512),[[Z,e.conference?.url?.errors?.url]])]),n("div",S7,[t[10]||(t[10]=n("label",{class:"paper-field-label",for:"conferenceID"},"Conference ID",-1)),D(n("input",{type:"text",class:A(["form-control",{"is-invalid":e.conference?.conferenceID?.invalid&&(e.conference?.conferenceID?.touched||e.conference?.submitted)}]),name:"conferenceID",id:"conferenceID",required:"",pattern:"[a-zA-Z0-9\\-_]{3,10}",placeholder:"ICSE26"},null,2),[[i,{state:e.viewState,set:r=>{e.options.conferenceID=r},value:e.options?.conferenceID,form:"conference",options:{}}]]),t[11]||(t[11]=n("small",{class:"form-text text-muted"},[g("3\u201310 characters, letters, numbers, "),n("code",null,"-"),g(" and "),n("code",null,"_"),g(". Authors reference this when they anonymize.")],-1)),D(n("div",{class:"invalid-feedback"}," The conference ID '"+c(e.options?.conferenceID)+"' is already used. ",513),[[Z,e.conference?.conferenceID?.errors?.used]]),D(n("div",N7," The conference ID is required. ",512),[[Z,e.conference?.conferenceID?.errors?.required]]),D(n("div",R7," The format of the conference ID is incorrect ([a-zA-Z0-9-_]{3,10}). ",512),[[Z,e.conference?.conferenceID?.errors?.pattern]])])]),n("section",A7,[t[17]||(t[17]=n("div",{class:"paper-section-eyebrow"},"Review window",-1)),n("div",P7,[n("div",D7,[t[13]||(t[13]=n("label",{class:"paper-field-label",for:"startDate"},"Start date",-1)),D(n("input",{type:"date",class:A(["form-control",{"is-invalid":e.conference?.startDate?.invalid&&(e.conference?.startDate?.touched||e.conference?.submitted)}]),name:"startDate",id:"startDate",required:""},null,2),[[i,{state:e.viewState,set:r=>{e.options.startDate=r},value:e.options?.startDate,form:"conference",options:{}}]]),t[14]||(t[14]=n("small",{class:"form-text text-muted"},"Beginning of the review process.",-1)),D(n("div",T7," Start date is required. ",512),[[Z,e.conference?.startDate?.errors?.required]]),D(n("div",O7," Start date must be before end date. ",512),[[Z,e.conference?.startDate?.errors?.invalid]])]),n("div",I7,[t[15]||(t[15]=n("label",{class:"paper-field-label",for:"endDate"},"End date",-1)),D(n("input",{type:"date",class:A(["form-control",{"is-invalid":e.conference?.endDate?.invalid&&(e.conference?.endDate?.touched||e.conference?.submitted)}]),name:"endDate",id:"endDate",required:""},null,2),[[i,{state:e.viewState,set:r=>{e.options.endDate=r},value:e.options?.endDate,form:"conference",options:{}}]]),t[16]||(t[16]=n("small",{class:"form-text text-muted"},"All repositories expire on this date.",-1)),D(n("div",M7," End date is required. ",512),[[Z,e.conference?.endDate?.errors?.required]]),D(n("div",V7," End date is invalid. ",512),[[Z,e.conference?.endDate?.errors?.invalid]])])])]),n("section",q7,[t[26]||(t[26]=n("div",{class:"paper-section-eyebrow"},"Rendering defaults",-1)),n("div",_7,[D(n("input",$7,null,512),[[i,{state:e.viewState,set:r=>{e.options.options.link=r},value:e.options?.options?.link,form:"conference",options:{}}]]),t[18]||(t[18]=n("label",{class:"form-check-label",for:"link"},"Keep links",-1)),t[19]||(t[19]=n("small",{class:"form-text text-muted"},"Keep or remove all links from text files.",-1))]),n("div",L7,[D(n("input",F7,null,512),[[i,{state:e.viewState,set:r=>{e.options.options.image=r},value:e.options?.options?.image,form:"conference",options:{}}]]),t[20]||(t[20]=n("label",{class:"form-check-label",for:"image"},"Display images",-1)),t[21]||(t[21]=n("small",{class:"form-text text-muted"},"Images are not anonymized.",-1))]),n("div",U7,[D(n("input",B7,null,512),[[i,{state:e.viewState,set:r=>{e.options.options.pdf=r},value:e.options?.options?.pdf,form:"conference",options:{}}]]),t[22]||(t[22]=n("label",{class:"form-check-label",for:"pdf"},"Display PDFs",-1)),t[23]||(t[23]=n("small",{class:"form-text text-muted"},"PDFs are not anonymized.",-1))]),n("div",z7,[D(n("input",H7,null,512),[[i,{state:e.viewState,set:r=>{e.options.options.notebook=r},value:e.options?.options?.notebook,form:"conference",options:{}}]]),t[24]||(t[24]=n("label",{class:"form-check-label",for:"notebook"},"Display notebooks",-1)),t[25]||(t[25]=n("small",{class:"form-text text-muted"},"Render Jupyter notebooks instead of raw JSON.",-1))])]),n("section",j7,[t[31]||(t[31]=n("div",{class:"paper-section-eyebrow"},"Features",-1)),n("div",G7,[D(n("input",W7,null,512),[[i,{state:e.viewState,set:r=>{e.options.options.update=r},value:e.options?.options?.update,form:"conference",options:{}}]]),t[27]||(t[27]=n("label",{class:"form-check-label",for:"update"},"Auto-update from GitHub",-1)),t[28]||(t[28]=n("small",{class:"form-text text-muted"},"Pull the latest commit automatically (hourly maximum).",-1))]),n("div",K7,[D(n("input",Y7,null,512),[[i,{state:e.viewState,set:r=>{e.options.options.page=r},value:e.options?.options?.page,form:"conference",options:{}}]]),t[29]||(t[29]=n("label",{class:"form-check-label",for:"page"},"GitHub Pages",-1)),t[30]||(t[30]=n("small",{class:"form-text text-muted"},"Enable anonymized GitHub pages.",-1))])]),n("section",X7,[t[35]||(t[35]=n("div",{class:"paper-section-eyebrow"},"Plan",-1)),e.editionMode?(a(),l("p",Q7,c(e.conferencePlanName(e.options?.plan?.planID))+". The plan and review dates can't change after creation.",1)):e.conferenceTiers().length?(a(),l(q,{key:1},[t[33]||(t[33]=n("p",{class:"paper-section-copy"},"Pick the package that fits the number of submissions you expect. One payment hosts every submission, so authors don't pay.",-1)),n("div",J7,[(a(!0),l(q,null,J(e.conferenceTiers(),r=>(a(),l("label",{class:A(["conference-tier",{"is-selected":e.options?.plan?.planID===r.id}]),key:r.id},[n("input",{type:"radio",name:"planPicker",value:r.id,checked:e.options?.plan?.planID===r.id,onChange:d=>e.options.plan.planID=r.id},null,40,Z7),n("span",x7,[n("strong",null,c(r.name),1),r.id==="conference"&&e.conferenceTiers().length>1?(a(),l("span",e9,"Most common")):f("v-if",!0)]),n("span",t9,c(e.conferenceAudience(r.id)),1),r.amount!=null?(a(),l("span",n9,[n("strong",null,c(e.conferenceAmount(r)),1),t[32]||(t[32]=g(" once",-1))])):f("v-if",!0),n("span",s9,"Up to "+c(r.repositories)+" papers \xB7 "+c(e.conferenceBytes(r.storage)),1),r.amount!=null&&r.repositories?(a(),l("span",o9,"About "+c(e.conferenceAmount(r,r.amount/r.repositories))+" per paper",1)):f("v-if",!0)],2))),128))]),t[34]||(t[34]=Ce('

Every package includes

  • A review window of up to 180 days
  • Automatic updates for every submission
  • Links stay online until the review window ends
  • A dashboard of every submission for chairs

Nothing renews \xB7 Tax shown at checkout \xB7 Expecting more submissions? Email tdurieux@anonymous.4open.science

Create the conference, then pay from its page. Authors can submit once the payment is confirmed.

',2))],64)):e.plans.length?(a(),l("div",i9,[(a(!0),l(q,null,J(e.plans,r=>(a(),l("label",{class:A(["paper-plan-card",{selected:e.options?.plan?.planID==r?.id}]),key:r.id},[D(n("input",{type:"radio",name:"planPicker",value:r?.id},null,8,r9),[[i,{state:e.viewState,set:d=>{e.options.plan.planID=d},value:e.options?.plan?.planID,form:"conference",options:{}}]]),n("div",{class:"paper-plan-head",textContent:c(r?.name)},null,8,a9),n("div",l9,c(r.pricePerRepo>0?e.fmt?.number(r.pricePerRepo,2)+" \u20AC per repository":"Free"),1),n("div",{class:"paper-plan-desc",innerHTML:e.sanitize(r?.description)},null,8,d9)],2))),128))])):e.plansLoaded?(a(),l("p",u9,"New conferences are unavailable right now. Please try again later.")):f("v-if",!0)]),e.plan?.pricePerRepo>0?(a(),l("section",c9,[t[43]||(t[43]=n("div",{class:"paper-section-eyebrow"},"Billing",-1)),n("div",p9,[t[36]||(t[36]=n("label",{class:"paper-field-label",for:"billing_name"},"Name",-1)),D(n("input",{type:"text",class:A(["form-control",{"is-invalid":e.conference?.billing_name?.invalid&&(e.conference?.billing_name?.touched||e.conference?.submitted)}]),name:"billing_name",id:"billing_name",required:"",placeholder:"First & last name"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.name=r},value:e.options?.billing?.name,form:"conference",options:{}}]])]),n("div",f9,[t[37]||(t[37]=n("label",{class:"paper-field-label",for:"email"},"Email",-1)),D(n("input",{type:"email",class:A(["form-control",{"is-invalid":e.conference?.email?.invalid&&(e.conference?.email?.touched||e.conference?.submitted)}]),name:"email",id:"email",required:"",placeholder:"you@example.org"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.email=r},value:e.options?.billing?.email,form:"conference",options:{}}]])]),n("div",h9,[t[38]||(t[38]=n("label",{class:"paper-field-label",for:"inputAddress"},"Address",-1)),D(n("input",{type:"text",class:A(["form-control",{"is-invalid":e.conference?.inputAddress?.invalid&&(e.conference?.inputAddress?.touched||e.conference?.submitted)}]),name:"inputAddress",id:"inputAddress",required:"",placeholder:"1234 Main St"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.address=r},value:e.options?.billing?.address,form:"conference",options:{}}]])]),n("div",m9,[D(n("input",{type:"text",class:A(["form-control",{"is-invalid":e.conference?.inputAddress2?.invalid&&(e.conference?.inputAddress2?.touched||e.conference?.submitted)}]),name:"inputAddress2",id:"inputAddress2",placeholder:"Apartment, studio, or floor"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.address2=r},value:e.options?.billing?.address2,form:"conference",options:{}}]])]),n("div",g9,[n("div",v9,[t[39]||(t[39]=n("label",{class:"paper-field-label",for:"city"},"City",-1)),D(n("input",{type:"text",class:A(["form-control",{"is-invalid":e.conference?.city?.invalid&&(e.conference?.city?.touched||e.conference?.submitted)}]),name:"city",id:"city",required:"",placeholder:"City"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.city=r},value:e.options?.billing?.city,form:"conference",options:{}}]])]),n("div",y9,[t[40]||(t[40]=n("label",{class:"paper-field-label",for:"country"},"Country",-1)),D(n("input",{type:"text",class:A(["form-control",{"is-invalid":e.conference?.country?.invalid&&(e.conference?.country?.touched||e.conference?.submitted)}]),name:"country",id:"country",required:"",placeholder:"Country"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.country=r},value:e.options?.billing?.country,form:"conference",options:{}}]])]),n("div",b9,[t[41]||(t[41]=n("label",{class:"paper-field-label",for:"zip"},"Zip",-1)),D(n("input",{type:"text",class:A(["form-control",{"is-invalid":e.conference?.zip?.invalid&&(e.conference?.zip?.touched||e.conference?.submitted)}]),name:"zip",id:"zip",required:"",placeholder:"Zip"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.zip=r},value:e.options?.billing?.zip,form:"conference",options:{}}]])])]),n("div",w9,[t[42]||(t[42]=n("label",{class:"paper-field-label",for:"vat"},"VAT number",-1)),D(n("input",{type:"text",class:A(["form-control",{"is-invalid":e.conference?.vat?.invalid&&(e.conference?.vat?.touched||e.conference?.submitted)}]),name:"vat",id:"vat",placeholder:"VAT Number"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.vat=r},value:e.options?.billing?.vat,form:"conference",options:{}}]])])])):f("v-if",!0),n("div",k9,[e.error?(a(),l("div",{key:0,class:"alert alert-danger",role:"alert",textContent:c(e.error)},null,8,C9)):f("v-if",!0),e.message?(a(),l("div",{key:1,class:"alert alert-success",role:"alert",textContent:c(e.message)},null,8,E9)):f("v-if",!0),n("button",{id:"send",disabled:e.saving,type:"submit",class:"btn btn-ink",onClick:t[0]||(t[0]=ae(r=>e.submitForm(r,()=>{e.submit(r)}),["prevent"]))},c(e.saving?e.editionMode?"Updating\u2026":"Creating\u2026":e.editionMode?"Update conference":"Create conference"),9,S9)])])),[[o,e.viewState]])])])}var N9={key:0,class:"dir-card","aria-label":"Repository files"},R9=["onClick"],A9={class:"dir-name"},P9=["href"],D9={class:"dir-name"},T9={class:"dir-meta"},O9={class:"file-card-head"},I9={class:"file-card-path"},M9={class:"breadcrumb paths","aria-label":"Path"},V9={class:"breadcrumb-item breadcrumb-root"},q9=["href","title","textContent"],_9=["aria-current"],$9=["aria-label"],L9={class:"mobile-sub ms"},F9=["title"],U9={class:"ms-item"},B9={key:1,class:"ms-item"},z9={key:2,class:"ms-item"},H9=["aria-label","title"],j9={class:"ui-icon","aria-hidden":"true"},G9=["href"],W9={key:0,class:"file-card-meta"},K9=["title"],Y9={class:"meta-extra"},X9={key:1,class:"file-card-meta"},Q9=["title"],J9={class:"file-card-actions"},Z9={key:0,class:"csv-toggle seg-filter",role:"radiogroup","aria-label":"CSV view"},x9=["aria-checked"],eB=["aria-checked"],tB={key:1,class:"symbols"},nB=["aria-expanded"],sB={key:0,class:"symbols-menu",role:"menu"},oB={class:"symbols-head"},iB=["onClick"],rB={class:"symbols-name"},aB={class:"symbols-line"},lB=["title"],dB={key:3,class:"tb-view",role:"group","aria-label":"View tools"},uB=["title"],cB=["aria-pressed"],pB=["title"],fB={key:4,class:"tb-file",role:"group","aria-label":"File actions"},hB=["target","title","href"],mB=["aria-label","title"],gB={class:"ui-icon","aria-hidden":"true"},vB=["href"],yB=["target","href","download"],bB=["aria-label"],wB={class:"ui-icon","aria-hidden":"true"},kB=["href"],CB={key:6,class:"tb-toc-m"},EB=["aria-expanded"],SB=["onClick"],NB={class:"tb-more"},RB=["aria-expanded"],AB={viewBox:"0 0 24 24",class:"ui-icon","aria-hidden":"true",style:{fill:"currentColor",stroke:"none"}},PB={key:0,class:"tb-menu-note"},DB={key:1,class:"tb-menu-note tb-menu-meta"},TB={key:2,class:"tb-menu-sep"},OB={key:4,class:"tb-menu-sep"},IB=["aria-checked"],MB={key:0,class:"tb-menu-check"},VB={class:"ui-icon","aria-hidden":"true"},qB=["href"],_B={key:9,class:"tb-menu-sep"},$B=["target","href"],LB=["target","href"],FB=["target","href","download"],UB=["target","href"],BB=["href"],zB=["target","href"],HB=["placeholder","aria-invalid"],jB=["aria-label"],GB={class:"csv-table"},WB=["aria-label"],KB={class:"csv-rownum"},YB=["aria-label"],XB={key:1,class:"file-card-body"},QB={key:2,class:"md-find-bar",role:"search"},JB=["value"],ZB={class:"md-find-nav"},xB=["disabled"],ez=["disabled"],tz={class:"md-find-count","aria-live":"polite"},nz=["aria-pressed"],sz={key:3,class:"reading-layout"},oz=["innerHTML"],iz={key:0,class:"readme-toc","aria-label":"On this page"},rz={class:"toc-rail"},az=["href","onClick"],lz={class:"file-card-head"},dz={class:"file-card-path"},uz={class:"breadcrumb paths","aria-label":"Path"},cz={class:"breadcrumb-item breadcrumb-root"},pz=["href","title","textContent"],fz=["aria-current"],hz=["aria-label"],mz={class:"mobile-sub ms"},gz=["title"],vz={class:"ms-item"},yz={key:1,class:"ms-item"},bz={key:2,class:"ms-item"},wz=["aria-label","title"],kz={class:"ui-icon","aria-hidden":"true"},Cz=["href"],Ez={class:"file-card-meta"},Sz=["title"],Nz={class:"file-card-actions"},Rz={key:0,class:"file-card-state",title:"Files over the size limit can't be previewed or downloaded from this link"},Az={key:1,class:"tb-file",role:"group","aria-label":"File actions"},Pz=["target","title","href"],Dz=["target","href","download"],Tz={class:"tb-more"},Oz=["aria-expanded"],Iz={viewBox:"0 0 24 24",class:"ui-icon","aria-hidden":"true",style:{fill:"currentColor",stroke:"none"}},Mz={key:0,class:"tb-menu-note"},Vz={key:1,class:"tb-menu-sep"},qz=["target","href"],_z=["target","href","download"],$z=["target","href"],Lz={key:0,class:"media-stage"},Fz=["src","alt"],Uz={key:1,class:"media-stage"},Bz=["src"],zz={key:2,class:"media-stage is-audio"},Hz=["src"],jz={key:4,class:"notebook-body"},Gz={key:5,class:"file-state"},Wz={class:"file-state-msg"},Kz={key:0,class:"file-state-actions"},Yz=["target","href","download"],Xz={key:6,class:"file-state",role:"alert"},Qz={class:"file-state-title"},Jz={key:0,class:"file-state-msg"},Zz={key:1,class:"file-state-msg"},xz={key:2,class:"file-state-actions"},eH=["href"],tH={key:7,class:"file-state"},nH={key:4,class:"file-error container d-flex h-100"},sH={class:"paper-ratelimit-card m-auto",style:{"max-width":"520px"}},oH={class:"paper-error-msg"},iH={key:5,class:"file-error container d-flex h-100"},rH={class:"viewer-error paper-error-card file-error-card m-auto",role:"alert","aria-labelledby":"viewer-error-title"},aH={id:"viewer-error-title",class:"paper-empty-title"},lH={class:"paper-error-actions"},dH={key:0,href:"/",class:"btn btn-sm"},uH={key:1,href:"/faq",class:"btn btn-sm"},cH={key:2,class:"btn btn-outline-ink",href:"/dashboard"},pH={key:6,class:"viewer-loading","aria-busy":"true"},fH={class:"viewer-loading-status",role:"status","aria-live":"polite"},hH={class:"viewer-loading-name sr-only"},mH={key:0},gH={class:"viewer-loading-lines","aria-hidden":"true"},vH={key:7,class:"file-error container d-flex h-100"},yH={key:8,class:"file-error container d-flex h-100"};function wp(e,t){let s=Xe("html-doc"),i=Xe("pdfviewer"),o=Xe("notebook"),r=Pe("code-editor");return a(),l(q,null,[e.sidebarHidden&&e.type=="html"&&e.content!=null&&e.paths?.length===1&&/^readme/i.test(e.paths[0]||"")&&e.files?.length?(a(),l("section",N9,[t[46]||(t[46]=n("header",{class:"dir-card-head"},[n("span",{class:"dir-card-title"},"Files"),n("span",{class:"dir-card-sub"},"Snapshot of the repository at review time")],-1)),n("ul",{class:A(["dir-list",{"is-expanded":e.dirExpanded}])},[(a(!0),l(q,null,J(e.rootEntries(),d=>(a(),l("li",{key:d.name},[d.size==null?(a(),l("button",{key:0,type:"button",class:"dir-row",onClick:p=>e.revealFolder(d.name)},[t[43]||(t[43]=n("svg",{class:"dir-icon",viewBox:"0 0 16 16","aria-hidden":"true"},[n("path",{d:"M1.5 3.5h4l1.5 1.5h7.5v8h-13z"})],-1)),n("span",A9,c(d.name),1),t[44]||(t[44]=n("span",{class:"dir-meta"},"Folder",-1))],8,R9)):(a(),l("a",{key:1,class:A(["dir-row",{"is-current":d.name===e.paths[0]}]),href:e.safeUrl("/r/"+e.repoId+"/"+encodeURIComponent(d.name))},[t[45]||(t[45]=n("svg",{class:"dir-icon",viewBox:"0 0 16 16","aria-hidden":"true"},[n("path",{d:"M3.5 1.5h6l3 3v10h-9z"})],-1)),n("span",D9,c(d.name),1),n("span",T9,c(e.formatSize(d.size)),1)],10,P9))]))),128))],2),!e.dirExpanded&&e.files.length>8?(a(),l("button",{key:0,type:"button",class:"dir-more",onClick:t[0]||(t[0]=d=>e.dirExpanded=!0)},"Show all "+c(e.files.length)+" items",1)):f("v-if",!0)])):f("v-if",!0),(e.type=="text"||e.type=="code"||e.type=="html"||e.type=="html-doc"&&e.showSource)&&e.content!=null?(a(),l("section",{key:1,class:A(["file-card",{"is-code":e.type!="html","no-wrap":!e.wrapLines}])},[n("header",O9,[n("div",I9,[n("button",{type:"button",class:A(["btn btn-sm btn-icon-only btn-ghost card-files-btn",{"is-needed":e.sidebarHidden}]),title:"Show file tree",onClick:t[1]||(t[1]=d=>e.sidebarHidden?e.sidebarHidden=!1:e.sidebarCollapsed=!1)},[...t[47]||(t[47]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-sidebar"})],-1),n("span",{class:"card-files-label"},"Files",-1)])],2),n("ol",M9,[n("li",V9,[n("a",{href:e.safeUrl("/r/"+e.repoId+"/"),title:e.repoId,textContent:c(/^[0-9a-f]{8}-[0-9a-f]{4}-/i.test(e.repoId||"")?"repository":e.repoId)},null,8,q9)]),(a(!0),l(q,null,J(e.paths,(d,p)=>(a(),l("li",{class:"breadcrumb-item","aria-current":p===e.paths.length-1?"page":null},[(a(!0),l(q,null,J(e.redactParts(d),(u,y)=>(a(),l(q,{key:y},[u.n?(a(),l("span",{key:0,class:"redact-slot",role:"img","aria-label":"Redacted term "+u.n},[n("i",null,c(u.n),1)],8,$9)):(a(),l(q,{key:1},[g(c(u.t),1)],64))],64))),128))],8,_9))),256))]),n("span",L9,[e.redactionCount()?(a(),l("b",{key:0,class:"ms-item ms-redact",title:e.redactionCount()+" redacted terms"},[g(c(e.redactionCount()),1),t[48]||(t[48]=n("span",{class:"meta-redact-word"}," redacted",-1))],8,F9)):f("v-if",!0),n("span",U9,c(e.type=="html"?"Markdown":e.languageName||"Text"),1),e.fileSize(e.filePath)!=null?(a(),l("span",B9,c(e.formatSize(e.fileSize(e.filePath))),1)):f("v-if",!0),e.type!="html"&&typeof e.content=="string"?(a(),l("span",z9,c(e.fmt?.number(e.content.split(` +`).length))+" lines",1)):f("v-if",!0)]),D(n("button",{type:"button",class:"btn btn-sm btn-icon-only btn-ghost copy-path-btn","aria-label":e.pathCopied?"Path copied":"Copy file path",title:e.pathCopied?"Path copied":"Copy file path",onClick:t[2]||(t[2]=d=>e.copyPath())},[(a(),l("svg",j9,[n("use",{href:e.pathCopied?"#ui-icon-check":"#ui-icon-link"},null,8,G9)]))],8,H9),[[Z,e.filePath]])]),e.type!="html"&&typeof e.content=="string"?(a(),l("span",W9,[e.redactionCount()?(a(),l(q,{key:0},[n("span",{class:"meta-redact",title:e.redactionCount()+" redacted terms"},[g(c(e.redactionCount()),1),t[49]||(t[49]=n("span",{class:"meta-redact-word"}," redacted",-1))],8,K9),t[50]||(t[50]=n("span",{class:"sep"},"\xB7",-1))],64)):f("v-if",!0),g(c(e.languageName||"Text"),1),n("span",Y9,[t[51]||(t[51]=n("span",{class:"sep"},"\xB7",-1)),g(c(e.content.length<1024?e.content.length+" B":(e.content.length/1024).toFixed(1)+" KB"),1)]),t[52]||(t[52]=n("span",{class:"sep"},"\xB7",-1)),g(c(e.fmt?.number(e.content.split(` +`).length))+" lines",1)])):f("v-if",!0),e.type=="html"?(a(),l("span",X9,[e.redactionCount()?(a(),l(q,{key:0},[n("span",{class:"meta-redact",title:e.redactionCount()+" redacted terms"},[g(c(e.redactionCount()),1),t[53]||(t[53]=n("span",{class:"meta-redact-word"}," redacted",-1))],8,Q9),t[54]||(t[54]=n("span",{class:"sep"},"\xB7",-1))],64)):f("v-if",!0),t[56]||(t[56]=g("Markdown",-1)),e.fileSize(e.filePath)!=null?(a(),l(q,{key:1},[t[55]||(t[55]=n("span",{class:"sep"},"\xB7",-1)),g(c(e.formatSize(e.fileSize(e.filePath))),1)],64)):f("v-if",!0)])):f("v-if",!0),e.preview&&e.previewPreserved()?(a(),l("button",{key:2,type:"button",class:"rp-preserved-tag",onClick:t[3]||(t[3]=d=>e.openPreserveFiles())},"Left unredacted")):f("v-if",!0),n("div",J9,[e.isCsv()?(a(),l("div",Z9,[n("button",{type:"button",role:"radio",class:A(["seg-chip",{active:e.csvView==="table"}]),"aria-checked":e.csvView==="table",onClick:t[4]||(t[4]=d=>e.csvView="table")},"Table",10,x9),n("button",{type:"button",role:"radio",class:A(["seg-chip",{active:e.csvView==="raw"}]),"aria-checked":e.csvView==="raw",onClick:t[5]||(t[5]=d=>e.csvView="raw"),title:"Show the file as text with line numbers"},"Text",10,eB)])):f("v-if",!0),e.type!="html"&&e.symbols().length>1?(a(),l("div",tB,[n("button",{type:"button",class:A(["btn btn-sm btn-ghost btn-symbols",{"is-on":e.symbolsOpen}]),"aria-expanded":e.symbolsOpen?"true":"false","aria-haspopup":"true",title:"Symbols in this file",onClick:t[6]||(t[6]=d=>e.symbolsOpen=!e.symbolsOpen)},[...t[57]||(t[57]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-list"})],-1),n("span",{class:"btn-find-label"},"Symbols",-1)])],10,nB),e.symbolsOpen?(a(),l("div",sB,[n("div",oB,c(e.symbols().length)+" "+c(e.symbols().length===1?"symbol":"symbols"),1),(a(!0),l(q,null,J(e.symbols(),d=>(a(),l("button",{type:"button",class:"symbols-item",role:"menuitem",key:d.line+d.name,onClick:p=>e.goToSymbol(d.line)},[n("span",{class:A(["symbols-kind","is-"+d.kind])},c(d.kind==="class"?"C":d.kind==="function"?"\u0192":"v"),3),n("span",rB,c(d.name),1),n("span",aB,c(d.line),1)],8,iB))),128))])):f("v-if",!0)])):f("v-if",!0),e.type=="html"?(a(),l("button",{key:2,type:"button",class:A(["btn btn-sm btn-ghost btn-icon-only btn-find btn-md-find",{"is-on":e.mdFindOpen}]),"aria-label":"Find on this page",title:"Find on this page ("+(e.isMac?"\u2318":"Ctrl+")+"F)",onClick:t[7]||(t[7]=d=>e.toggleMdFind())},[...t[58]||(t[58]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-search"})],-1)])],10,lB)):f("v-if",!0),e.type!="html"&&!(e.isCsv()&&e.csvView==="table")?(a(),l("div",dB,[e.type!="html"?(a(),l("button",{key:0,type:"button",class:"btn btn-sm btn-ghost btn-icon-only btn-goto","aria-label":"Go to line",title:"Go to line ("+(e.isMac?"\u2318":"Ctrl+")+"G)",onClick:t[8]||(t[8]=d=>e.gotoLine())},[...t[59]||(t[59]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-goto"})],-1)])],8,uB)):f("v-if",!0),e.type!="html"?(a(),l("button",{key:1,type:"button",class:A(["btn btn-sm btn-icon-only btn-ghost btn-toggle",{"is-on":e.wrapLines}]),"aria-pressed":e.wrapLines?"true":"false","aria-label":"Wrap lines",title:"Wrap lines (Alt+Z)",onClick:t[9]||(t[9]=d=>e.toggleWrap())},[...t[60]||(t[60]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-wrap"})],-1)])],10,cB)):f("v-if",!0),e.type!="html"?(a(),l("button",{key:2,type:"button",class:"btn btn-sm btn-ghost btn-icon-only btn-find","aria-label":"Find in file",title:"Find in file ("+(e.isMac?"\u2318":"Ctrl+")+"F)",onClick:t[10]||(t[10]=d=>e.findInFile())},[...t[61]||(t[61]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-search"})],-1)])],8,pB)):f("v-if",!0)])):f("v-if",!0),!e.preview||e.url?(a(),l("div",fB,[n("a",{target:e.preview?"_blank":"_self",class:"tb-seg-btn",title:e.type=="html"?"Open the Markdown source":"Open the raw file",href:e.safeUrl(e.url)},"Raw",8,hB),typeof e.content=="string"?(a(),l("button",{key:0,type:"button",class:"tb-seg-btn tb-seg-icon","aria-label":e.contentCopied?"Copied":"Copy file contents",title:e.contentCopied?"Copied":"Copy file contents",onClick:t[11]||(t[11]=d=>e.copyContent())},[(a(),l("svg",gB,[n("use",{href:e.contentCopied?"#ui-icon-check":"#project-icon-copy"},null,8,vB)]))],8,mB)):f("v-if",!0),n("a",{target:e.preview?"_blank":"_self",class:"tb-seg-btn tb-seg-icon","aria-label":"Download file",title:"Download file",href:e.safeUrl(e.downloadUrl()),download:e.preview?e.paths[e.paths.length-1]:null},[...t[62]||(t[62]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-download"})],-1)])],8,yB)])):f("v-if",!0),typeof e.content=="string"?(a(),l("button",{key:5,type:"button",class:"btn btn-sm btn-icon-only btn-ghost tb-copy-m","aria-label":e.contentCopied?"Copied":"Copy file contents",onClick:t[12]||(t[12]=d=>e.copyContent())},[(a(),l("svg",wB,[n("use",{href:e.contentCopied?"#ui-icon-check":"#project-icon-copy"},null,8,kB)]))],8,bB)):f("v-if",!0),e.type=="html"&&e.readmeToc().length>=3?(a(),l("div",CB,[n("button",{type:"button",class:A(["btn btn-sm btn-icon-only btn-ghost tb-toc-btn",{"is-on":e.tocOpen}]),"aria-label":"On this page",title:"On this page","aria-haspopup":"true","aria-expanded":e.tocOpen?"true":"false",onClick:t[13]||(t[13]=ae(d=>{e.tocOpen=!e.tocOpen,e.moreOpen=!1},["stop"]))},[...t[63]||(t[63]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-outline"})],-1)])],10,EB),e.tocOpen?(a(),l("div",{key:0,class:"tb-menu tb-toc-menu",role:"menu",onClick:t[15]||(t[15]=d=>e.tocOpen=!1)},[t[64]||(t[64]=n("div",{class:"tb-menu-label"},"On this page",-1)),n("button",{type:"button",role:"menuitem",class:A(["tb-menu-toc","lvl-2",{"is-active":!e.activeHeading}]),onClick:t[14]||(t[14]=d=>e.scrollToHeading(null))},"Introduction",2),(a(!0),l(q,null,J(e.readmeToc(),d=>(a(),l("button",{type:"button",role:"menuitem",key:"m-"+d.id,class:A(["tb-menu-toc","lvl-"+d.level,{"is-active":e.activeHeading===d.id}]),onClick:p=>e.scrollToHeading(d.id)},c(d.text),11,SB))),128))])):f("v-if",!0)])):f("v-if",!0),n("div",NB,[n("button",{type:"button",class:A(["btn btn-sm btn-icon-only btn-ghost tb-more-btn",{"is-on":e.moreOpen}]),"aria-label":"More actions","aria-haspopup":"true","aria-expanded":e.moreOpen?"true":"false",onClick:t[16]||(t[16]=ae(d=>{e.tocOpen=!1,e.moreOpen=!e.moreOpen},["stop"]))},[(a(),l("svg",AB,[...t[65]||(t[65]=[n("circle",{cx:"5",cy:"12",r:"1.8"},null,-1),n("circle",{cx:"12",cy:"12",r:"1.8"},null,-1),n("circle",{cx:"19",cy:"12",r:"1.8"},null,-1)])]))],10,RB),e.moreOpen?(a(),l("div",{key:0,class:"tb-menu",role:"menu",onClick:t[23]||(t[23]=d=>e.moreOpen=!1)},[e.options?.publishedAt||e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate?(a(),l("div",PB,[t[66]||(t[66]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),g("Snapshot \xB7 "+c(e.fmt?.date(e.options?.publishedAt||e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate)),1)])):f("v-if",!0),typeof e.content=="string"?(a(),l("div",DB,[g(c(e.type=="html"?"Markdown":e.languageName||"Text")+" \xB7 "+c(e.type=="html"&&e.fileSize(e.filePath)!=null?e.formatSize(e.fileSize(e.filePath)):e.content.length<1024?e.content.length+" B":(e.content.length/1024).toFixed(1)+" KB"),1),e.type!="html"?(a(),l(q,{key:0},[g(" \xB7 "+c(e.fmt?.number(e.content.split(` +`).length))+" lines",1)],64)):f("v-if",!0)])):f("v-if",!0),e.options?.publishedAt||e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate?(a(),l("div",TB)):f("v-if",!0),e.type=="html"?(a(),l("button",{key:3,type:"button",role:"menuitem",onClick:t[17]||(t[17]=d=>e.toggleMdFind())},[...t[67]||(t[67]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-search"})],-1),g("Find in file",-1)])])):f("v-if",!0),e.type=="html"?(a(),l("div",OB)):f("v-if",!0),e.type!="html"?(a(),l("button",{key:5,type:"button",role:"menuitem",onClick:t[18]||(t[18]=d=>e.findInFile())},[...t[68]||(t[68]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-search"})],-1),g("Find in file",-1)])])):f("v-if",!0),e.type!="html"?(a(),l("button",{key:6,type:"button",role:"menuitem",onClick:t[19]||(t[19]=d=>e.gotoLine())},[...t[69]||(t[69]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-goto"})],-1),g("Go to line",-1)])])):f("v-if",!0),e.type!="html"?(a(),l("button",{key:7,type:"button",role:"menuitemcheckbox","aria-checked":e.wrapLines?"true":"false",onClick:t[20]||(t[20]=d=>e.toggleWrap())},[t[70]||(t[70]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-wrap"})],-1)),t[71]||(t[71]=g("Wrap lines",-1)),e.wrapLines?(a(),l("span",MB,"\u2713")):f("v-if",!0)],8,IB)):f("v-if",!0),e.isCsv()?(a(),l("button",{key:8,type:"button",role:"menuitem",class:"tb-csv-view",onClick:t[21]||(t[21]=d=>{e.csvView=e.csvView==="table"?"raw":"table",e.moreOpen=!1})},[(a(),l("svg",VB,[n("use",{href:e.csvView==="table"?"#ui-icon-code":"#ui-icon-list"},null,8,qB)])),g(c(e.csvView==="table"?"Show as text":"Show as table"),1)])):f("v-if",!0),e.type!="html"?(a(),l("div",_B)):f("v-if",!0),e.type=="html"&&(!e.preview||e.url)?(a(),l("a",{key:10,role:"menuitem",target:e.preview?"_blank":"_self",href:e.safeUrl(e.url)},[...t[72]||(t[72]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-code"})],-1),g("View raw",-1)])],8,$B)):f("v-if",!0),e.type!="html"&&(!e.preview||e.url)?(a(),l("a",{key:11,role:"menuitem",target:e.preview?"_blank":"_self",href:e.safeUrl(e.url)},[...t[73]||(t[73]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-code"})],-1),g("View raw",-1)])],8,LB)):f("v-if",!0),!e.preview||e.url?(a(),l("a",{key:12,role:"menuitem",target:e.preview?"_blank":"_self",href:e.safeUrl(e.downloadUrl()),download:e.preview?e.paths[e.paths.length-1]:null},[...t[74]||(t[74]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-download"})],-1),g("Download file",-1)])],8,FB)):f("v-if",!0),e.options?.hasWebsite?(a(),l("a",{key:13,role:"menuitem",target:e.preview?"_blank":"_self",href:e.safeUrl("/w/"+e.repoId+"/")},[...t[75]||(t[75]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-globe"})],-1),g("Open website",-1)])],8,UB)):f("v-if",!0),e.options?.isAdmin||e.options?.isOwner?(a(),l("a",{key:14,role:"menuitem",href:e.safeUrl("/anonymize/"+e.repoId)},[...t[76]||(t[76]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),g("Edit anonymization",-1)])],8,BB)):f("v-if",!0),e.options?.download?(a(),l("a",{key:15,role:"menuitem",target:e.preview?"_blank":"_self",href:e.safeUrl("/api/repo/"+e.repoId+"/zip")},[...t[77]||(t[77]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-archive"})],-1),g("Download ZIP",-1)])],8,zB)):f("v-if",!0),n("button",{type:"button",role:"menuitem",onClick:t[22]||(t[22]=d=>e.copyPath())},[...t[78]||(t[78]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-link"})],-1),g("Copy file path",-1)])]),t[79]||(t[79]=n("div",{class:"tb-menu-sep"},null,-1)),t[80]||(t[80]=n("a",{role:"menuitem",href:"/faq"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-help"})]),g("FAQ")],-1)),t[81]||(t[81]=n("a",{role:"menuitem",href:"https://github.com/tdurieux/anonymous_github/issues/new?template=issue_report.yml",target:"_blank",rel:"noopener"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-bug"})]),g("Report a bug")],-1))])):f("v-if",!0)])]),e.gotoOpen&&e.type!="html"?(a(),l("form",{key:3,class:"goto-pop",role:"dialog","aria-label":"Go to line",onSubmit:t[26]||(t[26]=ae(d=>e.submitGoto(),["prevent"]))},[t[82]||(t[82]=n("label",{class:"goto-label",for:"goto-input"},"Go to line",-1)),D(n("input",{id:"goto-input",class:"goto-input",type:"text",inputmode:"numeric",autocomplete:"off",spellcheck:"false",placeholder:"1\u2013"+e.fmt?.number(typeof e.content=="string"?e.content.split(` +`).length:1),"aria-invalid":e.gotoError?"true":"false","onUpdate:modelValue":t[24]||(t[24]=d=>e.gotoValue=d),onKeydown:t[25]||(t[25]=kt(ae(d=>e.closeGoto(),["prevent","stop"]),["esc"]))},null,40,HB),[[pt,e.gotoValue]]),n("span",{class:A(["goto-hint",{"is-error":e.gotoError}])},c(e.gotoError||"Line, or line:column"),3)],32)):f("v-if",!0)]),e.isCsv()&&e.csvView==="table"?(a(),l("div",{key:0,class:"csv-table-wrap",tabindex:"0",role:"region","aria-label":"Table view of "+(e.paths?.[e.paths.length-1]||"file")},[n("table",GB,[n("thead",null,[n("tr",null,[t[83]||(t[83]=n("th",{class:"csv-rownum",scope:"col"},[n("span",{class:"sr-only"},"Row")],-1)),(a(!0),l(q,null,J(e.csvRows()[0]||[],(d,p)=>(a(),l("th",{scope:"col",key:p,class:A({"is-num":e.csvNumCol(p)})},[(a(!0),l(q,null,J(e.redactParts(d),(u,y)=>(a(),l(q,{key:y},[u.n?(a(),l("span",{key:0,class:"redact-slot",role:"img","aria-label":"Redacted term "+u.n},[n("i",null,c(u.n),1)],8,WB)):(a(),l(q,{key:1},[g(c(u.t),1)],64))],64))),128))],2))),128))])]),n("tbody",null,[(a(!0),l(q,null,J(e.csvRows().slice(1),(d,p)=>(a(),l("tr",{key:p},[n("td",KB,c(p+1),1),(a(!0),l(q,null,J(d,(u,y)=>(a(),l("td",{key:y,class:A({"is-num":e.csvNumCol(y)})},[(a(!0),l(q,null,J(e.redactParts(u),(m,b)=>(a(),l(q,{key:b},[m.n?(a(),l("span",{key:0,class:"redact-slot",role:"img","aria-label":"Redacted term "+m.n},[n("i",null,c(m.n),1)],8,YB)):(a(),l(q,{key:1},[g(c(m.t),1)],64))],64))),128))],2))),128))]))),128))])])],8,jB)):f("v-if",!0),e.type!="html"&&!(e.isCsv()&&e.csvView==="table")?D((a(),l("div",XB,null,512)),[[r,{content:e.content,options:e.aceOption}]]):f("v-if",!0),e.type=="html"&&e.mdFindOpen?(a(),l("div",QB,[n("input",{type:"search",class:"md-find-input",placeholder:"Find on this page","aria-label":"Find on this page",value:e.mdFindQuery,onInput:t[27]||(t[27]=d=>{e.mdFindQuery=d.target.value,e.runMdFind()}),onKeydown:[t[28]||(t[28]=kt(ae(d=>d.shiftKey?e.stepMdFind(-1):e.stepMdFind(1),["prevent"]),["enter"])),t[29]||(t[29]=kt(ae(d=>e.toggleMdFind(!1),["prevent"]),["esc"]))]},null,40,JB),n("span",ZB,[n("button",{type:"button","aria-label":"Previous match",onClick:t[30]||(t[30]=d=>e.stepMdFind(-1)),disabled:!e.mdFindTotal},[...t[84]||(t[84]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1)])],8,xB),n("button",{type:"button","aria-label":"Next match",onClick:t[31]||(t[31]=d=>e.stepMdFind(1)),disabled:!e.mdFindTotal},[...t[85]||(t[85]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,ez)]),n("span",tz,c(e.mdFindQuery?e.mdFindTotal?e.mdFindIndex+1+" of "+e.mdFindTotal:"No results":""),1),n("button",{type:"button",class:A(["md-find-opt",{"is-on":e.mdFindCase}]),"aria-pressed":e.mdFindCase?"true":"false",title:"Match case","aria-label":"Match case",onClick:t[32]||(t[32]=d=>{e.mdFindCase=!e.mdFindCase,e.runMdFind()})},"Aa",10,nz),n("button",{type:"button",class:"md-find-close","aria-label":"Close find",onClick:t[33]||(t[33]=d=>e.toggleMdFind(!1))},"\xD7")])):f("v-if",!0),e.type=="html"?(a(),l("div",sz,[n("div",{class:"file-content markdown-body",innerHTML:e.renderReadme(e.sanitize(e.content))},null,8,oz),e.readmeToc().length>=3?(a(),l("aside",iz,[t[86]||(t[86]=n("div",{class:"readme-toc-head"},"On this page",-1)),n("nav",rz,[n("a",{href:"#",class:A(["lvl-2 toc-top",{"is-active":!e.activeHeading}]),onClick:t[34]||(t[34]=ae(d=>e.scrollToHeading(null),["prevent"]))},"Introduction",2),(a(!0),l(q,null,J(e.readmeToc(),(d,p)=>(a(),l("a",{key:d.id,href:"#"+d.id,class:A(["lvl-"+d.level,{"is-active":e.activeHeading===d.id}]),onClick:ae(u=>e.scrollToHeading(d.id),["prevent"])},c(d.text),11,az))),128))])])):f("v-if",!0)])):f("v-if",!0)],2)):f("v-if",!0),e.type=="html-doc"&&!e.showSource&&e.content!=null?(a(),Wt(s,{key:2,content:e.content,"base-url":e.fileBaseUrl,"allow-scripts":e.allowScripts},null,8,["content","base-url","allow-scripts"])):f("v-if",!0),e.fileFrame()?(a(),l("section",{key:3,class:A(["file-card file-card-media","view-"+e.type])},[n("header",lz,[n("div",dz,[n("button",{type:"button",class:A(["btn btn-sm btn-icon-only btn-ghost card-files-btn",{"is-needed":e.sidebarHidden}]),title:"Show file tree",onClick:t[35]||(t[35]=d=>e.sidebarHidden?e.sidebarHidden=!1:e.sidebarCollapsed=!1)},[...t[87]||(t[87]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-sidebar"})],-1),n("span",{class:"card-files-label"},"Files",-1)])],2),n("ol",uz,[n("li",cz,[n("a",{href:e.safeUrl("/r/"+e.repoId+"/"),title:e.repoId,textContent:c(/^[0-9a-f]{8}-[0-9a-f]{4}-/i.test(e.repoId||"")?"repository":e.repoId)},null,8,pz)]),(a(!0),l(q,null,J(e.paths,(d,p)=>(a(),l("li",{class:"breadcrumb-item","aria-current":p===e.paths.length-1?"page":null},[(a(!0),l(q,null,J(e.redactParts(d),(u,y)=>(a(),l(q,{key:y},[u.n?(a(),l("span",{key:0,class:"redact-slot",role:"img","aria-label":"Redacted term "+u.n},[n("i",null,c(u.n),1)],8,hz)):(a(),l(q,{key:1},[g(c(u.t),1)],64))],64))),128))],8,fz))),256))]),n("span",mz,[e.type=="IPython"&&e.redactionCount()?(a(),l("b",{key:0,class:"ms-item ms-redact",title:e.redactionCount()+" redacted terms"},[g(c(e.redactionCount()),1),t[88]||(t[88]=n("span",{class:"meta-redact-word"}," redacted",-1))],8,gz)):f("v-if",!0),n("span",vz,c(e.fileKind()),1),e.imageSize?(a(),l("span",yz,c(e.imageSize),1)):f("v-if",!0),e.fileSize(e.filePath)!=null?(a(),l("span",bz,c(e.formatSize(e.fileSize(e.filePath))),1)):f("v-if",!0)]),D(n("button",{type:"button",class:"btn btn-sm btn-icon-only btn-ghost copy-path-btn","aria-label":e.pathCopied?"Path copied":"Copy file path",title:e.pathCopied?"Path copied":"Copy file path",onClick:t[36]||(t[36]=d=>e.copyPath())},[(a(),l("svg",kz,[n("use",{href:e.pathCopied?"#ui-icon-check":"#ui-icon-link"},null,8,Cz)]))],8,wz),[[Z,e.filePath]])]),n("span",Ez,[e.type=="IPython"&&e.redactionCount()?(a(),l(q,{key:0},[n("span",{class:"meta-redact",title:e.redactionCount()+" redacted terms"},[g(c(e.redactionCount()),1),t[89]||(t[89]=n("span",{class:"meta-redact-word"}," redacted",-1))],8,Sz),t[90]||(t[90]=n("span",{class:"sep"},"\xB7",-1))],64)):f("v-if",!0),g(c(e.fileKind()),1),e.imageSize?(a(),l(q,{key:1},[t[91]||(t[91]=n("span",{class:"sep"},"\xB7",-1)),g(c(e.imageSize),1)],64)):f("v-if",!0),e.fileSize(e.filePath)!=null?(a(),l(q,{key:2},[t[92]||(t[92]=n("span",{class:"sep"},"\xB7",-1)),g(c(e.formatSize(e.fileSize(e.filePath))),1)],64)):f("v-if",!0)]),e.preview&&e.previewPreserved()?(a(),l("button",{key:0,type:"button",class:"rp-preserved-tag",onClick:t[37]||(t[37]=d=>e.openPreserveFiles())},"Left unredacted")):f("v-if",!0),n("div",Nz,[e.type=="error"&&e.content==="file_too_big"?(a(),l("span",Rz,[...t[93]||(t[93]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-info"})],-1),g("Over the size limit",-1)])])):f("v-if",!0),e.type!="error"&&(!e.preview||e.url)?(a(),l("div",Az,[n("a",{target:e.preview?"_blank":"_self",class:"tb-seg-btn",title:e.type=="IPython"?"Open the notebook JSON":"Open the raw file",href:e.safeUrl(e.url)},"Raw",8,Pz),n("a",{target:e.preview?"_blank":"_self",class:"tb-seg-btn tb-seg-icon","aria-label":"Download file",title:"Download file",href:e.safeUrl(e.downloadUrl()),download:e.preview?e.paths[e.paths.length-1]:null},[...t[94]||(t[94]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-download"})],-1)])],8,Dz)])):f("v-if",!0),n("div",Tz,[n("button",{type:"button",class:A(["btn btn-sm btn-icon-only btn-ghost tb-more-btn",{"is-on":e.moreOpen}]),"aria-label":"More actions","aria-haspopup":"true","aria-expanded":e.moreOpen?"true":"false",onClick:t[38]||(t[38]=ae(d=>e.moreOpen=!e.moreOpen,["stop"]))},[(a(),l("svg",Iz,[...t[95]||(t[95]=[n("circle",{cx:"5",cy:"12",r:"1.8"},null,-1),n("circle",{cx:"12",cy:"12",r:"1.8"},null,-1),n("circle",{cx:"19",cy:"12",r:"1.8"},null,-1)])]))],10,Oz),e.moreOpen?(a(),l("div",{key:0,class:"tb-menu",role:"menu",onClick:t[40]||(t[40]=d=>e.moreOpen=!1)},[e.options?.publishedAt||e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate?(a(),l("div",Mz,[t[96]||(t[96]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),g("Snapshot \xB7 "+c(e.fmt?.date(e.options?.publishedAt||e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate)),1)])):f("v-if",!0),e.options?.publishedAt||e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate?(a(),l("div",Vz)):f("v-if",!0),e.type!="error"&&(!e.preview||e.url)?(a(),l("a",{key:2,role:"menuitem",target:e.preview?"_blank":"_self",href:e.safeUrl(e.url)},[t[97]||(t[97]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-code"})],-1)),g(c(e.type=="IPython"?"View notebook JSON":"View raw"),1)],8,qz)):f("v-if",!0),e.type!="error"&&(!e.preview||e.url)?(a(),l("a",{key:3,role:"menuitem",target:e.preview?"_blank":"_self",href:e.safeUrl(e.downloadUrl()),download:e.preview?e.paths[e.paths.length-1]:null},[...t[98]||(t[98]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-download"})],-1),g("Download file",-1)])],8,_z)):f("v-if",!0),e.options?.download?(a(),l("a",{key:4,role:"menuitem",target:e.preview?"_blank":"_self",href:e.safeUrl("/api/repo/"+e.repoId+"/zip")},[...t[99]||(t[99]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-archive"})],-1),g("Download ZIP",-1)])],8,$z)):f("v-if",!0),n("button",{type:"button",role:"menuitem",onClick:t[39]||(t[39]=d=>e.copyPath())},[...t[100]||(t[100]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-link"})],-1),g("Copy file path",-1)])]),t[101]||(t[101]=n("div",{class:"tb-menu-sep"},null,-1)),t[102]||(t[102]=n("a",{role:"menuitem",href:"/faq"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-help"})]),g("FAQ")],-1)),t[103]||(t[103]=n("a",{role:"menuitem",href:"https://github.com/tdurieux/anonymous_github/issues/new?template=issue_report.yml",target:"_blank",rel:"noopener"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-bug"})]),g("Report a bug")],-1))])):f("v-if",!0)])])]),e.type=="image"?(a(),l("div",Lz,[n("img",{class:"image-content",src:e.safeUrl(e.url),alt:e.paths[e.paths.length-1],onLoad:t[41]||(t[41]=d=>e.onImageLoad(d))},null,40,Fz)])):f("v-if",!0),e.type=="media"?(a(),l("div",Uz,[n("video",{class:"video-content",controls:"",preload:"metadata",playsinline:"",src:e.safeUrl(e.url)},null,8,Bz)])):f("v-if",!0),e.type=="audio"?(a(),l("div",zz,[n("audio",{controls:"",preload:"metadata",src:e.safeUrl(e.url)},null,8,Hz)])):f("v-if",!0),e.type=="pdf"?(a(),Wt(i,{key:3,src:e.safeUrl(e.url)},null,8,["src"])):f("v-if",!0),e.type=="IPython"?(a(),l("div",jz,[Oe(o,{class:"markdown-body",file:e.url,content:e.content},null,8,["file","content"])])):f("v-if",!0),e.type=="binary"?(a(),l("div",Gz,[t[105]||(t[105]=n("svg",{class:"ui-icon file-state-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-file"})],-1)),t[106]||(t[106]=n("h2",{class:"file-state-title"},"No preview for this file",-1)),n("p",Wz,c(e.preview?"Reviewers can open this file; it is not previewed here.":"This is a binary file. Download it to open it on your computer."),1),e.preview?f("v-if",!0):(a(),l("div",Kz,[n("a",{target:e.preview?"_blank":"_self",class:"btn btn-primary",href:e.safeUrl(e.downloadUrl()),download:e.preview?e.paths[e.paths.length-1]:null},[...t[104]||(t[104]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-download"})],-1),g("Download file",-1)])],8,Yz)]))])):f("v-if",!0),e.type=="error"?(a(),l("div",Xz,[t[108]||(t[108]=n("svg",{class:"ui-icon file-state-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),n("h2",Qz,c(e.content==="file_too_big"?"This file is too large to preview":"This file can't be shown"),1),e.content==="file_too_big"?(a(),l("p",Jz,c(e.preview?"Reviewers can open this file; it is not previewed here. Files over 1 MB are only shown on the reviewer page.":"It is over the size limit for anonymized files, so it can't be previewed or downloaded from this link."),1)):(a(),l("p",Zz,c(e.fmt.translate("ERRORS."+e.content)),1)),e.preview?f("v-if",!0):(a(),l("div",xz,[n("a",{class:"btn btn-primary",href:e.safeUrl("/r/"+e.repoId+"/")},"Back to the repository",8,eH),t[107]||(t[107]=n("a",{class:"btn btn-outline-ink",href:"/faq#formats"},"Supported files",-1))]))])):f("v-if",!0),e.content==null&&e.type!="error"?(a(),l("div",tH,[...t[109]||(t[109]=[n("svg",{class:"ui-icon file-state-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-file"})],-1),n("h2",{class:"file-state-title"},"This file is empty",-1),n("p",{class:"file-state-msg"},"It has no content in this snapshot.",-1)])])):f("v-if",!0)],2)):f("v-if",!0),e.type=="rate_limited"?(a(),l("div",nH,[n("div",sH,[t[112]||(t[112]=Ce('
Temporarily paused
GitHub API rate limit reached
',1)),n("p",oH,[t[110]||(t[110]=g("This repository will be available in ",-1)),n("strong",null,c(e.rateLimitCountdown),1),t[111]||(t[111]=g(". The page will reload automatically.",-1))])])])):f("v-if",!0),e.type=="error"&&!e.fileFrame()?(a(),l("div",iH,[n("section",rH,[n("h1",aH,c(e.fmt.translate(e.isSourceAccessError()?"VIEWER_ERRORS.access_title":"VIEWER_ERRORS.title")),1),n("p",null,c(e.fmt.translate("ERRORS."+e.content)),1),e.isSourceAccessError()?(a(),l(q,{key:0},[n("p",null,c(e.fmt.translate("VIEWER_ERRORS.reader_help")),1),n("p",null,c(e.fmt.translate("VIEWER_ERRORS.owner_help")),1)],64)):f("v-if",!0),n("div",lH,[e.isSourceAccessError()?f("v-if",!0):(a(),l("a",dH,"Back to home")),e.isSourceAccessError()?f("v-if",!0):(a(),l("a",uH,"Read the FAQ")),n("button",{type:"button",class:"btn btn-primary",onClick:t[42]||(t[42]=d=>e.retryContent())},c(e.fmt.translate("VIEWER_ERRORS.retry")),1),e.isSourceAccessError()?(a(),l("a",cH,c(e.fmt.translate("VIEWER_ERRORS.dashboard")),1)):f("v-if",!0)])])])):f("v-if",!0),e.type=="loading"&&!e.error?(a(),l("section",pH,[n("div",fH,[n("strong",null,c(e.fmt.translate(e.fileReceivedBytes?"VIEWER_LOADING.receiving":"VIEWER_LOADING.loading")),1),n("span",hH,c(e.filePath),1),e.fileLoadingSlow?(a(),l("p",mH,c(e.fmt.translate("VIEWER_LOADING.slow")),1)):f("v-if",!0)]),n("div",gH,[(a(),l(q,null,J(10,d=>n("span",{key:d})),64))])])):f("v-if",!0),e.type=="empty"?(a(),l("div",vH,[...t[113]||(t[113]=[n("h1",{class:"paper-empty-title m-auto"},[g("Empty "),n("em",null,"repository"),g(".")],-1)])])):f("v-if",!0),e.content==null&&!["empty","loading","error","rate_limited"].includes(e.type)&&!e.fileFrame()?(a(),l("div",yH,[...t[114]||(t[114]=[n("h1",{class:"paper-empty-title m-auto"},[g("Empty "),n("em",null,"file"),g(".")],-1)])])):f("v-if",!0)],64)}var bH={class:"container page dashboard-page paper-page"},wH={class:"row"},kH={class:"w-100"},CH={class:"w-100","aria-label":"Pull Requests","accept-charset":"UTF-8"},EH={class:"d-flex flex-column flex-md-row align-items-md-center",style:{gap:"8px"}},SH={class:"flex-grow-1"},NH={type:"search",id:"search",class:"form-control","aria-label":"Find a pull request...",placeholder:"Find a pull request...",autocomplete:"off"},RH={class:"d-flex flex-wrap",style:{gap:"6px"}},AH={class:"dropdown"},PH={class:"dropdown-menu","aria-labelledby":"dropdownSort"},DH={class:"form-check dropdown-item"},TH={class:"form-check-input",type:"radio",name:"sort",id:"sortFullName",value:"fullName"},OH={class:"form-check dropdown-item"},IH={class:"form-check-input",type:"radio",name:"sort",id:"sortAnonymizeDate",value:"-anonymizeDate"},MH={class:"form-check dropdown-item"},VH={class:"form-check-input",type:"radio",name:"sort",id:"sortStatus",value:"-status"},qH={class:"form-check dropdown-item"},_H={class:"form-check-input",type:"radio",name:"sort",id:"sortLastView",value:"-lastView"},$H={class:"form-check dropdown-item"},LH={class:"form-check-input",type:"radio",name:"sort",id:"sortPageView",value:"-pageView"},FH={class:"dropdown"},UH={class:"dropdown-menu","aria-labelledby":"dropdownStatus"},BH={class:"form-check dropdown-item"},zH={class:"form-check-input",type:"checkbox",name:"sort",id:"statusReady",value:"ready"},HH={class:"form-check dropdown-item"},jH={class:"form-check-input",type:"checkbox",name:"sort",id:"statusExpired",value:"expired"},GH={class:"form-check dropdown-item"},WH={class:"form-check-input",type:"checkbox",name:"sort",id:"statusRemoved",value:"removed"},KH={class:"d-flex flex-wrap mt-2",style:{gap:"6px"}},YH={class:"filter-chip"},XH=["onClick"],QH={class:"repo-list w-100"},JH={class:"repo-list-item-content"},ZH={class:"repo-list-item-main"},xH={class:"repo-list-item-header"},ej=["textContent","href"],tj=["textContent"],nj=["textContent"],sj={class:"repo-source"},oj=["href"],ij={class:"repo-date"},rj={class:"repo-meta"},aj={key:0,title:"Conference"},lj=["title"],dj=["title"],uj=["title"],cj={key:1},pj={class:"repo-list-item-actions"},fj={class:"dropdown"},hj={class:"dropdown-menu dropdown-menu-right"},mj=["href"],gj=["onClick"],vj=["onClick"],yj=["onClick"],bj=["href"],wj={key:0,class:"repo-list-empty"};function kp(e,t){let s=Pe("field"),i=Pe("form");return a(),l("div",bH,[n("div",wH,[n("div",kH,[t[12]||(t[12]=Ce('
My work \xA0/\xA0 Pull requests

Anonymized pull requests

Track PR mirrors you\u2019ve created and their reviewer traffic.

',2)),f(" Search + filters row "),D((a(),l("form",CH,[n("div",EH,[n("div",SH,[D(n("input",NH,null,512),[[s,{state:e.viewState,set:o=>{e.search=o},value:e.search,form:null,options:{}}]])]),n("div",RH,[n("div",AH,[t[6]||(t[6]=n("button",{class:"btn btn-sm dropdown-toggle",type:"button",id:"dropdownSort","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"}," Sort ",-1)),n("div",PH,[t[5]||(t[5]=n("h6",{class:"dropdown-header"},"Select order",-1)),n("div",DH,[D(n("input",TH,null,512),[[s,{state:e.viewState,set:o=>{e.orderBy=o},value:e.orderBy,form:null,options:{}}]]),t[0]||(t[0]=n("label",{class:"form-check-label",for:"sortFullName"},"Pull Request",-1))]),n("div",OH,[D(n("input",IH,null,512),[[s,{state:e.viewState,set:o=>{e.orderBy=o},value:e.orderBy,form:null,options:{}}]]),t[1]||(t[1]=n("label",{class:"form-check-label",for:"sortAnonymizeDate"},"Anonymize Date",-1))]),n("div",MH,[D(n("input",VH,null,512),[[s,{state:e.viewState,set:o=>{e.orderBy=o},value:e.orderBy,form:null,options:{}}]]),t[2]||(t[2]=n("label",{class:"form-check-label",for:"sortStatus"},"Status",-1))]),n("div",qH,[D(n("input",_H,null,512),[[s,{state:e.viewState,set:o=>{e.orderBy=o},value:e.orderBy,form:null,options:{}}]]),t[3]||(t[3]=n("label",{class:"form-check-label",for:"sortLastView"},"Last View",-1))]),n("div",$H,[D(n("input",LH,null,512),[[s,{state:e.viewState,set:o=>{e.orderBy=o},value:e.orderBy,form:null,options:{}}]]),t[4]||(t[4]=n("label",{class:"form-check-label",for:"sortPageView"},"Page View",-1))])])]),n("div",FH,[t[11]||(t[11]=n("button",{class:"btn btn-sm dropdown-toggle",type:"button",id:"dropdownStatus","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"}," Status ",-1)),n("div",UH,[t[10]||(t[10]=n("h6",{class:"dropdown-header"},"Select status",-1)),n("div",BH,[D(n("input",zH,null,512),[[s,{state:e.viewState,set:o=>{e.filters.status.ready=o},value:e.filters?.status?.ready,form:null,options:{}}]]),t[7]||(t[7]=n("label",{class:"form-check-label",for:"statusReady"},"Ready",-1))]),n("div",HH,[D(n("input",jH,null,512),[[s,{state:e.viewState,set:o=>{e.filters.status.expired=o},value:e.filters?.status?.expired,form:null,options:{}}]]),t[8]||(t[8]=n("label",{class:"form-check-label",for:"statusExpired"},"Expired",-1))]),n("div",GH,[D(n("input",WH,null,512),[[s,{state:e.viewState,set:o=>{e.filters.status.removed=o},value:e.filters?.status?.removed,form:null,options:{}}]]),t[9]||(t[9]=n("label",{class:"form-check-label",for:"statusRemoved"},"Removed",-1))])])])])])])),[[i,e.viewState]]),f(" Active filter chips "),D(n("div",KH,[(a(!0),l(q,null,J(e.filters?.status,(o,r,d)=>D((a(),l("span",YH,[g(c(e.fmt?.title(r))+" ",1),n("button",{type:"button",class:"filter-chip-close","aria-label":"Remove filter",onClick:p=>{e.filters.status[r]=!0}}," \xD7 ",8,XH)],512)),[[Z,!o]])),256))],512),[[Z,e.filters?.status?.ready===!1||e.filters?.status?.expired===!1||e.filters?.status?.removed===!1]])]),f(" Pull request list "),n("ul",QH,[(a(!0),l(q,null,J(e.filteredPullRequests,(o,r)=>(a(),l("li",{class:A(["repo-list-item",{"repo-inactive":o?.status=="expired"||o?.status=="removed"||o?.status=="error"}])},[n("div",JH,[n("div",ZH,[n("div",xH,[n("a",{class:"repo-name",textContent:c(o?.pullRequestId),href:e.safeUrl("/pr/"+o?.pullRequestId)},null,8,ej),n("span",{class:A(["status-badge",{"status-removed":o?.status=="removed"||o?.status=="expired"||o?.status=="removing"||o?.status=="expiring","status-preparing":o?.status=="preparing"||o?.status=="download","status-ready":o?.status=="ready","status-error":o?.status=="error"}])},[n("span",{textContent:c(e.fmt?.title(o?.status))},null,8,tj),o?.status=="error"?(a(),l("span",{key:0,textContent:c(": "+o?.statusMessage)},null,8,nj)):f("v-if",!0)],2)]),n("div",sj,[n("span",null,[t[13]||(t[13]=n("i",{class:"fab fa-github","aria-hidden":"true"},null,-1)),n("a",{href:e.safeUrl("https://github.com/"+o?.source?.repositoryFullName+"/pull/"+o?.source?.pullRequestId)},c(o?.source?.repositoryFullName)+"#"+c(o?.source?.pullRequestId),9,oj)]),n("span",{class:A(["status-badge",{"status-ready":o?.merged,"status-removed":o?.state=="open","status-error":o?.state=="closed"&&!o?.merged}]),style:{"font-size":"10px"}},c(e.fmt?.title(o?.merged?"merged":o?.state)),3),n("span",ij,"anonymized "+c(e.fmt?.humanTime(o?.anonymizeDate)),1)])]),n("div",rj,[o?.conference?(a(),l("span",aj,[t[14]||(t[14]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-conference"})],-1)),g(" "+c(o?.conference),1)])):f("v-if",!0),n("span",{"data-toggle":"tooltip","data-placement":"bottom",title:"Terms: "+o?.options?.terms?.join(", ")},[t[15]||(t[15]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1)),g(" "+c(e.fmt?.number(o?.options?.terms?.length)),1)],8,lj),n("span",{"data-toggle":"tooltip","data-placement":"bottom",title:"Views: "+e.fmt?.number(o?.pageView)},[t[16]||(t[16]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1)),g(" "+c(e.fmt?.number(o?.pageView)),1)],8,dj),n("span",{"data-toggle":"tooltip","data-placement":"bottom",title:"Last view: "+e.fmt?.date(o?.lastView)},[t[17]||(t[17]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-calendar"})],-1)),g(" "+c(e.fmt?.humanTime(o?.lastView)),1)],8,uj),o?.options?.expirationMode!="never"&&o?.status=="ready"?(a(),l("span",cj,[t[18]||(t[18]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),g(" Expire: "+c(e.fmt?.humanTime(o?.options?.expirationDate)),1)])):f("v-if",!0)])]),n("div",pj,[n("div",fj,[t[24]||(t[24]=n("button",{class:"btn btn-sm dropdown-toggle",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"}," Actions ",-1)),n("div",hj,[n("a",{class:"dropdown-item",href:e.safeUrl("/pull-request-anonymize/"+o?.pullRequestId)},[...t[19]||(t[19]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),g(" Edit ",-1)])],8,mj),D(n("a",{class:"dropdown-item",href:"#",onClick:ae(d=>e.updatePullRequest(o),["prevent"])},[...t[20]||(t[20]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),g(" Force update ",-1)])],8,gj),[[Z,o?.status=="ready"||o?.status=="error"]]),D(n("a",{class:"dropdown-item",href:"#",onClick:ae(d=>e.updatePullRequest(o),["prevent"])},[...t[21]||(t[21]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-check-circle"})],-1),g(" Enable ",-1)])],8,vj),[[Z,o?.status=="removed"]]),D(n("a",{class:"dropdown-item",href:"#",onClick:ae(d=>e.removePullRequest(o),["prevent"])},[...t[22]||(t[22]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1),g(" Remove ",-1)])],8,yj),[[Z,o?.status=="ready"]]),n("a",{class:"dropdown-item",href:e.safeUrl("/pr/"+o?.pullRequestId+"/")},[...t[23]||(t[23]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),g(" View PR ",-1)])],8,bj)])])])],2))),256)),e.filteredPullRequests?.length==0?(a(),l("li",wj,[...t[25]||(t[25]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1),n("span",null,"No pull requests to display.",-1)])])):f("v-if",!0)])])])}var kj={class:"container paper-page user-settings"},Cj={class:"settings-nav","aria-label":"Settings"},Ej=["aria-current","onClick"],Sj={class:"settings-row"},Nj=["rows"],Rj={class:"settings-syntax"},Aj={class:"invalid-feedback"},Pj={class:"settings-row"},Dj={class:"settings-checks"},Tj={class:"settings-check"},Oj={class:"form-check-input",type:"checkbox",id:"link",name:"link"},Ij={class:"settings-check"},Mj={class:"form-check-input",type:"checkbox",id:"image",name:"image"},Vj={class:"settings-check"},qj={class:"form-check-input",type:"checkbox",id:"pdf",name:"pdf"},_j={class:"settings-check"},$j={class:"form-check-input",type:"checkbox",id:"notebook",name:"notebook"},Lj={class:"settings-check"},Fj={class:"form-check-input",type:"checkbox",id:"loc",name:"loc"},Uj={class:"settings-check"},Bj={class:"form-check-input",type:"checkbox",id:"page",name:"page"},zj={class:"settings-row"},Hj={class:"settings-check"},jj={class:"form-check-input",type:"checkbox",id:"update",name:"update"},Gj={class:"settings-row"},Wj={class:"form-control",id:"expiration",name:"expiration"},Kj={class:"settings-help"},Yj={class:"settings-save"},Xj={class:"settings-save-status draft-status",role:"status"},Qj={key:0},Jj={key:1},Zj={key:2},xj=["disabled"],eG={key:1,class:"settings-save-error",role:"alert"},tG=["aria-busy"],nG={key:0,role:"status"},sG={key:1,class:"settings-notice",role:"alert"},oG=["disabled"],iG={key:2,class:"settings-notice",role:"status"},rG={key:3,class:"settings-notice",role:"status"},aG=["disabled"],lG={class:"billing-summary"},dG={class:"billing-summary-head"},uG={class:"billing-plan-name"},cG={key:0,class:"billing-plan-meta"},pG={key:1,class:"billing-plan-meta"},fG={key:0,class:"billing-summary-actions"},hG=["disabled"],mG={id:"settings-quota"},gG={key:1,role:"status"},vG={key:0,class:"settings-notice"},yG={key:1,class:"settings-notice"},bG={key:2,class:"settings-notice"},wG={key:4,class:"billing-section","aria-labelledby":"settings-plan-comparison"},kG={key:0,class:"billing-offers"},CG={key:0,class:"billing-offer is-recommended"},EG={class:"billing-offer-price"},SG={class:"billing-offer-list"},NG=["disabled"],RG={key:1,class:"billing-offer"},AG={class:"billing-offer-head"},PG={class:"billing-toggle",role:"radiogroup","aria-label":"Billing frequency"},DG=["aria-checked","onClick"],TG={key:0,class:"billing-toggle-save"},OG={class:"billing-offer-price"},IG={class:"billing-offer-list"},MG=["disabled"],VG={key:1,class:"billing-addons"},qG={class:"billing-addon-rows"},_G={class:"billing-addon-price"},$G=["onClick","disabled"],LG={key:2,class:"billing-buy",id:"settings-addons-title",tabindex:"-1"},FG={class:"billing-buy-info"},UG={class:"billing-offer-price"},BG={class:"billing-offer-list"},zG={class:"billing-buy-form"},HG=["value"],jG=["disabled"],GG={key:1,class:"billing-buy-desc"},WG={key:2,class:"billing-footnote"},KG={class:"billing-compare"},YG={class:"billing-compare-card"},XG={class:"settings-comparison"},QG={key:0,scope:"col",class:"is-recommended"},JG={key:1,scope:"col"},ZG={key:0,class:"is-recommended"},xG={key:1},eW={key:0,class:"is-recommended"},tW={key:1},nW={key:0,class:"is-recommended"},sW={key:1},oW={key:0,class:"is-recommended"},iW={key:1},rW={key:0,class:"is-recommended"},aW={key:1},lW={key:0,class:"is-recommended"},dW={key:1},uW={key:3,class:"billing-footnote"},cW={key:5,class:"billing-section"},pW={class:"billing-section-head"},fW=["disabled"],hW={key:0,class:"billing-empty"},mW={key:1,class:"billing-history-head","aria-hidden":"true"},gW={key:2,class:"billing-history"},vW={class:"billing-history-main"},yW=["href"],bW=["href"],wW={class:"billing-history-term"},kW={class:"billing-history-paid"},CW={class:"billing-history-status"},EW={class:"billing-manage"},SW={key:0},NW={key:1},RW=["disabled"],AW={class:"billing-conference"},PW={id:"settings-account",class:"settings-account-panel"},DW={class:"paper-account-card"},TW=["src"],OW={class:"paper-account-identity"},IW={class:"paper-account-name"},MW=["disabled"],VW={key:0,role:"status"},qW={key:1,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},_W=["disabled"],$W={key:3,role:"status"},LW={class:"paper-danger-zone"},FW={key:0,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},UW=["textContent"],BW=["disabled"],zW={key:1,class:"settings-delete-confirm"},HW={for:"delete-username"},jW={class:"settings-actions"},GW=["disabled"],WW=["disabled"];function Cp(e,t){let s=Xe("quota-usage"),i=Pe("field"),o=Pe("form");return a(),l("div",kj,[t[107]||(t[107]=n("header",{class:"settings-title page-head page-head-main"},[n("h1",null,"Settings"),n("p",{class:"paper-page-lede"},"Defaults for new anonymizations, hosting and your account.")],-1)),n("nav",Cj,[(a(),l(q,null,J([{id:"defaults",label:"Anonymization defaults"},{id:"billing",label:"Hosting & billing"},{id:"account",label:"Account"}],r=>n("button",{type:"button","aria-current":e.settingsTab===r.id?"page":null,onClick:d=>e.settingsTab=r.id},c(r.label),9,Ej)),64))]),D(n("div",null,[t[41]||(t[41]=n("p",{class:"settings-scope"},"For new anonymizations only. Existing repositories keep their settings.",-1)),D((a(),l("form",{class:"form needs-validation",name:"defaultsForm",novalidate:"",onInput:t[1]||(t[1]=r=>e.unsavedChanges=!0),onSubmit:t[2]||(t[2]=ae(r=>e.submitForm(r,()=>{e.saveDefault(r)}),["prevent"]))},[n("section",Sj,[t[26]||(t[26]=n("div",null,[n("label",{class:"settings-label",for:"terms"},"Terms to redact"),n("p",{class:"settings-help"},"One term per line.")],-1)),n("div",null,[D(n("textarea",{class:"form-control",id:"terms",name:"terms",rows:Math.min(14,Math.max(3,String(e.terms||"").split(` `).length+1)),placeholder:`Jane Smith MIT CSAIL -jane.smith@example.org`},null,8,dj),[[i,{state:e.viewState,set:r=>{e.terms=r},value:e.terms,form:"defaultsForm",options:{debounce:250}}]]),n("details",uj,[t[25]||(t[25]=n("summary",null,"Regex & replacement syntax",-1)),n("p",null,[t[21]||(t[21]=g("Matches become ",-1)),n("code",null,c(e.site_options?.ANONYMIZATION_MASK||"XXX")+"-[N]",1),t[22]||(t[22]=g(". Use ",-1)),t[23]||(t[23]=n("code",null,"term=>replacement",-1)),t[24]||(t[24]=g(" for a custom replacement. Regex is supported.",-1))])]),D(n("div",cj,"Terms are in an invalid format.",512),[[Q,e.defaultsForm?.terms?.errors?.format]])])]),n("section",pj,[t[35]||(t[35]=n("h2",null,"Reviewer display",-1)),n("div",null,[n("div",fj,[n("label",hj,[D(n("input",mj,null,512),[[i,{state:e.viewState,set:r=>{e.options.link=r},value:e.options?.link,form:"defaultsForm",options:{}}]]),t[27]||(t[27]=g("Keep links",-1))]),n("label",gj,[D(n("input",vj,null,512),[[i,{state:e.viewState,set:r=>{e.options.image=r},value:e.options?.image,form:"defaultsForm",options:{}}]]),t[28]||(t[28]=g("Display images",-1))]),n("label",yj,[D(n("input",bj,null,512),[[i,{state:e.viewState,set:r=>{e.options.pdf=r},value:e.options?.pdf,form:"defaultsForm",options:{}}]]),t[29]||(t[29]=g("Display PDFs",-1))]),n("label",wj,[D(n("input",kj,null,512),[[i,{state:e.viewState,set:r=>{e.options.notebook=r},value:e.options?.notebook,form:"defaultsForm",options:{}}]]),t[30]||(t[30]=g("Display notebooks",-1))]),n("label",Cj,[D(n("input",Ej,null,512),[[i,{state:e.viewState,set:r=>{e.options.loc=r},value:e.options?.loc,form:"defaultsForm",options:{}}]]),t[31]||(t[31]=g("Show line counts",-1))]),n("label",Sj,[D(n("input",Nj,null,512),[[i,{state:e.viewState,set:r=>{e.options.page=r},value:e.options?.page,form:"defaultsForm",options:{}}]]),t[32]||(t[32]=g("GitHub Pages",-1))])]),t[33]||(t[33]=n("p",{class:"settings-help"},"Images and PDFs are not anonymized.",-1)),t[34]||(t[34]=n("p",{class:"settings-help"},"GitHub Pages must use the anonymized branch.",-1))])]),n("section",Rj,[t[38]||(t[38]=n("h2",null,"Source updates",-1)),n("div",null,[n("label",Pj,[D(n("input",Aj,null,512),[[i,{state:e.viewState,set:r=>{e.options.update=r},value:e.options?.update,form:"defaultsForm",options:{}}]]),t[36]||(t[36]=g("Auto-update from GitHub",-1))]),t[37]||(t[37]=n("p",{class:"settings-help"},"Latest commit, at most once an hour.",-1))])]),n("section",Dj,[t[40]||(t[40]=n("label",{class:"settings-label",for:"expiration"},"On expiration",-1)),n("div",null,[D((a(),l("select",Tj,[...t[39]||(t[39]=[n("option",{value:"redirect"},"Redirect visitors to the GitHub repository",-1),n("option",{value:"remove",selected:""},"Remove the anonymized repository",-1)])])),[[i,{state:e.viewState,set:r=>{e.options.expirationMode=r},value:e.options?.expirationMode,form:"defaultsForm",options:{}}]]),n("p",Oj,c(e.options.expirationMode==="redirect"?"Redirecting reveals the original repository. Choose the date per anonymization.":"Set the expiration date for each repository."),1)])]),n("footer",Ij,[n("div",Mj,[e.draftRestored?(a(),l("span",Vj,"Your unsaved draft was restored.")):e.unsavedChanges?(a(),l("span",qj,"Unsaved changes"+c(e.draftSaved?" \xB7 Draft saved in this tab":""),1)):(a(),l("span",_j,c(e.message?"Defaults saved":"No unsaved changes"),1))]),e.draftRestored||e.unsavedChanges?(a(),l("button",{key:0,type:"button",class:"draft-discard",onClick:t[0]||(t[0]=r=>e.discardDraft())},"Discard changes")):f("v-if",!0),n("button",{id:"save",type:"submit",class:P(["btn btn-ink",{"is-saving":e.saving}]),disabled:e.saving||!(e.unsavedChanges||e.draftRestored)},c(e.saving?"Saving\u2026":"Save defaults"),11,$j),e.error?(a(),l("div",Lj,c(e.error),1)):f("v-if",!0)])],32)),[[o,e.viewState]])],512),[[Q,e.settingsTab==="defaults"]]),D(n("section",{id:"settings-billing","aria-busy":e.billingLoading||e.billingBusy},[t[95]||(t[95]=n("p",{class:"settings-scope"},"Your plan and usage. Reviewer access is always free.",-1)),e.billingLoading?(a(),l("p",Uj,"Loading billing\u2026")):f("v-if",!0),e.billingError?(a(),l("div",Bj,[g(c(e.billingError)+" ",1),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[3]||(t[3]=r=>e.loadBilling()),disabled:e.billingBusy},"Try again",8,zj)])):f("v-if",!0),e.billingNotice?(a(),l("p",Hj,c(e.billingNotice),1)):f("v-if",!0),e.billingPending?(a(),l("div",jj,[t[42]||(t[42]=n("strong",null,"Confirming your payment",-1)),t[43]||(t[43]=n("p",null,"Your allowance will update after confirmation. Please do not pay again.",-1)),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[4]||(t[4]=r=>e.refreshBilling()),disabled:e.billingBusy},"Check payment status",8,Gj)])):f("v-if",!0),n("section",Wj,[n("div",Kj,[n("div",null,[t[44]||(t[44]=n("p",{class:"billing-eyebrow"},"Current plan",-1)),n("h2",Yj,c(e.profileAuthorGrant()?e.profileGrantName(e.profileAuthorGrant()):e.billing?.enabled?"Free":"Account allowance"),1),e.profileAuthorGrant()?(a(),l("p",Xj,[g(c(e.profileAuthorGrant().cancelAtPeriodEnd?"Renewal cancelled \xB7 access until ":"Renews ")+c(e.billingDate(e.profileAuthorGrant().until)),1),e.profileAuthorPurchase()?.amount!=null?(a(),l(q,{key:0},[g(" \xB7 "+c(e.billingPrice(e.profileAuthorPurchase())),1)],64)):f("v-if",!0)])):e.billing?.allowance?(a(),l("p",Jj,c(e.billing.allowance.repositories)+" repositories \xB7 "+c(e.billingBytes(e.billing.allowance.storage))+" \xB7 links up to "+c(e.billing.freeExpirationMonths||5)+" months",1)):f("v-if",!0)]),e.profileAuthorGrant()&&e.billing?.portal?(a(),l("div",Qj,[n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[5]||(t[5]=r=>e.billingPortal()),disabled:e.billingBusy},c(e.profileAuthorGrant().cancelAtPeriodEnd?"Resume renewal":"Change or cancel plan"),9,Zj)])):f("v-if",!0)]),n("div",xj,[e.quota?(a(),Gt(s,{key:0,quota:e.quota,fmt:e.fmt},null,8,["quota","fmt"])):(a(),l("p",eG,"Loading usage\u2026"))]),e.quota?.repository&&!e.quota.repository.unlimited&&e.quota.repository.used>=e.quota.repository.total?(a(),l("p",tG,[g("Your free repositories are used up. Add the next one for "+c(e.profileSlotPlan()?e.billingPrice(e.profileSlotPlan()):"a one-time payment")+" when you create it, or ",1),t[45]||(t[45]=n("a",{href:"/dashboard"},"remove work you no longer need",-1)),t[46]||(t[46]=g(".",-1))])):f("v-if",!0),e.profileAuthorGrant()?.status==="past_due"?(a(),l("p",nG,"A subscription payment is overdue. Update your payment details in Manage billing and invoices.")):f("v-if",!0),e.profilePastSubscription()?(a(),l("p",sG,[...t[47]||(t[47]=[g("Your previous subscription has ended. Never-expiring repositories stay online for a 90-day grace period. ",-1),n("a",{href:"/dashboard"},"Review expiration dates",-1),g(".",-1)])])):f("v-if",!0),t[48]||(t[48]=n("p",{class:"billing-footnote"},"Co-authored, paid and conference repositories aren't counted here.",-1))]),e.billing?.enabled&&!e.profileAuthorGrant()&&(e.profilePackPlan()||e.profileAuthorPlans().length)?(a(),l("section",oG,[t[85]||(t[85]=n("h2",{class:"billing-section-title",id:"settings-plan-comparison",tabindex:"-1"},"Get more",-1)),e.showRepositoryPass&&e.profileAddon()&&!e.billingPending?f("v-if",!0):(a(),l("div",iG,[e.profilePackPlan()?(a(),l("article",rG,[t[54]||(t[54]=n("span",{class:"billing-offer-pill"},"Recommended",-1)),t[55]||(t[55]=n("div",{class:"billing-offer-head"},[n("p",{class:"billing-eyebrow"},"For one paper")],-1)),t[56]||(t[56]=n("h3",null,"Paper pack",-1)),n("p",aG,[n("strong",null,c(e.billingAmount(e.profilePackPlan())),1),t[49]||(t[49]=g(" once",-1))]),n("ul",lG,[t[50]||(t[50]=n("li",null,"One more repository, outside your free ones",-1)),n("li",null,"Its own "+c(e.billingBytes(e.profileSlotPlan()?.storage||e.profilePassPlan()?.storage))+" of storage",1),t[51]||(t[51]=n("li",null,"Automatic updates for 180 days",-1)),t[52]||(t[52]=n("li",null,"Online for up to a year",-1)),t[53]||(t[53]=n("li",null,"No subscription",-1))]),n("button",{type:"button",class:"btn btn-ink",onClick:t[6]||(t[6]=r=>e.openProfileAddon("repo_pack")),disabled:e.billingPending||e.billing.checkoutEnabled===!1},"Buy a Paper pack",8,dG)])):f("v-if",!0),e.profileAuthorPlans().length?(a(),l("article",uG,[n("div",cG,[t[57]||(t[57]=n("p",{class:"billing-eyebrow"},"For many papers",-1)),n("div",pG,[(a(!0),l(q,null,x(e.profileAuthorPlansByValue(),r=>(a(),l("button",{type:"button",role:"radio",key:r.id,"aria-checked":e.profileSelectedPlan()?.id===r.id?"true":"false",class:P({"is-on":e.profileSelectedPlan()?.id===r.id}),onClick:d=>e.profilePlan=r.id},[g(c(r.interval==="year"?"Yearly":"Monthly"),1),r.interval==="year"&&e.profileAnnualSavings()?(a(),l("span",hG,"\u2212"+c(e.profileAnnualSavings())+"%",1)):f("v-if",!0)],10,fG))),128))])]),t[62]||(t[62]=n("h3",null,"Author subscription",-1)),n("p",mG,[n("strong",null,c(e.billingAmount(e.profileSelectedPlan())),1),g(" per "+c(e.profileSelectedPlan()?.interval==="year"?"year":"month"),1)]),n("ul",gG,[n("li",null,c(e.profileSelectedPlan()?.repositories)+" repositories, "+c(e.billingBytes(e.profileSelectedPlan()?.storage)),1),t[58]||(t[58]=n("li",null,"Automatic updates",-1)),t[59]||(t[59]=n("li",null,"Links that never expire",-1)),t[60]||(t[60]=n("li",null,"Coauthors included",-1)),t[61]||(t[61]=n("li",null,"Cancel renewal anytime",-1))]),n("button",{type:"button",class:"btn btn-outline-ink",disabled:e.billingBusy||e.billing.checkoutEnabled===!1,onClick:t[7]||(t[7]=r=>e.checkout(e.profileSelectedPlan().id))},c(e.billingBusy?"Please wait\u2026":"Subscribe"),9,vG)])):f("v-if",!0)])),e.profileSingleAddons().length&&!(e.showRepositoryPass&&e.profileAddon()&&!e.billingPending)?(a(),l("div",yG,[t[63]||(t[63]=n("div",{class:"billing-addons-head"},[n("h3",{class:"billing-subtitle"},"Or pay for one thing"),n("span",null,"One-time")],-1)),n("ul",bG,[(a(!0),l(q,null,x(e.profileSingleAddons(),r=>(a(),l("li",{key:r.id},[n("div",null,[n("strong",null,c(r.name),1),n("span",null,c(e.profileAddonBlurb(r.id)),1)]),n("span",wG,c(e.billingAmount(r)),1),n("button",{type:"button",class:"settings-text-button",onClick:d=>e.openProfileAddon(r.id),disabled:e.billingPending||e.billing.checkoutEnabled===!1},"Buy",8,kG)]))),128))])])):f("v-if",!0),e.showRepositoryPass&&e.profileAddon()&&!e.billingPending?(a(),l("div",CG,[n("div",EG,[n("button",{type:"button",class:"btn btn-outline-ink billing-back",onClick:t[8]||(t[8]=r=>e.showRepositoryPass=!1)},"\u2190 All options"),n("h3",null,c(e.profileAddon().name),1),n("p",SG,[n("strong",null,c(e.billingAmount(e.profileAddon())),1),t[64]||(t[64]=g(" once",-1))]),n("ul",NG,[(a(!0),l(q,null,x(e.profileAddonFeatures(e.profileAddon().id),r=>(a(),l("li",{key:r},c(r),1))),128))])]),n("div",RG,[e.profileRepositories().length?(a(),l(q,{key:0},[t[66]||(t[66]=n("label",{class:"paper-field-label",for:"billing-repository"},"Which repository?",-1)),D(n("select",{id:"billing-repository",class:"form-control","onUpdate:modelValue":t[9]||(t[9]=r=>e.billingRepository=r)},[t[65]||(t[65]=n("option",{value:"",disabled:""},"Choose a repository",-1)),(a(!0),l(q,null,x(e.profileRepositories(),r=>(a(),l("option",{key:r.repoId,value:r.repoId},c(r.repoId)+" \xB7 "+c(e.profileRepositoryExpiry(r)),9,PG))),128))],512),[[mn,e.billingRepository]]),n("button",{type:"button",class:"btn btn-ink",disabled:e.billingBusy||!e.billingRepository||e.billing.checkoutEnabled===!1,onClick:t[10]||(t[10]=r=>e.checkout(e.profileAddon().id,e.billingRepository))},c(e.billingBusy?"Please wait\u2026":"Continue to checkout"),9,AG),t[67]||(t[67]=n("p",{class:"billing-footnote"},"One-time payment. Tax shown at checkout.",-1))],64)):(a(),l("p",DG,[...t[68]||(t[68]=[g("You have no repositories yet. ",-1),n("a",{href:"/anonymize"},"Create one",-1),g(" first.",-1)])])),["repo_slot","repo_pack"].includes(e.profileAddon().id)?(a(),l("p",TG,[...t[69]||(t[69]=[g("Adding a new repository? ",-1),n("a",{href:"/anonymize"},"Start creating it",-1),g("; the form offers this once your free repositories are in use.",-1)])])):f("v-if",!0)])])):f("v-if",!0),n("details",OG,[t[84]||(t[84]=n("summary",null,"Compare all features",-1)),n("div",IG,[n("table",MG,[t[83]||(t[83]=n("caption",{class:"sr-only"},"Free, Paper pack and Author hosting",-1)),n("thead",null,[n("tr",null,[t[72]||(t[72]=n("th",{scope:"col"},[n("span",{class:"sr-only"},"Feature")],-1)),t[73]||(t[73]=n("th",{scope:"col"},[g("Free"),n("small",null,"\u20AC0")],-1)),e.profilePackPlan()?(a(),l("th",VG,[t[70]||(t[70]=g("Paper pack",-1)),n("small",null,c(e.billingPrice(e.profilePackPlan())),1)])):f("v-if",!0),e.profileAuthorPlans().length?(a(),l("th",qG,[t[71]||(t[71]=g("Author",-1)),n("small",null,c(e.billingPrice(e.profileSelectedPlan())),1)])):f("v-if",!0)])]),n("tbody",null,[n("tr",null,[t[74]||(t[74]=n("th",{scope:"row"},"Repositories",-1)),n("td",null,c(e.billing.allowance?.repositories),1),e.profilePackPlan()?(a(),l("td",_G,"+1")):f("v-if",!0),e.profileAuthorPlans().length?(a(),l("td",$G,c(e.profileSelectedPlan()?.repositories),1)):f("v-if",!0)]),n("tr",null,[t[75]||(t[75]=n("th",{scope:"row"},"Source storage",-1)),n("td",null,c(e.billingBytes(e.billing.allowance?.storage))+" total",1),e.profilePackPlan()?(a(),l("td",LG,c(e.billingBytes(e.profileSlotPlan()?.storage||e.profilePassPlan()?.storage))+" for it",1)):f("v-if",!0),e.profileAuthorPlans().length?(a(),l("td",FG,c(e.billingBytes(e.profileSelectedPlan()?.storage))+" total",1)):f("v-if",!0)]),n("tr",null,[t[76]||(t[76]=n("th",{scope:"row"},"Latest expiration",-1)),n("td",null,c(e.billing.freeExpirationMonths||5)+" months ahead",1),e.profilePackPlan()?(a(),l("td",UG,"1 year after purchase")):f("v-if",!0),e.profileAuthorPlans().length?(a(),l("td",BG,"Never")):f("v-if",!0)]),n("tr",null,[t[77]||(t[77]=n("th",{scope:"row"},"Automatic updates",-1)),t[78]||(t[78]=n("td",null,"No",-1)),e.profilePackPlan()?(a(),l("td",zG,"180 days")):f("v-if",!0),e.profileAuthorPlans().length?(a(),l("td",HG,"Yes")):f("v-if",!0)]),n("tr",null,[t[79]||(t[79]=n("th",{scope:"row"},"Renews",-1)),t[80]||(t[80]=n("td",null,"No",-1)),e.profilePackPlan()?(a(),l("td",jG,"No")):f("v-if",!0),e.profileAuthorPlans().length?(a(),l("td",GG,"Until cancelled")):f("v-if",!0)]),n("tr",null,[t[81]||(t[81]=n("th",{scope:"row"},"Reviewer access",-1)),t[82]||(t[82]=n("td",null,"Free",-1)),e.profilePackPlan()?(a(),l("td",WG,"Free")):f("v-if",!0),e.profileAuthorPlans().length?(a(),l("td",KG,"Free")):f("v-if",!0)])])])])]),e.billing.checkoutEnabled===!1?(a(),l("p",YG,"New purchases are not available right now. Existing billing can still be managed below.")):f("v-if",!0)])):f("v-if",!0),e.billing?.enabled?(a(),l("section",XG,[n("div",JG,[t[86]||(t[86]=n("h2",{class:"billing-section-title"},"Purchases",-1)),e.billingPending?f("v-if",!0):(a(),l("button",{key:0,type:"button",class:"settings-text-button",onClick:t[11]||(t[11]=r=>e.refreshBilling()),disabled:e.billingBusy},"Refresh payment status",8,QG))]),(e.billing.purchases||[]).length?f("v-if",!0):(a(),l("p",ZG,"No purchases yet.")),(e.billing.purchases||[]).length?(a(),l("div",xG,[...t[87]||(t[87]=[n("span",null,"Purchase",-1),n("span",null,"Period",-1),n("span",null,"Amount",-1),n("span",null,"Status",-1)])])):f("v-if",!0),(e.billing.purchases||[]).length?(a(),l("ul",eW,[(a(!0),l(q,null,x(e.profilePurchases(!0).concat(e.profilePurchases(!1)),r=>(a(),l("li",{class:P(["billing-history-row",{"is-ended":!["active","overdue"].includes(r.status)}]),key:r.id},[n("div",tW,[n("strong",null,[g(c(e.profileGrantName(r)),1),r.repoId?(a(),l(q,{key:0},[t[88]||(t[88]=g(" \xB7 ",-1)),n("a",{href:"/anonymize/"+encodeURIComponent(r.repoId)},c(r.repoId),9,nW)],64)):r.conference?(a(),l(q,{key:1},[t[89]||(t[89]=g(" \xB7 ",-1)),n("a",{href:"/conference/"+encodeURIComponent(r.conference)},c(r.conference),9,sW)],64)):f("v-if",!0)]),n("span",null,c([r.purchasedAt?"Bought "+e.billingDate(r.purchasedAt):"",r.parts.length?e.profilePackSummary(r):["refunded","disputed"].includes(r.status)?"Payment "+r.status+", so what it paid for has ended":r.recurring?"Account subscription":""].filter(Boolean).join(" \xB7 ")),1)]),n("div",oW,c(e.profilePurchaseTerm(r)),1),n("div",iW,c(r.amount!=null?e.billingPrice(r):""),1),n("div",rW,[n("span",{class:P(["settings-status","is-"+r.status])},c(e.profilePurchaseStatus(r)),3)])],2))),128))])):f("v-if",!0),n("div",aW,[n("div",null,[t[90]||(t[90]=n("strong",null,"Invoices and payment details",-1)),e.billing.portal?(a(),l("p",lW,"Download receipts, update your card or change renewal in Stripe.")):(a(),l("p",dW,"Invoices appear here after your first purchase.")),t[91]||(t[91]=n("p",null,[g("Need a refund? "),n("a",{href:"mailto:tdurieux@anonymous.4open.science"},"Email the maintainer"),g(" with the payment date, or read the "),n("a",{href:"/faq#faq-plans"},"refund policy"),g(".")],-1))]),e.billing.portal?(a(),l("button",{key:0,type:"button",class:"btn btn-outline-ink",onClick:t[12]||(t[12]=r=>e.billingPortal()),disabled:e.billingBusy},"Manage billing and invoices",8,uW)):f("v-if",!0)])])):f("v-if",!0),n("p",cW,[t[92]||(t[92]=g("Organizing a conference? ",-1)),e.profileConferencePlan()?(a(),l(q,{key:0},[g("Review packages start at "+c(e.billingAmount(e.profileConferencePlan()))+" once for up to "+c(e.profileConferencePlan().repositories)+" submissions, and authors pay nothing.",1)],64)):(a(),l(q,{key:1},[g("One payment hosts every submission, and authors pay nothing.")],64)),t[93]||(t[93]=g()),t[94]||(t[94]=n("a",{href:"/conference/new"},"Create a conference",-1))])],8,Fj),[[Q,e.settingsTab==="billing"]]),D(n("section",pW,[t[105]||(t[105]=n("p",{class:"settings-scope"},"Your identity, repository access, and account.",-1)),n("div",fW,[e.user?.photo?(a(),l("img",{key:0,width:"40",height:"40",class:"rounded-circle",alt:"",src:e.safeUrl(e.user?.photo)},null,8,hW)):f("v-if",!0),n("div",mW,[n("div",gW,"@"+c(e.user?.username),1),t[96]||(t[96]=n("div",{class:"paper-account-meta"},"Signed in with GitHub. Anonymous GitHub only reads your repositories.",-1))]),t[97]||(t[97]=n("a",{class:"btn btn-outline-ink",href:"/api/user/logout",target:"_self"},"Sign out",-1))]),n("form",{class:"paper-account-email",onSubmit:t[16]||(t[16]=ae(r=>e.saveAccountEmail(),["prevent"]))},[t[98]||(t[98]=n("label",{class:"paper-field-label",for:"account-email"},"Email address",-1)),t[99]||(t[99]=n("p",{id:"account-email-help",class:"paper-section-copy"},"Used for account alerts. Your address is never shown on anonymous pages.",-1)),D(n("input",{id:"account-email",class:"form-control",type:"email",autocomplete:"email",maxlength:"254",required:"","onUpdate:modelValue":t[13]||(t[13]=r=>e.accountEmail=r),"aria-describedby":"account-email-help",disabled:e.emailLoading||e.emailSaving||!e.emailCSRFReady,onInput:t[14]||(t[14]=r=>e.emailSaved=!1)},null,40,vW),[[pt,e.accountEmail]]),e.emailLoading?(a(),l("p",yW,"Loading your email address\u2026")):f("v-if",!0),e.emailError?(a(),l("p",bW,c(e.emailError),1)):f("v-if",!0),!e.emailCSRFReady&&!e.emailLoading?(a(),l("button",{key:2,class:"btn btn-outline-ink mt-2",type:"button",onClick:t[15]||(t[15]=r=>e.loadAccountEmail())},"Try again")):f("v-if",!0),n("button",{class:"btn btn-ink mt-2",type:"submit",disabled:e.emailLoading||e.emailSaving||!e.emailCSRFReady},c(e.emailSaving?"Saving\u2026":"Save email address"),9,wW),e.emailSaved?(a(),l("p",kW,"Email address saved.")):f("v-if",!0)],32),t[106]||(t[106]=n("a",{class:"paper-settings-connection-link",href:"/connections"},[n("i",{class:"fab fa-github","aria-hidden":"true"}),n("span",null,[g("GitHub connections"),n("small",null,"Manage repository access and legacy OAuth.")]),n("span",{"aria-hidden":"true"},"\u2192")],-1)),n("div",CW,[t[103]||(t[103]=n("div",{class:"paper-danger-head"},"Delete account",-1)),t[104]||(t[104]=n("p",{class:"paper-danger-copy"}," Removes all your anonymized repositories, gists, and pull requests, revokes the application's access to your GitHub account, and erases your personal data (username, email, access tokens). This cannot be undone. ",-1)),e.deleteError?(a(),l("div",EW,[t[100]||(t[100]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-info"})],-1)),t[101]||(t[101]=g()),n("span",{textContent:c(e.deleteError)},null,8,SW)])):f("v-if",!0),n("button",{type:"button",class:"btn btn-outline-danger",onClick:t[17]||(t[17]=r=>e.confirmDeleteAccount=!0),disabled:e.deletingAccount},[t[102]||(t[102]=n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1)),g(c(e.deletingAccount?"Deleting\u2026":"Delete my account"),1)],8,NW),e.confirmDeleteAccount?(a(),l("div",RW,[n("label",PW,"Type "+c(e.user?.username)+" to confirm",1),D(n("input",{id:"delete-username",class:"form-control","onUpdate:modelValue":t[18]||(t[18]=r=>e.deleteUsername=r),autocomplete:"off"},null,512),[[pt,e.deleteUsername]]),n("div",AW,[n("button",{type:"button",class:"btn btn-outline-danger",onClick:t[19]||(t[19]=r=>e.deleteAccount()),disabled:e.deletingAccount||e.deleteUsername!==e.user?.username},c(e.deletingAccount?"Deleting\u2026":"Delete permanently"),9,DW),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[20]||(t[20]=r=>{e.confirmDeleteAccount=!1,e.deleteUsername=""}),disabled:e.deletingAccount},"Cancel",8,TW)])])):f("v-if",!0)])],512),[[Q,e.settingsTab==="account"]])])}var OW={class:"pr-page"},IW={class:"container paper-page pr-page-inner"},MW={class:"pr-header"},VW={class:"pr-title-row"},qW={class:"paper-page-title pr-title"},_W=["textContent"],$W={key:1,class:"text-muted"},LW=["href"],FW={class:"pr-header-meta"},UW={key:0,class:"pr-meta-item"},BW=["textContent"],zW={key:1,class:"pr-meta-item"},HW=["textContent"],jW={key:2,class:"pr-meta-item"},GW=["textContent"],WW={key:0,class:"pr-body-card"},KW={key:1,class:"paper-tabs",role:"tablist"},YW=["aria-selected","tabindex"],XW=["aria-selected","tabindex"],JW=["textContent"],QW={class:"paper-tab-content"},ZW={key:0,role:"tabpanel",id:"pr-diff-panel","aria-labelledby":"pr-diff-tab"},xW=["innerHTML"],eK={key:1,role:"tabpanel",id:"pr-comments-panel","aria-labelledby":"pr-comments-tab"},tK={class:"pr-comments"},nK={class:"pr-comment"},sK={class:"pr-comment-head"},oK={key:0,class:"pr-comment-author"},iK=["textContent"],rK=["textContent"],aK={key:0,class:"pr-comment-body"},lK={key:0,class:"paper-table-empty"};function kp(e,t){let s=Xe("markdown");return a(),l("div",OW,[n("div",IW,[t[17]||(t[17]=n("div",{class:"paper-crumbs"},[n("a",{href:"/dashboard"},"Reviewer"),g(" \xA0/\xA0 "),n("span",{class:"here"},"Pull request")],-1)),n("header",MW,[n("div",VW,[n("h1",qW,[e.details?.title?(a(),l("span",{key:0,textContent:c(e.details?.title)},null,8,_W)):f("v-if",!0),e.details?.title?f("v-if",!0):(a(),l("span",$W,"Untitled pull request"))]),e.options?.isAdmin||e.options?.isOwner?(a(),l("a",{key:0,class:"btn btn-sm","aria-label":"Edit",href:e.safeUrl("/pull-request-anonymize/"+e.pullRequestId)},[...t[4]||(t[4]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),n("span",{class:"d-none d-md-inline"}," Edit",-1)])],8,LW)):f("v-if",!0)]),n("div",FW,[n("span",{class:P(["paper-pill",{good:e.details?.merged,warn:e.details?.state=="open",bad:e.details?.state=="closed"&&!e.details?.merged}])},[n("span",{class:P(["status-dot",{"status-ready":e.details?.merged,"status-error":e.details?.state=="closed"&&!e.details?.merged}])},null,2),g(" "+c(e.details?.merged?"Merged":e.fmt.title(e.details?.state)),1)],2),e.details?.baseRepositoryFullName?(a(),l("span",UW,[t[5]||(t[5]=n("i",{class:"fab fa-github"},null,-1)),t[6]||(t[6]=g()),n("span",{textContent:c(e.details?.baseRepositoryFullName)},null,8,BW)])):f("v-if",!0),e.details?.updatedDate?(a(),l("span",zW,[t[7]||(t[7]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),t[8]||(t[8]=g()),n("span",{textContent:c(e.fmt?.date(e.details?.updatedDate))},null,8,HW)])):f("v-if",!0),e.details?.anonymizeDate?(a(),l("span",jW,[t[9]||(t[9]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1)),t[10]||(t[10]=g(" Anonymized ",-1)),n("span",{textContent:c(e.fmt?.date(e.details?.anonymizeDate))},null,8,GW)])):f("v-if",!0)])]),e.details?.body?(a(),l("section",WW,[t[11]||(t[11]=n("div",{class:"paper-section-eyebrow"},"Description",-1)),Oe(s,{content:e.details?.body},null,8,["content"])])):f("v-if",!0),e.details?.diff||e.details?.comments?(a(),l("nav",KW,[e.details?.diff?(a(),l("button",{key:0,class:P(["paper-tab",{active:e.tabState?.active=="diff"}]),type:"button",role:"tab",id:"pr-diff-tab","aria-selected":e.tabState?.active==="diff","aria-controls":"pr-diff-panel",tabindex:e.tabState?.active==="diff"?0:-1,onKeydown:t[0]||(t[0]=i=>e.previewTabKeydown(i)),onClick:t[1]||(t[1]=i=>e.tabState.active="diff")},[...t[12]||(t[12]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-code"})],-1),g(" Diff ",-1)])],42,YW)):f("v-if",!0),e.details?.comments?(a(),l("button",{key:1,class:P(["paper-tab",{active:e.tabState?.active=="comments"}]),type:"button",role:"tab",id:"pr-comments-tab","aria-selected":e.tabState?.active==="comments","aria-controls":"pr-comments-panel",tabindex:e.tabState?.active==="comments"?0:-1,onKeydown:t[2]||(t[2]=i=>e.previewTabKeydown(i)),onClick:t[3]||(t[3]=i=>e.tabState.active="comments")},[t[13]||(t[13]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-comment"})],-1)),n("span",{textContent:c(e.fmt.plural(e.details?.comments?.length,{0:"No comments",one:"1 comment",other:"{} comments"}))},null,8,JW)],42,XW)):f("v-if",!0)])):f("v-if",!0),n("div",QW,[e.details?.diff&&e.tabState?.active=="diff"?(a(),l("div",ZW,[n("div",{class:"pr-diff",innerHTML:e.sanitize(e.fmt?.diff(e.details?.diff))},null,8,xW)])):f("v-if",!0),e.details?.comments&&e.tabState?.active=="comments"?(a(),l("div",eK,[n("ul",tK,[(a(!0),l(q,null,x(e.details?.comments,(i,o)=>(a(),l("li",nK,[n("div",sK,[i?.author?(a(),l("span",oK,[t[14]||(t[14]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-user"})],-1)),t[15]||(t[15]=g(" @",-1)),n("span",{textContent:c(i?.author)},null,8,iK)])):f("v-if",!0),i?.updatedDate?(a(),l("span",{key:1,class:"pr-comment-date",textContent:c(e.fmt?.date(i?.updatedDate))},null,8,rK)):f("v-if",!0)]),i?.body?(a(),l("div",aK,[Oe(s,{content:i?.body},null,8,["content"])])):f("v-if",!0)]))),256)),e.details?.comments?.length?f("v-if",!0):(a(),l("li",lK,[...t[16]||(t[16]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-comment"})],-1),n("span",null,"No comments on this pull request.",-1)])]))])])):f("v-if",!0)])])])}var dK={class:"repository-task status-page"},uK={class:"page-head-main"},cK={class:"task-lede"},pK={class:"task-columns"},fK={class:"task-preparation","aria-label":"Repository preparation"},hK={key:0,class:"text-danger",role:"alert"},mK={key:1,class:"paper-section-copy"},gK={key:2,class:"paper-ratelimit-card",role:"status"},vK={class:"paper-error-msg"},yK=["aria-valuenow"],bK={class:"paper-progress-label"},wK=["textContent"],kK={key:0},CK=["textContent"],EK={class:"paper-progress-pct"},SK={key:4,class:"paper-error-card",role:"alert"},NK={key:0,class:"paper-error-msg"},RK={key:1,class:"paper-error-msg"},PK={key:2},AK=["href"],DK={class:"paper-error-actions"},TK=["href"],OK={key:5,class:"share-link"},IK={class:"share-link-row"},MK={class:"share-link-buttons"},VK={class:"ui-icon","aria-hidden":"true"},qK=["href"],_K=["textContent"],$K=["href"],LK={class:"share-link-note"},FK=["href"],UK={class:"share-link-next"},BK={class:"share-link-next-actions"},zK=["href"],HK={class:"task-summary","aria-label":"Repository summary"},jK=["title"],GK={key:1};function Cp(e,t){return a(),l("div",dK,[n("header",{class:P(["page-head",{"task-ready":e.repo?.status==="ready"}])},[t[3]||(t[3]=n("div",{class:"paper-crumbs"},[n("a",{href:"/dashboard"},"My work"),g(" \xA0/\xA0 "),n("span",{class:"here"},"Review link")],-1)),n("div",uK,[n("div",null,[n("h1",null,c(e.repo?.status==="ready"?"Your review link is ready":"Prepare your anonymous review link"),1),n("p",cK,c(e.repo?.status==="ready"?"Share this link with reviewers in your submission.":"Your settings are saved. Track preparation before sharing the link."),1)])]),t[4]||(t[4]=n("ol",{class:"task-trail flow-trail","aria-label":"Repository progress"},[n("li",null,"1. Repository"),n("li",null,"2. Review and hosting"),n("li",{"aria-current":"step"},"3. Review link")],-1))],2),n("div",pK,[n("section",fK,[e.error?(a(),l("p",hK,[t[5]||(t[5]=g("Unable to load repository status. ",-1)),n("button",{type:"button",class:"task-text-button",onClick:t[0]||(t[0]=s=>e.getStatus())},"Try again")])):f("v-if",!0),e.repo?.status!=="ready"?(a(),l("p",mK,[...t[6]||(t[6]=[g(" The repository will take a few minutes to get ready, depending on its size. Visit the ",-1),n("a",{href:"/faq"},"FAQ",-1),g(" for more information. ",-1)])])):f("v-if",!0),e.rateLimitResetAt?(a(),l("div",gK,[t[9]||(t[9]=Ee('
Temporarily paused
GitHub API rate limit reached
',1)),n("p",vK,[t[7]||(t[7]=g("Anonymization will resume automatically in ",-1)),n("strong",null,c(e.rateLimitCountdown),1),t[8]||(t[8]=g(". No action needed \u2014 the job is queued and will continue where it left off.",-1))])])):f("v-if",!0),e.repo?.status!=="ready"&&e.repo?.status!="error"&&!e.rateLimitResetAt?(a(),l("div",{key:3,class:P(["paper-progress",{"paper-progress-ready":e.repo?.status=="ready"}]),role:"progressbar","aria-valuemin":"0","aria-valuemax":"100","aria-valuenow":e.progress},[n("div",{class:"paper-progress-bar",style:Ie("width: "+e.progress+"%;")},null,4),n("div",bK,[n("span",{textContent:c(e.fmt?.title(e.repo?.status))},null,8,wK),e.repo?.statusMessage?(a(),l("span",kK,[t[10]||(t[10]=g("\xA0\xB7\xA0",-1)),n("span",{textContent:c(e.repo?.statusMessage)},null,8,CK)])):f("v-if",!0),n("span",EK,c(e.progress||0)+"%",1)])],10,yK)):f("v-if",!0),e.repo?.status=="error"&&!e.rateLimitResetAt?(a(),l("div",SK,[t[14]||(t[14]=Ee('
Anonymization failed
Something went wrong while preparing this repository.
',1)),e.repo?.statusMessage?(a(),l("p",NK,c(e.fmt?.translate("ERRORS."+e.repo?.statusMessage)),1)):f("v-if",!0),e.repo?.statusMessage?f("v-if",!0):(a(),l("p",RK,"No additional details were reported. The most common causes are private repositories, missing branches, and rate limits.")),e.repo?.statusMessage==="quota_exceeded"?(a(),l("p",PK,[n("a",{href:e.safeUrl("/anonymize/"+e.repoId)},"Review this repository\u2019s hosting",8,AK),t[11]||(t[11]=g(", then retry preparation.",-1))])):f("v-if",!0),t[15]||(t[15]=n("ul",{class:"paper-error-hints"},[n("li",null,"Make sure the source URL points to a repository or pull request you can access."),n("li",null,"Check that the chosen branch and commit still exist on GitHub."),n("li",null,"If you just signed in, the access token may need a moment to propagate \u2014 try again.")],-1)),n("div",DK,[n("a",{class:"btn btn-primary",href:e.safeUrl("/anonymize/"+e.repoId)},[...t[12]||(t[12]=[n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),g(" Edit anonymization",-1)])],8,TK),t[13]||(t[13]=Ee(' Read the FAQ Report a bug in Anonymous GitHub',2))])])):f("v-if",!0),e.repo?.status=="ready"?(a(),l("div",OK,[t[24]||(t[24]=n("div",{class:"share-link-label",id:"share-url-label"},"Review link",-1)),n("div",IK,[n("code",{id:"share-url",class:"share-link-url",tabindex:"0",role:"textbox","aria-readonly":"true","aria-labelledby":"share-url-label",onFocus:t[1]||(t[1]=s=>e.selectShareUrl(s))},c(e.shareUrl),33),n("div",MK,[n("button",{type:"button",class:"btn btn-primary share-copy",onClick:t[2]||(t[2]=s=>e.copyShareUrl())},[(a(),l("svg",VK,[n("use",{href:e.copied?"#ui-icon-check":"#project-icon-copy"},null,8,qK)])),n("span",{"aria-live":"polite",textContent:c(e.copied?"Copied":"Copy link")},null,8,_K)]),n("a",{class:"btn share-open",target:"_self",href:e.safeUrl("/r/"+e.repoId+"/")},[...t[16]||(t[16]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),g(" Open repository ",-1)])],8,$K)])]),n("p",LK,[g(c(e.repo?.options?.expirationMode!=="never"&&e.repo?.options?.expirationDate?"Expires "+e.fmt.date(e.repo.options.expirationDate):"Never expires"),1),t[18]||(t[18]=n("span",{"aria-hidden":"true"}," \xB7 ",-1)),t[19]||(t[19]=g("Reviewers don\u2019t need an account",-1)),e.repo?.options?.page?(a(),l(q,{key:0},[t[17]||(t[17]=n("span",{"aria-hidden":"true"}," \xB7 ",-1)),n("a",{target:"_self",href:e.safeUrl("/w/"+e.repoId+"/")},"Open GitHub page",8,FK)],64)):f("v-if",!0)]),n("div",UK,[t[22]||(t[22]=n("h2",null,"Need to change something?",-1)),t[23]||(t[23]=n("p",null,"Edit the redacted terms or the expiry at any time. The link stays the same.",-1)),n("p",BK,[n("a",{href:e.safeUrl("/anonymize/"+e.repoId)},"Edit anonymization",8,zK),t[20]||(t[20]=n("span",{"aria-hidden":"true"},"\xB7",-1)),t[21]||(t[21]=n("a",{href:"/dashboard"},"Go to My work",-1))])])])):f("v-if",!0)]),n("aside",HK,[n("dl",null,[t[28]||(t[28]=n("dt",null,"Source",-1)),e.repo?.source?.fullName?(a(),l("dd",{key:0,class:"task-source",title:"https://github.com/"+e.repo.source.fullName},[t[25]||(t[25]=g("github.com/",-1)),t[26]||(t[26]=n("wbr",null,null,-1)),g(c(e.repo.source.fullName.split("/")[0])+"/",1),t[27]||(t[27]=n("wbr",null,null,-1)),g(c(e.repo.source.fullName.split("/").slice(1).join("/")),1)],8,jK)):(a(),l("dd",GK,"Loading\u2026")),t[29]||(t[29]=n("dt",null,"Lifetime",-1)),n("dd",null,c(e.repo?.options?.expirationMode==="never"?"Never expire while subscribed":e.repo?.options?.expirationDate?"Until "+e.fmt.date(e.repo.options.expirationDate):"Loading\u2026"),1),t[30]||(t[30]=n("dt",null,"Review access",-1)),t[31]||(t[31]=n("dd",null,"Anonymous and free",-1))])])])])}var WK={class:"container paper-page admin-page overview-page billing-page"},KK={class:"bl-toolbar"},YK={class:"seg-filter",role:"radiogroup","aria-label":"Period"},XK=["aria-checked","onClick"],JK={key:0,class:"bl-basis"},QK={key:0,class:"ov-performance-message ov-performance-warning bl-message",role:"alert"},ZK={key:1,class:"ov-performance-message bl-message",role:"status"},xK={key:2,class:"ov-performance-message ov-performance-warning bl-message",role:"status"},eY=["aria-busy"],tY={class:"ov-kpi-card"},nY={class:"ov-kpi-value"},sY={class:"ov-kpi-sub"},oY={class:"ov-kpi-card"},iY={key:0,class:"ov-kpi-sub"},rY={key:1,class:"ov-kpi-sub"},aY={class:"ov-kpi-card"},lY={class:"ov-kpi-label"},dY={class:"ov-kpi-value"},uY={class:"ov-kpi-sub"},cY={class:"ov-kpi-card"},pY={class:"ov-kpi-value"},fY={class:"ov-kpi-sub"},hY={class:"ov-kpi-card"},mY={class:"ov-kpi-value"},gY={class:"ov-kpi-sub"},vY={class:"ov-kpi-card"},yY={class:"ov-kpi-sub"},bY={key:3,class:"bl-health","aria-label":"Webhook health"},wY={class:"bl-health-title"},kY={class:"bl-health-item"},CY=["title"],EY={key:1,class:"bl-health-item"},SY={key:4,class:"ov-chart-card bl-chart-card"},NY={class:"ov-chart-head"},RY={class:"ov-chart-title"},PY={key:0,class:"ov-chart-legends"},AY=["aria-label"],DY={class:"ov-yaxis","aria-hidden":"true"},TY=["data-tip"],OY={class:"ov-spark-x bl-x"},IY={key:1,class:"ov-performance-empty bl-empty",role:"status"},MY={key:5,class:"ov-panel-card bl-plans","aria-labelledby":"bl-plans-heading"},VY={class:"ov-panel-head"},qY={class:"ov-panel-meta"},_Y={class:"ov-metrics-scroll",tabindex:"0",role:"region","aria-label":"Sales by plan, scroll for more columns"},$Y={class:"ov-metrics-table"},LY={key:0,scope:"colgroup",colspan:"2",class:"bl-group"},FY={scope:"row",class:"bl-plan-name"},UY=["title","onClick"],BY={class:"num"},zY={class:"num"},HY={class:"num"},jY={class:"num"},GY={class:"num"},WY={class:"num"},KY={class:"num"},YY={class:"num"},XY={class:"num"},JY={class:"num"},QY={class:"bl-grants",id:"bl-grants","aria-labelledby":"bl-grants-heading"},ZY={class:"seg-bar"},xY={class:"seg-filter",role:"radiogroup","aria-label":"Filter by state"},eX=["aria-checked"],tX={class:"count"},nX=["aria-checked"],sX={class:"count"},oX=["aria-checked"],iX={class:"count"},rX=["aria-checked"],aX={class:"count"},lX={class:"seg-countline",role:"status"},dX={key:0,class:"alert alert-danger bl-alert"},uX=["aria-expanded"],cX={class:"search-wrap"},pX={type:"search",class:"form-control","aria-label":"Search by user",placeholder:"Search by user\u2026",autocomplete:"off"},fX={class:"admin-filter-inline"},hX={id:"bl-plan",class:"form-control form-control-sm"},mX=["label"],gX=["value"],vX={class:"admin-filter-inline"},yX={id:"bl-status",class:"form-control form-control-sm"},bX=["value"],wX={key:0,class:"admin-filter-inline","aria-label":"Pagination"},kX=["disabled"],CX={class:"bl-page"},EX=["disabled"],SX={key:0,class:"admin-filter-row"},NX={class:"admin-active-chips"},RX={class:"key"},PX=["onClick"],AX={key:1,class:"ov-metrics-scroll bl-grant-scroll",tabindex:"0",role:"region","aria-label":"Subscriptions and purchases, scroll for more columns"},DX={class:"ov-metrics-table bl-grant-table"},TX={scope:"col"},OX={scope:"col"},IX={scope:"row",class:"bl-user"},MX=["title","href"],VX={key:1,class:"ov-muted"},qX={class:"bl-plan-cell"},_X={key:0},$X={class:"bl-state"},LX={key:0},FX={key:3},UX={key:0,class:"bl-flag"},BX={key:1,class:"ov-muted"},zX={class:"bl-flag is-bad"},HX={key:0},jX={key:1,class:"ov-muted"},GX={class:"bl-scope"},WX=["href"],KX={class:"ui-icon","aria-hidden":"true"},YX=["href"],XX={key:1,class:"ov-muted"},JX={key:2,class:"paper-table-empty"},QX={key:3,class:"admin-empty"},ZX={key:4,class:"admin-toolbar bl-pager"},xX={key:0,class:"pagination-compact"},eJ=["disabled"],tJ=["max"],nJ=["disabled"],sJ={class:"admin-filter-inline"},oJ={id:"bl-limit",class:"form-control form-control-sm"};function Ep(e,t){let s=Ae("field"),i=Ae("form");return a(),l("div",WK,[t[79]||(t[79]=Ee('
Admin \xA0/\xA0 Billing

Billing

',2)),n("div",KK,[n("div",YK,[(a(!0),l(q,null,x(e.periods,o=>(a(),l("button",{type:"button",role:"radio",class:P(["seg-chip",{active:e.period===o.id}]),key:o.id,"aria-checked":e.period===o.id,onClick:r=>e.setPeriod(o.id)},c(o.label),11,XK))),128))]),e.summary?(a(),l("p",JK,"Sales are new checkouts and subscriptions. Revenue uses Stripe list prices; renewals count toward MRR.")):f("v-if",!0)]),e.summaryError?(a(),l("div",QK,[t[15]||(t[15]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),n("span",null,c(e.summaryError),1),n("button",{type:"button",class:"btn btn-sm",onClick:t[0]||(t[0]=o=>e.loadSummary())},"Retry")])):f("v-if",!0),e.summary&&!e.summary.revenue?.available?(a(),l("div",ZK,[...t[16]||(t[16]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-info"})],-1),n("span",null,[n("b",null,"Revenue unavailable."),g(" Stripe is not configured on this server, so amounts can't be looked up. Counts are complete.")],-1)])])):f("v-if",!0),e.summary?.revenue?.missingSales||e.summary?.revenue?.missingAllTimeSales||e.summary?.revenue?.missingSubscriptions?(a(),l("div",xK,[t[17]||(t[17]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),n("span",null,"Some Stripe prices are unavailable. Affected totals are marked incomplete: "+c(e.fmt?.number(e.summary.revenue.missingSales||0))+" period sales, "+c(e.fmt?.number(e.summary.revenue.missingAllTimeSales||0))+" historical sales, "+c(e.fmt?.number(e.summary.revenue.missingSubscriptions||0))+" active subscriptions.",1)])):f("v-if",!0),f(" \u2500\u2500 Summary tiles \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),n("section",{class:P(["ov-kpi-row bl-kpi-row",{"is-loading":e.summaryLoading}]),"aria-busy":e.summaryLoading?"true":"false","aria-label":"Billing summary"},[!e.summary&&e.summaryLoading?(a(),l(q,{key:0},x(6,o=>n("div",{class:"ov-kpi-card",key:o,"aria-hidden":"true"},[...t[18]||(t[18]=[n("span",{class:"skeleton skeleton-line-sm",style:{width:"60%"}},null,-1),n("span",{class:"skeleton bl-skeleton-value"},null,-1),n("span",{class:"skeleton skeleton-line-sm",style:{width:"80%"}},null,-1)])])),64)):f("v-if",!0),e.summary?(a(),l(q,{key:1},[n("div",tY,[t[19]||(t[19]=n("div",{class:"ov-kpi-label"},"Active subscriptions",-1)),n("div",nY,c(e.fmt?.number(e.summary.subscriptions.active)),1),n("div",sY,c(e.fmt?.number(e.summary.subscriptions.monthly))+" monthly \xB7 "+c(e.fmt?.number(e.summary.subscriptions.annual))+" annual",1)]),n("div",oY,[t[20]||(t[20]=n("div",{class:"ov-kpi-label"},"MRR",-1)),n("div",{class:P(["ov-kpi-value",{"bl-muted-value":!e.revenueOn()}])},c(e.revenueOn()?e.summary.subscriptions.complete===!1?"Incomplete":e.money(e.summary.subscriptions.mrr)[0]||e.fmt?.money(0):"Unavailable"),3),e.revenueOn()&&e.money(e.summary.subscriptions.mrr).length>1?(a(),l("div",iY,"+ "+c(e.money(e.summary.subscriptions.mrr).slice(1).join(" \xB7 ")),1)):(a(),l("div",rY,c(e.revenueOn()?"Annual plans \xF7 12":"Needs Stripe prices"),1))]),n("div",aY,[n("div",lY,"Sales \xB7 "+c(e.periodPhrase()),1),n("div",dY,c(e.fmt?.number(e.summary.sales.count)),1),n("div",uY,c(e.revenueOn()?e.summary.sales.complete===!1?"Revenue incomplete":e.moneyText(e.summary.sales.revenue,e.fmt?.money(0)):"Revenue unavailable"),1)]),n("div",cY,[t[21]||(t[21]=n("div",{class:"ov-kpi-label"},"All-time sales",-1)),n("div",pY,c(e.fmt?.number(e.summary.allTime.count)),1),n("div",fY,c(e.revenueOn()?e.summary.allTime.complete===!1?"Revenue incomplete":e.moneyText(e.summary.allTime.revenue,e.fmt?.money(0)):"Revenue unavailable"),1)]),n("div",hY,[t[22]||(t[22]=n("div",{class:"ov-kpi-label"},"Cancelling",-1)),n("div",mY,c(e.fmt?.number(e.summary.subscriptions.cancelling)),1),n("div",gY,"at period end, of "+c(e.fmt?.number(e.summary.subscriptions.active))+" active",1)]),n("div",vY,[t[23]||(t[23]=n("div",{class:"ov-kpi-label"},"Refunds & disputes",-1)),n("div",{class:P(["ov-kpi-value",{"ov-val-warn":e.summary.reversals.disputes>0}])},c(e.fmt?.number(e.summary.reversals.refunds+e.summary.reversals.disputes)),3),n("div",yY,c(e.fmt?.number(e.summary.reversals.refunds))+" "+c(e.summary.reversals.refunds===1?"refund":"refunds")+" \xB7 "+c(e.fmt?.number(e.summary.reversals.disputes))+" "+c(e.summary.reversals.disputes===1?"dispute":"disputes"),1)])],64)):f("v-if",!0)],10,eY),f(" \u2500\u2500 Webhook health \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),e.summary?.webhooks?(a(),l("section",bY,[n("span",wY,[n("span",{class:P(["ov-svc-dot",{"ov-dot-ok":e.webhookState()==="ok","ov-dot-warn":e.webhookState()==="warn","bl-dot-bad":e.webhookState()==="bad"}]),"aria-hidden":"true"},null,2),t[24]||(t[24]=g("Stripe webhooks",-1))]),n("span",kY,[t[25]||(t[25]=n("span",{class:"k"},"Pending",-1)),g(" "+c(e.fmt?.number(e.summary.webhooks.pending)),1),e.summary.webhooks.pending?(a(),l(q,{key:0},[g(" \xB7 oldest "+c(e.age(e.summary.webhooks.oldestPendingSeconds)),1)],64)):f("v-if",!0)]),n("span",{class:P(["bl-health-item",{"is-bad":e.summary.webhooks.failed}])},[t[26]||(t[26]=n("span",{class:"k"},"Failed",-1)),g(" "+c(e.fmt?.number(e.summary.webhooks.failed)),1)],2),e.summary.webhooks.lastError?(a(),l("span",{key:0,class:"bl-health-item bl-health-error",title:e.summary.webhooks.lastError.type+": "+e.summary.webhooks.lastError.error},[t[27]||(t[27]=n("span",{class:"k"},"Last error",-1)),t[28]||(t[28]=g()),n("code",null,c(e.summary.webhooks.lastError.error),1),g(" on "+c(e.summary.webhooks.lastError.type)+" \xB7 "+c(e.fmt?.humanTime(e.summary.webhooks.lastError.receivedAt)),1)],8,CY)):(a(),l("span",EY,[...t[29]||(t[29]=[n("span",{class:"k"},"Last error",-1),g(" none",-1)])])),n("span",{class:P(["bl-health-item",{"is-warn":e.summary.webhooks.unreviewedRevocations}])},[t[30]||(t[30]=n("span",{class:"k"},"Unreviewed reversals",-1)),g(" "+c(e.fmt?.number(e.summary.webhooks.unreviewedRevocations)),1)],2)])):f("v-if",!0),f(" \u2500\u2500 Sales over time \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),e.summary?(a(),l("section",SY,[n("div",NY,[n("span",RY,"Sales per "+c(e.bucketName())+" \xB7 "+c(e.periodPhrase()),1),e.seriesSales()?(a(),l("span",PY,[(a(!0),l(q,null,x(e.families,o=>(a(),l("span",{class:"ov-chart-legend",key:o.id},[n("span",{class:P(["bl-swatch","bl-"+o.id]),"aria-hidden":"true"},null,2),g(c(o.label)+" \xB7 "+c(e.fmt?.number(e.familyTotal(o.id))),1)]))),128))])):f("v-if",!0)]),e.seriesSales()?(a(),l(q,{key:0},[n("div",{class:P(["ov-spark-bars ov-has-axis bl-bars",{"is-dense":e.summary.series.length>45}]),role:"img","aria-label":e.fmt?.number(e.seriesSales())+" sales, "+e.periodPhrase()+", by plan family"},[n("div",DY,[n("span",null,c(e.fmt?.number(e.chartMax())),1),n("span",null,c(e.fmt?.number(e.chartMax()/2)),1),t[31]||(t[31]=n("span",null,"0",-1))]),(a(!0),l(q,null,x(e.summary.series,(o,r)=>(a(),l("div",{class:P(["ov-spark-col has-tip bl-col",{"is-zero":!e.bucketTotal(o)}]),key:r,"data-tip":e.bucketTip(o)},[n("span",{class:"bl-stack",style:Ie({height:e.bucketTotal(o)/e.chartMax()*100+"%"})},[(a(!0),l(q,null,x(e.families,d=>D((a(),l("i",{key:d.id,class:P("bl-"+d.id),style:Ie({flexGrow:o[d.id]})},null,6)),[[Q,o[d.id]]])),128))],4)],10,TY))),128))],10,AY),n("div",OY,[n("span",null,c(e.bucketLabel(e.summary.series[0])),1),n("span",null,c(e.bucketLabel(e.summary.series[Math.floor(e.summary.series.length/2)])),1),n("span",null,c(e.bucketLabel(e.summary.series[e.summary.series.length-1])),1)])],64)):(a(),l("p",IY,"No sales "+c(e.period==="all"?"yet":"in the "+e.periodPhrase())+".",1))])):f("v-if",!0),f(" \u2500\u2500 By plan \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),e.summary?(a(),l("section",MY,[n("div",VY,[t[32]||(t[32]=n("h2",{class:"ov-panel-title",id:"bl-plans-heading"},"By plan",-1)),n("span",qY,c(e.fmt?.number(e.plansWithActivity().length))+" of "+c(e.fmt?.number(e.summary.plans.length))+" plans sold",1)]),n("div",_Y,[n("table",$Y,[t[41]||(t[41]=n("caption",{class:"sr-only"},"Active grants, sales and revenue per plan",-1)),n("thead",null,[n("tr",null,[t[33]||(t[33]=n("th",{scope:"col",rowspan:"2"},"Plan",-1)),t[34]||(t[34]=n("th",{scope:"col",rowspan:"2",class:"num"},"Active",-1)),e.period!=="all"?(a(),l("th",LY,c(e.periodPhrase().replace(/^./,o=>o.toUpperCase())),1)):f("v-if",!0),t[35]||(t[35]=n("th",{scope:"colgroup",colspan:"2",class:"bl-group"},"All time",-1))]),n("tr",null,[e.period!=="all"?(a(),l(q,{key:0},[t[36]||(t[36]=n("th",{scope:"col",class:"num"},"Sales",-1)),t[37]||(t[37]=n("th",{scope:"col",class:"num"},"Revenue",-1))],64)):f("v-if",!0),t[38]||(t[38]=n("th",{scope:"col",class:"num"},"Sales",-1)),t[39]||(t[39]=n("th",{scope:"col",class:"num"},"Revenue",-1))])]),n("tbody",null,[(a(!0),l(q,null,x(e.summary.plans,o=>(a(),l("tr",{key:o.planId,class:P({"bl-idle":!o.active&&!o.sales&&!o.allTimeSales})},[n("th",FY,[n("span",{class:P(["bl-swatch","bl-"+o.family]),"aria-hidden":"true"},null,2),n("button",{type:"button",class:"bl-link",title:"Show "+o.name+" grants",onClick:r=>e.filterPlan(o.planId)},c(o.name),9,UY)]),n("td",BY,c(e.fmt?.number(o.active)),1),e.period!=="all"?(a(),l(q,{key:0},[n("td",zY,c(e.fmt?.number(o.sales)),1),n("td",HY,c(e.revenueOn()?o.revenueComplete===!1?"Incomplete":e.moneyText(o.revenue):"\u2014"),1)],64)):f("v-if",!0),n("td",jY,c(e.fmt?.number(o.allTimeSales)),1),n("td",GY,c(e.revenueOn()?o.allTimeRevenueComplete===!1?"Incomplete":e.moneyText(o.allTimeRevenue):"\u2014"),1)],2))),128))]),n("tfoot",null,[n("tr",null,[t[40]||(t[40]=n("th",{scope:"row"},"Total",-1)),n("td",WY,c(e.fmt?.number(e.planTotals().active)),1),e.period!=="all"?(a(),l(q,{key:0},[n("td",KY,c(e.fmt?.number(e.planTotals().sales)),1),n("td",YY,c(e.revenueOn()?e.summary.sales.complete===!1?"Incomplete":e.moneyText(e.summary.sales.revenue):"\u2014"),1)],64)):f("v-if",!0),n("td",XY,c(e.fmt?.number(e.planTotals().allTimeSales)),1),n("td",JY,c(e.revenueOn()?e.summary.allTime.complete===!1?"Incomplete":e.moneyText(e.summary.allTime.revenue):"\u2014"),1)])])])]),t[42]||(t[42]=n("p",{class:"ov-performance-note bl-note"},"A paper pack counts once, under Paper pack. Active means paid time remains and the payment wasn't reversed.",-1))])):f("v-if",!0),f(" \u2500\u2500 Subscriptions and purchases \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),n("section",QY,[t[78]||(t[78]=n("div",{class:"bl-section-head"},[n("h2",{class:"ov-panel-title",id:"bl-grants-heading"},"Subscriptions and purchases")],-1)),n("div",ZY,[n("div",xY,[n("button",{type:"button",role:"radio",class:P(["seg-chip",{active:e.stateView()==="all"}]),"aria-checked":e.stateView()==="all",onClick:t[1]||(t[1]=o=>e.setStateView("all"))},[t[43]||(t[43]=g("All ",-1)),n("span",tX,c(e.fmt?.number(e.stateCount("all"))),1)],10,eX),n("button",{type:"button",role:"radio",class:P(["seg-chip",{active:e.stateView()==="active","is-empty":!e.stateCount("active")}]),"aria-checked":e.stateView()==="active",onClick:t[2]||(t[2]=o=>e.setStateView("active"))},[t[44]||(t[44]=n("span",{class:"seg-dot ok","aria-hidden":"true"},null,-1)),t[45]||(t[45]=g("Active ",-1)),n("span",sX,c(e.fmt?.number(e.stateCount("active"))),1)],10,nX),n("button",{type:"button",role:"radio",class:P(["seg-chip",{active:e.stateView()==="expired","is-empty":!e.stateCount("expired")}]),"aria-checked":e.stateView()==="expired",onClick:t[3]||(t[3]=o=>e.setStateView("expired"))},[t[46]||(t[46]=n("span",{class:"seg-dot off","aria-hidden":"true"},null,-1)),t[47]||(t[47]=g("Expired ",-1)),n("span",iX,c(e.fmt?.number(e.stateCount("expired"))),1)],10,oX),n("button",{type:"button",role:"radio",class:P(["seg-chip",{active:e.stateView()==="revoked","is-empty":!e.stateCount("revoked")}]),"aria-checked":e.stateView()==="revoked",onClick:t[4]||(t[4]=o=>e.setStateView("revoked"))},[t[48]||(t[48]=n("span",{class:"seg-dot bad","aria-hidden":"true"},null,-1)),t[49]||(t[49]=g("Revoked ",-1)),n("span",aX,c(e.fmt?.number(e.stateCount("revoked"))),1)],10,rX)]),n("p",lX,[n("strong",null,c(e.total>=0?e.fmt.number(e.total):"\u2026"),1),t[50]||(t[50]=g(" shown",-1))])]),e.grantsError?(a(),l("div",dX,[t[51]||(t[51]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),g(" "+c(e.grantsError)+" ",1),n("button",{type:"button",class:"btn btn-sm",onClick:t[5]||(t[5]=o=>e.reloadGrants())},"Retry")])):f("v-if",!0),D((a(),l("form",{class:"w-100 admin-filter-toolbar","aria-label":"Subscriptions and purchases","accept-charset":"UTF-8",onSubmit:t[9]||(t[9]=ae(()=>{},["prevent"]))},[n("button",{type:"button",class:"btn btn-sm admin-filters-toggle",onClick:t[6]||(t[6]=o=>e.filtersOpen=!e.filtersOpen),"aria-expanded":e.filtersOpen?"true":"false"},[t[52]||(t[52]=g("Filters",-1)),e.query.plan||e.query.status?(a(),l(q,{key:0},[g(" ("+c((e.query.plan?1:0)+(e.query.status?1:0))+")",1)],64)):f("v-if",!0)],8,uX),n("div",{class:P(["admin-filter-row",{"is-open":e.filtersOpen}])},[n("div",cX,[D(n("input",pX,null,512),[[s,{state:e.viewState,set:o=>{e.query.search=o},value:e.query?.search,form:null,options:{}}]])]),n("span",fX,[t[54]||(t[54]=n("label",{for:"bl-plan"},"Plan",-1)),D((a(),l("select",hX,[t[53]||(t[53]=n("option",{value:""},"Any",-1)),(a(!0),l(q,null,x(e.families,o=>(a(),l("optgroup",{key:o.id,label:o.label},[(a(!0),l(q,null,x((e.summary?.plans||[]).filter(r=>r.family===o.id),r=>(a(),l("option",{key:r.planId,value:r.planId},c(r.name),9,gX))),128))],8,mX))),128))])),[[s,{state:e.viewState,set:o=>{e.query.plan=o},value:e.query?.plan,form:null,options:{}}]])]),n("span",vX,[t[56]||(t[56]=n("label",{for:"bl-status"},"Stripe status",-1)),D((a(),l("select",yX,[t[55]||(t[55]=n("option",{value:""},"Any",-1)),(a(!0),l(q,null,x(e.statuses,o=>(a(),l("option",{key:o,value:o},c(o.replace(/_/g," ")),9,bX))),128))])),[[s,{state:e.viewState,set:o=>{e.query.status=o},value:e.query?.status,form:null,options:{}}]])]),t[59]||(t[59]=n("span",{class:"admin-filter-spacer"},null,-1)),e.totalPage>1?(a(),l("span",wX,[n("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[7]||(t[7]=o=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1,"aria-label":"Previous page"},[...t[57]||(t[57]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1)])],8,kX),n("span",CX,c(e.query?.page)+"/"+c(e.totalPage||1),1),n("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[8]||(t[8]=o=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage,"aria-label":"Next page"},[...t[58]||(t[58]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,EX)])):f("v-if",!0)],2),e.chips?.length?(a(),l("div",SX,[n("div",NX,[(a(!0),l(q,null,x(e.chips,o=>(a(),l("span",{class:"admin-active-chip",key:o?.key},[n("span",RX,c(o?.label),1),n("span",null,c(o?.value),1),n("button",{type:"button",onClick:r=>e.clearFilter(o.key),"aria-label":"Clear filter"},[...t[60]||(t[60]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])],8,PX)]))),128))])])):f("v-if",!0)],32)),[[i,e.viewState]]),e.grants?.length?(a(),l("div",AX,[n("table",DX,[t[71]||(t[71]=n("caption",{class:"sr-only"},"Subscriptions and purchases",-1)),n("thead",null,[n("tr",null,[t[65]||(t[65]=n("th",{scope:"col"},"User",-1)),t[66]||(t[66]=n("th",{scope:"col"},"Plan",-1)),t[67]||(t[67]=n("th",{scope:"col"},"Status",-1)),n("th",TX,[n("button",{type:"button",class:P(["sortable",{active:e.query?.sort=="purchasedAt"}]),onClick:t[10]||(t[10]=o=>e.sortBy("purchasedAt"))},[t[62]||(t[62]=g("Started ",-1)),e.sortIcon("purchasedAt")?(a(),l("svg",{key:0,class:P(["ui-icon sort-direction",{ascending:e.sortIcon("purchasedAt")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[61]||(t[61]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)]),n("th",OX,[n("button",{type:"button",class:P(["sortable",{active:e.query?.sort=="until"}]),onClick:t[11]||(t[11]=o=>e.sortBy("until"))},[t[64]||(t[64]=g("Renews / ends ",-1)),e.sortIcon("until")?(a(),l("svg",{key:0,class:P(["ui-icon sort-direction",{ascending:e.sortIcon("until")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[63]||(t[63]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)]),t[68]||(t[68]=n("th",{scope:"col"},"Cancelling",-1)),t[69]||(t[69]=n("th",{scope:"col"},"Revoked",-1)),t[70]||(t[70]=n("th",{scope:"col"},"Applies to",-1))])]),n("tbody",null,[(a(!0),l(q,null,x(e.grants,o=>(a(),l("tr",{key:o.id},[n("th",IX,[o.user?(a(),l("a",{key:0,title:o.user,href:e.safeUrl("/admin/users/"+o.user)},c(o.user),9,MX)):(a(),l("span",VX,"Deleted user"))]),n("td",null,[n("span",qX,[n("span",{class:P(["bl-swatch","bl-"+o.family]),"aria-hidden":"true"},null,2),g(c(e.planName(o.planId)),1)]),o.pack?(a(),l("small",_X,"Part of a paper pack")):f("v-if",!0)]),n("td",null,[n("span",$X,[n("span",{class:P(["status-dot",o.state==="active"?"st-ready":o.state==="revoked"?"st-error":"st-expired"])},null,2),g(c(o.state==="active"?"Active":o.state==="revoked"?"Revoked":"Expired"),1)]),["active","paid"].includes(o.status)?f("v-if",!0):(a(),l("small",LX,"Stripe: "+c(e.statusText(o)),1))]),n("td",null,c(o.purchasedAt?e.fmt?.date(o.purchasedAt):"\u2014"),1),n("td",null,[o.never?(a(),l(q,{key:0},[g("Never ends")],64)):o.until?(a(),l(q,{key:1},[g(c(e.fmt?.date(o.until)),1)],64)):(a(),l(q,{key:2},[g("\u2014")],64)),o.subscription&&o.state==="active"?(a(),l("small",FX,c(o.cancelAtPeriodEnd?"Ends":"Renews"),1)):f("v-if",!0)]),n("td",null,[o.cancelAtPeriodEnd?(a(),l("span",UX,"Cancelling")):(a(),l("span",BX,"\u2014"))]),n("td",null,[o.revoked?(a(),l(q,{key:0},[n("span",zX,c(e.revocationText(o.revocationReason)),1),o.revokedAt?(a(),l("small",HX,c(e.fmt?.date(o.revokedAt)),1)):f("v-if",!0)],64)):(a(),l("span",jX,"\u2014"))]),n("td",GX,[e.scopeHref(o.scope)?(a(),l("a",{key:0,href:e.safeUrl(e.scopeHref(o.scope))},[(a(),l("svg",KX,[n("use",{href:o.scope.kind==="conference"?"#project-icon-conference":"#project-type-repo"},null,8,YX)])),n("span",null,c(o.scope.id),1)],8,WX)):(a(),l("span",XX,"Account"))])]))),128))])])])):f("v-if",!0),e.total===0?(a(),l("div",JX,[t[72]||(t[72]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1)),n("span",null,c(e.hasFilters()?"No subscriptions or purchases match these filters.":"No subscriptions or purchases yet."),1),e.hasFilters()?(a(),l("button",{key:0,type:"button",class:"btn btn-sm",onClick:t[12]||(t[12]=o=>e.clearFilters())},"Clear filters")):f("v-if",!0)])):f("v-if",!0),e.total<0&&!e.grantsError?(a(),l("div",QX,"Loading subscriptions and purchases\u2026")):f("v-if",!0),e.total>0?(a(),l("div",ZX,[t[77]||(t[77]=n("span",{"aria-hidden":"true"},null,-1)),e.totalPage>1?(a(),l("div",xX,[n("button",{class:"btn btn-sm",onClick:t[13]||(t[13]=o=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1},[...t[73]||(t[73]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1),g(" Previous",-1)])],8,eJ),D(n("input",{type:"number",class:"form-control form-control-sm",min:"1",style:{width:"56px"},"aria-label":"Page",max:e.totalPage},null,8,tJ),[[s,{state:e.viewState,set:o=>{e.query.page=o},value:e.query?.page,form:null,options:{}}]]),n("span",null,"of "+c(e.totalPage),1),n("button",{class:"btn btn-sm",onClick:t[14]||(t[14]=o=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage},[...t[74]||(t[74]=[g("Next ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,nJ)])):f("v-if",!0),n("span",sJ,[t[76]||(t[76]=n("label",{for:"bl-limit"},"Per page",-1)),D((a(),l("select",oJ,[...t[75]||(t[75]=[n("option",{value:"10"},"10",-1),n("option",{value:"25"},"25",-1),n("option",{value:"50"},"50",-1),n("option",{value:"100"},"100",-1)])])),[[s,{state:e.viewState,set:o=>{e.query.limit=o},value:e.query?.limit,form:null,options:{}}]])])])):f("v-if",!0)])])}var iJ={class:"paper-footer"},rJ={class:"paper-footer-inner"},aJ={class:"paper-footer-col"},lJ={key:0,href:"/dashboard"},dJ={key:1,href:"/conferences"},uJ={class:"paper-footer-foot"};function Sp(e,t){return a(),l("footer",iJ,[n("div",rJ,[t[3]||(t[3]=n("div",{class:"paper-footer-brand"},[n("div",{class:"paper-footer-mark"},[g("Anonymous "),n("em",null,"GitHub")]),n("p",{class:"paper-footer-tag"}," A read-only, identity-stripped mirror of your repository, built for double-anonymous peer review. ")],-1)),n("div",aJ,[t[0]||(t[0]=n("div",{class:"paper-footer-head"},"Product",-1)),t[1]||(t[1]=n("a",{href:"/anonymize"},"Anonymize",-1)),e.user?(a(),l("a",lJ,"My work")):f("v-if",!0),e.user?(a(),l("a",dJ,"Conferences")):f("v-if",!0),t[2]||(t[2]=n("a",{href:"/faq"},"FAQ",-1))]),t[4]||(t[4]=Ee('',2))]),t[6]||(t[6]=n("div",{class:"paper-footer-rule"},null,-1)),n("div",uJ,[n("span",null,"\xA9 "+c(e.year||new Date().getFullYear())+" Anonymous GitHub \xB7 GPL-3.0 licensed",1),t[5]||(t[5]=n("span",{class:"paper-footer-meta"},"Built for reviewers, by researchers.",-1))])])}var ur={"partials/reviewConsent.htm":Yc,"partials/connections.htm":Xc,"partials/signin.htm":Jc,"partials/404.htm":Qc,"partials/admin/billing.htm":Ep,"partials/admin/conferences.htm":Zc,"partials/admin/errors.htm":xc,"partials/admin/overview.htm":ep,"partials/admin/queues.htm":tp,"partials/admin/repositories.htm":np,"partials/admin/user.htm":sp,"partials/admin/users.htm":op,"partials/anonymize.htm":ip,"partials/anonymizePullRequest.htm":rp,"partials/claim.htm":ap,"partials/conference.htm":lp,"partials/conferences.htm":dp,"partials/dashboard.htm":up,"partials/explorer.htm":cp,"partials/faq.htm":pp,"partials/gist.htm":fp,"partials/header.htm":hp,"partials/home.htm":mp,"partials/loading.htm":gp,"partials/newConference.htm":vp,"partials/pageView.htm":yp,"partials/pr-dashboard.htm":bp,"partials/profile.htm":wp,"partials/pullRequest.htm":kp,"partials/status.htm":Cp,"partials/footer.htm":Sp};var cJ={class:"ui-icon-definitions","aria-hidden":"true",focusable:"false"};function Np(e,t){return a(),l("svg",cJ,[...t[0]||(t[0]=[Ee('',1)])])}function Rp(e,t){e==="partials/explorer.htm"&&(t.sidebarCollapsed=window.matchMedia?.("(max-width: 767px)").matches||!1,t.sidebarHidden=!1,t.dirExpanded=!1,t.moreOpen=!1,t.tocOpen=!1,t.gotoOpen=!1,t.gotoValue="",t.gotoError="",t.mdFindOpen=!1,t.mdFindQuery="",t.mdFindTotal=0,t.mdFindIndex=0,t.mdFindCase=!1,t.accountOpen=!1,t.helpOpen=!1,t.sidebarWidth=Math.min(520,Math.max(220,Number(localStorage.getItem("sidebarWidth"))||(window.innerWidth>=1280?320:280))),document.documentElement.style.setProperty("--sidebar-w",t.sidebarWidth+"px"),t.startSidebarResize=o=>{o.preventDefault();let r=o.clientX,d=t.sidebarWidth,p=y=>{t.sidebarWidth=Math.min(520,Math.max(220,d+y.clientX-r)),document.documentElement.style.setProperty("--sidebar-w",t.sidebarWidth+"px")},u=()=>{window.removeEventListener("pointermove",p),window.removeEventListener("pointerup",u),document.body.classList.remove("is-resizing"),localStorage.setItem("sidebarWidth",String(t.sidebarWidth))};document.body.classList.add("is-resizing"),window.addEventListener("pointermove",p),window.addEventListener("pointerup",u)}),e==="partials/anonymize.htm"&&(t.prTabState={active:t.options.diff?"diff":"comments"},t.watchGroup(["options.diff","options.comments"],()=>{t.options[t.prTabState.active]||(t.prTabState.active=t.options.diff?"diff":t.options.comments?"comments":null)})),e==="partials/gist.htm"&&(t.tabState={active:t.details?.files?"files":"comments"}),["partials/conferences.htm","partials/conference.htm"].includes(e)&&(t.statusLabels={ready:"Ready",expired:"Expired",removed:"Removed"});let i={"partials/dashboard.htm":["filteredItems",()=>t.items,"itemFilter"],"partials/conferences.htm":["filteredConferences",()=>t.conferences,"conferenceFilter"],"partials/conference.htm":["filteredRepositories",()=>t.conference?.repositories,"repoFiler"],"partials/admin/repositories.htm":["filteredRepositories",()=>t.repositories,"repoFiler"],"partials/admin/user.htm":["filteredRepositories",()=>t.repositories,"repoFiler"],"partials/admin/users.htm":["filteredUsers",()=>t.users,"userFiler"],"partials/admin/conferences.htm":["filteredConferences",()=>t.conferences]}[e];if(i){let o=Rt(()=>t.fmt.orderBy(t.fmt.filter(i[1](),t[i[2]]),t.orderBy));Object.defineProperty(t,i[0],{configurable:!0,get:()=>o.value})}}function Pp(e=(...t)=>fetch(...t)){async function t(i,o,r,d={}){let p=new URL(o,window.location.href);for(let[m,b]of Object.entries(d.params||{}))if(b!=null)for(let h of Array.isArray(b)?b:[b])p.searchParams.append(m,typeof h=="object"?JSON.stringify(h):h);let u=new AbortController,y;d.timeout?.then?d.timeout.then(()=>u.abort()):d.timeout&&(y=setTimeout(()=>u.abort(),d.timeout));try{let m={Accept:"application/json, text/plain, */*",...d.headers},b=document.cookie.match(/(?:^|;\s*)XSRF-TOKEN=([^;]*)/);b&&p.origin===window.location.origin&&(m["X-XSRF-TOKEN"]=decodeURIComponent(b[1]));let h;r!==void 0&&(r instanceof FormData?h=r:(m["Content-Type"]||(m["Content-Type"]="application/json;charset=utf-8"),h=JSON.stringify(r)));let w=await e(p.href,{method:i,headers:m,body:h,credentials:"same-origin",signal:u.signal}),R;if(d.onDownloadProgress&&w.ok&&w.body?.getReader&&typeof TextDecoder<"u"){let v=w.body.getReader(),E=new TextDecoder,M=[],V=0;try{for(;;){let{value:_,done:G}=await v.read();if(G)break;M.push(E.decode(_,{stream:!0})),V+=_.byteLength,d.onDownloadProgress(V)}M.push(E.decode()),R=M.join("")}finally{v.releaseLock()}}else R=await w.text();let S=R;if(d.transformResponse)S=d.transformResponse(R);else if(R&&(/json/i.test(w.headers.get("content-type")||"")||/^[\[{]/.test(R.trim())))try{S=JSON.parse(R)}catch{}let N={data:S,status:w.status,headers:v=>w.headers.get(v)};if(!w.ok)throw N;return N}catch(m){throw m.name==="AbortError"?{status:-1,data:null}:m}finally{clearTimeout(y)}}let s={};for(let i of["get","delete","head"])s[i]=(o,r)=>t(i.toUpperCase(),o,void 0,r);for(let i of["post","put","patch"])s[i]=(o,r,d)=>t(i.toUpperCase(),o,r,d);return s}var Ap={resolve:e=>Promise.resolve(e),reject:e=>Promise.reject(e),all:e=>Promise.all(e),defer(){let e,t;return{promise:new Promise((i,o)=>{e=i,t=o}),resolve:e,reject:t}}};var Dp=function(e){function t(s){return s=s||{used:0,total:0},s.unlimited=!s.total,s.percent=s.unlimited?0:Math.min(100,s.used*100/s.total),s.level=s.unlimited?"unlimited":s.percent>=95?"danger":s.percent>=80?"warn":"ok",s}return{decorate:t,load:function(){return e.get("/api/user/quota").then(s=>{let i=s.data||{};return i.storage=t(i.storage),i.file=t(i.file),i.repository=t(i.repository),i})}}};var Tp={name:"htmlDoc",props:["content","baseUrl","allowScripts"],setup(e){let t=St(null);return fn(()=>{let i=[t.value][0];i.classList.add("html-doc");function o(){i.innerHTML="";let r=e.content;if(typeof r!="string")return;let d=document.createElement("iframe");d.className="html-doc-frame",d.setAttribute("title","Rendered HTML document");let p=["allow-popups","allow-popups-to-escape-sandbox"];e.allowScripts&&p.push("allow-scripts","allow-forms","allow-modals"),d.setAttribute("sandbox",p.join(" ")),d.setAttribute("referrerpolicy","no-referrer"),i.appendChild(d);let u="";e.baseUrl&&(u=''),d.srcdoc=u+r}dt(()=>e.content,o,{immediate:!0}),dt(()=>e.baseUrl,o,{immediate:!0}),dt(()=>e.allowScripts,o,{immediate:!0})}),()=>De("html-doc",{ref:t})}};var Op={name:"pdfviewer",props:["src"],setup(e){let t=St(null);return fn(()=>{let s=[t.value],i=400,o=[.5,.75,1,1.25,1.5,2,3],r=1e3,d=s[0];d.classList.add("pdf-viewer");let p=null,u=[],y=!1,m=null,b=1,h=0,w=1,R=0,S=0,N=612/792,v=0,E=null,M=new Map,V=0;function _(T){let F=M.get(T);F&&(F.cancelled=!0,F.task?.cancel?.(),M.delete(T));let J=T.querySelector("canvas");J&&(J.width=0,J.height=0),T.innerHTML="",delete T.dataset.state}let G=document.createElement("div");G.className="pdf-toolbar";let te=document.createElement("div");te.className="pdf-pages",te.tabIndex=0,te.setAttribute("aria-label","PDF pages"),d.appendChild(G),d.appendChild(te);function X(T,F,J){let H=document.createElement("button");return H.type="button",H.className="pdf-toolbar-btn",H.title=F,H.setAttribute("aria-label",F),H.innerHTML='',H.addEventListener("click",J),H}let O=X("fa-chevron-up","Previous page",function(){Be(w-1)}),U=X("fa-chevron-down","Next page",function(){Be(w+1)}),C=document.createElement("input");C.type="text",C.className="pdf-toolbar-page",C.setAttribute("aria-label","Page number"),C.title="Page number \u2014 type a page and press Enter",C.addEventListener("keydown",function(T){T.key==="Enter"&&(Be(parseInt(C.value,10)),C.blur())}),C.addEventListener("blur",function(){C.value=String(w)});let L=document.createElement("span");L.className="pdf-toolbar-count";let z=X("fa-search-minus","Zoom out",function(){me(o[Math.max(0,he()-1)])}),K=X("fa-search-plus","Zoom in",function(){me(o[Math.min(o.length-1,he()+1)])}),ie=document.createElement("button");ie.type="button",ie.className="pdf-toolbar-btn pdf-toolbar-zoom",ie.title="Reset zoom to fit the width",ie.setAttribute("aria-label","Reset zoom to fit the width"),ie.addEventListener("click",function(){me(1)}),G.appendChild(O),G.appendChild(U);let se=document.createElement("span");se.className="pdf-toolbar-group",se.appendChild(C),se.appendChild(L),G.appendChild(se);let Y=document.createElement("span");Y.className="pdf-toolbar-group pdf-toolbar-right",Y.appendChild(z),Y.appendChild(ie),Y.appendChild(K),G.appendChild(Y);function he(){let T=0;for(let F=0;F=T,ie.textContent=b===1||!h?"Fit":Math.round(Re()/(h*96/72)*100)+"%",z.disabled=he()===0,K.disabled=he()===o.length-1}function Ue(T){let F=u[T-1];F&&(te.scrollTop+=F.getBoundingClientRect().top-te.getBoundingClientRect().top)}function Be(T){if(!p||isNaN(T))return;let F=Math.min(Math.max(1,T),p.numPages);u[F-1]&&(Ue(F),w=F,R=F,S=Date.now()+800,Se(),W())}function Qe(){if(!u.length||Date.now(){}),E=null),m&&(clearTimeout(m),m=null),p&&(p.destroy(),p=null),u=[],w=1,te.innerHTML="",Se()}function et(){te.innerHTML="";let T=document.createElement("div");T.className="pdf-viewer-error",T.textContent="This PDF could not be displayed.",te.appendChild(T)}function Re(){let T=Math.max(120,te.clientWidth-24);return Math.round(Math.min(T,r)*b)}function Fe(T,F,J){let H=window.devicePixelRatio||1,Z=T.getViewport({scale:1}),le=parseFloat(F.style.width);if(!le)return;let ne=T.getViewport({scale:le/Z.width*H}),oe=document.createElement("canvas");return oe.width=Math.floor(ne.width),oe.height=Math.floor(ne.height),oe.style.width=le+"px",oe.style.height=Math.floor(ne.height/H)+"px",F.innerHTML="",F.appendChild(oe),F.style.height=oe.style.height,J.task=T.render({canvasContext:oe.getContext("2d"),viewport:ne}),J.task.promise}function W(){if(!p)return;let T=v,F=te.getBoundingClientRect(),J=F.top-i,H=F.top+te.clientHeight+i,Z=u.map((ne,oe)=>({slot:ne,i:oe,rect:ne.getBoundingClientRect()})).filter(ne=>ne.rect.top<=H&&ne.rect.bottom>=J).sort((ne,oe)=>Math.abs(ne.rect.top-F.top)-Math.abs(oe.rect.top-F.top)).slice(0,6),le=new Set(Z.map(ne=>ne.slot));for(let ne of M.keys())le.has(ne)||_(ne);for(let{slot:ne,i:oe}of Z){if(ne.dataset.state||V>=2)continue;let ee={cancelled:!1,task:null};M.set(ne,ee),V++,ne.dataset.state="rendering";let ke;p.getPage(oe+1).then(pe=>{if(ke=pe,!(ee.cancelled||T!==v))return Fe(ke,ne,ee)}).then(()=>{ee.cancelled||T!==v||(ne.dataset.state="done",R&&Date.now(){!ee.cancelled&&T===v&&(ne.dataset.state="failed")}).finally(()=>{V--,ke?.cleanup?.(),p&&W()})}}function fe(){y||(y=!0,window.requestAnimationFrame(function(){y=!1,Qe(),W()}))}function de(){let T=!1;function F(){T||(T=!0,W())}window.requestAnimationFrame(F),window.setTimeout(F,50)}function ce(){v++,u.forEach(_);let T=Re();u.forEach(function(F){delete F.dataset.state,F.innerHTML="",F.style.width=T+"px",F.style.height=Math.round(T/N)+"px"}),W()}function me(T){if(!p||!u.length||T===b)return;let F=w;b=T,Se(),ce(),Be(F)}function Me(){p&&(m&&clearTimeout(m),m=setTimeout(function(){m=null,p&&u.length&&ce()},250))}function A(T){if(He(),!T)return;let F=v;E=pdfjsLib.getDocument({url:T,isEvalSupported:!1,standardFontDataUrl:"/script/external/pdf-standard-fonts/",cMapUrl:"/script/external/pdf-cmaps/",cMapPacked:!0}),E.promise.then(function(J){if(F!==v){J.destroy();return}return p=J,p.getPage(1).then(function(H){if(F!==v)return;let Z=H.getViewport({scale:1});Z.width&&Z.height&&(N=Z.width/Z.height),h=Z.width||0;let le=Re();for(let ne=1;ne<=p.numPages;ne++){let oe=document.createElement("div");oe.className="pdf-viewer-page",oe.style.width=le+"px",oe.style.height=Math.round(le/N)+"px",te.appendChild(oe),u.push(oe)}Se(),de()})}).catch(function(){F===v&&et()})}te.addEventListener("scroll",fe,{passive:!0}),$(window).on("resize",Me),Se(),dt(()=>e.src,A,{immediate:!0}),is(function(){te.removeEventListener("scroll",fe),$(window).off("resize",Me),He()})}),()=>De("pdfviewer",{ref:t})}};var pJ={key:0,class:"quota-row quota-usage"},fJ={class:"quota-header"},hJ={class:"quota-label"},mJ={class:"project-type-svg","aria-hidden":"true"},gJ=["href"],vJ={key:0,class:"quota-percent"},yJ={key:1,class:"quota-unlimited-tag"},bJ={class:"quota-value"},wJ={key:0},kJ=["aria-label","aria-valuenow","aria-valuemax","aria-valuetext"],CJ={key:1,class:"quota-remaining"},EJ={key:2,class:"quota-remaining quota-limit"};function Ip(e,t){return e.quota?(a(),l("div",pJ,[(a(),l(q,null,x([{key:"repository",label:"Repositories",kind:"count",icon:"project-type-repo"},{key:"storage",label:"Storage",kind:"bytes",icon:"project-icon-storage"},{key:"file",label:"Files",kind:"count",icon:"project-icon-file"}],s=>n("div",{class:P(["quota-item","quota-"+e.quota[s.key].level]),key:s.key},[n("div",fJ,[n("span",hJ,[(a(),l("svg",mJ,[n("use",{href:"#"+s.icon},null,8,gJ)])),g(c(s.label),1)]),e.quota[s.key].unlimited?f("v-if",!0):(a(),l("span",vJ,c(e.quota[s.key].percent>0&&e.quota[s.key].percent<1?"<1":e.fmt.number(e.quota[s.key].percent,0))+"% used",1)),e.quota[s.key].unlimited?(a(),l("span",yJ,"Unlimited")):f("v-if",!0)]),n("div",bJ,[n("strong",null,c(e.formatAmount(e.quota[s.key].used,s.kind)),1),e.quota[s.key].unlimited?f("v-if",!0):(a(),l("span",wJ," / "+c(e.formatAmount(e.quota[s.key].total,s.kind)),1))]),e.quota[s.key].unlimited?f("v-if",!0):(a(),l("div",{key:0,class:P(["quota-track","quota-"+e.quota[s.key].level]),role:"progressbar","aria-valuemin":"0","aria-label":s.label+" quota","aria-valuenow":Math.min(e.quota[s.key].used,e.quota[s.key].total),"aria-valuemax":e.quota[s.key].total,"aria-valuetext":e.fmt.number(e.quota[s.key].percent,0)+"% used"},[e.quota[s?.key].unlimited?f("v-if",!0):(a(),l("div",{key:0,class:"quota-fill",style:Ie({width:e.quota[s.key].percent+"%"})},null,4))],10,kJ)),!e.quota[s.key].unlimited&&e.quota[s.key].used=e.quota[s.key].total?(a(),l("p",EJ,c(e.quota[s.key].used>e.quota[s.key].total?"Limit exceeded":"Limit reached"),1)):f("v-if",!0)],2)),64))])):f("v-if",!0)}var SJ={props:["quota","fmt"],setup(e){return{formatAmount:(t,s)=>s==="bytes"?e.fmt.humanFileSize(e.quota?.storage?.unit==="bytes"?t*8:t).replace(/([a-zA-Z]+)$/," $1"):e.fmt.number(t)}},render:Ip},NJ=new Set(ge),qp=e=>e?.querySelectorAll("pre code.language-diff, pre code.lang-diff").forEach(t=>{if(t.querySelector(".md-diff-line"))return;let s=t.innerHTML.replace(/\n$/,"").split(` +jane.smith@example.org`},null,8,Nj),[[i,{state:e.viewState,set:r=>{e.terms=r},value:e.terms,form:"defaultsForm",options:{debounce:250}}]]),n("details",Rj,[t[25]||(t[25]=n("summary",null,"Regex & replacement syntax",-1)),n("p",null,[t[21]||(t[21]=g("Matches become ",-1)),n("code",null,c(e.site_options?.ANONYMIZATION_MASK||"XXX")+"-[N]",1),t[22]||(t[22]=g(". Use ",-1)),t[23]||(t[23]=n("code",null,"term=>replacement",-1)),t[24]||(t[24]=g(" for a custom replacement. Regex is supported.",-1))])]),D(n("div",Aj,"Terms are in an invalid format.",512),[[Z,e.defaultsForm?.terms?.errors?.format]])])]),n("section",Pj,[t[35]||(t[35]=n("h2",null,"Reviewer display",-1)),n("div",null,[n("div",Dj,[n("label",Tj,[D(n("input",Oj,null,512),[[i,{state:e.viewState,set:r=>{e.options.link=r},value:e.options?.link,form:"defaultsForm",options:{}}]]),t[27]||(t[27]=g("Keep links",-1))]),n("label",Ij,[D(n("input",Mj,null,512),[[i,{state:e.viewState,set:r=>{e.options.image=r},value:e.options?.image,form:"defaultsForm",options:{}}]]),t[28]||(t[28]=g("Display images",-1))]),n("label",Vj,[D(n("input",qj,null,512),[[i,{state:e.viewState,set:r=>{e.options.pdf=r},value:e.options?.pdf,form:"defaultsForm",options:{}}]]),t[29]||(t[29]=g("Display PDFs",-1))]),n("label",_j,[D(n("input",$j,null,512),[[i,{state:e.viewState,set:r=>{e.options.notebook=r},value:e.options?.notebook,form:"defaultsForm",options:{}}]]),t[30]||(t[30]=g("Display notebooks",-1))]),n("label",Lj,[D(n("input",Fj,null,512),[[i,{state:e.viewState,set:r=>{e.options.loc=r},value:e.options?.loc,form:"defaultsForm",options:{}}]]),t[31]||(t[31]=g("Show line counts",-1))]),n("label",Uj,[D(n("input",Bj,null,512),[[i,{state:e.viewState,set:r=>{e.options.page=r},value:e.options?.page,form:"defaultsForm",options:{}}]]),t[32]||(t[32]=g("GitHub Pages",-1))])]),t[33]||(t[33]=n("p",{class:"settings-help"},"Images and PDFs are not anonymized.",-1)),t[34]||(t[34]=n("p",{class:"settings-help"},"GitHub Pages must use the anonymized branch.",-1))])]),n("section",zj,[t[38]||(t[38]=n("h2",null,"Source updates",-1)),n("div",null,[n("label",Hj,[D(n("input",jj,null,512),[[i,{state:e.viewState,set:r=>{e.options.update=r},value:e.options?.update,form:"defaultsForm",options:{}}]]),t[36]||(t[36]=g("Auto-update from GitHub",-1))]),t[37]||(t[37]=n("p",{class:"settings-help"},"Latest commit, at most once an hour.",-1))])]),n("section",Gj,[t[40]||(t[40]=n("label",{class:"settings-label",for:"expiration"},"On expiration",-1)),n("div",null,[D((a(),l("select",Wj,[...t[39]||(t[39]=[n("option",{value:"redirect"},"Redirect visitors to the GitHub repository",-1),n("option",{value:"remove",selected:""},"Remove the anonymized repository",-1)])])),[[i,{state:e.viewState,set:r=>{e.options.expirationMode=r},value:e.options?.expirationMode,form:"defaultsForm",options:{}}]]),n("p",Kj,c(e.options.expirationMode==="redirect"?"Redirecting reveals the original repository. Choose the date per anonymization.":"Set the expiration date for each repository."),1)])]),n("footer",Yj,[n("div",Xj,[e.draftRestored?(a(),l("span",Qj,"Your unsaved draft was restored.")):e.unsavedChanges?(a(),l("span",Jj,"Unsaved changes"+c(e.draftSaved?" \xB7 Draft saved in this tab":""),1)):(a(),l("span",Zj,c(e.message?"Defaults saved":"No unsaved changes"),1))]),e.draftRestored||e.unsavedChanges?(a(),l("button",{key:0,type:"button",class:"draft-discard",onClick:t[0]||(t[0]=r=>e.discardDraft())},"Discard changes")):f("v-if",!0),n("button",{id:"save",type:"submit",class:A(["btn btn-ink",{"is-saving":e.saving}]),disabled:e.saving||!(e.unsavedChanges||e.draftRestored)},c(e.saving?"Saving\u2026":"Save defaults"),11,xj),e.error?(a(),l("div",eG,c(e.error),1)):f("v-if",!0)])],32)),[[o,e.viewState]])],512),[[Z,e.settingsTab==="defaults"]]),D(n("section",{id:"settings-billing","aria-busy":e.billingLoading||e.billingBusy},[t[95]||(t[95]=n("p",{class:"settings-scope"},"Your plan and usage. Reviewer access is always free.",-1)),e.billingLoading?(a(),l("p",nG,"Loading billing\u2026")):f("v-if",!0),e.billingError?(a(),l("div",sG,[g(c(e.billingError)+" ",1),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[3]||(t[3]=r=>e.loadBilling()),disabled:e.billingBusy},"Try again",8,oG)])):f("v-if",!0),e.billingNotice?(a(),l("p",iG,c(e.billingNotice),1)):f("v-if",!0),e.billingPending?(a(),l("div",rG,[t[42]||(t[42]=n("strong",null,"Confirming your payment",-1)),t[43]||(t[43]=n("p",null,"Your allowance will update after confirmation. Please do not pay again.",-1)),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[4]||(t[4]=r=>e.refreshBilling()),disabled:e.billingBusy},"Check payment status",8,aG)])):f("v-if",!0),n("section",lG,[n("div",dG,[n("div",null,[t[44]||(t[44]=n("p",{class:"billing-eyebrow"},"Current plan",-1)),n("h2",uG,c(e.profileAuthorGrant()?e.profileGrantName(e.profileAuthorGrant()):e.billing?.enabled?"Free":"Account allowance"),1),e.profileAuthorGrant()?(a(),l("p",cG,[g(c(e.profileAuthorGrant().cancelAtPeriodEnd?"Renewal cancelled \xB7 access until ":"Renews ")+c(e.billingDate(e.profileAuthorGrant().until)),1),e.profileAuthorPurchase()?.amount!=null?(a(),l(q,{key:0},[g(" \xB7 "+c(e.billingPrice(e.profileAuthorPurchase())),1)],64)):f("v-if",!0)])):e.billing?.allowance?(a(),l("p",pG,c(e.billing.allowance.repositories)+" repositories \xB7 "+c(e.billingBytes(e.billing.allowance.storage))+" \xB7 links up to "+c(e.billing.freeExpirationMonths||5)+" months",1)):f("v-if",!0)]),e.profileAuthorGrant()&&e.billing?.portal?(a(),l("div",fG,[n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[5]||(t[5]=r=>e.billingPortal()),disabled:e.billingBusy},c(e.profileAuthorGrant().cancelAtPeriodEnd?"Resume renewal":"Change or cancel plan"),9,hG)])):f("v-if",!0)]),n("div",mG,[e.quota?(a(),Wt(s,{key:0,quota:e.quota,fmt:e.fmt},null,8,["quota","fmt"])):(a(),l("p",gG,"Loading usage\u2026"))]),e.quota?.repository&&!e.quota.repository.unlimited&&e.quota.repository.used>=e.quota.repository.total?(a(),l("p",vG,[g("Your free repositories are used up. Add the next one for "+c(e.profileSlotPlan()?e.billingPrice(e.profileSlotPlan()):"a one-time payment")+" when you create it, or ",1),t[45]||(t[45]=n("a",{href:"/dashboard"},"remove work you no longer need",-1)),t[46]||(t[46]=g(".",-1))])):f("v-if",!0),e.profileAuthorGrant()?.status==="past_due"?(a(),l("p",yG,"A subscription payment is overdue. Update your payment details in Manage billing and invoices.")):f("v-if",!0),e.profilePastSubscription()?(a(),l("p",bG,[...t[47]||(t[47]=[g("Your previous subscription has ended. Never-expiring repositories stay online for a 90-day grace period. ",-1),n("a",{href:"/dashboard"},"Review expiration dates",-1),g(".",-1)])])):f("v-if",!0),t[48]||(t[48]=n("p",{class:"billing-footnote"},"Co-authored, paid and conference repositories aren't counted here.",-1))]),e.billing?.enabled&&!e.profileAuthorGrant()&&(e.profilePackPlan()||e.profileAuthorPlans().length)?(a(),l("section",wG,[t[85]||(t[85]=n("h2",{class:"billing-section-title",id:"settings-plan-comparison",tabindex:"-1"},"Get more",-1)),e.showRepositoryPass&&e.profileAddon()&&!e.billingPending?f("v-if",!0):(a(),l("div",kG,[e.profilePackPlan()?(a(),l("article",CG,[t[54]||(t[54]=n("span",{class:"billing-offer-pill"},"Recommended",-1)),t[55]||(t[55]=n("div",{class:"billing-offer-head"},[n("p",{class:"billing-eyebrow"},"For one paper")],-1)),t[56]||(t[56]=n("h3",null,"Paper pack",-1)),n("p",EG,[n("strong",null,c(e.billingAmount(e.profilePackPlan())),1),t[49]||(t[49]=g(" once",-1))]),n("ul",SG,[t[50]||(t[50]=n("li",null,"One more repository, outside your free ones",-1)),n("li",null,"Its own "+c(e.billingBytes(e.profileSlotPlan()?.storage||e.profilePassPlan()?.storage))+" of storage",1),t[51]||(t[51]=n("li",null,"Automatic updates for 180 days",-1)),t[52]||(t[52]=n("li",null,"Online for up to a year",-1)),t[53]||(t[53]=n("li",null,"No subscription",-1))]),n("button",{type:"button",class:"btn btn-ink",onClick:t[6]||(t[6]=r=>e.openProfileAddon("repo_pack")),disabled:e.billingPending||e.billing.checkoutEnabled===!1},"Buy a Paper pack",8,NG)])):f("v-if",!0),e.profileAuthorPlans().length?(a(),l("article",RG,[n("div",AG,[t[57]||(t[57]=n("p",{class:"billing-eyebrow"},"For many papers",-1)),n("div",PG,[(a(!0),l(q,null,J(e.profileAuthorPlansByValue(),r=>(a(),l("button",{type:"button",role:"radio",key:r.id,"aria-checked":e.profileSelectedPlan()?.id===r.id?"true":"false",class:A({"is-on":e.profileSelectedPlan()?.id===r.id}),onClick:d=>e.profilePlan=r.id},[g(c(r.interval==="year"?"Yearly":"Monthly"),1),r.interval==="year"&&e.profileAnnualSavings()?(a(),l("span",TG,"\u2212"+c(e.profileAnnualSavings())+"%",1)):f("v-if",!0)],10,DG))),128))])]),t[62]||(t[62]=n("h3",null,"Author subscription",-1)),n("p",OG,[n("strong",null,c(e.billingAmount(e.profileSelectedPlan())),1),g(" per "+c(e.profileSelectedPlan()?.interval==="year"?"year":"month"),1)]),n("ul",IG,[n("li",null,c(e.profileSelectedPlan()?.repositories)+" repositories, "+c(e.billingBytes(e.profileSelectedPlan()?.storage)),1),t[58]||(t[58]=n("li",null,"Automatic updates",-1)),t[59]||(t[59]=n("li",null,"Links that never expire",-1)),t[60]||(t[60]=n("li",null,"Coauthors included",-1)),t[61]||(t[61]=n("li",null,"Cancel renewal anytime",-1))]),n("button",{type:"button",class:"btn btn-outline-ink",disabled:e.billingBusy||e.billing.checkoutEnabled===!1,onClick:t[7]||(t[7]=r=>e.checkout(e.profileSelectedPlan().id))},c(e.billingBusy?"Please wait\u2026":"Subscribe"),9,MG)])):f("v-if",!0)])),e.profileSingleAddons().length&&!(e.showRepositoryPass&&e.profileAddon()&&!e.billingPending)?(a(),l("div",VG,[t[63]||(t[63]=n("div",{class:"billing-addons-head"},[n("h3",{class:"billing-subtitle"},"Or pay for one thing"),n("span",null,"One-time")],-1)),n("ul",qG,[(a(!0),l(q,null,J(e.profileSingleAddons(),r=>(a(),l("li",{key:r.id},[n("div",null,[n("strong",null,c(r.name),1),n("span",null,c(e.profileAddonBlurb(r.id)),1)]),n("span",_G,c(e.billingAmount(r)),1),n("button",{type:"button",class:"settings-text-button",onClick:d=>e.openProfileAddon(r.id),disabled:e.billingPending||e.billing.checkoutEnabled===!1},"Buy",8,$G)]))),128))])])):f("v-if",!0),e.showRepositoryPass&&e.profileAddon()&&!e.billingPending?(a(),l("div",LG,[n("div",FG,[n("button",{type:"button",class:"btn btn-outline-ink billing-back",onClick:t[8]||(t[8]=r=>e.showRepositoryPass=!1)},"\u2190 All options"),n("h3",null,c(e.profileAddon().name),1),n("p",UG,[n("strong",null,c(e.billingAmount(e.profileAddon())),1),t[64]||(t[64]=g(" once",-1))]),n("ul",BG,[(a(!0),l(q,null,J(e.profileAddonFeatures(e.profileAddon().id),r=>(a(),l("li",{key:r},c(r),1))),128))])]),n("div",zG,[e.profileRepositories().length?(a(),l(q,{key:0},[t[66]||(t[66]=n("label",{class:"paper-field-label",for:"billing-repository"},"Which repository?",-1)),D(n("select",{id:"billing-repository",class:"form-control","onUpdate:modelValue":t[9]||(t[9]=r=>e.billingRepository=r)},[t[65]||(t[65]=n("option",{value:"",disabled:""},"Choose a repository",-1)),(a(!0),l(q,null,J(e.profileRepositories(),r=>(a(),l("option",{key:r.repoId,value:r.repoId},c(r.repoId)+" \xB7 "+c(e.profileRepositoryExpiry(r)),9,HG))),128))],512),[[Ut,e.billingRepository]]),n("button",{type:"button",class:"btn btn-ink",disabled:e.billingBusy||!e.billingRepository||e.billing.checkoutEnabled===!1,onClick:t[10]||(t[10]=r=>e.checkout(e.profileAddon().id,e.billingRepository))},c(e.billingBusy?"Please wait\u2026":"Continue to checkout"),9,jG),t[67]||(t[67]=n("p",{class:"billing-footnote"},"One-time payment. Tax shown at checkout.",-1))],64)):(a(),l("p",GG,[...t[68]||(t[68]=[g("You have no repositories yet. ",-1),n("a",{href:"/anonymize"},"Create one",-1),g(" first.",-1)])])),["repo_slot","repo_pack"].includes(e.profileAddon().id)?(a(),l("p",WG,[...t[69]||(t[69]=[g("Adding a new repository? ",-1),n("a",{href:"/anonymize"},"Start creating it",-1),g("; the form offers this once your free repositories are in use.",-1)])])):f("v-if",!0)])])):f("v-if",!0),n("details",KG,[t[84]||(t[84]=n("summary",null,"Compare all features",-1)),n("div",YG,[n("table",XG,[t[83]||(t[83]=n("caption",{class:"sr-only"},"Free, Paper pack and Author hosting",-1)),n("thead",null,[n("tr",null,[t[72]||(t[72]=n("th",{scope:"col"},[n("span",{class:"sr-only"},"Feature")],-1)),t[73]||(t[73]=n("th",{scope:"col"},[g("Free"),n("small",null,"\u20AC0")],-1)),e.profilePackPlan()?(a(),l("th",QG,[t[70]||(t[70]=g("Paper pack",-1)),n("small",null,c(e.billingPrice(e.profilePackPlan())),1)])):f("v-if",!0),e.profileAuthorPlans().length?(a(),l("th",JG,[t[71]||(t[71]=g("Author",-1)),n("small",null,c(e.billingPrice(e.profileSelectedPlan())),1)])):f("v-if",!0)])]),n("tbody",null,[n("tr",null,[t[74]||(t[74]=n("th",{scope:"row"},"Repositories",-1)),n("td",null,c(e.billing.allowance?.repositories),1),e.profilePackPlan()?(a(),l("td",ZG,"+1")):f("v-if",!0),e.profileAuthorPlans().length?(a(),l("td",xG,c(e.profileSelectedPlan()?.repositories),1)):f("v-if",!0)]),n("tr",null,[t[75]||(t[75]=n("th",{scope:"row"},"Source storage",-1)),n("td",null,c(e.billingBytes(e.billing.allowance?.storage))+" total",1),e.profilePackPlan()?(a(),l("td",eW,c(e.billingBytes(e.profileSlotPlan()?.storage||e.profilePassPlan()?.storage))+" for it",1)):f("v-if",!0),e.profileAuthorPlans().length?(a(),l("td",tW,c(e.billingBytes(e.profileSelectedPlan()?.storage))+" total",1)):f("v-if",!0)]),n("tr",null,[t[76]||(t[76]=n("th",{scope:"row"},"Latest expiration",-1)),n("td",null,c(e.billing.freeExpirationMonths||5)+" months ahead",1),e.profilePackPlan()?(a(),l("td",nW,"1 year after purchase")):f("v-if",!0),e.profileAuthorPlans().length?(a(),l("td",sW,"Never")):f("v-if",!0)]),n("tr",null,[t[77]||(t[77]=n("th",{scope:"row"},"Automatic updates",-1)),t[78]||(t[78]=n("td",null,"No",-1)),e.profilePackPlan()?(a(),l("td",oW,"180 days")):f("v-if",!0),e.profileAuthorPlans().length?(a(),l("td",iW,"Yes")):f("v-if",!0)]),n("tr",null,[t[79]||(t[79]=n("th",{scope:"row"},"Renews",-1)),t[80]||(t[80]=n("td",null,"No",-1)),e.profilePackPlan()?(a(),l("td",rW,"No")):f("v-if",!0),e.profileAuthorPlans().length?(a(),l("td",aW,"Until cancelled")):f("v-if",!0)]),n("tr",null,[t[81]||(t[81]=n("th",{scope:"row"},"Reviewer access",-1)),t[82]||(t[82]=n("td",null,"Free",-1)),e.profilePackPlan()?(a(),l("td",lW,"Free")):f("v-if",!0),e.profileAuthorPlans().length?(a(),l("td",dW,"Free")):f("v-if",!0)])])])])]),e.billing.checkoutEnabled===!1?(a(),l("p",uW,"New purchases are not available right now. Existing billing can still be managed below.")):f("v-if",!0)])):f("v-if",!0),e.billing?.enabled?(a(),l("section",cW,[n("div",pW,[t[86]||(t[86]=n("h2",{class:"billing-section-title"},"Purchases",-1)),e.billingPending?f("v-if",!0):(a(),l("button",{key:0,type:"button",class:"settings-text-button",onClick:t[11]||(t[11]=r=>e.refreshBilling()),disabled:e.billingBusy},"Refresh payment status",8,fW))]),(e.billing.purchases||[]).length?f("v-if",!0):(a(),l("p",hW,"No purchases yet.")),(e.billing.purchases||[]).length?(a(),l("div",mW,[...t[87]||(t[87]=[n("span",null,"Purchase",-1),n("span",null,"Period",-1),n("span",null,"Amount",-1),n("span",null,"Status",-1)])])):f("v-if",!0),(e.billing.purchases||[]).length?(a(),l("ul",gW,[(a(!0),l(q,null,J(e.profilePurchases(!0).concat(e.profilePurchases(!1)),r=>(a(),l("li",{class:A(["billing-history-row",{"is-ended":!["active","overdue"].includes(r.status)}]),key:r.id},[n("div",vW,[n("strong",null,[g(c(e.profileGrantName(r)),1),r.repoId?(a(),l(q,{key:0},[t[88]||(t[88]=g(" \xB7 ",-1)),n("a",{href:"/anonymize/"+encodeURIComponent(r.repoId)},c(r.repoId),9,yW)],64)):r.conference?(a(),l(q,{key:1},[t[89]||(t[89]=g(" \xB7 ",-1)),n("a",{href:"/conference/"+encodeURIComponent(r.conference)},c(r.conference),9,bW)],64)):f("v-if",!0)]),n("span",null,c([r.purchasedAt?"Bought "+e.billingDate(r.purchasedAt):"",r.parts.length?e.profilePackSummary(r):["refunded","disputed"].includes(r.status)?"Payment "+r.status+", so what it paid for has ended":r.recurring?"Account subscription":""].filter(Boolean).join(" \xB7 ")),1)]),n("div",wW,c(e.profilePurchaseTerm(r)),1),n("div",kW,c(r.amount!=null?e.billingPrice(r):""),1),n("div",CW,[n("span",{class:A(["settings-status","is-"+r.status])},c(e.profilePurchaseStatus(r)),3)])],2))),128))])):f("v-if",!0),n("div",EW,[n("div",null,[t[90]||(t[90]=n("strong",null,"Invoices and payment details",-1)),e.billing.portal?(a(),l("p",SW,"Download receipts, update your card or change renewal in Stripe.")):(a(),l("p",NW,"Invoices appear here after your first purchase.")),t[91]||(t[91]=n("p",null,[g("Need a refund? "),n("a",{href:"mailto:tdurieux@anonymous.4open.science"},"Email the maintainer"),g(" with the payment date, or read the "),n("a",{href:"/faq#faq-plans"},"refund policy"),g(".")],-1))]),e.billing.portal?(a(),l("button",{key:0,type:"button",class:"btn btn-outline-ink",onClick:t[12]||(t[12]=r=>e.billingPortal()),disabled:e.billingBusy},"Manage billing and invoices",8,RW)):f("v-if",!0)])])):f("v-if",!0),n("p",AW,[t[92]||(t[92]=g("Organizing a conference? ",-1)),e.profileConferencePlan()?(a(),l(q,{key:0},[g("Review packages start at "+c(e.billingAmount(e.profileConferencePlan()))+" once for up to "+c(e.profileConferencePlan().repositories)+" submissions, and authors pay nothing.",1)],64)):(a(),l(q,{key:1},[g("One payment hosts every submission, and authors pay nothing.")],64)),t[93]||(t[93]=g()),t[94]||(t[94]=n("a",{href:"/conference/new"},"Create a conference",-1))])],8,tG),[[Z,e.settingsTab==="billing"]]),D(n("section",PW,[t[105]||(t[105]=n("p",{class:"settings-scope"},"Your identity, repository access, and account.",-1)),n("div",DW,[e.user?.photo?(a(),l("img",{key:0,width:"40",height:"40",class:"rounded-circle",alt:"",src:e.safeUrl(e.user?.photo)},null,8,TW)):f("v-if",!0),n("div",OW,[n("div",IW,"@"+c(e.user?.username),1),t[96]||(t[96]=n("div",{class:"paper-account-meta"},"Signed in with GitHub. Anonymous GitHub only reads your repositories.",-1))]),t[97]||(t[97]=n("a",{class:"btn btn-outline-ink",href:"/api/user/logout",target:"_self"},"Sign out",-1))]),n("form",{class:"paper-account-email",onSubmit:t[16]||(t[16]=ae(r=>e.saveAccountEmail(),["prevent"]))},[t[98]||(t[98]=n("label",{class:"paper-field-label",for:"account-email"},"Email address",-1)),t[99]||(t[99]=n("p",{id:"account-email-help",class:"paper-section-copy"},"Used for account alerts. Your address is never shown on anonymous pages.",-1)),D(n("input",{id:"account-email",class:"form-control",type:"email",autocomplete:"email",maxlength:"254",required:"","onUpdate:modelValue":t[13]||(t[13]=r=>e.accountEmail=r),"aria-describedby":"account-email-help",disabled:e.emailLoading||e.emailSaving||!e.emailCSRFReady,onInput:t[14]||(t[14]=r=>e.emailSaved=!1)},null,40,MW),[[pt,e.accountEmail]]),e.emailLoading?(a(),l("p",VW,"Loading your email address\u2026")):f("v-if",!0),e.emailError?(a(),l("p",qW,c(e.emailError),1)):f("v-if",!0),!e.emailCSRFReady&&!e.emailLoading?(a(),l("button",{key:2,class:"btn btn-outline-ink mt-2",type:"button",onClick:t[15]||(t[15]=r=>e.loadAccountEmail())},"Try again")):f("v-if",!0),n("button",{class:"btn btn-ink mt-2",type:"submit",disabled:e.emailLoading||e.emailSaving||!e.emailCSRFReady},c(e.emailSaving?"Saving\u2026":"Save email address"),9,_W),e.emailSaved?(a(),l("p",$W,"Email address saved.")):f("v-if",!0)],32),t[106]||(t[106]=n("a",{class:"paper-settings-connection-link",href:"/connections"},[n("i",{class:"fab fa-github","aria-hidden":"true"}),n("span",null,[g("GitHub connections"),n("small",null,"Manage repository access and legacy OAuth.")]),n("span",{"aria-hidden":"true"},"\u2192")],-1)),n("div",LW,[t[103]||(t[103]=n("div",{class:"paper-danger-head"},"Delete account",-1)),t[104]||(t[104]=n("p",{class:"paper-danger-copy"}," Removes all your anonymized repositories, gists, and pull requests, revokes the application's access to your GitHub account, and erases your personal data (username, email, access tokens). This cannot be undone. ",-1)),e.deleteError?(a(),l("div",FW,[t[100]||(t[100]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-info"})],-1)),t[101]||(t[101]=g()),n("span",{textContent:c(e.deleteError)},null,8,UW)])):f("v-if",!0),n("button",{type:"button",class:"btn btn-outline-danger",onClick:t[17]||(t[17]=r=>e.confirmDeleteAccount=!0),disabled:e.deletingAccount},[t[102]||(t[102]=n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1)),g(c(e.deletingAccount?"Deleting\u2026":"Delete my account"),1)],8,BW),e.confirmDeleteAccount?(a(),l("div",zW,[n("label",HW,"Type "+c(e.user?.username)+" to confirm",1),D(n("input",{id:"delete-username",class:"form-control","onUpdate:modelValue":t[18]||(t[18]=r=>e.deleteUsername=r),autocomplete:"off"},null,512),[[pt,e.deleteUsername]]),n("div",jW,[n("button",{type:"button",class:"btn btn-outline-danger",onClick:t[19]||(t[19]=r=>e.deleteAccount()),disabled:e.deletingAccount||e.deleteUsername!==e.user?.username},c(e.deletingAccount?"Deleting\u2026":"Delete permanently"),9,GW),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[20]||(t[20]=r=>{e.confirmDeleteAccount=!1,e.deleteUsername=""}),disabled:e.deletingAccount},"Cancel",8,WW)])])):f("v-if",!0)])],512),[[Z,e.settingsTab==="account"]])])}var KW={class:"pr-page"},YW={class:"container paper-page pr-page-inner"},XW={class:"pr-header"},QW={class:"pr-title-row"},JW={class:"paper-page-title pr-title"},ZW=["textContent"],xW={key:1,class:"text-muted"},eK=["href"],tK={class:"pr-header-meta"},nK={key:0,class:"pr-meta-item"},sK=["textContent"],oK={key:1,class:"pr-meta-item"},iK=["textContent"],rK={key:2,class:"pr-meta-item"},aK=["textContent"],lK={key:0,class:"pr-body-card"},dK={key:1,class:"paper-tabs",role:"tablist"},uK=["aria-selected","tabindex"],cK=["aria-selected","tabindex"],pK=["textContent"],fK={class:"paper-tab-content"},hK={key:0,role:"tabpanel",id:"pr-diff-panel","aria-labelledby":"pr-diff-tab"},mK=["innerHTML"],gK={key:1,role:"tabpanel",id:"pr-comments-panel","aria-labelledby":"pr-comments-tab"},vK={class:"pr-comments"},yK={class:"pr-comment"},bK={class:"pr-comment-head"},wK={key:0,class:"pr-comment-author"},kK=["textContent"],CK=["textContent"],EK={key:0,class:"pr-comment-body"},SK={key:0,class:"paper-table-empty"};function Ep(e,t){let s=Xe("markdown");return a(),l("div",KW,[n("div",YW,[t[17]||(t[17]=n("div",{class:"paper-crumbs"},[n("a",{href:"/dashboard"},"Reviewer"),g(" \xA0/\xA0 "),n("span",{class:"here"},"Pull request")],-1)),n("header",XW,[n("div",QW,[n("h1",JW,[e.details?.title?(a(),l("span",{key:0,textContent:c(e.details?.title)},null,8,ZW)):f("v-if",!0),e.details?.title?f("v-if",!0):(a(),l("span",xW,"Untitled pull request"))]),e.options?.isAdmin||e.options?.isOwner?(a(),l("a",{key:0,class:"btn btn-sm","aria-label":"Edit",href:e.safeUrl("/pull-request-anonymize/"+e.pullRequestId)},[...t[4]||(t[4]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),n("span",{class:"d-none d-md-inline"}," Edit",-1)])],8,eK)):f("v-if",!0)]),n("div",tK,[n("span",{class:A(["paper-pill",{good:e.details?.merged,warn:e.details?.state=="open",bad:e.details?.state=="closed"&&!e.details?.merged}])},[n("span",{class:A(["status-dot",{"status-ready":e.details?.merged,"status-error":e.details?.state=="closed"&&!e.details?.merged}])},null,2),g(" "+c(e.details?.merged?"Merged":e.fmt.title(e.details?.state)),1)],2),e.details?.baseRepositoryFullName?(a(),l("span",nK,[t[5]||(t[5]=n("i",{class:"fab fa-github"},null,-1)),t[6]||(t[6]=g()),n("span",{textContent:c(e.details?.baseRepositoryFullName)},null,8,sK)])):f("v-if",!0),e.details?.updatedDate?(a(),l("span",oK,[t[7]||(t[7]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),t[8]||(t[8]=g()),n("span",{textContent:c(e.fmt?.date(e.details?.updatedDate))},null,8,iK)])):f("v-if",!0),e.details?.anonymizeDate?(a(),l("span",rK,[t[9]||(t[9]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1)),t[10]||(t[10]=g(" Anonymized ",-1)),n("span",{textContent:c(e.fmt?.date(e.details?.anonymizeDate))},null,8,aK)])):f("v-if",!0)])]),e.details?.body?(a(),l("section",lK,[t[11]||(t[11]=n("div",{class:"paper-section-eyebrow"},"Description",-1)),Oe(s,{content:e.details?.body},null,8,["content"])])):f("v-if",!0),e.details?.diff||e.details?.comments?(a(),l("nav",dK,[e.details?.diff?(a(),l("button",{key:0,class:A(["paper-tab",{active:e.tabState?.active=="diff"}]),type:"button",role:"tab",id:"pr-diff-tab","aria-selected":e.tabState?.active==="diff","aria-controls":"pr-diff-panel",tabindex:e.tabState?.active==="diff"?0:-1,onKeydown:t[0]||(t[0]=i=>e.previewTabKeydown(i)),onClick:t[1]||(t[1]=i=>e.tabState.active="diff")},[...t[12]||(t[12]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-code"})],-1),g(" Diff ",-1)])],42,uK)):f("v-if",!0),e.details?.comments?(a(),l("button",{key:1,class:A(["paper-tab",{active:e.tabState?.active=="comments"}]),type:"button",role:"tab",id:"pr-comments-tab","aria-selected":e.tabState?.active==="comments","aria-controls":"pr-comments-panel",tabindex:e.tabState?.active==="comments"?0:-1,onKeydown:t[2]||(t[2]=i=>e.previewTabKeydown(i)),onClick:t[3]||(t[3]=i=>e.tabState.active="comments")},[t[13]||(t[13]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-comment"})],-1)),n("span",{textContent:c(e.fmt.plural(e.details?.comments?.length,{0:"No comments",one:"1 comment",other:"{} comments"}))},null,8,pK)],42,cK)):f("v-if",!0)])):f("v-if",!0),n("div",fK,[e.details?.diff&&e.tabState?.active=="diff"?(a(),l("div",hK,[n("div",{class:"pr-diff",innerHTML:e.sanitize(e.fmt?.diff(e.details?.diff))},null,8,mK)])):f("v-if",!0),e.details?.comments&&e.tabState?.active=="comments"?(a(),l("div",gK,[n("ul",vK,[(a(!0),l(q,null,J(e.details?.comments,(i,o)=>(a(),l("li",yK,[n("div",bK,[i?.author?(a(),l("span",wK,[t[14]||(t[14]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-user"})],-1)),t[15]||(t[15]=g(" @",-1)),n("span",{textContent:c(i?.author)},null,8,kK)])):f("v-if",!0),i?.updatedDate?(a(),l("span",{key:1,class:"pr-comment-date",textContent:c(e.fmt?.date(i?.updatedDate))},null,8,CK)):f("v-if",!0)]),i?.body?(a(),l("div",EK,[Oe(s,{content:i?.body},null,8,["content"])])):f("v-if",!0)]))),256)),e.details?.comments?.length?f("v-if",!0):(a(),l("li",SK,[...t[16]||(t[16]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-comment"})],-1),n("span",null,"No comments on this pull request.",-1)])]))])])):f("v-if",!0)])])])}var NK={class:"repository-task status-page"},RK={class:"page-head-main"},AK={class:"task-lede"},PK={class:"task-columns"},DK={class:"task-preparation","aria-label":"Repository preparation"},TK={key:0,class:"text-danger",role:"alert"},OK={key:1,class:"paper-section-copy"},IK={key:2,class:"paper-ratelimit-card",role:"status"},MK={class:"paper-error-msg"},VK=["aria-valuenow"],qK={class:"paper-progress-label"},_K=["textContent"],$K={key:0},LK=["textContent"],FK={class:"paper-progress-pct"},UK={key:4,class:"paper-error-card",role:"alert"},BK={key:0,class:"paper-error-msg"},zK={key:1,class:"paper-error-msg"},HK={key:2},jK=["href"],GK={class:"paper-error-actions"},WK=["href"],KK={key:5,class:"share-link"},YK={class:"share-link-row"},XK={class:"share-link-buttons"},QK={class:"ui-icon","aria-hidden":"true"},JK=["href"],ZK=["textContent"],xK=["href"],eY={class:"share-link-note"},tY=["href"],nY={class:"share-link-next"},sY={class:"share-link-next-actions"},oY=["href"],iY={class:"task-summary","aria-label":"Repository summary"},rY=["title"],aY={key:1};function Sp(e,t){return a(),l("div",NK,[n("header",{class:A(["page-head",{"task-ready":e.repo?.status==="ready"}])},[t[3]||(t[3]=n("div",{class:"paper-crumbs"},[n("a",{href:"/dashboard"},"My work"),g(" \xA0/\xA0 "),n("span",{class:"here"},"Review link")],-1)),n("div",RK,[n("div",null,[n("h1",null,c(e.repo?.status==="ready"?"Your review link is ready":"Prepare your anonymous review link"),1),n("p",AK,c(e.repo?.status==="ready"?"Share this link with reviewers in your submission.":"Your settings are saved. Track preparation before sharing the link."),1)])]),t[4]||(t[4]=n("ol",{class:"task-trail flow-trail","aria-label":"Repository progress"},[n("li",null,"1. Repository"),n("li",null,"2. Review and hosting"),n("li",{"aria-current":"step"},"3. Review link")],-1))],2),n("div",PK,[n("section",DK,[e.error?(a(),l("p",TK,[t[5]||(t[5]=g("Unable to load repository status. ",-1)),n("button",{type:"button",class:"task-text-button",onClick:t[0]||(t[0]=s=>e.getStatus())},"Try again")])):f("v-if",!0),e.repo?.status!=="ready"?(a(),l("p",OK,[...t[6]||(t[6]=[g(" The repository will take a few minutes to get ready, depending on its size. Visit the ",-1),n("a",{href:"/faq"},"FAQ",-1),g(" for more information. ",-1)])])):f("v-if",!0),e.rateLimitResetAt?(a(),l("div",IK,[t[9]||(t[9]=Ce('
Temporarily paused
GitHub API rate limit reached
',1)),n("p",MK,[t[7]||(t[7]=g("Anonymization will resume automatically in ",-1)),n("strong",null,c(e.rateLimitCountdown),1),t[8]||(t[8]=g(". No action needed \u2014 the job is queued and will continue where it left off.",-1))])])):f("v-if",!0),e.repo?.status!=="ready"&&e.repo?.status!="error"&&!e.rateLimitResetAt?(a(),l("div",{key:3,class:A(["paper-progress",{"paper-progress-ready":e.repo?.status=="ready"}]),role:"progressbar","aria-valuemin":"0","aria-valuemax":"100","aria-valuenow":e.progress},[n("div",{class:"paper-progress-bar",style:Ie("width: "+e.progress+"%;")},null,4),n("div",qK,[n("span",{textContent:c(e.fmt?.title(e.repo?.status))},null,8,_K),e.repo?.statusMessage?(a(),l("span",$K,[t[10]||(t[10]=g("\xA0\xB7\xA0",-1)),n("span",{textContent:c(e.repo?.statusMessage)},null,8,LK)])):f("v-if",!0),n("span",FK,c(e.progress||0)+"%",1)])],10,VK)):f("v-if",!0),e.repo?.status=="error"&&!e.rateLimitResetAt?(a(),l("div",UK,[t[14]||(t[14]=Ce('
Anonymization failed
Something went wrong while preparing this repository.
',1)),e.repo?.statusMessage?(a(),l("p",BK,c(e.fmt?.translate("ERRORS."+e.repo?.statusMessage)),1)):f("v-if",!0),e.repo?.statusMessage?f("v-if",!0):(a(),l("p",zK,"No additional details were reported. The most common causes are private repositories, missing branches, and rate limits.")),e.repo?.statusMessage==="quota_exceeded"?(a(),l("p",HK,[n("a",{href:e.safeUrl("/anonymize/"+e.repoId)},"Review this repository\u2019s hosting",8,jK),t[11]||(t[11]=g(", then retry preparation.",-1))])):f("v-if",!0),t[15]||(t[15]=n("ul",{class:"paper-error-hints"},[n("li",null,"Make sure the source URL points to a repository or pull request you can access."),n("li",null,"Check that the chosen branch and commit still exist on GitHub."),n("li",null,"If you just signed in, the access token may need a moment to propagate \u2014 try again.")],-1)),n("div",GK,[n("a",{class:"btn btn-primary",href:e.safeUrl("/anonymize/"+e.repoId)},[...t[12]||(t[12]=[n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),g(" Edit anonymization",-1)])],8,WK),t[13]||(t[13]=Ce(' Read the FAQ Report a bug in Anonymous GitHub',2))])])):f("v-if",!0),e.repo?.status=="ready"?(a(),l("div",KK,[t[24]||(t[24]=n("div",{class:"share-link-label",id:"share-url-label"},"Review link",-1)),n("div",YK,[n("code",{id:"share-url",class:"share-link-url",tabindex:"0",role:"textbox","aria-readonly":"true","aria-labelledby":"share-url-label",onFocus:t[1]||(t[1]=s=>e.selectShareUrl(s))},c(e.shareUrl),33),n("div",XK,[n("button",{type:"button",class:"btn btn-primary share-copy",onClick:t[2]||(t[2]=s=>e.copyShareUrl())},[(a(),l("svg",QK,[n("use",{href:e.copied?"#ui-icon-check":"#project-icon-copy"},null,8,JK)])),n("span",{"aria-live":"polite",textContent:c(e.copied?"Copied":"Copy link")},null,8,ZK)]),n("a",{class:"btn share-open",target:"_self",href:e.safeUrl("/r/"+e.repoId+"/")},[...t[16]||(t[16]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),g(" Open repository ",-1)])],8,xK)])]),n("p",eY,[g(c(e.repo?.options?.expirationMode!=="never"&&e.repo?.options?.expirationDate?"Expires "+e.fmt.date(e.repo.options.expirationDate):"Never expires"),1),t[18]||(t[18]=n("span",{"aria-hidden":"true"}," \xB7 ",-1)),t[19]||(t[19]=g("Reviewers don\u2019t need an account",-1)),e.repo?.options?.page?(a(),l(q,{key:0},[t[17]||(t[17]=n("span",{"aria-hidden":"true"}," \xB7 ",-1)),n("a",{target:"_self",href:e.safeUrl("/w/"+e.repoId+"/")},"Open GitHub page",8,tY)],64)):f("v-if",!0)]),n("div",nY,[t[22]||(t[22]=n("h2",null,"Need to change something?",-1)),t[23]||(t[23]=n("p",null,"Edit the redacted terms or the expiry at any time. The link stays the same.",-1)),n("p",sY,[n("a",{href:e.safeUrl("/anonymize/"+e.repoId)},"Edit anonymization",8,oY),t[20]||(t[20]=n("span",{"aria-hidden":"true"},"\xB7",-1)),t[21]||(t[21]=n("a",{href:"/dashboard"},"Go to My work",-1))])])])):f("v-if",!0)]),n("aside",iY,[n("dl",null,[t[28]||(t[28]=n("dt",null,"Source",-1)),e.repo?.source?.fullName?(a(),l("dd",{key:0,class:"task-source",title:"https://github.com/"+e.repo.source.fullName},[t[25]||(t[25]=g("github.com/",-1)),t[26]||(t[26]=n("wbr",null,null,-1)),g(c(e.repo.source.fullName.split("/")[0])+"/",1),t[27]||(t[27]=n("wbr",null,null,-1)),g(c(e.repo.source.fullName.split("/").slice(1).join("/")),1)],8,rY)):(a(),l("dd",aY,"Loading\u2026")),t[29]||(t[29]=n("dt",null,"Lifetime",-1)),n("dd",null,c(e.repo?.options?.expirationMode==="never"?"Never expire while subscribed":e.repo?.options?.expirationDate?"Until "+e.fmt.date(e.repo.options.expirationDate):"Loading\u2026"),1),t[30]||(t[30]=n("dt",null,"Review access",-1)),t[31]||(t[31]=n("dd",null,"Anonymous and free",-1))])])])])}var lY={class:"container paper-page admin-page overview-page billing-page"},dY={class:"bl-toolbar"},uY={class:"seg-filter",role:"radiogroup","aria-label":"Period"},cY=["aria-checked","onClick"],pY={key:0,class:"bl-basis"},fY={key:0,class:"ov-performance-message ov-performance-warning bl-message",role:"alert"},hY={key:1,class:"ov-performance-message bl-message",role:"status"},mY={key:2,class:"ov-performance-message ov-performance-warning bl-message",role:"status"},gY=["aria-busy"],vY={class:"ov-kpi-card"},yY={class:"ov-kpi-value"},bY={class:"ov-kpi-sub"},wY={class:"ov-kpi-card"},kY={key:0,class:"ov-kpi-sub"},CY={key:1,class:"ov-kpi-sub"},EY={class:"ov-kpi-card"},SY={class:"ov-kpi-label"},NY={class:"ov-kpi-value"},RY={class:"ov-kpi-sub"},AY={class:"ov-kpi-card"},PY={class:"ov-kpi-value"},DY={class:"ov-kpi-sub"},TY={class:"ov-kpi-card"},OY={class:"ov-kpi-value"},IY={class:"ov-kpi-sub"},MY={class:"ov-kpi-card"},VY={class:"ov-kpi-sub"},qY={key:3,class:"bl-health","aria-label":"Webhook health"},_Y={class:"bl-health-title"},$Y={class:"bl-health-item"},LY=["title"],FY={key:1,class:"bl-health-item"},UY={key:4,class:"ov-chart-card bl-chart-card"},BY={class:"ov-chart-head"},zY={class:"ov-chart-title"},HY={key:0,class:"ov-chart-legends"},jY=["aria-label"],GY={class:"ov-yaxis","aria-hidden":"true"},WY=["data-tip"],KY={class:"ov-spark-x bl-x"},YY={key:1,class:"ov-performance-empty bl-empty",role:"status"},XY={key:5,class:"ov-panel-card bl-plans","aria-labelledby":"bl-plans-heading"},QY={class:"ov-panel-head"},JY={class:"ov-panel-meta"},ZY={class:"ov-metrics-scroll",tabindex:"0",role:"region","aria-label":"Sales by plan, scroll for more columns"},xY={class:"ov-metrics-table"},eX={key:0,scope:"colgroup",colspan:"2",class:"bl-group"},tX={scope:"row",class:"bl-plan-name"},nX=["title","onClick"],sX={class:"num"},oX={class:"num"},iX={class:"num"},rX={class:"num"},aX={class:"num"},lX={class:"num"},dX={class:"num"},uX={class:"num"},cX={class:"num"},pX={class:"num"},fX={class:"bl-grants",id:"bl-grants","aria-labelledby":"bl-grants-heading"},hX={class:"seg-bar"},mX={class:"seg-filter",role:"radiogroup","aria-label":"Filter by state"},gX=["aria-checked"],vX={class:"count"},yX=["aria-checked"],bX={class:"count"},wX=["aria-checked"],kX={class:"count"},CX=["aria-checked"],EX={class:"count"},SX={class:"seg-countline",role:"status"},NX={key:0,class:"alert alert-danger bl-alert"},RX=["aria-expanded"],AX={class:"search-wrap"},PX={type:"search",class:"form-control","aria-label":"Search by user",placeholder:"Search by user\u2026",autocomplete:"off"},DX={class:"admin-filter-inline"},TX={id:"bl-plan",class:"form-control form-control-sm"},OX=["label"],IX=["value"],MX={class:"admin-filter-inline"},VX={id:"bl-status",class:"form-control form-control-sm"},qX=["value"],_X={key:0,class:"admin-filter-inline","aria-label":"Pagination"},$X=["disabled"],LX={class:"bl-page"},FX=["disabled"],UX={key:0,class:"admin-filter-row"},BX={class:"admin-active-chips"},zX={class:"key"},HX=["onClick"],jX={key:1,class:"ov-metrics-scroll bl-grant-scroll",tabindex:"0",role:"region","aria-label":"Subscriptions and purchases, scroll for more columns"},GX={class:"ov-metrics-table bl-grant-table"},WX={scope:"col"},KX={scope:"col"},YX={scope:"row",class:"bl-user"},XX=["title","href"],QX={key:1,class:"ov-muted"},JX={class:"bl-plan-cell"},ZX={key:0},xX={class:"bl-state"},eQ={key:0},tQ={key:3},nQ={key:0,class:"bl-flag"},sQ={key:1,class:"ov-muted"},oQ={class:"bl-flag is-bad"},iQ={key:0},rQ={key:1,class:"ov-muted"},aQ={class:"bl-scope"},lQ=["href"],dQ={class:"ui-icon","aria-hidden":"true"},uQ=["href"],cQ={key:1,class:"ov-muted"},pQ={key:2,class:"paper-table-empty"},fQ={key:3,class:"admin-empty"},hQ={key:4,class:"admin-toolbar bl-pager"},mQ={key:0,class:"pagination-compact"},gQ=["disabled"],vQ=["max"],yQ=["disabled"],bQ={class:"admin-filter-inline"},wQ={id:"bl-limit",class:"form-control form-control-sm"};function Np(e,t){let s=Pe("field"),i=Pe("form");return a(),l("div",lY,[t[79]||(t[79]=Ce('
Admin \xA0/\xA0 Billing

Billing

',2)),n("div",dY,[n("div",uY,[(a(!0),l(q,null,J(e.periods,o=>(a(),l("button",{type:"button",role:"radio",class:A(["seg-chip",{active:e.period===o.id}]),key:o.id,"aria-checked":e.period===o.id,onClick:r=>e.setPeriod(o.id)},c(o.label),11,cY))),128))]),e.summary?(a(),l("p",pY,"Sales are new checkouts and subscriptions. Revenue uses Stripe list prices; renewals count toward MRR.")):f("v-if",!0)]),e.summaryError?(a(),l("div",fY,[t[15]||(t[15]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),n("span",null,c(e.summaryError),1),n("button",{type:"button",class:"btn btn-sm",onClick:t[0]||(t[0]=o=>e.loadSummary())},"Retry")])):f("v-if",!0),e.summary&&!e.summary.revenue?.available?(a(),l("div",hY,[...t[16]||(t[16]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-info"})],-1),n("span",null,[n("b",null,"Revenue unavailable."),g(" Stripe is not configured on this server, so amounts can't be looked up. Counts are complete.")],-1)])])):f("v-if",!0),e.summary?.revenue?.missingSales||e.summary?.revenue?.missingAllTimeSales||e.summary?.revenue?.missingSubscriptions?(a(),l("div",mY,[t[17]||(t[17]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),n("span",null,"Some Stripe prices are unavailable. Affected totals are marked incomplete: "+c(e.fmt?.number(e.summary.revenue.missingSales||0))+" period sales, "+c(e.fmt?.number(e.summary.revenue.missingAllTimeSales||0))+" historical sales, "+c(e.fmt?.number(e.summary.revenue.missingSubscriptions||0))+" active subscriptions.",1)])):f("v-if",!0),f(" \u2500\u2500 Summary tiles \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),n("section",{class:A(["ov-kpi-row bl-kpi-row",{"is-loading":e.summaryLoading}]),"aria-busy":e.summaryLoading?"true":"false","aria-label":"Billing summary"},[!e.summary&&e.summaryLoading?(a(),l(q,{key:0},J(6,o=>n("div",{class:"ov-kpi-card",key:o,"aria-hidden":"true"},[...t[18]||(t[18]=[n("span",{class:"skeleton skeleton-line-sm",style:{width:"60%"}},null,-1),n("span",{class:"skeleton bl-skeleton-value"},null,-1),n("span",{class:"skeleton skeleton-line-sm",style:{width:"80%"}},null,-1)])])),64)):f("v-if",!0),e.summary?(a(),l(q,{key:1},[n("div",vY,[t[19]||(t[19]=n("div",{class:"ov-kpi-label"},"Active subscriptions",-1)),n("div",yY,c(e.fmt?.number(e.summary.subscriptions.active)),1),n("div",bY,c(e.fmt?.number(e.summary.subscriptions.monthly))+" monthly \xB7 "+c(e.fmt?.number(e.summary.subscriptions.annual))+" annual",1)]),n("div",wY,[t[20]||(t[20]=n("div",{class:"ov-kpi-label"},"MRR",-1)),n("div",{class:A(["ov-kpi-value",{"bl-muted-value":!e.revenueOn()}])},c(e.revenueOn()?e.summary.subscriptions.complete===!1?"Incomplete":e.money(e.summary.subscriptions.mrr)[0]||e.fmt?.money(0):"Unavailable"),3),e.revenueOn()&&e.money(e.summary.subscriptions.mrr).length>1?(a(),l("div",kY,"+ "+c(e.money(e.summary.subscriptions.mrr).slice(1).join(" \xB7 ")),1)):(a(),l("div",CY,c(e.revenueOn()?"Annual plans \xF7 12":"Needs Stripe prices"),1))]),n("div",EY,[n("div",SY,"Sales \xB7 "+c(e.periodPhrase()),1),n("div",NY,c(e.fmt?.number(e.summary.sales.count)),1),n("div",RY,c(e.revenueOn()?e.summary.sales.complete===!1?"Revenue incomplete":e.moneyText(e.summary.sales.revenue,e.fmt?.money(0)):"Revenue unavailable"),1)]),n("div",AY,[t[21]||(t[21]=n("div",{class:"ov-kpi-label"},"All-time sales",-1)),n("div",PY,c(e.fmt?.number(e.summary.allTime.count)),1),n("div",DY,c(e.revenueOn()?e.summary.allTime.complete===!1?"Revenue incomplete":e.moneyText(e.summary.allTime.revenue,e.fmt?.money(0)):"Revenue unavailable"),1)]),n("div",TY,[t[22]||(t[22]=n("div",{class:"ov-kpi-label"},"Cancelling",-1)),n("div",OY,c(e.fmt?.number(e.summary.subscriptions.cancelling)),1),n("div",IY,"at period end, of "+c(e.fmt?.number(e.summary.subscriptions.active))+" active",1)]),n("div",MY,[t[23]||(t[23]=n("div",{class:"ov-kpi-label"},"Refunds & disputes",-1)),n("div",{class:A(["ov-kpi-value",{"ov-val-warn":e.summary.reversals.disputes>0}])},c(e.fmt?.number(e.summary.reversals.refunds+e.summary.reversals.disputes)),3),n("div",VY,c(e.fmt?.number(e.summary.reversals.refunds))+" "+c(e.summary.reversals.refunds===1?"refund":"refunds")+" \xB7 "+c(e.fmt?.number(e.summary.reversals.disputes))+" "+c(e.summary.reversals.disputes===1?"dispute":"disputes"),1)])],64)):f("v-if",!0)],10,gY),f(" \u2500\u2500 Webhook health \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),e.summary?.webhooks?(a(),l("section",qY,[n("span",_Y,[n("span",{class:A(["ov-svc-dot",{"ov-dot-ok":e.webhookState()==="ok","ov-dot-warn":e.webhookState()==="warn","bl-dot-bad":e.webhookState()==="bad"}]),"aria-hidden":"true"},null,2),t[24]||(t[24]=g("Stripe webhooks",-1))]),n("span",$Y,[t[25]||(t[25]=n("span",{class:"k"},"Pending",-1)),g(" "+c(e.fmt?.number(e.summary.webhooks.pending)),1),e.summary.webhooks.pending?(a(),l(q,{key:0},[g(" \xB7 oldest "+c(e.age(e.summary.webhooks.oldestPendingSeconds)),1)],64)):f("v-if",!0)]),n("span",{class:A(["bl-health-item",{"is-bad":e.summary.webhooks.failed}])},[t[26]||(t[26]=n("span",{class:"k"},"Failed",-1)),g(" "+c(e.fmt?.number(e.summary.webhooks.failed)),1)],2),e.summary.webhooks.lastError?(a(),l("span",{key:0,class:"bl-health-item bl-health-error",title:e.summary.webhooks.lastError.type+": "+e.summary.webhooks.lastError.error},[t[27]||(t[27]=n("span",{class:"k"},"Last error",-1)),t[28]||(t[28]=g()),n("code",null,c(e.summary.webhooks.lastError.error),1),g(" on "+c(e.summary.webhooks.lastError.type)+" \xB7 "+c(e.fmt?.humanTime(e.summary.webhooks.lastError.receivedAt)),1)],8,LY)):(a(),l("span",FY,[...t[29]||(t[29]=[n("span",{class:"k"},"Last error",-1),g(" none",-1)])])),n("span",{class:A(["bl-health-item",{"is-warn":e.summary.webhooks.unreviewedRevocations}])},[t[30]||(t[30]=n("span",{class:"k"},"Unreviewed reversals",-1)),g(" "+c(e.fmt?.number(e.summary.webhooks.unreviewedRevocations)),1)],2)])):f("v-if",!0),f(" \u2500\u2500 Sales over time \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),e.summary?(a(),l("section",UY,[n("div",BY,[n("span",zY,"Sales per "+c(e.bucketName())+" \xB7 "+c(e.periodPhrase()),1),e.seriesSales()?(a(),l("span",HY,[(a(!0),l(q,null,J(e.families,o=>(a(),l("span",{class:"ov-chart-legend",key:o.id},[n("span",{class:A(["bl-swatch","bl-"+o.id]),"aria-hidden":"true"},null,2),g(c(o.label)+" \xB7 "+c(e.fmt?.number(e.familyTotal(o.id))),1)]))),128))])):f("v-if",!0)]),e.seriesSales()?(a(),l(q,{key:0},[n("div",{class:A(["ov-spark-bars ov-has-axis bl-bars",{"is-dense":e.summary.series.length>45}]),role:"img","aria-label":e.fmt?.number(e.seriesSales())+" sales, "+e.periodPhrase()+", by plan family"},[n("div",GY,[n("span",null,c(e.fmt?.number(e.chartMax())),1),n("span",null,c(e.fmt?.number(e.chartMax()/2)),1),t[31]||(t[31]=n("span",null,"0",-1))]),(a(!0),l(q,null,J(e.summary.series,(o,r)=>(a(),l("div",{class:A(["ov-spark-col has-tip bl-col",{"is-zero":!e.bucketTotal(o)}]),key:r,"data-tip":e.bucketTip(o)},[n("span",{class:"bl-stack",style:Ie({height:e.bucketTotal(o)/e.chartMax()*100+"%"})},[(a(!0),l(q,null,J(e.families,d=>D((a(),l("i",{key:d.id,class:A("bl-"+d.id),style:Ie({flexGrow:o[d.id]})},null,6)),[[Z,o[d.id]]])),128))],4)],10,WY))),128))],10,jY),n("div",KY,[n("span",null,c(e.bucketLabel(e.summary.series[0])),1),n("span",null,c(e.bucketLabel(e.summary.series[Math.floor(e.summary.series.length/2)])),1),n("span",null,c(e.bucketLabel(e.summary.series[e.summary.series.length-1])),1)])],64)):(a(),l("p",YY,"No sales "+c(e.period==="all"?"yet":"in the "+e.periodPhrase())+".",1))])):f("v-if",!0),f(" \u2500\u2500 By plan \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),e.summary?(a(),l("section",XY,[n("div",QY,[t[32]||(t[32]=n("h2",{class:"ov-panel-title",id:"bl-plans-heading"},"By plan",-1)),n("span",JY,c(e.fmt?.number(e.plansWithActivity().length))+" of "+c(e.fmt?.number(e.summary.plans.length))+" plans sold",1)]),n("div",ZY,[n("table",xY,[t[41]||(t[41]=n("caption",{class:"sr-only"},"Active grants, sales and revenue per plan",-1)),n("thead",null,[n("tr",null,[t[33]||(t[33]=n("th",{scope:"col",rowspan:"2"},"Plan",-1)),t[34]||(t[34]=n("th",{scope:"col",rowspan:"2",class:"num"},"Active",-1)),e.period!=="all"?(a(),l("th",eX,c(e.periodPhrase().replace(/^./,o=>o.toUpperCase())),1)):f("v-if",!0),t[35]||(t[35]=n("th",{scope:"colgroup",colspan:"2",class:"bl-group"},"All time",-1))]),n("tr",null,[e.period!=="all"?(a(),l(q,{key:0},[t[36]||(t[36]=n("th",{scope:"col",class:"num"},"Sales",-1)),t[37]||(t[37]=n("th",{scope:"col",class:"num"},"Revenue",-1))],64)):f("v-if",!0),t[38]||(t[38]=n("th",{scope:"col",class:"num"},"Sales",-1)),t[39]||(t[39]=n("th",{scope:"col",class:"num"},"Revenue",-1))])]),n("tbody",null,[(a(!0),l(q,null,J(e.summary.plans,o=>(a(),l("tr",{key:o.planId,class:A({"bl-idle":!o.active&&!o.sales&&!o.allTimeSales})},[n("th",tX,[n("span",{class:A(["bl-swatch","bl-"+o.family]),"aria-hidden":"true"},null,2),n("button",{type:"button",class:"bl-link",title:"Show "+o.name+" grants",onClick:r=>e.filterPlan(o.planId)},c(o.name),9,nX)]),n("td",sX,c(e.fmt?.number(o.active)),1),e.period!=="all"?(a(),l(q,{key:0},[n("td",oX,c(e.fmt?.number(o.sales)),1),n("td",iX,c(e.revenueOn()?o.revenueComplete===!1?"Incomplete":e.moneyText(o.revenue):"\u2014"),1)],64)):f("v-if",!0),n("td",rX,c(e.fmt?.number(o.allTimeSales)),1),n("td",aX,c(e.revenueOn()?o.allTimeRevenueComplete===!1?"Incomplete":e.moneyText(o.allTimeRevenue):"\u2014"),1)],2))),128))]),n("tfoot",null,[n("tr",null,[t[40]||(t[40]=n("th",{scope:"row"},"Total",-1)),n("td",lX,c(e.fmt?.number(e.planTotals().active)),1),e.period!=="all"?(a(),l(q,{key:0},[n("td",dX,c(e.fmt?.number(e.planTotals().sales)),1),n("td",uX,c(e.revenueOn()?e.summary.sales.complete===!1?"Incomplete":e.moneyText(e.summary.sales.revenue):"\u2014"),1)],64)):f("v-if",!0),n("td",cX,c(e.fmt?.number(e.planTotals().allTimeSales)),1),n("td",pX,c(e.revenueOn()?e.summary.allTime.complete===!1?"Incomplete":e.moneyText(e.summary.allTime.revenue):"\u2014"),1)])])])]),t[42]||(t[42]=n("p",{class:"ov-performance-note bl-note"},"A paper pack counts once, under Paper pack. Active means paid time remains and the payment wasn't reversed.",-1))])):f("v-if",!0),f(" \u2500\u2500 Subscriptions and purchases \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),n("section",fX,[t[78]||(t[78]=n("div",{class:"bl-section-head"},[n("h2",{class:"ov-panel-title",id:"bl-grants-heading"},"Subscriptions and purchases")],-1)),n("div",hX,[n("div",mX,[n("button",{type:"button",role:"radio",class:A(["seg-chip",{active:e.stateView()==="all"}]),"aria-checked":e.stateView()==="all",onClick:t[1]||(t[1]=o=>e.setStateView("all"))},[t[43]||(t[43]=g("All ",-1)),n("span",vX,c(e.fmt?.number(e.stateCount("all"))),1)],10,gX),n("button",{type:"button",role:"radio",class:A(["seg-chip",{active:e.stateView()==="active","is-empty":!e.stateCount("active")}]),"aria-checked":e.stateView()==="active",onClick:t[2]||(t[2]=o=>e.setStateView("active"))},[t[44]||(t[44]=n("span",{class:"seg-dot ok","aria-hidden":"true"},null,-1)),t[45]||(t[45]=g("Active ",-1)),n("span",bX,c(e.fmt?.number(e.stateCount("active"))),1)],10,yX),n("button",{type:"button",role:"radio",class:A(["seg-chip",{active:e.stateView()==="expired","is-empty":!e.stateCount("expired")}]),"aria-checked":e.stateView()==="expired",onClick:t[3]||(t[3]=o=>e.setStateView("expired"))},[t[46]||(t[46]=n("span",{class:"seg-dot off","aria-hidden":"true"},null,-1)),t[47]||(t[47]=g("Expired ",-1)),n("span",kX,c(e.fmt?.number(e.stateCount("expired"))),1)],10,wX),n("button",{type:"button",role:"radio",class:A(["seg-chip",{active:e.stateView()==="revoked","is-empty":!e.stateCount("revoked")}]),"aria-checked":e.stateView()==="revoked",onClick:t[4]||(t[4]=o=>e.setStateView("revoked"))},[t[48]||(t[48]=n("span",{class:"seg-dot bad","aria-hidden":"true"},null,-1)),t[49]||(t[49]=g("Revoked ",-1)),n("span",EX,c(e.fmt?.number(e.stateCount("revoked"))),1)],10,CX)]),n("p",SX,[n("strong",null,c(e.total>=0?e.fmt.number(e.total):"\u2026"),1),t[50]||(t[50]=g(" shown",-1))])]),e.grantsError?(a(),l("div",NX,[t[51]||(t[51]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),g(" "+c(e.grantsError)+" ",1),n("button",{type:"button",class:"btn btn-sm",onClick:t[5]||(t[5]=o=>e.reloadGrants())},"Retry")])):f("v-if",!0),D((a(),l("form",{class:"w-100 admin-filter-toolbar","aria-label":"Subscriptions and purchases","accept-charset":"UTF-8",onSubmit:t[9]||(t[9]=ae(()=>{},["prevent"]))},[n("button",{type:"button",class:"btn btn-sm admin-filters-toggle",onClick:t[6]||(t[6]=o=>e.filtersOpen=!e.filtersOpen),"aria-expanded":e.filtersOpen?"true":"false"},[t[52]||(t[52]=g("Filters",-1)),e.query.plan||e.query.status?(a(),l(q,{key:0},[g(" ("+c((e.query.plan?1:0)+(e.query.status?1:0))+")",1)],64)):f("v-if",!0)],8,RX),n("div",{class:A(["admin-filter-row",{"is-open":e.filtersOpen}])},[n("div",AX,[D(n("input",PX,null,512),[[s,{state:e.viewState,set:o=>{e.query.search=o},value:e.query?.search,form:null,options:{}}]])]),n("span",DX,[t[54]||(t[54]=n("label",{for:"bl-plan"},"Plan",-1)),D((a(),l("select",TX,[t[53]||(t[53]=n("option",{value:""},"Any",-1)),(a(!0),l(q,null,J(e.families,o=>(a(),l("optgroup",{key:o.id,label:o.label},[(a(!0),l(q,null,J((e.summary?.plans||[]).filter(r=>r.family===o.id),r=>(a(),l("option",{key:r.planId,value:r.planId},c(r.name),9,IX))),128))],8,OX))),128))])),[[s,{state:e.viewState,set:o=>{e.query.plan=o},value:e.query?.plan,form:null,options:{}}]])]),n("span",MX,[t[56]||(t[56]=n("label",{for:"bl-status"},"Stripe status",-1)),D((a(),l("select",VX,[t[55]||(t[55]=n("option",{value:""},"Any",-1)),(a(!0),l(q,null,J(e.statuses,o=>(a(),l("option",{key:o,value:o},c(o.replace(/_/g," ")),9,qX))),128))])),[[s,{state:e.viewState,set:o=>{e.query.status=o},value:e.query?.status,form:null,options:{}}]])]),t[59]||(t[59]=n("span",{class:"admin-filter-spacer"},null,-1)),e.totalPage>1?(a(),l("span",_X,[n("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[7]||(t[7]=o=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1,"aria-label":"Previous page"},[...t[57]||(t[57]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1)])],8,$X),n("span",LX,c(e.query?.page)+"/"+c(e.totalPage||1),1),n("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[8]||(t[8]=o=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage,"aria-label":"Next page"},[...t[58]||(t[58]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,FX)])):f("v-if",!0)],2),e.chips?.length?(a(),l("div",UX,[n("div",BX,[(a(!0),l(q,null,J(e.chips,o=>(a(),l("span",{class:"admin-active-chip",key:o?.key},[n("span",zX,c(o?.label),1),n("span",null,c(o?.value),1),n("button",{type:"button",onClick:r=>e.clearFilter(o.key),"aria-label":"Clear filter"},[...t[60]||(t[60]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])],8,HX)]))),128))])])):f("v-if",!0)],32)),[[i,e.viewState]]),e.grants?.length?(a(),l("div",jX,[n("table",GX,[t[71]||(t[71]=n("caption",{class:"sr-only"},"Subscriptions and purchases",-1)),n("thead",null,[n("tr",null,[t[65]||(t[65]=n("th",{scope:"col"},"User",-1)),t[66]||(t[66]=n("th",{scope:"col"},"Plan",-1)),t[67]||(t[67]=n("th",{scope:"col"},"Status",-1)),n("th",WX,[n("button",{type:"button",class:A(["sortable",{active:e.query?.sort=="purchasedAt"}]),onClick:t[10]||(t[10]=o=>e.sortBy("purchasedAt"))},[t[62]||(t[62]=g("Started ",-1)),e.sortIcon("purchasedAt")?(a(),l("svg",{key:0,class:A(["ui-icon sort-direction",{ascending:e.sortIcon("purchasedAt")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[61]||(t[61]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)]),n("th",KX,[n("button",{type:"button",class:A(["sortable",{active:e.query?.sort=="until"}]),onClick:t[11]||(t[11]=o=>e.sortBy("until"))},[t[64]||(t[64]=g("Renews / ends ",-1)),e.sortIcon("until")?(a(),l("svg",{key:0,class:A(["ui-icon sort-direction",{ascending:e.sortIcon("until")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[63]||(t[63]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)]),t[68]||(t[68]=n("th",{scope:"col"},"Cancelling",-1)),t[69]||(t[69]=n("th",{scope:"col"},"Revoked",-1)),t[70]||(t[70]=n("th",{scope:"col"},"Applies to",-1))])]),n("tbody",null,[(a(!0),l(q,null,J(e.grants,o=>(a(),l("tr",{key:o.id},[n("th",YX,[o.user?(a(),l("a",{key:0,title:o.user,href:e.safeUrl("/admin/users/"+o.user)},c(o.user),9,XX)):(a(),l("span",QX,"Deleted user"))]),n("td",null,[n("span",JX,[n("span",{class:A(["bl-swatch","bl-"+o.family]),"aria-hidden":"true"},null,2),g(c(e.planName(o.planId)),1)]),o.pack?(a(),l("small",ZX,"Part of a paper pack")):f("v-if",!0)]),n("td",null,[n("span",xX,[n("span",{class:A(["status-dot",o.state==="active"?"st-ready":o.state==="revoked"?"st-error":"st-expired"])},null,2),g(c(o.state==="active"?"Active":o.state==="revoked"?"Revoked":"Expired"),1)]),["active","paid"].includes(o.status)?f("v-if",!0):(a(),l("small",eQ,"Stripe: "+c(e.statusText(o)),1))]),n("td",null,c(o.purchasedAt?e.fmt?.date(o.purchasedAt):"\u2014"),1),n("td",null,[o.never?(a(),l(q,{key:0},[g("Never ends")],64)):o.until?(a(),l(q,{key:1},[g(c(e.fmt?.date(o.until)),1)],64)):(a(),l(q,{key:2},[g("\u2014")],64)),o.subscription&&o.state==="active"?(a(),l("small",tQ,c(o.cancelAtPeriodEnd?"Ends":"Renews"),1)):f("v-if",!0)]),n("td",null,[o.cancelAtPeriodEnd?(a(),l("span",nQ,"Cancelling")):(a(),l("span",sQ,"\u2014"))]),n("td",null,[o.revoked?(a(),l(q,{key:0},[n("span",oQ,c(e.revocationText(o.revocationReason)),1),o.revokedAt?(a(),l("small",iQ,c(e.fmt?.date(o.revokedAt)),1)):f("v-if",!0)],64)):(a(),l("span",rQ,"\u2014"))]),n("td",aQ,[e.scopeHref(o.scope)?(a(),l("a",{key:0,href:e.safeUrl(e.scopeHref(o.scope))},[(a(),l("svg",dQ,[n("use",{href:o.scope.kind==="conference"?"#project-icon-conference":"#project-type-repo"},null,8,uQ)])),n("span",null,c(o.scope.id),1)],8,lQ)):(a(),l("span",cQ,"Account"))])]))),128))])])])):f("v-if",!0),e.total===0?(a(),l("div",pQ,[t[72]||(t[72]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1)),n("span",null,c(e.hasFilters()?"No subscriptions or purchases match these filters.":"No subscriptions or purchases yet."),1),e.hasFilters()?(a(),l("button",{key:0,type:"button",class:"btn btn-sm",onClick:t[12]||(t[12]=o=>e.clearFilters())},"Clear filters")):f("v-if",!0)])):f("v-if",!0),e.total<0&&!e.grantsError?(a(),l("div",fQ,"Loading subscriptions and purchases\u2026")):f("v-if",!0),e.total>0?(a(),l("div",hQ,[t[77]||(t[77]=n("span",{"aria-hidden":"true"},null,-1)),e.totalPage>1?(a(),l("div",mQ,[n("button",{class:"btn btn-sm",onClick:t[13]||(t[13]=o=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1},[...t[73]||(t[73]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1),g(" Previous",-1)])],8,gQ),D(n("input",{type:"number",class:"form-control form-control-sm",min:"1",style:{width:"56px"},"aria-label":"Page",max:e.totalPage},null,8,vQ),[[s,{state:e.viewState,set:o=>{e.query.page=o},value:e.query?.page,form:null,options:{}}]]),n("span",null,"of "+c(e.totalPage),1),n("button",{class:"btn btn-sm",onClick:t[14]||(t[14]=o=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage},[...t[74]||(t[74]=[g("Next ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,yQ)])):f("v-if",!0),n("span",bQ,[t[76]||(t[76]=n("label",{for:"bl-limit"},"Per page",-1)),D((a(),l("select",wQ,[...t[75]||(t[75]=[n("option",{value:"10"},"10",-1),n("option",{value:"25"},"25",-1),n("option",{value:"50"},"50",-1),n("option",{value:"100"},"100",-1)])])),[[s,{state:e.viewState,set:o=>{e.query.limit=o},value:e.query?.limit,form:null,options:{}}]])])])):f("v-if",!0)])])}var kQ={class:"paper-footer"},CQ={class:"paper-footer-inner"},EQ={class:"paper-footer-col"},SQ={key:0,href:"/dashboard"},NQ={key:1,href:"/conferences"},RQ={class:"paper-footer-foot"};function Rp(e,t){return a(),l("footer",kQ,[n("div",CQ,[t[3]||(t[3]=n("div",{class:"paper-footer-brand"},[n("div",{class:"paper-footer-mark"},[g("Anonymous "),n("em",null,"GitHub")]),n("p",{class:"paper-footer-tag"}," A read-only, identity-stripped mirror of your repository, built for double-anonymous peer review. ")],-1)),n("div",EQ,[t[0]||(t[0]=n("div",{class:"paper-footer-head"},"Product",-1)),t[1]||(t[1]=n("a",{href:"/anonymize"},"Anonymize",-1)),e.user?(a(),l("a",SQ,"My work")):f("v-if",!0),e.user?(a(),l("a",NQ,"Conferences")):f("v-if",!0),t[2]||(t[2]=n("a",{href:"/faq"},"FAQ",-1))]),t[4]||(t[4]=Ce('',2))]),t[6]||(t[6]=n("div",{class:"paper-footer-rule"},null,-1)),n("div",RQ,[n("span",null,"\xA9 "+c(e.year||new Date().getFullYear())+" Anonymous GitHub \xB7 GPL-3.0 licensed",1),t[5]||(t[5]=n("span",{class:"paper-footer-meta"},"Built for reviewers, by researchers.",-1))])])}var ur={"partials/reviewConsent.htm":Qc,"partials/connections.htm":Jc,"partials/signin.htm":Zc,"partials/404.htm":xc,"partials/admin/billing.htm":Np,"partials/admin/emails.htm":Xc,"partials/admin/conferences.htm":ep,"partials/admin/errors.htm":tp,"partials/admin/overview.htm":np,"partials/admin/queues.htm":sp,"partials/admin/repositories.htm":op,"partials/admin/user.htm":ip,"partials/admin/users.htm":rp,"partials/anonymize.htm":ap,"partials/anonymizePullRequest.htm":lp,"partials/claim.htm":dp,"partials/conference.htm":up,"partials/conferences.htm":cp,"partials/dashboard.htm":pp,"partials/explorer.htm":fp,"partials/faq.htm":hp,"partials/gist.htm":mp,"partials/header.htm":gp,"partials/home.htm":vp,"partials/loading.htm":yp,"partials/newConference.htm":bp,"partials/pageView.htm":wp,"partials/pr-dashboard.htm":kp,"partials/profile.htm":Cp,"partials/pullRequest.htm":Ep,"partials/status.htm":Sp,"partials/footer.htm":Rp};var AQ={class:"ui-icon-definitions","aria-hidden":"true",focusable:"false"};function Ap(e,t){return a(),l("svg",AQ,[...t[0]||(t[0]=[Ce('',1)])])}function Pp(e,t){e==="partials/explorer.htm"&&(t.sidebarCollapsed=window.matchMedia?.("(max-width: 767px)").matches||!1,t.sidebarHidden=!1,t.dirExpanded=!1,t.moreOpen=!1,t.tocOpen=!1,t.gotoOpen=!1,t.gotoValue="",t.gotoError="",t.mdFindOpen=!1,t.mdFindQuery="",t.mdFindTotal=0,t.mdFindIndex=0,t.mdFindCase=!1,t.accountOpen=!1,t.helpOpen=!1,t.sidebarWidth=Math.min(520,Math.max(220,Number(localStorage.getItem("sidebarWidth"))||(window.innerWidth>=1280?320:280))),document.documentElement.style.setProperty("--sidebar-w",t.sidebarWidth+"px"),t.startSidebarResize=o=>{o.preventDefault();let r=o.clientX,d=t.sidebarWidth,p=y=>{t.sidebarWidth=Math.min(520,Math.max(220,d+y.clientX-r)),document.documentElement.style.setProperty("--sidebar-w",t.sidebarWidth+"px")},u=()=>{window.removeEventListener("pointermove",p),window.removeEventListener("pointerup",u),document.body.classList.remove("is-resizing"),localStorage.setItem("sidebarWidth",String(t.sidebarWidth))};document.body.classList.add("is-resizing"),window.addEventListener("pointermove",p),window.addEventListener("pointerup",u)}),e==="partials/anonymize.htm"&&(t.prTabState={active:t.options.diff?"diff":"comments"},t.watchGroup(["options.diff","options.comments"],()=>{t.options[t.prTabState.active]||(t.prTabState.active=t.options.diff?"diff":t.options.comments?"comments":null)})),e==="partials/gist.htm"&&(t.tabState={active:t.details?.files?"files":"comments"}),["partials/conferences.htm","partials/conference.htm"].includes(e)&&(t.statusLabels={ready:"Ready",expired:"Expired",removed:"Removed"});let i={"partials/dashboard.htm":["filteredItems",()=>t.items,"itemFilter"],"partials/conferences.htm":["filteredConferences",()=>t.conferences,"conferenceFilter"],"partials/conference.htm":["filteredRepositories",()=>t.conference?.repositories,"repoFiler"],"partials/admin/repositories.htm":["filteredRepositories",()=>t.repositories,"repoFiler"],"partials/admin/user.htm":["filteredRepositories",()=>t.repositories,"repoFiler"],"partials/admin/users.htm":["filteredUsers",()=>t.users,"userFiler"],"partials/admin/conferences.htm":["filteredConferences",()=>t.conferences]}[e];if(i){let o=Rt(()=>t.fmt.orderBy(t.fmt.filter(i[1](),t[i[2]]),t.orderBy));Object.defineProperty(t,i[0],{configurable:!0,get:()=>o.value})}}function Dp(e=(...t)=>fetch(...t)){async function t(i,o,r,d={}){let p=new URL(o,window.location.href);for(let[m,b]of Object.entries(d.params||{}))if(b!=null)for(let h of Array.isArray(b)?b:[b])p.searchParams.append(m,typeof h=="object"?JSON.stringify(h):h);let u=new AbortController,y;d.timeout?.then?d.timeout.then(()=>u.abort()):d.timeout&&(y=setTimeout(()=>u.abort(),d.timeout));try{let m={Accept:"application/json, text/plain, */*",...d.headers},b=document.cookie.match(/(?:^|;\s*)XSRF-TOKEN=([^;]*)/);b&&p.origin===window.location.origin&&(m["X-XSRF-TOKEN"]=decodeURIComponent(b[1]));let h;r!==void 0&&(r instanceof FormData?h=r:(m["Content-Type"]||(m["Content-Type"]="application/json;charset=utf-8"),h=JSON.stringify(r)));let w=await e(p.href,{method:i,headers:m,body:h,credentials:"same-origin",signal:u.signal}),R;if(d.onDownloadProgress&&w.ok&&w.body?.getReader&&typeof TextDecoder<"u"){let v=w.body.getReader(),E=new TextDecoder,M=[],V=0;try{for(;;){let{value:_,done:G}=await v.read();if(G)break;M.push(E.decode(_,{stream:!0})),V+=_.byteLength,d.onDownloadProgress(V)}M.push(E.decode()),R=M.join("")}finally{v.releaseLock()}}else R=await w.text();let S=R;if(d.transformResponse)S=d.transformResponse(R);else if(R&&(/json/i.test(w.headers.get("content-type")||"")||/^[\[{]/.test(R.trim())))try{S=JSON.parse(R)}catch{}let N={data:S,status:w.status,headers:v=>w.headers.get(v)};if(!w.ok)throw N;return N}catch(m){throw m.name==="AbortError"?{status:-1,data:null}:m}finally{clearTimeout(y)}}let s={};for(let i of["get","delete","head"])s[i]=(o,r)=>t(i.toUpperCase(),o,void 0,r);for(let i of["post","put","patch"])s[i]=(o,r,d)=>t(i.toUpperCase(),o,r,d);return s}var Tp={resolve:e=>Promise.resolve(e),reject:e=>Promise.reject(e),all:e=>Promise.all(e),defer(){let e,t;return{promise:new Promise((i,o)=>{e=i,t=o}),resolve:e,reject:t}}};var Op=function(e){function t(s){return s=s||{used:0,total:0},s.unlimited=!s.total,s.percent=s.unlimited?0:Math.min(100,s.used*100/s.total),s.level=s.unlimited?"unlimited":s.percent>=95?"danger":s.percent>=80?"warn":"ok",s}return{decorate:t,load:function(){return e.get("/api/user/quota").then(s=>{let i=s.data||{};return i.storage=t(i.storage),i.file=t(i.file),i.repository=t(i.repository),i})}}};var Ip={name:"htmlDoc",props:["content","baseUrl","allowScripts"],setup(e){let t=St(null);return hn(()=>{let i=[t.value][0];i.classList.add("html-doc");function o(){i.innerHTML="";let r=e.content;if(typeof r!="string")return;let d=document.createElement("iframe");d.className="html-doc-frame",d.setAttribute("title","Rendered HTML document");let p=["allow-popups","allow-popups-to-escape-sandbox"];e.allowScripts&&p.push("allow-scripts","allow-forms","allow-modals"),d.setAttribute("sandbox",p.join(" ")),d.setAttribute("referrerpolicy","no-referrer"),i.appendChild(d);let u="";e.baseUrl&&(u=''),d.srcdoc=u+r}dt(()=>e.content,o,{immediate:!0}),dt(()=>e.baseUrl,o,{immediate:!0}),dt(()=>e.allowScripts,o,{immediate:!0})}),()=>De("html-doc",{ref:t})}};var Mp={name:"pdfviewer",props:["src"],setup(e){let t=St(null);return hn(()=>{let s=[t.value],i=400,o=[.5,.75,1,1.25,1.5,2,3],r=1e3,d=s[0];d.classList.add("pdf-viewer");let p=null,u=[],y=!1,m=null,b=1,h=0,w=1,R=0,S=0,N=612/792,v=0,E=null,M=new Map,V=0;function _(T){let F=M.get(T);F&&(F.cancelled=!0,F.task?.cancel?.(),M.delete(T));let Q=T.querySelector("canvas");Q&&(Q.width=0,Q.height=0),T.innerHTML="",delete T.dataset.state}let G=document.createElement("div");G.className="pdf-toolbar";let te=document.createElement("div");te.className="pdf-pages",te.tabIndex=0,te.setAttribute("aria-label","PDF pages"),d.appendChild(G),d.appendChild(te);function X(T,F,Q){let H=document.createElement("button");return H.type="button",H.className="pdf-toolbar-btn",H.title=F,H.setAttribute("aria-label",F),H.innerHTML='',H.addEventListener("click",Q),H}let O=X("fa-chevron-up","Previous page",function(){Be(w-1)}),U=X("fa-chevron-down","Next page",function(){Be(w+1)}),C=document.createElement("input");C.type="text",C.className="pdf-toolbar-page",C.setAttribute("aria-label","Page number"),C.title="Page number \u2014 type a page and press Enter",C.addEventListener("keydown",function(T){T.key==="Enter"&&(Be(parseInt(C.value,10)),C.blur())}),C.addEventListener("blur",function(){C.value=String(w)});let L=document.createElement("span");L.className="pdf-toolbar-count";let z=X("fa-search-minus","Zoom out",function(){ve(o[Math.max(0,he()-1)])}),K=X("fa-search-plus","Zoom in",function(){ve(o[Math.min(o.length-1,he()+1)])}),ie=document.createElement("button");ie.type="button",ie.className="pdf-toolbar-btn pdf-toolbar-zoom",ie.title="Reset zoom to fit the width",ie.setAttribute("aria-label","Reset zoom to fit the width"),ie.addEventListener("click",function(){ve(1)}),G.appendChild(O),G.appendChild(U);let se=document.createElement("span");se.className="pdf-toolbar-group",se.appendChild(C),se.appendChild(L),G.appendChild(se);let Y=document.createElement("span");Y.className="pdf-toolbar-group pdf-toolbar-right",Y.appendChild(z),Y.appendChild(ie),Y.appendChild(K),G.appendChild(Y);function he(){let T=0;for(let F=0;F=T,ie.textContent=b===1||!h?"Fit":Math.round(Re()/(h*96/72)*100)+"%",z.disabled=he()===0,K.disabled=he()===o.length-1}function Ue(T){let F=u[T-1];F&&(te.scrollTop+=F.getBoundingClientRect().top-te.getBoundingClientRect().top)}function Be(T){if(!p||isNaN(T))return;let F=Math.min(Math.max(1,T),p.numPages);u[F-1]&&(Ue(F),w=F,R=F,S=Date.now()+800,Se(),W())}function Je(){if(!u.length||Date.now(){}),E=null),m&&(clearTimeout(m),m=null),p&&(p.destroy(),p=null),u=[],w=1,te.innerHTML="",Se()}function et(){te.innerHTML="";let T=document.createElement("div");T.className="pdf-viewer-error",T.textContent="This PDF could not be displayed.",te.appendChild(T)}function Re(){let T=Math.max(120,te.clientWidth-24);return Math.round(Math.min(T,r)*b)}function Fe(T,F,Q){let H=window.devicePixelRatio||1,x=T.getViewport({scale:1}),le=parseFloat(F.style.width);if(!le)return;let ne=T.getViewport({scale:le/x.width*H}),oe=document.createElement("canvas");return oe.width=Math.floor(ne.width),oe.height=Math.floor(ne.height),oe.style.width=le+"px",oe.style.height=Math.floor(ne.height/H)+"px",F.innerHTML="",F.appendChild(oe),F.style.height=oe.style.height,Q.task=T.render({canvasContext:oe.getContext("2d"),viewport:ne}),Q.task.promise}function W(){if(!p)return;let T=v,F=te.getBoundingClientRect(),Q=F.top-i,H=F.top+te.clientHeight+i,x=u.map((ne,oe)=>({slot:ne,i:oe,rect:ne.getBoundingClientRect()})).filter(ne=>ne.rect.top<=H&&ne.rect.bottom>=Q).sort((ne,oe)=>Math.abs(ne.rect.top-F.top)-Math.abs(oe.rect.top-F.top)).slice(0,6),le=new Set(x.map(ne=>ne.slot));for(let ne of M.keys())le.has(ne)||_(ne);for(let{slot:ne,i:oe}of x){if(ne.dataset.state||V>=2)continue;let ee={cancelled:!1,task:null};M.set(ne,ee),V++,ne.dataset.state="rendering";let ke;p.getPage(oe+1).then(pe=>{if(ke=pe,!(ee.cancelled||T!==v))return Fe(ke,ne,ee)}).then(()=>{ee.cancelled||T!==v||(ne.dataset.state="done",R&&Date.now(){!ee.cancelled&&T===v&&(ne.dataset.state="failed")}).finally(()=>{V--,ke?.cleanup?.(),p&&W()})}}function fe(){y||(y=!0,window.requestAnimationFrame(function(){y=!1,Je(),W()}))}function de(){let T=!1;function F(){T||(T=!0,W())}window.requestAnimationFrame(F),window.setTimeout(F,50)}function ce(){v++,u.forEach(_);let T=Re();u.forEach(function(F){delete F.dataset.state,F.innerHTML="",F.style.width=T+"px",F.style.height=Math.round(T/N)+"px"}),W()}function ve(T){if(!p||!u.length||T===b)return;let F=w;b=T,Se(),ce(),Be(F)}function Me(){p&&(m&&clearTimeout(m),m=setTimeout(function(){m=null,p&&u.length&&ce()},250))}function P(T){if(He(),!T)return;let F=v;E=pdfjsLib.getDocument({url:T,isEvalSupported:!1,standardFontDataUrl:"/script/external/pdf-standard-fonts/",cMapUrl:"/script/external/pdf-cmaps/",cMapPacked:!0}),E.promise.then(function(Q){if(F!==v){Q.destroy();return}return p=Q,p.getPage(1).then(function(H){if(F!==v)return;let x=H.getViewport({scale:1});x.width&&x.height&&(N=x.width/x.height),h=x.width||0;let le=Re();for(let ne=1;ne<=p.numPages;ne++){let oe=document.createElement("div");oe.className="pdf-viewer-page",oe.style.width=le+"px",oe.style.height=Math.round(le/N)+"px",te.appendChild(oe),u.push(oe)}Se(),de()})}).catch(function(){F===v&&et()})}te.addEventListener("scroll",fe,{passive:!0}),$(window).on("resize",Me),Se(),dt(()=>e.src,P,{immediate:!0}),is(function(){te.removeEventListener("scroll",fe),$(window).off("resize",Me),He()})}),()=>De("pdfviewer",{ref:t})}};var PQ={key:0,class:"quota-row quota-usage"},DQ={class:"quota-header"},TQ={class:"quota-label"},OQ={class:"project-type-svg","aria-hidden":"true"},IQ=["href"],MQ={key:0,class:"quota-percent"},VQ={key:1,class:"quota-unlimited-tag"},qQ={class:"quota-value"},_Q={key:0},$Q=["aria-label","aria-valuenow","aria-valuemax","aria-valuetext"],LQ={key:1,class:"quota-remaining"},FQ={key:2,class:"quota-remaining quota-limit"};function Vp(e,t){return e.quota?(a(),l("div",PQ,[(a(),l(q,null,J([{key:"repository",label:"Repositories",kind:"count",icon:"project-type-repo"},{key:"storage",label:"Storage",kind:"bytes",icon:"project-icon-storage"},{key:"file",label:"Files",kind:"count",icon:"project-icon-file"}],s=>n("div",{class:A(["quota-item","quota-"+e.quota[s.key].level]),key:s.key},[n("div",DQ,[n("span",TQ,[(a(),l("svg",OQ,[n("use",{href:"#"+s.icon},null,8,IQ)])),g(c(s.label),1)]),e.quota[s.key].unlimited?f("v-if",!0):(a(),l("span",MQ,c(e.quota[s.key].percent>0&&e.quota[s.key].percent<1?"<1":e.fmt.number(e.quota[s.key].percent,0))+"% used",1)),e.quota[s.key].unlimited?(a(),l("span",VQ,"Unlimited")):f("v-if",!0)]),n("div",qQ,[n("strong",null,c(e.formatAmount(e.quota[s.key].used,s.kind)),1),e.quota[s.key].unlimited?f("v-if",!0):(a(),l("span",_Q," / "+c(e.formatAmount(e.quota[s.key].total,s.kind)),1))]),e.quota[s.key].unlimited?f("v-if",!0):(a(),l("div",{key:0,class:A(["quota-track","quota-"+e.quota[s.key].level]),role:"progressbar","aria-valuemin":"0","aria-label":s.label+" quota","aria-valuenow":Math.min(e.quota[s.key].used,e.quota[s.key].total),"aria-valuemax":e.quota[s.key].total,"aria-valuetext":e.fmt.number(e.quota[s.key].percent,0)+"% used"},[e.quota[s?.key].unlimited?f("v-if",!0):(a(),l("div",{key:0,class:"quota-fill",style:Ie({width:e.quota[s.key].percent+"%"})},null,4))],10,$Q)),!e.quota[s.key].unlimited&&e.quota[s.key].used=e.quota[s.key].total?(a(),l("p",FQ,c(e.quota[s.key].used>e.quota[s.key].total?"Limit exceeded":"Limit reached"),1)):f("v-if",!0)],2)),64))])):f("v-if",!0)}var UQ={props:["quota","fmt"],setup(e){return{formatAmount:(t,s)=>s==="bytes"?e.fmt.humanFileSize(e.quota?.storage?.unit==="bytes"?t*8:t).replace(/([a-zA-Z]+)$/," $1"):e.fmt.number(t)}},render:Vp},BQ=new Set(me),$p=e=>e?.querySelectorAll("pre code.language-diff, pre code.lang-diff").forEach(t=>{if(t.querySelector(".md-diff-line"))return;let s=t.innerHTML.replace(/\n$/,"").split(` `);t.innerHTML=s.map(i=>{let o=i.replace(/^(<[^>]+>)+/,"").charAt(0),r=i.startsWith("@@")?"hunk":o==="+"?"add":o==="-"?"remove":"";return`${i||" "}`}).join(` -`)}),Mp=(e,t=0)=>{let s=(String(e).slice(t).match(/^[ \t]*/)[0]||"").replace(/\t/g," ").length;return Math.min(t+s+4,24)},_p=e=>{e?.closest?.(".reviewer-preview")&&e.querySelectorAll("pre code").forEach(t=>{let s=t.querySelectorAll(".md-diff-line");if(s.length){s.forEach(o=>{o.classList.contains("is-hunk")||o.style.setProperty("--hang",Mp(o.textContent,1)+"ch")});return}if(t.querySelector(".code-line"))return;let i=[];t.innerHTML=t.innerHTML.replace(/\n$/,"").split(` -`).map(o=>{let r=i.join("");o.replace(/<\/?span\b[^>]*>/g,p=>(p.startsWith("]+>/g,"");return`${r}${o||" "}${"".repeat(i.length)}`}).join(` -`)})},$p={props:["content","terms","options"],setup(e){let t=St(null),s=()=>{t.value.innerHTML=renderMD(e.content||"",window.location.pathname+"/../"),qp(t.value),_p(t.value)};return fn(()=>{s(),dt(()=>[e.content,e.terms,e.options],s,{deep:!0})}),()=>De("markdown",{ref:t})}},RJ={props:["file","terms","options"],setup(e){let t=St(null),s=()=>tt(()=>{t.value?.querySelectorAll("pre code").forEach(i=>window.Prism?.highlightElement(i)),qp(t.value),_p(t.value)});return fn(s),dt(()=>[e.file?.content,e.terms,e.options],s,{deep:!0}),()=>{let i=e.file||{},o=(i.filename||"").split(".").pop().toLowerCase();if(["md","markdown"].includes(o)||i.language==="Markdown")return De("gist-file",{ref:t},De($p,{content:i.content,terms:e.terms,options:e.options}));let r={js:"javascript",jsx:"javascript",ts:"javascript",typescript:"javascript",py:"python",html:"markup",xml:"markup",svg:"markup",sh:"bash"},d=(i.language||o||"none").toLowerCase();return De("gist-file",{ref:t},De("pre",{class:"line-numbers"},De("code",{class:"language-"+(r[d]||d),key:i.content},i.content||"")))}}},PJ=e=>e?.querySelectorAll(".nb-input pre").forEach(t=>{if(t.parentElement?.classList.contains("nb-code-scroll"))return;let s=document.createElement("div");s.className="nb-code-scroll",t.replaceWith(s),s.appendChild(t);let i=()=>{let o=t.scrollWidth-t.clientWidth>1;if(s.classList.toggle("is-overflowing",o),s.classList.toggle("is-at-end",o&&t.scrollLeft+t.clientWidth>=t.scrollWidth-2),!o)return;let r=t.clientWidth-16,d=Math.max(24,r*t.clientWidth/t.scrollWidth);s.style.setProperty("--thumb-w",d+"px"),s.style.setProperty("--thumb-x",(r-d)*t.scrollLeft/(t.scrollWidth-t.clientWidth)+"px")};t.addEventListener("scroll",i,{passive:!0}),window.ResizeObserver?new ResizeObserver(i).observe(t):i(),i()}),AJ={props:["file","content"],setup(e){let t=St(null),s=0,i,o=async()=>{let r=++s;i?.abort(),i=new AbortController;try{let d=e.content?JSON.parse(e.content):await fetch(e.file?.download_url||e.file,{signal:i.signal}).then(p=>{if(!p.ok)throw Error("Notebook request failed");return p.json()});if(await Jn("notebook"),r!==s)return;t.value.innerHTML=_o(DOMPurify.sanitize(nb.parse(d).render())),t.value.querySelectorAll("pre code").forEach(p=>window.Prism?.highlightElement(p)),PJ(t.value)}catch(d){r===s&&d.name!=="AbortError"&&(t.value.textContent="Unable to render the notebook.")}};return fn(()=>{o(),dt(()=>[e.file,e.content],o)}),is(()=>{s++,i?.abort()}),()=>De("notebook",{ref:t})}},DJ={props:["stats"],setup(e){return()=>{let t=Object.entries(e.stats||{}).filter(([,i])=>i.code),s=t.reduce((i,[,o])=>i+o.code,0);return De("loc",t.map(([i,o])=>De("div",{class:"lang",title:`${i}: ${o.code.toLocaleString()} lines`,style:{width:o.code*100/s+"%",background:langColors[i]}})))}}},Lp={Markdown:$p,GistFile:RJ,Notebook:AJ,Loc:DJ,HtmlDoc:Tp,QuotaUsage:SJ,Pdfviewer:id(async()=>(await Jn("pdf"),pdfjsLib.GlobalWorkerOptions.workerSrc="/script/external/pdf.worker.js",Op))},Fp={async mounted(e,{value:t}){e._editorValue=t;try{if(await ni(),e._editorDisposed)return;let s=e._editorValue,i=ace.edit(e);e._editor=i,i.setValue(String(s.content??""),-1),Vp(e,s.options),e._editorCleanup=s.options?.onLoad?.(i)}catch(s){e._editorDisposed||(e.textContent=s.message)}},updated(e,{value:t}){e._editorValue=t,e._editor&&(e._editor.getValue()!==String(t.content??"")&&e._editor.setValue(String(t.content??""),-1),Vp(e,t.options))},beforeUnmount(e){e._editorDisposed=!0,e._editorCleanup?.(),e._editor?.destroy()}};function Vp(e,t={}){let s=NJ.has(t.mode)?t.mode:"text";e._editor.session.setMode("ace/mode/"+s),t.theme&&e._editor.setTheme("ace/theme/"+t.theme),e._editor.setReadOnly(t.readOnly!==!1)}var Up={mounted(e){if(!window.IntersectionObserver)return;let t=[...e.querySelectorAll('a[href^="#"]')],s=new Set,i=new IntersectionObserver(o=>{o.forEach(d=>d.isIntersecting?s.add(d.target.id):s.delete(d.target.id));let r=t.find(d=>s.has(d.hash.slice(1)));r&&t.forEach(d=>d.classList.toggle("active",d===r))},{rootMargin:"-20% 0px -60% 0px",threshold:0});tt(()=>{t.forEach(o=>{let r=document.getElementById(o.hash.slice(1));r&&i.observe(r)}),t[0]&&!t.some(o=>o.classList.contains("active"))&&t[0].classList.add("active")}),e._observer=i},beforeUnmount(e){e._observer?.disconnect()}};function Bp(e){let t=[],s=0,i=/\bXXXX-(\d+)\b/g,o;for(;o=i.exec(e);)o.index>s&&t.push(e.slice(s,o.index)),t.push(De("span",{class:"redact-slot",role:"img","aria-label":"Redacted term "+o[1]},[De("i",null,o[1])])),s=o.index+o[0].length;return t.length?(s{s.push(r),d=1024&&iIJ(e.file)),p=()=>e.selectedPath??"/"+(Array.isArray(s.params.path)?s.params.path.join("/"):s.params.path||"");dt(()=>[s.params.repoId,s.params.path,e.selectedPath],()=>{let w="";p().split("/").filter(Boolean).forEach(R=>{w+="/"+R,o[w]=!0})},{immediate:!0});let u=Rt(()=>{if(!e.searchQuery||!e.searchResults)return null;let w=new Set,R=new Set;return e.searchResults.forEach(S=>{w.add(S.path?`${S.path}/${S.name}`:S.name);let N="";(S.path||"").split("/").filter(Boolean).forEach(v=>{N=N?N+"/"+v:v,R.add(N)})}),{files:w,folders:R}}),y=()=>[...i.value.querySelectorAll("li > a")],m=w=>{if(i.value.querySelector(".tree-focused")?.classList.remove("tree-focused"),!w)return;if(r=w.dataset.path,w.classList.add("tree-focused"),e.selectedPath===void 0){w.scrollIntoView?.({block:"nearest"}),i.value.focus();return}let R=i.value.scrollHeight>i.value.clientHeight?i.value:i.value.closest(".leftCol-body");if(R){let S=w.getBoundingClientRect(),N=R.getBoundingClientRect();S.topN.bottom&&(R.scrollTop+=S.bottom-N.bottom)}i.value.focus({preventScroll:!0})};function b(w){let R=y(),S=i.value.querySelector(".tree-focused")||R[0],N=R.indexOf(S);if(!["ArrowDown","ArrowUp","ArrowRight","ArrowLeft","Enter"].includes(w.key)||(w.preventDefault(),w.key==="ArrowDown"&&m(R[(N+1)%R.length]),w.key==="ArrowUp"&&m(R[(N-1+R.length)%R.length]),!S))return;let v=S.closest("li");w.key==="ArrowRight"&&v.classList.contains("folder")&&(v.classList.contains("open")?m(v.querySelector(":scope > ul > li > a")):S.click()),w.key==="ArrowLeft"&&(v.classList.contains("folder")&&v.classList.contains("open")?S.click():m(v.parentElement.closest("li.folder")?.querySelector(":scope > a"))),w.key==="Enter"&&S.click()}function h(w,R=""){let S=[...w].sort((N,v)=>+!!v.children-+!!N.children||N.name.localeCompare(v.name));return De("ul",S.flatMap(N=>{let v=N,E=v.name,M=(R+"/"+E).slice(1);if(u.value&&!u.value.files.has(M)&&!u.value.folders.has(M))return[];for(;v.children?.length===1&&v.children[0].children&&e.page?.loadedFolders?.[(R+"/"+E).slice(1)];)v=v.children[0],E+="/"+v.name;let V=R+"/"+E,_=!!v.children,G=u.value?o[V]!==!1:!!o[V],te=_&&e.page?.options?.truncatedFolders?.includes(V.slice(1)),X=De("span",{class:_?"tree-icon-folder":"far fa-file tree-icon-file","aria-hidden":"true"},_?De("svg",{viewBox:"0 0 14 12",focusable:"false"},De("path",{d:"M1.5 10.5v-9h4l1.5 2h5.5v7z"})):null),O=!1,U=E,C="",L="";if(E.length>80){let se=E.length-12;for(let Y=E.length-18;Y<=E.length-6;Y++)if(Y>0&&"-_. ".includes(E[Y])){se=Y;break}if(O=!/XXXX-\d+/.test(E.slice(Math.max(0,se-12))),U=E.slice(0,se).trimEnd(),C=E.slice(se).trimStart(),O){let Y=Math.max(8,30-C.length-1);if(U.length>Y&&!/XXXX-\d+/.test(U)){let he=-1;for(let Ue=Math.min(Y,U.length);Ue>=4;Ue--)if(".-_".includes(U[Ue])){he=Ue;break}let Se=E.slice(0,E.length-C.length);U=(he>0?U.slice(0,he):U.slice(0,Y)).trimEnd(),L=Se.slice(U.length)}}}let z=De("span",{class:{"tree-name":!0,"tree-name-split":O,"tree-name-wrap":!O},title:E.replace(/\bXXXX-(\d+)\b/g,"[redacted term $1]")},O?[De("span",{class:{"tree-name-head":!0,"is-cut":!!L}},Bp(U)),L?De("span",{class:"tree-name-middle"},L):null,De("span",{class:"tree-name-tail"},C)]:TJ(E)),K=se=>{if(m(se.currentTarget),!_){e.selectedPath!==void 0&&(se.preventDefault(),t("select",V));return}se.preventDefault(),o[V]=!G,o[V]&&!v.children.length&&e.page.getFiles(V.slice(1)),tt(()=>m(y().find(Y=>Y.dataset.path===r)))},ie=De("a",{"data-path":V,"aria-expanded":e.selectedPath!==void 0&&_?String(G):void 0,"aria-current":e.selectedPath!==void 0&&!_&&p()===V?"page":void 0,href:_?void 0:`/r/${encodeURIComponent(s.params.repoId)}${encodePathForUrl(V)}`,class:{"tree-focused":r===V},onClick:K},[_?De("span",{class:"tree-toggle"}):De("span",{class:"tree-spacer"}),X,z,te?De("span",{class:"truncated-warning",title:e.page.fmt.translate("WARNINGS.folder_truncated")},De("i",{class:"fas fa-exclamation-triangle"})):null]);return De("li",{key:V,class:{file:!0,folder:_,open:G,active:p()===V,truncated:te},title:_?"":`Size: ${OJ(v.size||0)}`},[ie,_&&G?v.children.length||!e.page?.loadedFolders?.[V.slice(1)]?h(v.children,V):De("ul",De("li",{class:"tree-empty"},"Empty folder")):null])}))}return()=>De("tree",{ref:i,tabindex:0,onKeydown:b},e.file?.length?u.value?.files.size===0?De("div",{class:"tree-search-empty"},"No files found"):h(d.value):"Empty repository")}};function jp(){return st({errors:{},dirty:!1,touched:!1,submitted:!1,get invalid(){return Object.values(this.errors).some(Boolean)},setValidity(e,t){this.errors[e]=!t},setDirty(){this.dirty=!0}})}function Gp(e,t){if(!e[t]){let s=jp();Object.defineProperty(s,"invalid",{get(){return Object.values(s.errors).some(Boolean)||Object.keys(s).some(i=>i!=="invalid"&&s[i]&&typeof s[i]=="object"&&s[i].invalid)}}),e[t]=s}return e[t]}var Wp={beforeMount(e,{value:t}){e._formState=Gp(t,e.name),e.addEventListener("submit",s=>s.preventDefault())}};function MJ(e){return e instanceof Date?isNaN(e)?"":`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`:e||""}function Hp(e){let t=e._field.binding.value;e.type==="checkbox"?e.checked=!!t:e.type==="radio"?e.checked=t==(e._value??e.value):e._field.timer||(e.value=e.type==="date"?MJ(t):t??""),Xa(e)}function Xa(e){let t=e._field.validation;if(!t)return;let s=e.validity;for(let[i,o]of Object.entries({required:s.valueMissing,pattern:s.patternMismatch,min:s.rangeUnderflow,max:s.rangeOverflow,date:s.badInput,email:s.typeMismatch&&e.type==="email",url:s.typeMismatch&&e.type==="url"}))t.setValidity(i,e.disabled||!o)}var Kp={beforeMount(e,{value:t}){var d;let s=t.form&&Gp(t.state,t.form),i=s&&e.name?s[d=e.name]||(s[d]=jp()):null;e._field={binding:t,validation:i,timer:null};let o=()=>{clearTimeout(e._field.timer),e._field.timer=null;let p=e._field.binding,u=e.type==="checkbox"?e.checked:e._value??e.value;if(!(e.type==="radio"&&!e.checked)){if((e.type==="number"||e.type==="range")&&(u=e.value===""?null:Number(e.value)),e.type==="date"&&(u=e.value?new Date(e.value+"T00:00:00"):null),i){i.setDirty();for(let y of Object.keys(i.errors))i.setValidity(y,!0)}p.set(u),Xa(e),p.change?.()}};e._field.commit=o;let r=p=>{let u=e._field.binding.options?.debounce||0,y=typeof u=="number"?u:u[p.type]??u.default??0;clearTimeout(e._field.timer),y?e._field.timer=setTimeout(o,y):o()};e.addEventListener(e.tagName==="SELECT"||["checkbox","radio","date"].includes(e.type)?"change":"input",r),e.addEventListener("blur",()=>{i&&(i.touched=!0),e._field.timer&&o()})},mounted:Hp,updated(e,{value:t}){e._field.binding=t,Hp(e)},beforeUnmount(e){clearTimeout(e._field.timer);let{binding:t,validation:s}=e._field,i=t.form&&t.state[t.form];i&&i[e.name]===s&&delete i[e.name]}};function Yp(e,t){let s=e.target.closest("form");if(s?._formState&&(s._formState.submitted=!0),s?.querySelectorAll("input, select, textarea").forEach(i=>{i._field?.timer&&i._field.commit(),i._field&&Xa(i)}),s&&!s.checkValidity()){let i=s.querySelector("input:invalid, select:invalid, textarea:invalid");i?.scrollIntoView?.({block:"center"}),i?.focus(),s.reportValidity();return}return t()}var Xp=Symbol("session"),VJ=/^\/(w|api|github)(\/|$)/;function Jp(e,t={}){let s=e?.split(".").reduce((i,o)=>i?.[o],Kn);return s==null&&e?.startsWith("ERRORS.")&&(s=Kn.ERRORS.unknown_error),String(s??e??"").replace(/{{\s*([^}]+?)\s*}}/g,(i,o)=>t[o]??"")}var qJ={...wa,translate:Jp};function _J(e){if(e==null||e==="")return e;try{let t=new URL(e,window.location.href);return["http:","https:","mailto:","tel:","blob:"].includes(t.protocol)?e:void 0}catch{return}}function $J(e="#app",t={}){let s=!!document.querySelector('meta[name="review-consent-page"][content="1"]'),i=s&&window.location.pathname==="/review-link"?sl(window):null,o=()=>{let h=i;return i=null,h};!t.history&&window.location.pathname==="/"&&/^#!\/r\/[^/?#]+/.test(window.location.hash)&&window.history.replaceState(window.history.state,"",window.location.hash.slice(2));let r=new Map,d=Pp(t.fetch),p,u;function y(){let h=Ct(),w={url(S){return S===void 0?u.currentRoute.value.fullPath:(u.push(S),w)},replace(S){return u.replace(S)},path(){return u.currentRoute.value.path},search(){return u.currentRoute.value.query}},R=new Proxy({},{get(S,N){let v=u.currentRoute.value.params[N];return Array.isArray(v)?v.join("/"):v}});return{takeReviewHandoff:o,http:d,...h,location:w,params:R,window,promises:Ap,html:{trustAsHtml:S=>S},translate:(S,N)=>Promise.resolve(Jp(S,N)),quotaService:Dp(d)}}function m(h){return{name:h.template,setup(){let w=qo(Mt(Xp),r);h.setup(w,y()),Rp(h.template,w);let R=[];return()=>ur[h.template](w,R)}}}u=Mu({history:t.history||Tu(),routes:Kc.map(h=>h.redirect?h:{path:h.path,component:m(h),meta:{title:h.title,preserveExplorer:h.preserveExplorer}})});let b=Qd({setup(){p=qo(null,r),p.fmt=qJ,p.window=window,p.Math=Math,p.sanitize=S=>DOMPurify.sanitize(S??""),p.highlightRedactions=S=>(p.site_options,Ic(S)),p.submitForm=Yp,p.safeUrl=_J;let h=y();Mc(p,h.http,h.location,h.timeout),os(Xp,p),dt(()=>p.title,S=>{document.title=S||"Anonymous GitHub"});let w=[],R=S=>{let N=S.target.closest?.("a[href]");if(S.defaultPrevented||S.button!==0||S.metaKey||S.ctrlKey||S.shiftKey||S.altKey||!N||N.hasAttribute("download")||N.target&&N.target!=="_self"||N.dataset.toggle||N.getAttribute("href").startsWith("#"))return;let E=new URL(N.href,window.location.href);s||/^\/review-link\/?$/i.test(E.pathname)||E.origin!==window.location.origin||VJ.test(E.pathname)||(S.preventDefault(),u.push(E.pathname+E.search+E.hash),$("#navbarSupportedContent.show").collapse("hide"))};return document.addEventListener("click",R),is(()=>document.removeEventListener("click",R)),()=>[Np(p,[]),s||/^\/(r|repository)\//.test(p.path||"")?null:De("header",{class:["app-header",{"is-contained":p.path==="/"||p.path==="/faq","is-signin":p.path==="/signin"}]},ur["partials/header.htm"](p,w)),De("main",{class:"app-view align-items-stretch w-100"},De(ha,null,{default:({Component:S,route:N})=>S?De(S,{key:N.meta.preserveExplorer?N.matched[0]?.path:N.path}):null})),De("div",{class:"position-fixed p-3",style:{zIndex:999999999,right:0,bottom:0}},p.toasts.map((S,N)=>De("div",{class:"toast show",role:"alert","aria-live":"assertive","aria-atomic":"true",key:N},[De("div",{class:"toast-header"},[De("strong",{class:"mr-auto"},S.title),De("button",{type:"button",class:"ml-2 mb-1 close","aria-label":"Close",onClick:()=>p.removeToast(S)},"\xD7")]),De("div",{class:"toast-body"},S.body)])))]}});for(let[h,w]of Object.entries(Lp))b.component(h,w);return b.component("Tree",zp),b.component("PartialView",{props:["name","state"],setup(h){let w=[];return()=>ur[h.name](h.state,w)}}),b.directive("field",Kp),b.directive("form",Wp),b.directive("code-editor",Fp),b.directive("paper-scrollspy",Up),b.use(u),u.beforeEach(async h=>{if(h.path==="/review-link"&&!s||s&&h.path!=="/review-link")return window.location.assign(h.fullPath),!1;p?.emit("routeLeave"),/^\/(r|repository|anonymize|pull-request-anonymize|gist-anonymize|pr|gist)(\/|$)/.test(h.path)&&await Jn("markdown"),/^\/(r|repository|anonymize|pull-request-anonymize|gist-anonymize|pr|gist)(\/|$)/.test(h.path)&&await Jn("org")}),u.afterEach(h=>{if(!p)return;p.title=h.meta.title,p.emit("routeChange",{title:h.meta.title}),p.emit("routeUpdate",{title:h.meta.title});let w=document.querySelector(".app-view");!h.meta.preserveExplorer&&w&&(w.scrollTop=0)}),b.mount(e),{app:b,router:u,state:p}}document.querySelector("#app")&&(window.anonymousApp=$J());})(); +`)}),qp=(e,t=0)=>{let s=(String(e).slice(t).match(/^[ \t]*/)[0]||"").replace(/\t/g," ").length;return Math.min(t+s+4,24)},Lp=e=>{e?.closest?.(".reviewer-preview")&&e.querySelectorAll("pre code").forEach(t=>{let s=t.querySelectorAll(".md-diff-line");if(s.length){s.forEach(o=>{o.classList.contains("is-hunk")||o.style.setProperty("--hang",qp(o.textContent,1)+"ch")});return}if(t.querySelector(".code-line"))return;let i=[];t.innerHTML=t.innerHTML.replace(/\n$/,"").split(` +`).map(o=>{let r=i.join("");o.replace(/<\/?span\b[^>]*>/g,p=>(p.startsWith("]+>/g,"");return`${r}${o||" "}${"".repeat(i.length)}`}).join(` +`)})},Fp={props:["content","terms","options"],setup(e){let t=St(null),s=()=>{t.value.innerHTML=renderMD(e.content||"",window.location.pathname+"/../"),$p(t.value),Lp(t.value)};return hn(()=>{s(),dt(()=>[e.content,e.terms,e.options],s,{deep:!0})}),()=>De("markdown",{ref:t})}},zQ={props:["file","terms","options"],setup(e){let t=St(null),s=()=>tt(()=>{t.value?.querySelectorAll("pre code").forEach(i=>window.Prism?.highlightElement(i)),$p(t.value),Lp(t.value)});return hn(s),dt(()=>[e.file?.content,e.terms,e.options],s,{deep:!0}),()=>{let i=e.file||{},o=(i.filename||"").split(".").pop().toLowerCase();if(["md","markdown"].includes(o)||i.language==="Markdown")return De("gist-file",{ref:t},De(Fp,{content:i.content,terms:e.terms,options:e.options}));let r={js:"javascript",jsx:"javascript",ts:"javascript",typescript:"javascript",py:"python",html:"markup",xml:"markup",svg:"markup",sh:"bash"},d=(i.language||o||"none").toLowerCase();return De("gist-file",{ref:t},De("pre",{class:"line-numbers"},De("code",{class:"language-"+(r[d]||d),key:i.content},i.content||"")))}}},HQ=e=>e?.querySelectorAll(".nb-input pre").forEach(t=>{if(t.parentElement?.classList.contains("nb-code-scroll"))return;let s=document.createElement("div");s.className="nb-code-scroll",t.replaceWith(s),s.appendChild(t);let i=()=>{let o=t.scrollWidth-t.clientWidth>1;if(s.classList.toggle("is-overflowing",o),s.classList.toggle("is-at-end",o&&t.scrollLeft+t.clientWidth>=t.scrollWidth-2),!o)return;let r=t.clientWidth-16,d=Math.max(24,r*t.clientWidth/t.scrollWidth);s.style.setProperty("--thumb-w",d+"px"),s.style.setProperty("--thumb-x",(r-d)*t.scrollLeft/(t.scrollWidth-t.clientWidth)+"px")};t.addEventListener("scroll",i,{passive:!0}),window.ResizeObserver?new ResizeObserver(i).observe(t):i(),i()}),jQ={props:["file","content"],setup(e){let t=St(null),s=0,i,o=async()=>{let r=++s;i?.abort(),i=new AbortController;try{let d=e.content?JSON.parse(e.content):await fetch(e.file?.download_url||e.file,{signal:i.signal}).then(p=>{if(!p.ok)throw Error("Notebook request failed");return p.json()});if(await Qn("notebook"),r!==s)return;t.value.innerHTML=_o(DOMPurify.sanitize(nb.parse(d).render())),t.value.querySelectorAll("pre code").forEach(p=>window.Prism?.highlightElement(p)),HQ(t.value)}catch(d){r===s&&d.name!=="AbortError"&&(t.value.textContent="Unable to render the notebook.")}};return hn(()=>{o(),dt(()=>[e.file,e.content],o)}),is(()=>{s++,i?.abort()}),()=>De("notebook",{ref:t})}},GQ={props:["stats"],setup(e){return()=>{let t=Object.entries(e.stats||{}).filter(([,i])=>i.code),s=t.reduce((i,[,o])=>i+o.code,0);return De("loc",t.map(([i,o])=>De("div",{class:"lang",title:`${i}: ${o.code.toLocaleString()} lines`,style:{width:o.code*100/s+"%",background:langColors[i]}})))}}},Up={Markdown:Fp,GistFile:zQ,Notebook:jQ,Loc:GQ,HtmlDoc:Ip,QuotaUsage:UQ,Pdfviewer:id(async()=>(await Qn("pdf"),pdfjsLib.GlobalWorkerOptions.workerSrc="/script/external/pdf.worker.js",Mp))},Bp={async mounted(e,{value:t}){e._editorValue=t;try{if(await ni(),e._editorDisposed)return;let s=e._editorValue,i=ace.edit(e);e._editor=i,i.setValue(String(s.content??""),-1),_p(e,s.options),e._editorCleanup=s.options?.onLoad?.(i)}catch(s){e._editorDisposed||(e.textContent=s.message)}},updated(e,{value:t}){e._editorValue=t,e._editor&&(e._editor.getValue()!==String(t.content??"")&&e._editor.setValue(String(t.content??""),-1),_p(e,t.options))},beforeUnmount(e){e._editorDisposed=!0,e._editorCleanup?.(),e._editor?.destroy()}};function _p(e,t={}){let s=BQ.has(t.mode)?t.mode:"text";e._editor.session.setMode("ace/mode/"+s),t.theme&&e._editor.setTheme("ace/theme/"+t.theme),e._editor.setReadOnly(t.readOnly!==!1)}var zp={mounted(e){if(!window.IntersectionObserver)return;let t=[...e.querySelectorAll('a[href^="#"]')],s=new Set,i=new IntersectionObserver(o=>{o.forEach(d=>d.isIntersecting?s.add(d.target.id):s.delete(d.target.id));let r=t.find(d=>s.has(d.hash.slice(1)));r&&t.forEach(d=>d.classList.toggle("active",d===r))},{rootMargin:"-20% 0px -60% 0px",threshold:0});tt(()=>{t.forEach(o=>{let r=document.getElementById(o.hash.slice(1));r&&i.observe(r)}),t[0]&&!t.some(o=>o.classList.contains("active"))&&t[0].classList.add("active")}),e._observer=i},beforeUnmount(e){e._observer?.disconnect()}};function Hp(e){let t=[],s=0,i=/\bXXXX-(\d+)\b/g,o;for(;o=i.exec(e);)o.index>s&&t.push(e.slice(s,o.index)),t.push(De("span",{class:"redact-slot",role:"img","aria-label":"Redacted term "+o[1]},[De("i",null,o[1])])),s=o.index+o[0].length;return t.length?(s{s.push(r),d=1024&&iYQ(e.file)),p=()=>e.selectedPath??"/"+(Array.isArray(s.params.path)?s.params.path.join("/"):s.params.path||"");dt(()=>[s.params.repoId,s.params.path,e.selectedPath],()=>{let w="";p().split("/").filter(Boolean).forEach(R=>{w+="/"+R,o[w]=!0})},{immediate:!0});let u=Rt(()=>{if(!e.searchQuery||!e.searchResults)return null;let w=new Set,R=new Set;return e.searchResults.forEach(S=>{w.add(S.path?`${S.path}/${S.name}`:S.name);let N="";(S.path||"").split("/").filter(Boolean).forEach(v=>{N=N?N+"/"+v:v,R.add(N)})}),{files:w,folders:R}}),y=()=>[...i.value.querySelectorAll("li > a")],m=w=>{if(i.value.querySelector(".tree-focused")?.classList.remove("tree-focused"),!w)return;if(r=w.dataset.path,w.classList.add("tree-focused"),e.selectedPath===void 0){w.scrollIntoView?.({block:"nearest"}),i.value.focus();return}let R=i.value.scrollHeight>i.value.clientHeight?i.value:i.value.closest(".leftCol-body");if(R){let S=w.getBoundingClientRect(),N=R.getBoundingClientRect();S.topN.bottom&&(R.scrollTop+=S.bottom-N.bottom)}i.value.focus({preventScroll:!0})};function b(w){let R=y(),S=i.value.querySelector(".tree-focused")||R[0],N=R.indexOf(S);if(!["ArrowDown","ArrowUp","ArrowRight","ArrowLeft","Enter"].includes(w.key)||(w.preventDefault(),w.key==="ArrowDown"&&m(R[(N+1)%R.length]),w.key==="ArrowUp"&&m(R[(N-1+R.length)%R.length]),!S))return;let v=S.closest("li");w.key==="ArrowRight"&&v.classList.contains("folder")&&(v.classList.contains("open")?m(v.querySelector(":scope > ul > li > a")):S.click()),w.key==="ArrowLeft"&&(v.classList.contains("folder")&&v.classList.contains("open")?S.click():m(v.parentElement.closest("li.folder")?.querySelector(":scope > a"))),w.key==="Enter"&&S.click()}function h(w,R=""){let S=[...w].sort((N,v)=>+!!v.children-+!!N.children||N.name.localeCompare(v.name));return De("ul",S.flatMap(N=>{let v=N,E=v.name,M=(R+"/"+E).slice(1);if(u.value&&!u.value.files.has(M)&&!u.value.folders.has(M))return[];for(;v.children?.length===1&&v.children[0].children&&e.page?.loadedFolders?.[(R+"/"+E).slice(1)];)v=v.children[0],E+="/"+v.name;let V=R+"/"+E,_=!!v.children,G=u.value?o[V]!==!1:!!o[V],te=_&&e.page?.options?.truncatedFolders?.includes(V.slice(1)),X=De("span",{class:_?"tree-icon-folder":"far fa-file tree-icon-file","aria-hidden":"true"},_?De("svg",{viewBox:"0 0 14 12",focusable:"false"},De("path",{d:"M1.5 10.5v-9h4l1.5 2h5.5v7z"})):null),O=!1,U=E,C="",L="";if(E.length>80){let se=E.length-12;for(let Y=E.length-18;Y<=E.length-6;Y++)if(Y>0&&"-_. ".includes(E[Y])){se=Y;break}if(O=!/XXXX-\d+/.test(E.slice(Math.max(0,se-12))),U=E.slice(0,se).trimEnd(),C=E.slice(se).trimStart(),O){let Y=Math.max(8,30-C.length-1);if(U.length>Y&&!/XXXX-\d+/.test(U)){let he=-1;for(let Ue=Math.min(Y,U.length);Ue>=4;Ue--)if(".-_".includes(U[Ue])){he=Ue;break}let Se=E.slice(0,E.length-C.length);U=(he>0?U.slice(0,he):U.slice(0,Y)).trimEnd(),L=Se.slice(U.length)}}}let z=De("span",{class:{"tree-name":!0,"tree-name-split":O,"tree-name-wrap":!O},title:E.replace(/\bXXXX-(\d+)\b/g,"[redacted term $1]")},O?[De("span",{class:{"tree-name-head":!0,"is-cut":!!L}},Hp(U)),L?De("span",{class:"tree-name-middle"},L):null,De("span",{class:"tree-name-tail"},C)]:WQ(E)),K=se=>{if(m(se.currentTarget),!_){e.selectedPath!==void 0&&(se.preventDefault(),t("select",V));return}se.preventDefault(),o[V]=!G,o[V]&&!v.children.length&&e.page.getFiles(V.slice(1)),tt(()=>m(y().find(Y=>Y.dataset.path===r)))},ie=De("a",{"data-path":V,"aria-expanded":e.selectedPath!==void 0&&_?String(G):void 0,"aria-current":e.selectedPath!==void 0&&!_&&p()===V?"page":void 0,href:_?void 0:`/r/${encodeURIComponent(s.params.repoId)}${encodePathForUrl(V)}`,class:{"tree-focused":r===V},onClick:K},[_?De("span",{class:"tree-toggle"}):De("span",{class:"tree-spacer"}),X,z,te?De("span",{class:"truncated-warning",title:e.page.fmt.translate("WARNINGS.folder_truncated")},De("i",{class:"fas fa-exclamation-triangle"})):null]);return De("li",{key:V,class:{file:!0,folder:_,open:G,active:p()===V,truncated:te},title:_?"":`Size: ${KQ(v.size||0)}`},[ie,_&&G?v.children.length||!e.page?.loadedFolders?.[V.slice(1)]?h(v.children,V):De("ul",De("li",{class:"tree-empty"},"Empty folder")):null])}))}return()=>De("tree",{ref:i,tabindex:0,onKeydown:b},e.file?.length?u.value?.files.size===0?De("div",{class:"tree-search-empty"},"No files found"):h(d.value):"Empty repository")}};function Wp(){return st({errors:{},dirty:!1,touched:!1,submitted:!1,get invalid(){return Object.values(this.errors).some(Boolean)},setValidity(e,t){this.errors[e]=!t},setDirty(){this.dirty=!0}})}function Kp(e,t){if(!e[t]){let s=Wp();Object.defineProperty(s,"invalid",{get(){return Object.values(s.errors).some(Boolean)||Object.keys(s).some(i=>i!=="invalid"&&s[i]&&typeof s[i]=="object"&&s[i].invalid)}}),e[t]=s}return e[t]}var Yp={beforeMount(e,{value:t}){e._formState=Kp(t,e.name),e.addEventListener("submit",s=>s.preventDefault())}};function XQ(e){return e instanceof Date?isNaN(e)?"":`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`:e||""}function Gp(e){let t=e._field.binding.value;e.type==="checkbox"?e.checked=!!t:e.type==="radio"?e.checked=t==(e._value??e.value):e._field.timer||(e.value=e.type==="date"?XQ(t):t??""),Xa(e)}function Xa(e){let t=e._field.validation;if(!t)return;let s=e.validity;for(let[i,o]of Object.entries({required:s.valueMissing,pattern:s.patternMismatch,min:s.rangeUnderflow,max:s.rangeOverflow,date:s.badInput,email:s.typeMismatch&&e.type==="email",url:s.typeMismatch&&e.type==="url"}))t.setValidity(i,e.disabled||!o)}var Xp={beforeMount(e,{value:t}){var d;let s=t.form&&Kp(t.state,t.form),i=s&&e.name?s[d=e.name]||(s[d]=Wp()):null;e._field={binding:t,validation:i,timer:null};let o=()=>{clearTimeout(e._field.timer),e._field.timer=null;let p=e._field.binding,u=e.type==="checkbox"?e.checked:e._value??e.value;if(!(e.type==="radio"&&!e.checked)){if((e.type==="number"||e.type==="range")&&(u=e.value===""?null:Number(e.value)),e.type==="date"&&(u=e.value?new Date(e.value+"T00:00:00"):null),i){i.setDirty();for(let y of Object.keys(i.errors))i.setValidity(y,!0)}p.set(u),Xa(e),p.change?.()}};e._field.commit=o;let r=p=>{let u=e._field.binding.options?.debounce||0,y=typeof u=="number"?u:u[p.type]??u.default??0;clearTimeout(e._field.timer),y?e._field.timer=setTimeout(o,y):o()};e.addEventListener(e.tagName==="SELECT"||["checkbox","radio","date"].includes(e.type)?"change":"input",r),e.addEventListener("blur",()=>{i&&(i.touched=!0),e._field.timer&&o()})},mounted:Gp,updated(e,{value:t}){e._field.binding=t,Gp(e)},beforeUnmount(e){clearTimeout(e._field.timer);let{binding:t,validation:s}=e._field,i=t.form&&t.state[t.form];i&&i[e.name]===s&&delete i[e.name]}};function Qp(e,t){let s=e.target.closest("form");if(s?._formState&&(s._formState.submitted=!0),s?.querySelectorAll("input, select, textarea").forEach(i=>{i._field?.timer&&i._field.commit(),i._field&&Xa(i)}),s&&!s.checkValidity()){let i=s.querySelector("input:invalid, select:invalid, textarea:invalid");i?.scrollIntoView?.({block:"center"}),i?.focus(),s.reportValidity();return}return t()}var Jp=Symbol("session"),QQ=/^\/(w|api|github)(\/|$)/;function Zp(e,t={}){let s=e?.split(".").reduce((i,o)=>i?.[o],Kn);return s==null&&e?.startsWith("ERRORS.")&&(s=Kn.ERRORS.unknown_error),String(s??e??"").replace(/{{\s*([^}]+?)\s*}}/g,(i,o)=>t[o]??"")}var JQ={...wa,translate:Zp};function ZQ(e){if(e==null||e==="")return e;try{let t=new URL(e,window.location.href);return["http:","https:","mailto:","tel:","blob:"].includes(t.protocol)?e:void 0}catch{return}}function xQ(e="#app",t={}){let s=!!document.querySelector('meta[name="review-consent-page"][content="1"]'),i=s&&window.location.pathname==="/review-link"?sl(window):null,o=()=>{let h=i;return i=null,h};!t.history&&window.location.pathname==="/"&&/^#!\/r\/[^/?#]+/.test(window.location.hash)&&window.history.replaceState(window.history.state,"",window.location.hash.slice(2));let r=new Map,d=Dp(t.fetch),p,u;function y(){let h=Ct(),w={url(S){return S===void 0?u.currentRoute.value.fullPath:(u.push(S),w)},replace(S){return u.replace(S)},path(){return u.currentRoute.value.path},search(){return u.currentRoute.value.query}},R=new Proxy({},{get(S,N){let v=u.currentRoute.value.params[N];return Array.isArray(v)?v.join("/"):v}});return{takeReviewHandoff:o,http:d,...h,location:w,params:R,window,promises:Tp,html:{trustAsHtml:S=>S},translate:(S,N)=>Promise.resolve(Zp(S,N)),quotaService:Op(d)}}function m(h){return{name:h.template,setup(){let w=qo(Mt(Jp),r);h.setup(w,y()),Pp(h.template,w);let R=[];return()=>ur[h.template](w,R)}}}u=Mu({history:t.history||Tu(),routes:Yc.map(h=>h.redirect?h:{path:h.path,component:m(h),meta:{title:h.title,preserveExplorer:h.preserveExplorer}})});let b=Jd({setup(){p=qo(null,r),p.fmt=JQ,p.window=window,p.Math=Math,p.sanitize=S=>DOMPurify.sanitize(S??""),p.highlightRedactions=S=>(p.site_options,Mc(S)),p.submitForm=Qp,p.safeUrl=ZQ;let h=y();Vc(p,h.http,h.location,h.timeout),os(Jp,p),dt(()=>p.title,S=>{document.title=S||"Anonymous GitHub"});let w=[],R=S=>{let N=S.target.closest?.("a[href]");if(S.defaultPrevented||S.button!==0||S.metaKey||S.ctrlKey||S.shiftKey||S.altKey||!N||N.hasAttribute("download")||N.target&&N.target!=="_self"||N.dataset.toggle||N.getAttribute("href").startsWith("#"))return;let E=new URL(N.href,window.location.href);s||/^\/review-link\/?$/i.test(E.pathname)||E.origin!==window.location.origin||QQ.test(E.pathname)||(S.preventDefault(),u.push(E.pathname+E.search+E.hash),$("#navbarSupportedContent.show").collapse("hide"))};return document.addEventListener("click",R),is(()=>document.removeEventListener("click",R)),()=>[Ap(p,[]),s||/^\/(r|repository)\//.test(p.path||"")?null:De("header",{class:["app-header",{"is-contained":p.path==="/"||p.path==="/faq","is-signin":p.path==="/signin"}]},ur["partials/header.htm"](p,w)),De("main",{class:"app-view align-items-stretch w-100"},De(ha,null,{default:({Component:S,route:N})=>S?De(S,{key:N.meta.preserveExplorer?N.matched[0]?.path:N.path}):null})),De("div",{class:"position-fixed p-3",style:{zIndex:999999999,right:0,bottom:0}},p.toasts.map((S,N)=>De("div",{class:"toast show",role:"alert","aria-live":"assertive","aria-atomic":"true",key:N},[De("div",{class:"toast-header"},[De("strong",{class:"mr-auto"},S.title),De("button",{type:"button",class:"ml-2 mb-1 close","aria-label":"Close",onClick:()=>p.removeToast(S)},"\xD7")]),De("div",{class:"toast-body"},S.body)])))]}});for(let[h,w]of Object.entries(Up))b.component(h,w);return b.component("Tree",jp),b.component("PartialView",{props:["name","state"],setup(h){let w=[];return()=>ur[h.name](h.state,w)}}),b.directive("field",Xp),b.directive("form",Yp),b.directive("code-editor",Bp),b.directive("paper-scrollspy",zp),b.use(u),u.beforeEach(async h=>{if(h.path==="/review-link"&&!s||s&&h.path!=="/review-link")return window.location.assign(h.fullPath),!1;p?.emit("routeLeave"),/^\/(r|repository|anonymize|pull-request-anonymize|gist-anonymize|pr|gist)(\/|$)/.test(h.path)&&await Qn("markdown"),/^\/(r|repository|anonymize|pull-request-anonymize|gist-anonymize|pr|gist)(\/|$)/.test(h.path)&&await Qn("org")}),u.afterEach(h=>{if(!p)return;p.title=h.meta.title,p.emit("routeChange",{title:h.meta.title}),p.emit("routeUpdate",{title:h.meta.title});let w=document.querySelector(".app-view");!h.meta.preserveExplorer&&w&&(w.scrollTop=0)}),b.mount(e),{app:b,router:u,state:p}}document.querySelector("#app")&&(window.anonymousApp=xQ());})(); /*! Bundled license information: @vue/shared/dist/shared.esm-bundler.js: diff --git a/scripts/dev-mock.js b/scripts/dev-mock.js index 266e662..c0f60ad 100644 --- a/scripts/dev-mock.js +++ b/scripts/dev-mock.js @@ -995,6 +995,18 @@ app.post("/api/admin/queues/pause-all", ok); app.post("/api/admin/queue/:name/retry-failed", (req, res) => res.json({ retried: 2, total: 2 })); app.post("/api/admin/queue/:name/:action", ok); app.delete("/api/admin/queue/:name/:id", ok); +// Illustrative email history for local admin UI development. +app.get("/api/admin/emails", (req, res) => { + if (req.query.state === "rejected") return res.status(503).json({ error: "Simulated history outage" }); + const entries = ["accepted", "unknown", "sending"].map((state, index) => ({ + _id: oid(900 + index), kind: index ? "owner-access" : "repository-expiration", + recipient: index ? "author@example.com" : "research-team-with-a-long-address@example.com", + resourceKind: "repository", resourceId: oid(800 + index), + createdAt: ago(index), completedAt: state === "sending" ? null : ago(index), state, + httpStatus: state === "accepted" ? 200 : null, + })).filter(row => (!req.query.state || row.state === req.query.state) && (!req.query.kind || row.kind === req.query.kind)); + res.json({ entries, nextCursor: null }); +}); app.get("/api/admin/errors", (req, res) => { const offset = Math.max(0, parseInt(req.query.offset, 10) || 0); const limit = Math.min(5000, Math.max(1, parseInt(req.query.limit, 10) || 250)); diff --git a/src/core/email-history.ts b/src/core/email-history.ts new file mode 100644 index 0000000..f3253ff --- /dev/null +++ b/src/core/email-history.ts @@ -0,0 +1,60 @@ +import { randomUUID } from "crypto"; +import { mongo } from "mongoose"; +import UserModel from "./model/users/users.model"; +import { createLogger } from "./logger"; + +const logger = createLogger("email-history"); +export const EMAIL_HISTORY = "email_delivery_history"; +export interface EmailHistoryRecord { + _id: string; + kind: "repository-expiration" | "owner-access"; + recipient: string; + ownerId: string; + resourceId: string; + resourceKind: string; + createdAt: Date; + completedAt?: Date; + state: "sending" | "accepted" | "rejected" | "unknown"; + httpStatus?: number; +} +export const emailHistoryCollection = () => UserModel.db.collection(EMAIL_HISTORY) as unknown as mongo.Collection; +let indexed: Promise | undefined; +export async function ensureEmailHistoryIndexes() { + if (!indexed) indexed = Promise.all([ + emailHistoryCollection().createIndex({ createdAt: -1, _id: -1 }), + emailHistoryCollection().createIndex({ state: 1, createdAt: -1, _id: -1 }), + emailHistoryCollection().createIndex({ kind: 1, createdAt: -1, _id: -1 }), + ]).catch(error => { indexed = undefined; throw error; }); + await indexed; +} + +/** Store metadata only: never API keys, message bodies, or provider error bodies. */ +export async function sendTrackedEmail(metadata: Pick, + url: string, options: RequestInit): Promise { + const id = randomUUID(), createdAt = new Date(); + let recorded = false; + const recording = (async () => { + try { + if (UserModel.db.readyState === 1) { + await ensureEmailHistoryIndexes(); + await emailHistoryCollection().insertOne({ _id: id, ...metadata, createdAt, state: "sending" }); + recorded = true; + } + } catch { logger.warn("email history write unavailable"); } + })(); + // Start the provider request immediately after the caller commits dispatch. + // Auditing must not add a preparation gap to owner lifecycle fencing. + const complete = async (state: EmailHistoryRecord["state"], httpStatus?: number) => { + const completedAt = new Date(); + await recording; + if (!recorded) return; + try { + await emailHistoryCollection().updateOne({ _id: id }, { $set: { state, completedAt, ...(httpStatus ? { httpStatus } : {}) } }); + } catch { logger.warn("email history completion unavailable", { id }); } + }; + let response: Response; + try { response = await fetch(url, options); } + catch (error) { await complete("unknown"); throw error; } + await complete(response.ok ? "accepted" : "rejected", response.status); + return response; +} diff --git a/src/core/owner-notifications.ts b/src/core/owner-notifications.ts index 172dea5..861493a 100644 --- a/src/core/owner-notifications.ts +++ b/src/core/owner-notifications.ts @@ -1,3 +1,4 @@ +import { sendTrackedEmail } from "./email-history"; import { createHash, randomUUID } from "crypto"; import { mongo, Types } from "mongoose"; import { isGitHubRateLimitError } from "./github-rate-limit"; @@ -577,7 +578,8 @@ export async function notifyOwnerAccessProblem(ownerId: string, error: unknown, let httpStatus: number | undefined; try { providerStarted = true; - const response = await fetch("https://api.resend.com/emails", { + const response = await sendTrackedEmail({ kind: "owner-access", recipient: to, ownerId, + resourceId: resource.id, resourceKind: resource.kind }, "https://api.resend.com/emails", { method: "POST", headers: { Authorization: `Bearer ${config.RESEND_API_KEY}`, "Content-Type": "application/json", "Idempotency-Key": `owner-access-alert/${attemptId}` }, diff --git a/src/core/repository-expiration-email.ts b/src/core/repository-expiration-email.ts index 82812f2..ae870ed 100644 --- a/src/core/repository-expiration-email.ts +++ b/src/core/repository-expiration-email.ts @@ -1,3 +1,4 @@ +import { sendTrackedEmail } from "./email-history"; import config from "../config"; import RepositoryModel from "./model/anonymizedRepositories/anonymizedRepositories.model"; import UserModel from "./model/users/users.model"; @@ -27,7 +28,8 @@ export async function notifyRepositoryExpired(id: unknown): Promise { }, { $set: { expirationEmailClaimedFor: expirationDate } }).exec(); if (!claim.matchedCount) return; // Keep the claim even after a timeout: the provider may have accepted the email. - const response = await fetch("https://api.resend.com/emails", { + const response = await sendTrackedEmail({ kind: "repository-expiration", recipient: to, ownerId: String(repo.owner), + resourceId: String(repo._id), resourceKind: "repository" }, "https://api.resend.com/emails", { method: "POST", headers: { Authorization: `Bearer ${config.RESEND_API_KEY}`, "Content-Type": "application/json", "Idempotency-Key": `repository-expired/${repo._id}/${expirationDate.getTime()}` }, diff --git a/src/server/routes/admin-emails.ts b/src/server/routes/admin-emails.ts new file mode 100644 index 0000000..6696bef --- /dev/null +++ b/src/server/routes/admin-emails.ts @@ -0,0 +1,42 @@ +import { Router } from "express"; +import { mongo } from "mongoose"; +import { EmailHistoryRecord, emailHistoryCollection, ensureEmailHistoryIndexes } from "../../core/email-history"; + +const router = Router(); +export function emailHistoryQuery(query: Record) { + const filter: mongo.Filter = {}; + if (query.state) { + if (typeof query.state !== "string" || !["sending", "accepted", "rejected", "unknown"].includes(String(query.state))) throw new Error("Invalid status"); + filter.state = query.state as EmailHistoryRecord["state"]; + } + if (query.kind) { + if (typeof query.kind !== "string" || !["repository-expiration", "owner-access"].includes(String(query.kind))) throw new Error("Invalid email type"); + filter.kind = query.kind as EmailHistoryRecord["kind"]; + } + if (query.before) { + if (typeof query.before !== "string" || query.before.length > 200) throw new Error("Invalid cursor"); + const [date, id, extra] = query.before.split("|"); + const time = new Date(date); + if (extra || !id || !/^[0-9a-f-]{36}$/.test(id) || !Number.isFinite(time.getTime())) throw new Error("Invalid cursor"); + filter.$or = [{ createdAt: { $lt: time } }, { createdAt: time, _id: { $lt: id } }]; + } + return filter; +} +// Mounted after the shared authentication and administrator checks. +router.get("/", async (req, res) => { + res.set("Cache-Control", "no-store"); + let filter: mongo.Filter; + try { filter = emailHistoryQuery(req.query); } + catch { res.status(400).json({ error: "Invalid email history filters." }); return; } + try { + await ensureEmailHistoryIndexes(); + const rows = await emailHistoryCollection().find(filter, { projection: { + _id: 1, kind: 1, recipient: 1, ownerId: 1, resourceId: 1, resourceKind: 1, + createdAt: 1, completedAt: 1, state: 1, httpStatus: 1, + } }).sort({ createdAt: -1, _id: -1 }).limit(51).toArray(); + const entries = rows.slice(0, 50); + const last = entries.at(-1); + res.json({ entries, nextCursor: rows.length > 50 && last ? `${last.createdAt.toISOString()}|${last._id}` : null }); + } catch { res.status(503).json({ error: "Email history is unavailable. Try again." }); } +}); +export default router; diff --git a/src/server/routes/admin.ts b/src/server/routes/admin.ts index 23367a6..63c4c28 100644 --- a/src/server/routes/admin.ts +++ b/src/server/routes/admin.ts @@ -22,6 +22,7 @@ import { ensureAuthenticated } from "./connection"; import { handleError, getUser, isOwnerOrAdmin, getRepo } from "./route-utils"; import adminTokensRouter from "./admin-tokens"; import adminBillingRouter from "./admin-billing"; +import adminEmailsRouter from "./admin-emails"; import { octokit, getToken } from "../../core/GitHubUtils"; import { createLogger, @@ -85,6 +86,7 @@ router.use( router.use("/tokens", adminTokensRouter); router.use("/billing", adminBillingRouter); +router.use("/emails", adminEmailsRouter); router.get("/performance", async (req, res) => { res.set("Cache-Control", "no-store"); diff --git a/test/email-history.test.js b/test/email-history.test.js new file mode 100644 index 0000000..e89424d --- /dev/null +++ b/test/email-history.test.js @@ -0,0 +1,97 @@ +const { setImmediate } = require("node:timers"); +const { expect } = require("chai"); +require("ts-node/register/transpile-only"); +const Users = require("../src/core/model/users/users.model").default; +const history = require("../src/core/email-history"); +const admin = require("../src/server/routes/admin").default; +const { emailHistoryQuery } = require("../src/server/routes/admin-emails"); + +describe("email delivery history", () => { + const restores = []; + const stub = (obj, key, value) => { const old = obj[key]; restores.push(() => obj[key] = old); obj[key] = value; }; + let rows, updates, failWrite, failCompletion; + const metadata = { kind: "repository-expiration", recipient: "owner@example.com", ownerId: "owner", resourceId: "repo", resourceKind: "repository" }; + beforeEach(() => { + rows = []; updates = []; failWrite = false; failCompletion = false; + Object.defineProperty(Users.db, "readyState", { configurable: true, value: 1 }); + restores.push(() => { delete Users.db.readyState; }); + stub(Users.db, "collection", () => ({ createIndex: async () => {}, + insertOne: async row => { if (failWrite) throw Error("database unavailable"); rows.push(row); }, + updateOne: async (filter, update) => { if (failCompletion) throw Error("database unavailable"); updates.push({ filter, update }); }, + })); + stub(global, "fetch", async () => ({ ok: true, status: 200 })); + }); + afterEach(() => { while (restores.length) restores.pop()(); }); + it("records recipient and outcome without retaining credentials or the message", async () => { + await history.sendTrackedEmail(metadata, "https://api.resend.com/emails", { headers: { Authorization: "secret" }, body: "private content" }); + expect(rows).to.have.length(1); + expect(rows[0]).to.include({ recipient: metadata.recipient, state: "sending" }); + expect(JSON.stringify(rows)).not.to.include("secret"); + expect(JSON.stringify(rows)).not.to.include("private content"); + expect(updates[0].filter._id).to.equal(rows[0]._id); + expect(updates[0].update.$set).to.include({ state: "accepted", httpStatus: 200 }); + }); + it("starts delivery without waiting for audit storage", async () => { + let release, started = false; + stub(Users.db, "collection", () => ({ insertOne: () => new Promise(resolve => { release = resolve; }), updateOne: async () => {} })); + stub(global, "fetch", async () => { started = true; return { ok: true, status: 200 }; }); + const sending = history.sendTrackedEmail(metadata, "url", {}); + expect(started).to.equal(true); + await new Promise(resolve => setImmediate(resolve)); release(); await sending; + }); + it("records rejection separately from an unknown outcome", async () => { + stub(global, "fetch", async () => ({ ok: false, status: 429 })); + await history.sendTrackedEmail(metadata, "url", {}); + expect(updates[0].update.$set).to.include({ state: "rejected", httpStatus: 429 }); + stub(global, "fetch", async () => { throw Error("timeout"); }); + try { await history.sendTrackedEmail(metadata, "url", {}); throw Error("expected failure"); } + catch (error) { expect(error.message).to.equal("timeout"); } + expect(updates[1].update.$set.state).to.equal("unknown"); + }); + it("keeps delivery independent of audit write failures", async () => { + failWrite = true; + expect((await history.sendTrackedEmail(metadata, "url", {})).ok).to.equal(true); + failWrite = false; failCompletion = true; + expect((await history.sendTrackedEmail(metadata, "url", {})).ok).to.equal(true); + }); + it("validates filters and uses a stable cursor for equal timestamps", () => { + const date = "2026-01-01T00:00:00.000Z", id = "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"; + expect(emailHistoryQuery({ state: "accepted", kind: "owner-access", before: date + "|" + id })).to.deep.equal({ + state: "accepted", kind: "owner-access", $or: [{ createdAt: { $lt: new Date(date) } }, { createdAt: new Date(date), _id: { $lt: id } }], + }); + for (const query of [{ state: { $ne: "" } }, { kind: "invalid" }, { before: "bad" }, { before: [] }]) expect(() => emailHistoryQuery(query)).to.throw(); + }); + it("returns bounded pages with a cursor and no browser caching", async () => { + const router = require("../src/server/routes/admin-emails").default; + const handler = router.stack.find(layer => layer.route?.path === "/").route.stack[0].handle; + const records = Array.from({ length: 51 }, (_, index) => ({ _id: String(index), createdAt: new Date("2026-01-01"), state: "accepted" })); + let limit, filter, sort, result, cache; + stub(history, "emailHistoryCollection", () => ({ find: query => { + filter = query; + return { sort: value => { sort = value; return { limit: count => { limit = count; return { toArray: async () => records }; } }; } }; + } })); + await handler({ query: { state: "accepted" } }, { set: (key, value) => { cache = [key, value]; }, json: value => { result = value; } }); + expect(limit).to.equal(51); expect(sort).to.deep.equal({ createdAt: -1, _id: -1 }); + expect(filter).to.deep.equal({ state: "accepted" }); + expect(result.entries).to.have.length(50); + expect(result.nextCursor).to.equal("2026-01-01T00:00:00.000Z|49"); + expect(cache).to.deep.equal(["Cache-Control", "no-store"]); + }); + it("returns an explicit error for malformed queries and database failures", async () => { + const router = require("../src/server/routes/admin-emails").default; + const handler = router.stack.find(layer => layer.route?.path === "/").route.stack[0].handle; + let code, body; + const res = { set() {}, status(value) { code = value; return this; }, json(value) { body = value; } }; + await handler({ query: { before: "broken" } }, res); + expect(code).to.equal(400); + stub(history, "emailHistoryCollection", () => { throw Error("private database info"); }); + await handler({ query: {} }, res); + expect(code).to.equal(503); expect(body.error).not.to.include("private"); + }); + it("mounts history behind authentication and administrator checks", () => { + const emails = require("../src/server/routes/admin-emails").default; + const index = admin.stack.findIndex(layer => layer.handle === emails); + expect(index).to.be.greaterThan(1); + expect(admin.stack.slice(0, index).filter(layer => !layer.route && layer.handle.length >= 3).length).to.be.at.least(2); + }); +});