@humain/terminal 0.0.5 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +62 -0
- package/README.md +10 -4
- package/dist/bundle/chunks/anthropic-messages-GDMGYAZB.js +6 -0
- package/dist/bundle/chunks/anthropic.js +75 -0
- package/dist/bundle/chunks/azure-openai-responses-ZN52D6YC.js +2 -0
- package/dist/bundle/chunks/bedrock-converse-stream.js +77 -0
- package/dist/bundle/chunks/chunk-3D3G2X5U.js +6 -0
- package/dist/bundle/chunks/chunk-3VI4HD7D.js +31 -0
- package/dist/bundle/chunks/chunk-6R7UI4IY.js +2 -0
- package/dist/bundle/chunks/chunk-72KO4OMP.js +2 -0
- package/dist/bundle/chunks/chunk-7DDKXS2Q.js +2 -0
- package/dist/bundle/chunks/chunk-ARF4OE6X.js +105 -0
- package/dist/bundle/chunks/chunk-BOW22LW6.js +42 -0
- package/dist/bundle/chunks/chunk-BZQ53VGE.js +70 -0
- package/dist/bundle/chunks/chunk-CBHC6EL7.js +133 -0
- package/dist/bundle/chunks/chunk-D7XAASZM.js +4 -0
- package/dist/bundle/chunks/chunk-ECWELYBH.js +17 -0
- package/dist/bundle/chunks/chunk-GMWCTUPB.js +2 -0
- package/dist/bundle/chunks/chunk-H2O6VOXT.js +11 -0
- package/dist/bundle/chunks/chunk-HNVPY4LZ.js +5995 -0
- package/dist/bundle/chunks/chunk-JUUC5AZY.js +2 -0
- package/dist/bundle/chunks/chunk-JXWJOIH4.js +2 -0
- package/dist/bundle/chunks/chunk-L2ZPNLYD.js +2 -0
- package/dist/bundle/chunks/chunk-LVVZS2NO.js +12 -0
- package/dist/bundle/chunks/chunk-M2GYSCCG.js +44 -0
- package/dist/bundle/chunks/chunk-MA4UUCYX.js +18 -0
- package/dist/bundle/chunks/chunk-PGXDEOVV.js +2 -0
- package/dist/bundle/chunks/chunk-PJACZCIR.js +2 -0
- package/dist/bundle/chunks/chunk-PRRNXB7S.js +2 -0
- package/dist/bundle/chunks/chunk-SGTGQNNP.js +4 -0
- package/dist/bundle/chunks/chunk-TEPMHNKQ.js +2 -0
- package/dist/bundle/chunks/chunk-TXBQIIIO.js +2 -0
- package/dist/bundle/chunks/chunk-WJZ4KLGL.js +2 -0
- package/dist/bundle/chunks/chunk-XNGRGP62.js +2 -0
- package/dist/bundle/chunks/dist-7DSXV2TY.js +9 -0
- package/dist/bundle/chunks/dist-BXEVYJIO.js +7 -0
- package/dist/bundle/chunks/es-P2KNSZYR.js +9 -0
- package/dist/bundle/chunks/es5-FGTJ7ZFW.js +2 -0
- package/dist/bundle/chunks/event-streams-JOSQQSII.js +2 -0
- package/dist/bundle/chunks/extract-2L7ZVN7F.js +106 -0
- package/dist/bundle/chunks/github-copilot.js +2 -0
- package/dist/bundle/chunks/google-generative-ai-XT7NQJ2E.js +2 -0
- package/dist/bundle/chunks/google-vertex-IDQ6Z53W.js +2 -0
- package/dist/bundle/chunks/image-resize-worker.js +2 -0
- package/dist/bundle/chunks/kimi-coding.js +2 -0
- package/dist/bundle/chunks/mistral-conversations-HHDZ4FHR.js +5 -0
- package/dist/bundle/chunks/multipart-parser-FMGQ7342.js +3 -0
- package/dist/bundle/chunks/node-XY3CBY3C.js +294 -0
- package/dist/bundle/chunks/node-ZHY4LHC7.js +15 -0
- package/dist/bundle/chunks/openai-codex-responses-HRVCDY54.js +8 -0
- package/dist/bundle/chunks/openai-codex.js +75 -0
- package/dist/bundle/chunks/openai-completions-6QBYTBXY.js +7 -0
- package/dist/bundle/chunks/openai-responses-4MWLJHIK.js +2 -0
- package/dist/bundle/chunks/openrouter-images-Y2PCWAQH.js +2 -0
- package/dist/bundle/chunks/openrouter.js +75 -0
- package/dist/bundle/chunks/pdfjs-UKQT3OWY.js +107 -0
- package/dist/bundle/chunks/pi-messages-57K43J6J.js +8 -0
- package/dist/bundle/chunks/promise-J5TGSM32.js +2 -0
- package/dist/bundle/chunks/radius.js +75 -0
- package/dist/bundle/chunks/src-QKGKDFSU.js +4 -0
- package/dist/bundle/chunks/undici-D6ABF53Q.js +2 -0
- package/dist/bundle/chunks/webapi-AFS5FDJJ.js +5 -0
- package/dist/bundle/chunks/xai.js +2 -0
- package/dist/bundle/cli.js +3 -0
- package/dist/bundle/client.js +2 -0
- package/dist/bundle/index.js +2 -0
- package/dist/bundle/rpc-entry.js +3 -0
- package/dist/cli/args.d.ts +1 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +29 -9
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/file-processor.d.ts.map +1 -1
- package/dist/cli/file-processor.js +2 -1
- package/dist/cli/file-processor.js.map +1 -1
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +19 -11
- package/dist/config.js.map +1 -1
- package/dist/core/agent-session.d.ts +50 -14
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +163 -95
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js +6 -7
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
- package/dist/core/compaction/branch-summarization.js +3 -0
- package/dist/core/compaction/branch-summarization.js.map +1 -1
- package/dist/core/compaction/compaction.d.ts +4 -3
- package/dist/core/compaction/compaction.d.ts.map +1 -1
- package/dist/core/compaction/compaction.js +41 -32
- package/dist/core/compaction/compaction.js.map +1 -1
- package/dist/core/defaults.d.ts +1 -0
- package/dist/core/defaults.d.ts.map +1 -1
- package/dist/core/defaults.js +9 -0
- package/dist/core/defaults.js.map +1 -1
- package/dist/core/extensions/index.d.ts +2 -2
- package/dist/core/extensions/index.d.ts.map +1 -1
- package/dist/core/extensions/index.js +1 -1
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/extensions/loader.d.ts.map +1 -1
- package/dist/core/extensions/loader.js +115 -48
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/extensions/types.d.ts +38 -9
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js +3 -0
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/footer-data-provider.d.ts +1 -1
- package/dist/core/footer-data-provider.js +1 -1
- package/dist/core/footer-data-provider.js.map +1 -1
- package/dist/core/keybindings.d.ts +20 -19
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js +26 -5
- package/dist/core/keybindings.js.map +1 -1
- package/dist/core/model-config.d.ts +5 -0
- package/dist/core/model-config.d.ts.map +1 -1
- package/dist/core/model-config.js +3 -1
- package/dist/core/model-config.js.map +1 -1
- package/dist/core/model-resolver.d.ts +1 -0
- package/dist/core/model-resolver.d.ts.map +1 -1
- package/dist/core/model-resolver.js +18 -8
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/models-store.d.ts.map +1 -1
- package/dist/core/models-store.js +2 -1
- package/dist/core/models-store.js.map +1 -1
- package/dist/core/package-manager.d.ts.map +1 -1
- package/dist/core/package-manager.js +22 -14
- package/dist/core/package-manager.js.map +1 -1
- package/dist/core/pi-manifest.d.ts.map +1 -1
- package/dist/core/pi-manifest.js +2 -1
- package/dist/core/pi-manifest.js.map +1 -1
- package/dist/core/remote-catalog-provider.d.ts.map +1 -1
- package/dist/core/remote-catalog-provider.js +2 -1
- package/dist/core/remote-catalog-provider.js.map +1 -1
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +3 -2
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/sdk.d.ts +2 -2
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +10 -3
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-export.d.ts +4 -0
- package/dist/core/session-export.d.ts.map +1 -0
- package/dist/core/session-export.js +32 -0
- package/dist/core/session-export.js.map +1 -0
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +2 -1
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/settings-diagnostics.d.ts +9 -0
- package/dist/core/settings-diagnostics.d.ts.map +1 -0
- package/dist/core/settings-diagnostics.js +21 -0
- package/dist/core/settings-diagnostics.js.map +1 -0
- package/dist/core/settings-manager.d.ts +9 -0
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +51 -10
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/skills.d.ts.map +1 -1
- package/dist/core/skills.js +51 -33
- package/dist/core/skills.js.map +1 -1
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/slash-commands.js +2 -1
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +11 -2
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/tools/bash.d.ts +16 -3
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +62 -29
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/edit-diff.d.ts +0 -5
- package/dist/core/tools/edit-diff.d.ts.map +1 -1
- package/dist/core/tools/edit-diff.js +2 -5
- package/dist/core/tools/edit-diff.js.map +1 -1
- package/dist/core/tools/edit.d.ts.map +1 -1
- package/dist/core/tools/edit.js +20 -4
- package/dist/core/tools/edit.js.map +1 -1
- package/dist/core/tools/index.d.ts +4 -1
- package/dist/core/tools/index.d.ts.map +1 -1
- package/dist/core/tools/index.js +19 -1
- package/dist/core/tools/index.js.map +1 -1
- package/dist/core/tools/powershell.d.ts +16 -0
- package/dist/core/tools/powershell.d.ts.map +1 -0
- package/dist/core/tools/powershell.js +39 -0
- package/dist/core/tools/powershell.js.map +1 -0
- package/dist/core/tools/subagent.d.ts.map +1 -1
- package/dist/core/tools/subagent.js +21 -28
- package/dist/core/tools/subagent.js.map +1 -1
- package/dist/core/trust-manager.d.ts.map +1 -1
- package/dist/core/trust-manager.js +2 -1
- package/dist/core/trust-manager.js.map +1 -1
- package/dist/extensions/llama/index.d.ts.map +1 -1
- package/dist/extensions/llama/index.js +2 -0
- package/dist/extensions/llama/index.js.map +1 -1
- package/dist/extensions/llama/provider.d.ts.map +1 -1
- package/dist/extensions/llama/provider.js +6 -2
- package/dist/extensions/llama/provider.js.map +1 -1
- package/dist/humain/agent-execution-protocol.d.ts +1 -217
- package/dist/humain/agent-execution-protocol.d.ts.map +1 -1
- package/dist/humain/agent-execution-protocol.js +1 -203
- package/dist/humain/agent-execution-protocol.js.map +1 -1
- package/dist/humain/bedrock-provider/vendor/index.bundle.mjs +107 -16
- package/dist/humain/mcp-adapter/vendor/CHANGELOG.md +82 -0
- package/dist/humain/mcp-adapter/vendor/README.md +47 -15
- package/dist/humain/mcp-adapter/vendor/cli.js +4 -4
- package/dist/humain/mcp-adapter/vendor/commands.ts +5 -3
- package/dist/humain/mcp-adapter/vendor/config.ts +46 -5
- package/dist/humain/mcp-adapter/vendor/direct-tools.ts +103 -92
- package/dist/humain/mcp-adapter/vendor/dist/agent-dir.d.ts +10 -0
- package/dist/humain/mcp-adapter/vendor/dist/agent-dir.js +63 -0
- package/dist/humain/mcp-adapter/vendor/dist/agent-dir.js.map +1 -0
- package/dist/humain/mcp-adapter/vendor/dist/agent-plugin-loader.d.ts +8 -0
- package/dist/humain/mcp-adapter/vendor/dist/agent-plugin-loader.js +356 -0
- package/dist/humain/mcp-adapter/vendor/dist/agent-plugin-loader.js.map +1 -0
- package/dist/humain/mcp-adapter/vendor/dist/config.d.ts +123 -0
- package/dist/humain/mcp-adapter/vendor/dist/config.js +1088 -0
- package/dist/humain/mcp-adapter/vendor/dist/config.js.map +1 -0
- package/dist/humain/mcp-adapter/vendor/dist/mcp-bearer-store.d.ts +24 -0
- package/dist/humain/mcp-adapter/vendor/dist/mcp-bearer-store.js +336 -0
- package/dist/humain/mcp-adapter/vendor/dist/mcp-bearer-store.js.map +1 -0
- package/dist/humain/mcp-adapter/vendor/dist/metadata-cache.d.ts +19 -0
- package/dist/humain/mcp-adapter/vendor/dist/metadata-cache.js +319 -0
- package/dist/humain/mcp-adapter/vendor/dist/metadata-cache.js.map +1 -0
- package/dist/humain/mcp-adapter/vendor/dist/package-mcp-loader.d.ts +2 -0
- package/dist/humain/mcp-adapter/vendor/dist/package-mcp-loader.js +156 -0
- package/dist/humain/mcp-adapter/vendor/dist/package-mcp-loader.js.map +1 -0
- package/dist/humain/mcp-adapter/vendor/dist/resource-tools.d.ts +1 -0
- package/dist/humain/mcp-adapter/vendor/dist/resource-tools.js +15 -0
- package/dist/humain/mcp-adapter/vendor/dist/resource-tools.js.map +1 -0
- package/dist/humain/mcp-adapter/vendor/dist/types.d.ts +566 -0
- package/dist/humain/mcp-adapter/vendor/dist/types.js +287 -0
- package/dist/humain/mcp-adapter/vendor/dist/types.js.map +1 -0
- package/dist/humain/mcp-adapter/vendor/dist/ui-app-bridge-helpers.d.ts +6 -0
- package/dist/humain/mcp-adapter/vendor/dist/ui-app-bridge-helpers.js +37 -0
- package/dist/humain/mcp-adapter/vendor/dist/ui-app-bridge-helpers.js.map +1 -0
- package/dist/humain/mcp-adapter/vendor/dist/ui-stream-types.d.ts +104 -0
- package/dist/humain/mcp-adapter/vendor/dist/ui-stream-types.js +59 -0
- package/dist/humain/mcp-adapter/vendor/dist/ui-stream-types.js.map +1 -0
- package/dist/humain/mcp-adapter/vendor/dist/ui-tool-visibility.d.ts +4 -0
- package/dist/humain/mcp-adapter/vendor/dist/ui-tool-visibility.js +27 -0
- package/dist/humain/mcp-adapter/vendor/dist/ui-tool-visibility.js.map +1 -0
- package/dist/humain/mcp-adapter/vendor/dist/utils.d.ts +32 -0
- package/dist/humain/mcp-adapter/vendor/dist/utils.js +338 -0
- package/dist/humain/mcp-adapter/vendor/dist/utils.js.map +1 -0
- package/dist/humain/mcp-adapter/vendor/failure-backoff.ts +23 -0
- package/dist/humain/mcp-adapter/vendor/index.bundle.mjs +4870 -3878
- package/dist/humain/mcp-adapter/vendor/index.ts +294 -88
- package/dist/humain/mcp-adapter/vendor/init.ts +41 -30
- package/dist/humain/mcp-adapter/vendor/lifecycle.ts +16 -8
- package/dist/humain/mcp-adapter/vendor/mcp-auth-flow.ts +124 -32
- package/dist/humain/mcp-adapter/vendor/mcp-bearer-store.ts +0 -2
- package/dist/humain/mcp-adapter/vendor/mcp-code.ts +2 -0
- package/dist/humain/mcp-adapter/vendor/mcp-oauth-provider.ts +155 -16
- package/dist/humain/mcp-adapter/vendor/mcp-output-guard.ts +95 -7
- package/dist/humain/mcp-adapter/vendor/mcp-probe.ts +18 -4
- package/dist/humain/mcp-adapter/vendor/mcp-references.ts +376 -0
- package/dist/humain/mcp-adapter/vendor/mcp-status.ts +8 -19
- package/dist/humain/mcp-adapter/vendor/metadata-cache.ts +20 -12
- package/dist/humain/mcp-adapter/vendor/namespace-tools.ts +276 -0
- package/dist/humain/mcp-adapter/vendor/package.json +26 -8
- package/dist/humain/mcp-adapter/vendor/proxy-modes.ts +128 -32
- package/dist/humain/mcp-adapter/vendor/request-headers-command.ts +1 -1
- package/dist/humain/mcp-adapter/vendor/search-ranking.ts +2 -0
- package/dist/humain/mcp-adapter/vendor/server-manager.ts +69 -12
- package/dist/humain/mcp-adapter/vendor/state.ts +1 -3
- package/dist/humain/mcp-adapter/vendor/tool-result-renderer.ts +16 -2
- package/dist/humain/mcp-adapter/vendor/types.ts +51 -2
- package/dist/humain/mcp-adapter/vendor/ui-server.ts +3 -19
- package/dist/humain/mcp-adapter/vendor/ui-session.ts +2 -1
- package/dist/humain/mcp-adapter/vendor/utils.ts +21 -19
- package/dist/humain/mcp-adapter.d.ts.map +1 -1
- package/dist/humain/mcp-adapter.js +4 -0
- package/dist/humain/mcp-adapter.js.map +1 -1
- package/dist/humain/web-access/vendor/chrome-cookies.d.ts +14 -0
- package/dist/humain/web-access/vendor/chrome-cookies.d.ts.map +1 -1
- package/dist/humain/web-access/vendor/chrome-cookies.js +85 -33
- package/dist/humain/web-access/vendor/chrome-cookies.js.map +1 -1
- package/dist/humain/web-access/vendor/credential-source.d.ts +1 -1
- package/dist/humain/web-access/vendor/credential-source.d.ts.map +1 -1
- package/dist/humain/web-access/vendor/credential-source.js +3 -1
- package/dist/humain/web-access/vendor/credential-source.js.map +1 -1
- package/dist/humain/web-access/vendor/curator-page.d.ts +2 -29
- package/dist/humain/web-access/vendor/curator-page.d.ts.map +1 -1
- package/dist/humain/web-access/vendor/curator-page.js +10 -1
- package/dist/humain/web-access/vendor/curator-page.js.map +1 -1
- package/dist/humain/web-access/vendor/curator-server.d.ts +2 -29
- package/dist/humain/web-access/vendor/curator-server.d.ts.map +1 -1
- package/dist/humain/web-access/vendor/curator-server.js +4 -0
- package/dist/humain/web-access/vendor/curator-server.js.map +1 -1
- package/dist/humain/web-access/vendor/extract.d.ts +11 -0
- package/dist/humain/web-access/vendor/extract.d.ts.map +1 -1
- package/dist/humain/web-access/vendor/extract.js +163 -20
- package/dist/humain/web-access/vendor/extract.js.map +1 -1
- package/dist/humain/web-access/vendor/fetch-params.d.ts +2 -0
- package/dist/humain/web-access/vendor/fetch-params.d.ts.map +1 -1
- package/dist/humain/web-access/vendor/fetch-params.js +11 -0
- package/dist/humain/web-access/vendor/fetch-params.js.map +1 -1
- package/dist/humain/web-access/vendor/gemini-adc.d.ts +10 -0
- package/dist/humain/web-access/vendor/gemini-adc.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/gemini-adc.js +268 -0
- package/dist/humain/web-access/vendor/gemini-adc.js.map +1 -0
- package/dist/humain/web-access/vendor/gemini-api.d.ts +7 -1
- package/dist/humain/web-access/vendor/gemini-api.d.ts.map +1 -1
- package/dist/humain/web-access/vendor/gemini-api.js +51 -15
- package/dist/humain/web-access/vendor/gemini-api.js.map +1 -1
- package/dist/humain/web-access/vendor/gemini-search.d.ts +9 -4
- package/dist/humain/web-access/vendor/gemini-search.d.ts.map +1 -1
- package/dist/humain/web-access/vendor/gemini-search.js +63 -21
- package/dist/humain/web-access/vendor/gemini-search.js.map +1 -1
- package/dist/humain/web-access/vendor/gemini-url-context.d.ts.map +1 -1
- package/dist/humain/web-access/vendor/gemini-url-context.js +3 -2
- package/dist/humain/web-access/vendor/gemini-url-context.js.map +1 -1
- package/dist/humain/web-access/vendor/gemini-web-config.d.ts +8 -1
- package/dist/humain/web-access/vendor/gemini-web-config.d.ts.map +1 -1
- package/dist/humain/web-access/vendor/gemini-web-config.js +49 -4
- package/dist/humain/web-access/vendor/gemini-web-config.js.map +1 -1
- package/dist/humain/web-access/vendor/gemini-web.d.ts +2 -1
- package/dist/humain/web-access/vendor/gemini-web.d.ts.map +1 -1
- package/dist/humain/web-access/vendor/gemini-web.js +8 -3
- package/dist/humain/web-access/vendor/gemini-web.js.map +1 -1
- package/dist/humain/web-access/vendor/github-api.d.ts +1 -1
- package/dist/humain/web-access/vendor/github-api.d.ts.map +1 -1
- package/dist/humain/web-access/vendor/github-api.js +6 -4
- package/dist/humain/web-access/vendor/github-api.js.map +1 -1
- package/dist/humain/web-access/vendor/github-extract.d.ts.map +1 -1
- package/dist/humain/web-access/vendor/github-extract.js +50 -3
- package/dist/humain/web-access/vendor/github-extract.js.map +1 -1
- package/dist/humain/web-access/vendor/github-issue-pr.d.ts +27 -0
- package/dist/humain/web-access/vendor/github-issue-pr.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/github-issue-pr.js +701 -0
- package/dist/humain/web-access/vendor/github-issue-pr.js.map +1 -0
- package/dist/humain/web-access/vendor/index.d.ts +3 -31
- package/dist/humain/web-access/vendor/index.d.ts.map +1 -1
- package/dist/humain/web-access/vendor/index.js +643 -530
- package/dist/humain/web-access/vendor/index.js.map +1 -1
- package/dist/humain/web-access/vendor/kimi-search.d.ts +5 -0
- package/dist/humain/web-access/vendor/kimi-search.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/kimi-search.js +228 -0
- package/dist/humain/web-access/vendor/kimi-search.js.map +1 -0
- package/dist/humain/web-access/vendor/openai-search.d.ts +3 -0
- package/dist/humain/web-access/vendor/openai-search.d.ts.map +1 -1
- package/dist/humain/web-access/vendor/openai-search.js +89 -16
- package/dist/humain/web-access/vendor/openai-search.js.map +1 -1
- package/dist/humain/web-access/vendor/page-query.d.ts.map +1 -1
- package/dist/humain/web-access/vendor/page-query.js +56 -8
- package/dist/humain/web-access/vendor/page-query.js.map +1 -1
- package/dist/humain/web-access/vendor/ssrf-protection.js +6 -1
- package/dist/humain/web-access/vendor/ssrf-protection.js.map +1 -1
- package/dist/humain/web-access/vendor/utils.d.ts +12 -0
- package/dist/humain/web-access/vendor/utils.d.ts.map +1 -1
- package/dist/humain/web-access/vendor/utils.js +343 -1
- package/dist/humain/web-access/vendor/utils.js.map +1 -1
- package/dist/humain/web-access/vendor/xcrawl.d.ts +4 -0
- package/dist/humain/web-access/vendor/xcrawl.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/xcrawl.js +251 -0
- package/dist/humain/web-access/vendor/xcrawl.js.map +1 -0
- package/dist/humain/web-access/vendor/youtube-extract.js +2 -2
- package/dist/humain/web-access/vendor/youtube-extract.js.map +1 -1
- package/dist/index.d.ts +5 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts +3 -0
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +17 -14
- package/dist/main.js.map +1 -1
- package/dist/migrations.d.ts.map +1 -1
- package/dist/migrations.js +4 -3
- package/dist/migrations.js.map +1 -1
- package/dist/modes/interactive/components/model-selector.d.ts +9 -3
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/model-selector.js +53 -10
- package/dist/modes/interactive/components/model-selector.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts +7 -2
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +118 -55
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/components/settings-submenu.d.ts +72 -0
- package/dist/modes/interactive/components/settings-submenu.d.ts.map +1 -0
- package/dist/modes/interactive/components/settings-submenu.js +151 -0
- package/dist/modes/interactive/components/settings-submenu.js.map +1 -0
- package/dist/modes/interactive/components/thinking-selector.d.ts +15 -3
- package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.js +68 -17
- package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
- package/dist/modes/interactive/external-editor.d.ts.map +1 -1
- package/dist/modes/interactive/external-editor.js +2 -1
- package/dist/modes/interactive/external-editor.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +11 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +176 -106
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/session-share.d.ts +16 -0
- package/dist/modes/interactive/session-share.d.ts.map +1 -0
- package/dist/modes/interactive/session-share.js +188 -0
- package/dist/modes/interactive/session-share.js.map +1 -0
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme.js +6 -5
- package/dist/modes/interactive/theme/theme.js.map +1 -1
- package/dist/modes/json-event.d.ts +16 -13
- package/dist/modes/json-event.d.ts.map +1 -1
- package/dist/modes/json-event.js +20 -6
- package/dist/modes/json-event.js.map +1 -1
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client.js +3 -2
- package/dist/modes/rpc/rpc-client.js.map +1 -1
- package/dist/modes/rpc/rpc-types.d.ts +2 -7
- package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-types.js.map +1 -1
- package/dist/package-manager-cli.d.ts +1 -0
- package/dist/package-manager-cli.d.ts.map +1 -1
- package/dist/package-manager-cli.js +189 -3
- package/dist/package-manager-cli.js.map +1 -1
- package/dist/utils/changelog.d.ts +1 -1
- package/dist/utils/changelog.d.ts.map +1 -1
- package/dist/utils/changelog.js +12 -2
- package/dist/utils/changelog.js.map +1 -1
- package/dist/utils/frontmatter.d.ts.map +1 -1
- package/dist/utils/frontmatter.js +2 -1
- package/dist/utils/frontmatter.js.map +1 -1
- package/dist/utils/management-http.d.ts +5 -3
- package/dist/utils/management-http.d.ts.map +1 -1
- package/dist/utils/management-http.js +14 -10
- package/dist/utils/management-http.js.map +1 -1
- package/dist/utils/shell.d.ts +3 -0
- package/dist/utils/shell.d.ts.map +1 -1
- package/dist/utils/shell.js +17 -5
- package/dist/utils/shell.js.map +1 -1
- package/dist/utils/syntax-highlight.d.ts +1 -0
- package/dist/utils/syntax-highlight.d.ts.map +1 -1
- package/dist/utils/syntax-highlight.js +64 -1
- package/dist/utils/syntax-highlight.js.map +1 -1
- package/dist/utils/text.d.ts +8 -0
- package/dist/utils/text.d.ts.map +1 -0
- package/dist/utils/text.js +9 -0
- package/dist/utils/text.js.map +1 -0
- package/dist/utils/version-check.js +4 -4
- package/dist/utils/version-check.js.map +1 -1
- package/docs/compaction.md +15 -0
- package/docs/custom-provider.md +5 -2
- package/docs/environment-variables.md +7 -7
- package/docs/extensions.md +17 -7
- package/docs/json.md +7 -2
- package/docs/keybindings.md +8 -8
- package/docs/llama-cpp.md +2 -0
- package/docs/models.md +8 -2
- package/docs/packages.md +2 -2
- package/docs/rpc.md +9 -3
- package/docs/sdk.md +7 -2
- package/docs/settings.md +11 -3
- package/docs/skills.md +3 -2
- package/docs/terminal-setup.md +8 -0
- package/docs/usage.md +10 -7
- package/docs/windows.md +15 -1
- package/examples/extensions/border-status-editor.ts +1 -1
- package/examples/extensions/custom-provider-anthropic/package-lock.json +70 -8
- package/examples/extensions/custom-provider-anthropic/package.json +2 -2
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/git-checkpoint.ts +2 -2
- package/examples/extensions/gondolin/package-lock.json +2 -2
- package/examples/extensions/gondolin/package.json +1 -1
- package/examples/extensions/notify.ts +3 -1
- package/examples/extensions/sandbox/package-lock.json +14 -40
- package/examples/extensions/sandbox/package.json +2 -2
- package/examples/extensions/titlebar-spinner.ts +1 -1
- package/examples/extensions/with-deps/package-lock.json +4 -4
- package/examples/extensions/with-deps/package.json +1 -1
- package/examples/rpc-extension-ui.ts +1 -1
- package/examples/sdk/06-extensions.ts +1 -1
- package/examples/sdk/README.md +1 -1
- package/npm-shrinkwrap.json +293 -221
- package/package.json +21 -18
- package/src/humain/mcp-adapter/UPSTREAM.md +15 -5
- package/src/humain/mcp-adapter/upstream.json +4 -3
- package/src/humain/mcp-adapter/vendor/CHANGELOG.md +82 -0
- package/src/humain/web-access/UPSTREAM.md +1 -1
- package/src/humain/web-access/upstream.json +6 -4
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url);
|
|
2
|
+
import{__commonJS,__require}from"./chunk-JXWJOIH4.js";var require_symbols=__commonJS({"node_modules/undici/lib/core/symbols.js"(exports,module){"use strict";module.exports={kClose:Symbol("close"),kDestroy:Symbol("destroy"),kDispatch:Symbol("dispatch"),kUrl:Symbol("url"),kWriting:Symbol("writing"),kResuming:Symbol("resuming"),kQueue:Symbol("queue"),kConnect:Symbol("connect"),kConnecting:Symbol("connecting"),kKeepAliveDefaultTimeout:Symbol("default keep alive timeout"),kKeepAliveMaxTimeout:Symbol("max keep alive timeout"),kKeepAliveTimeoutThreshold:Symbol("keep alive timeout threshold"),kKeepAliveTimeoutValue:Symbol("keep alive timeout"),kKeepAlive:Symbol("keep alive"),kHeadersTimeout:Symbol("headers timeout"),kBodyTimeout:Symbol("body timeout"),kServerName:Symbol("server name"),kLocalAddress:Symbol("local address"),kHost:Symbol("host"),kNoRef:Symbol("no ref"),kBodyUsed:Symbol("used"),kBody:Symbol("abstracted request body"),kRunning:Symbol("running"),kBlocking:Symbol("blocking"),kPending:Symbol("pending"),kSize:Symbol("size"),kBusy:Symbol("busy"),kQueued:Symbol("queued"),kFree:Symbol("free"),kConnected:Symbol("connected"),kClosed:Symbol("closed"),kNeedDrain:Symbol("need drain"),kReset:Symbol("reset"),kDestroyed:Symbol.for("nodejs.stream.destroyed"),kResume:Symbol("resume"),kOnError:Symbol("on error"),kMaxHeadersSize:Symbol("max headers size"),kRunningIdx:Symbol("running index"),kPendingIdx:Symbol("pending index"),kError:Symbol("error"),kClients:Symbol("clients"),kClient:Symbol("client"),kParser:Symbol("parser"),kOnDestroyed:Symbol("destroy callbacks"),kPipelining:Symbol("pipelining"),kSocket:Symbol("socket"),kHostHeader:Symbol("host header"),kConnector:Symbol("connector"),kStrictContentLength:Symbol("strict content length"),kMaxRedirections:Symbol("maxRedirections"),kMaxRequests:Symbol("maxRequestsPerClient"),kProxy:Symbol("proxy agent options"),kCounter:Symbol("socket request counter"),kMaxResponseSize:Symbol("max response size"),kHTTP2Session:Symbol("http2Session"),kHTTP2Options:Symbol("http2 options"),kHTTP2SessionState:Symbol("http2Session state"),kRetryHandlerDefaultRetry:Symbol("retry agent default retry"),kConstruct:Symbol("constructable"),kListeners:Symbol("listeners"),kHTTPContext:Symbol("http context"),kMaxConcurrentStreams:Symbol("max concurrent streams"),kHostAuthority:Symbol("host authority"),kHTTP2InitialWindowSize:Symbol("http2 initial window size"),kHTTP2ConnectionWindowSize:Symbol("http2 connection window size"),kEnableConnectProtocol:Symbol("http2session connect protocol"),kRemoteSettings:Symbol("http2session remote settings"),kHTTP2Stream:Symbol("http2session client stream"),kPingInterval:Symbol("ping interval"),kNoProxyAgent:Symbol("no proxy agent"),kHttpProxyAgent:Symbol("http proxy agent"),kHttpsProxyAgent:Symbol("https proxy agent"),kSocks5ProxyAgent:Symbol("socks5 proxy agent")}}});var require_timers=__commonJS({"node_modules/undici/lib/util/timers.js"(exports,module){"use strict";var fastNow=0,RESOLUTION_MS=1e3,TICK_MS=(RESOLUTION_MS>>1)-1,fastNowTimeout,kFastTimer=Symbol("kFastTimer"),fastTimers=[],NOT_IN_LIST=-2,TO_BE_CLEARED=-1,PENDING=0,ACTIVE=1;function onTick(){fastNow+=TICK_MS;let idx=0,len=fastTimers.length;for(;idx<len;){let timer=fastTimers[idx];timer._state===PENDING?(timer._idleStart=fastNow-TICK_MS,timer._state=ACTIVE):timer._state===ACTIVE&&fastNow>=timer._idleStart+timer._idleTimeout&&(timer._state=TO_BE_CLEARED,timer._idleStart=-1,timer._onTimeout(timer._timerArg)),timer._state===TO_BE_CLEARED?(timer._state=NOT_IN_LIST,--len!==0&&(fastTimers[idx]=fastTimers[len])):++idx}fastTimers.length=len,fastTimers.length!==0&&refreshTimeout()}function refreshTimeout(){fastNowTimeout?.refresh?fastNowTimeout.refresh():(clearTimeout(fastNowTimeout),fastNowTimeout=setTimeout(onTick,TICK_MS),fastNowTimeout?.unref())}var FastTimer=class{[kFastTimer]=!0;_state=NOT_IN_LIST;_idleTimeout=-1;_idleStart=-1;_onTimeout;_timerArg;constructor(callback,delay,arg){this._onTimeout=callback,this._idleTimeout=delay,this._timerArg=arg,this.refresh()}refresh(){this._state===NOT_IN_LIST&&fastTimers.push(this),(!fastNowTimeout||fastTimers.length===1)&&refreshTimeout(),this._state=PENDING}clear(){this._state=TO_BE_CLEARED,this._idleStart=-1}};module.exports={setTimeout(callback,delay,arg){return delay<=RESOLUTION_MS?setTimeout(callback,delay,arg):new FastTimer(callback,delay,arg)},clearTimeout(timeout){timeout[kFastTimer]?timeout.clear():clearTimeout(timeout)},setFastTimeout(callback,delay,arg){return new FastTimer(callback,delay,arg)},clearFastTimeout(timeout){timeout.clear()},now(){return fastNow},tick(delay=0){fastNow+=delay-RESOLUTION_MS+1,onTick(),onTick()},reset(){fastNow=0,fastTimers.length=0,clearTimeout(fastNowTimeout),fastNowTimeout=null},kFastTimer}}});var require_errors=__commonJS({"node_modules/undici/lib/core/errors.js"(exports,module){"use strict";var kUndiciError=Symbol.for("undici.error.UND_ERR"),UndiciError=class extends Error{constructor(message,options){super(message,options),this.name="UndiciError",this.code="UND_ERR"}static[Symbol.hasInstance](instance){return instance&&instance[kUndiciError]===!0}get[kUndiciError](){return!0}},kConnectTimeoutError=Symbol.for("undici.error.UND_ERR_CONNECT_TIMEOUT"),ConnectTimeoutError=class extends UndiciError{constructor(message){super(message),this.name="ConnectTimeoutError",this.message=message||"Connect Timeout Error",this.code="UND_ERR_CONNECT_TIMEOUT"}static[Symbol.hasInstance](instance){return instance&&instance[kConnectTimeoutError]===!0}get[kConnectTimeoutError](){return!0}},kHeadersTimeoutError=Symbol.for("undici.error.UND_ERR_HEADERS_TIMEOUT"),HeadersTimeoutError=class extends UndiciError{constructor(message){super(message),this.name="HeadersTimeoutError",this.message=message||"Headers Timeout Error",this.code="UND_ERR_HEADERS_TIMEOUT"}static[Symbol.hasInstance](instance){return instance&&instance[kHeadersTimeoutError]===!0}get[kHeadersTimeoutError](){return!0}},kHeadersOverflowError=Symbol.for("undici.error.UND_ERR_HEADERS_OVERFLOW"),HeadersOverflowError=class extends UndiciError{constructor(message){super(message),this.name="HeadersOverflowError",this.message=message||"Headers Overflow Error",this.code="UND_ERR_HEADERS_OVERFLOW"}static[Symbol.hasInstance](instance){return instance&&instance[kHeadersOverflowError]===!0}get[kHeadersOverflowError](){return!0}},kBodyTimeoutError=Symbol.for("undici.error.UND_ERR_BODY_TIMEOUT"),BodyTimeoutError=class extends UndiciError{constructor(message){super(message),this.name="BodyTimeoutError",this.message=message||"Body Timeout Error",this.code="UND_ERR_BODY_TIMEOUT"}static[Symbol.hasInstance](instance){return instance&&instance[kBodyTimeoutError]===!0}get[kBodyTimeoutError](){return!0}},kInvalidArgumentError=Symbol.for("undici.error.UND_ERR_INVALID_ARG"),InvalidArgumentError=class extends UndiciError{constructor(message){super(message),this.name="InvalidArgumentError",this.message=message||"Invalid Argument Error",this.code="UND_ERR_INVALID_ARG"}static[Symbol.hasInstance](instance){return instance&&instance[kInvalidArgumentError]===!0}get[kInvalidArgumentError](){return!0}},kInvalidReturnValueError=Symbol.for("undici.error.UND_ERR_INVALID_RETURN_VALUE"),InvalidReturnValueError=class extends UndiciError{constructor(message){super(message),this.name="InvalidReturnValueError",this.message=message||"Invalid Return Value Error",this.code="UND_ERR_INVALID_RETURN_VALUE"}static[Symbol.hasInstance](instance){return instance&&instance[kInvalidReturnValueError]===!0}get[kInvalidReturnValueError](){return!0}},kAbortError=Symbol.for("undici.error.UND_ERR_ABORT"),AbortError=class extends UndiciError{constructor(message){super(message),this.name="AbortError",this.message=message||"The operation was aborted",this.code="UND_ERR_ABORT"}static[Symbol.hasInstance](instance){return instance&&instance[kAbortError]===!0}get[kAbortError](){return!0}},kRequestAbortedError=Symbol.for("undici.error.UND_ERR_ABORTED"),RequestAbortedError=class extends AbortError{constructor(message){super(message),this.name="AbortError",this.message=message||"Request aborted",this.code="UND_ERR_ABORTED"}static[Symbol.hasInstance](instance){return instance&&instance[kRequestAbortedError]===!0}get[kRequestAbortedError](){return!0}},kInformationalError=Symbol.for("undici.error.UND_ERR_INFO"),InformationalError=class extends UndiciError{constructor(message,options){super(message,options),this.name="InformationalError",this.message=message||"Request information",this.code="UND_ERR_INFO"}static[Symbol.hasInstance](instance){return instance&&instance[kInformationalError]===!0}get[kInformationalError](){return!0}},kRequestContentLengthMismatchError=Symbol.for("undici.error.UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"),RequestContentLengthMismatchError=class extends UndiciError{constructor(message){super(message),this.name="RequestContentLengthMismatchError",this.message=message||"Request body length does not match content-length header",this.code="UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"}static[Symbol.hasInstance](instance){return instance&&instance[kRequestContentLengthMismatchError]===!0}get[kRequestContentLengthMismatchError](){return!0}},kResponseContentLengthMismatchError=Symbol.for("undici.error.UND_ERR_RES_CONTENT_LENGTH_MISMATCH"),ResponseContentLengthMismatchError=class extends UndiciError{constructor(message){super(message),this.name="ResponseContentLengthMismatchError",this.message=message||"Response body length does not match content-length header",this.code="UND_ERR_RES_CONTENT_LENGTH_MISMATCH"}static[Symbol.hasInstance](instance){return instance&&instance[kResponseContentLengthMismatchError]===!0}get[kResponseContentLengthMismatchError](){return!0}},kClientDestroyedError=Symbol.for("undici.error.UND_ERR_DESTROYED"),ClientDestroyedError=class extends UndiciError{constructor(message){super(message),this.name="ClientDestroyedError",this.message=message||"The client is destroyed",this.code="UND_ERR_DESTROYED"}static[Symbol.hasInstance](instance){return instance&&instance[kClientDestroyedError]===!0}get[kClientDestroyedError](){return!0}},kClientClosedError=Symbol.for("undici.error.UND_ERR_CLOSED"),ClientClosedError=class extends UndiciError{constructor(message){super(message),this.name="ClientClosedError",this.message=message||"The client is closed",this.code="UND_ERR_CLOSED"}static[Symbol.hasInstance](instance){return instance&&instance[kClientClosedError]===!0}get[kClientClosedError](){return!0}},kSocketError=Symbol.for("undici.error.UND_ERR_SOCKET"),SocketError=class extends UndiciError{constructor(message,socket){super(message),this.name="SocketError",this.message=message||"Socket error",this.code="UND_ERR_SOCKET",this.socket=socket}static[Symbol.hasInstance](instance){return instance&&instance[kSocketError]===!0}get[kSocketError](){return!0}},kNotSupportedError=Symbol.for("undici.error.UND_ERR_NOT_SUPPORTED"),NotSupportedError=class extends UndiciError{constructor(message){super(message),this.name="NotSupportedError",this.message=message||"Not supported error",this.code="UND_ERR_NOT_SUPPORTED"}static[Symbol.hasInstance](instance){return instance&&instance[kNotSupportedError]===!0}get[kNotSupportedError](){return!0}},kBalancedPoolMissingUpstreamError=Symbol.for("undici.error.UND_ERR_BPL_MISSING_UPSTREAM"),BalancedPoolMissingUpstreamError=class extends UndiciError{constructor(message){super(message),this.name="MissingUpstreamError",this.message=message||"No upstream has been added to the BalancedPool",this.code="UND_ERR_BPL_MISSING_UPSTREAM"}static[Symbol.hasInstance](instance){return instance&&instance[kBalancedPoolMissingUpstreamError]===!0}get[kBalancedPoolMissingUpstreamError](){return!0}},kHTTPParserError=Symbol.for("undici.error.UND_ERR_HTTP_PARSER"),HTTPParserError=class extends Error{constructor(message,code,data){super(message),this.name="HTTPParserError",this.code=code?`HPE_${code}`:void 0,this.data=data?data.toString():void 0}static[Symbol.hasInstance](instance){return instance&&instance[kHTTPParserError]===!0}get[kHTTPParserError](){return!0}},kResponseExceededMaxSizeError=Symbol.for("undici.error.UND_ERR_RES_EXCEEDED_MAX_SIZE"),ResponseExceededMaxSizeError=class extends UndiciError{constructor(message){super(message),this.name="ResponseExceededMaxSizeError",this.message=message||"Response content exceeded max size",this.code="UND_ERR_RES_EXCEEDED_MAX_SIZE"}static[Symbol.hasInstance](instance){return instance&&instance[kResponseExceededMaxSizeError]===!0}get[kResponseExceededMaxSizeError](){return!0}},kRequestRetryError=Symbol.for("undici.error.UND_ERR_REQ_RETRY"),RequestRetryError=class extends UndiciError{constructor(message,code,{headers,data}){super(message),this.name="RequestRetryError",this.message=message||"Request retry error",this.code="UND_ERR_REQ_RETRY",this.statusCode=code,this.data=data,this.headers=headers}static[Symbol.hasInstance](instance){return instance&&instance[kRequestRetryError]===!0}get[kRequestRetryError](){return!0}},kResponseError=Symbol.for("undici.error.UND_ERR_RESPONSE"),ResponseError=class extends UndiciError{constructor(message,code,{headers,body}){super(message),this.name="ResponseError",this.message=message||"Response error",this.code="UND_ERR_RESPONSE",this.statusCode=code,this.body=body,this.headers=headers}static[Symbol.hasInstance](instance){return instance&&instance[kResponseError]===!0}get[kResponseError](){return!0}},kSecureProxyConnectionError=Symbol.for("undici.error.UND_ERR_PRX_TLS"),SecureProxyConnectionError=class extends UndiciError{constructor(cause,message,options={}){super(message,{cause,...options}),this.name="SecureProxyConnectionError",this.message=message||"Secure Proxy Connection failed",this.code="UND_ERR_PRX_TLS",this.cause=cause}static[Symbol.hasInstance](instance){return instance&&instance[kSecureProxyConnectionError]===!0}get[kSecureProxyConnectionError](){return!0}},kProxyConnectionError=Symbol.for("undici.error.UND_ERR_PRX_CONN"),ProxyConnectionError=class extends UndiciError{constructor(cause,message,options={}){super(message,{cause,...options}),this.name="ProxyConnectionError",this.message=message||"Proxy Connection failed",this.code="UND_ERR_PRX_CONN",this.cause=cause}static[Symbol.hasInstance](instance){return instance&&instance[kProxyConnectionError]===!0}get[kProxyConnectionError](){return!0}},kMaxOriginsReachedError=Symbol.for("undici.error.UND_ERR_MAX_ORIGINS_REACHED"),MaxOriginsReachedError=class extends UndiciError{constructor(message){super(message),this.name="MaxOriginsReachedError",this.message=message||"Maximum allowed origins reached",this.code="UND_ERR_MAX_ORIGINS_REACHED"}static[Symbol.hasInstance](instance){return instance&&instance[kMaxOriginsReachedError]===!0}get[kMaxOriginsReachedError](){return!0}},Socks5ProxyError=class extends UndiciError{constructor(message,code){super(message),this.name="Socks5ProxyError",this.message=message||"SOCKS5 proxy error",this.code=code||"UND_ERR_SOCKS5"}},kMessageSizeExceededError=Symbol.for("undici.error.UND_ERR_WS_MESSAGE_SIZE_EXCEEDED"),MessageSizeExceededError=class extends UndiciError{constructor(message){super(message),this.name="MessageSizeExceededError",this.message=message||"Max decompressed message size exceeded",this.code="UND_ERR_WS_MESSAGE_SIZE_EXCEEDED"}static[Symbol.hasInstance](instance){return instance&&instance[kMessageSizeExceededError]===!0}get[kMessageSizeExceededError](){return!0}};module.exports={AbortError,HTTPParserError,UndiciError,HeadersTimeoutError,HeadersOverflowError,BodyTimeoutError,RequestContentLengthMismatchError,ConnectTimeoutError,InvalidArgumentError,InvalidReturnValueError,RequestAbortedError,ClientDestroyedError,ClientClosedError,InformationalError,SocketError,NotSupportedError,ResponseContentLengthMismatchError,BalancedPoolMissingUpstreamError,ResponseExceededMaxSizeError,RequestRetryError,ResponseError,SecureProxyConnectionError,ProxyConnectionError,MaxOriginsReachedError,Socks5ProxyError,MessageSizeExceededError}}});var require_constants=__commonJS({"node_modules/undici/lib/core/constants.js"(exports,module){"use strict";var wellknownHeaderNames=["Accept","Accept-Encoding","Accept-Language","Accept-Ranges","Access-Control-Allow-Credentials","Access-Control-Allow-Headers","Access-Control-Allow-Methods","Access-Control-Allow-Origin","Access-Control-Expose-Headers","Access-Control-Max-Age","Access-Control-Request-Headers","Access-Control-Request-Method","Age","Allow","Alt-Svc","Alt-Used","Authorization","Cache-Control","Clear-Site-Data","Connection","Content-Disposition","Content-Encoding","Content-Language","Content-Length","Content-Location","Content-Range","Content-Security-Policy","Content-Security-Policy-Report-Only","Content-Type","Cookie","Cross-Origin-Embedder-Policy","Cross-Origin-Opener-Policy","Cross-Origin-Resource-Policy","Date","Device-Memory","Downlink","ECT","ETag","Expect","Expect-CT","Expires","Forwarded","From","Host","If-Match","If-Modified-Since","If-None-Match","If-Range","If-Unmodified-Since","Keep-Alive","Last-Modified","Link","Location","Max-Forwards","Origin","Permissions-Policy","Pragma","Proxy-Authenticate","Proxy-Authorization","RTT","Range","Referer","Referrer-Policy","Refresh","Retry-After","Sec-WebSocket-Accept","Sec-WebSocket-Extensions","Sec-WebSocket-Key","Sec-WebSocket-Protocol","Sec-WebSocket-Version","Server","Server-Timing","Service-Worker-Allowed","Service-Worker-Navigation-Preload","Set-Cookie","SourceMap","Strict-Transport-Security","Supports-Loading-Mode","TE","Timing-Allow-Origin","Trailer","Transfer-Encoding","Upgrade","Upgrade-Insecure-Requests","User-Agent","Vary","Via","WWW-Authenticate","X-Content-Type-Options","X-DNS-Prefetch-Control","X-Frame-Options","X-Permitted-Cross-Domain-Policies","X-Powered-By","X-Requested-With","X-XSS-Protection"],headerNameLowerCasedRecord={};Object.setPrototypeOf(headerNameLowerCasedRecord,null);for(let i=0;i<wellknownHeaderNames.length;++i){let key=wellknownHeaderNames[i],lowerCasedKey=key.toLowerCase();headerNameLowerCasedRecord[key]=headerNameLowerCasedRecord[lowerCasedKey]=lowerCasedKey}module.exports={wellknownHeaderNames,headerNameLowerCasedRecord}}});var require_tree=__commonJS({"node_modules/undici/lib/core/tree.js"(exports,module){"use strict";var{wellknownHeaderNames,headerNameLowerCasedRecord}=require_constants(),TstNode=class _TstNode{value=null;left=null;middle=null;right=null;code;constructor(key,value,index){if(index===void 0||index>=key.length)throw new TypeError("Unreachable");if((this.code=key.charCodeAt(index))>127)throw new TypeError("key must be ascii string");key.length!==++index?this.middle=new _TstNode(key,value,index):this.value=value}add(key,value){let length=key.length;if(length===0)throw new TypeError("Unreachable");let index=0,node=this;for(;;){let code=key.charCodeAt(index);if(code>127)throw new TypeError("key must be ascii string");if(node.code===code)if(length===++index){node.value=value;break}else if(node.middle!==null)node=node.middle;else{node.middle=new _TstNode(key,value,index);break}else if(node.code<code)if(node.left!==null)node=node.left;else{node.left=new _TstNode(key,value,index);break}else if(node.right!==null)node=node.right;else{node.right=new _TstNode(key,value,index);break}}}search(key){let keylength=key.length,index=0,node=this;for(;node!==null&&index<keylength;){let code=key[index];for(code<=90&&code>=65&&(code|=32);node!==null;){if(code===node.code){if(keylength===++index)return node;node=node.middle;break}node=node.code<code?node.left:node.right}}return null}},TernarySearchTree=class{node=null;insert(key,value){this.node===null?this.node=new TstNode(key,value,0):this.node.add(key,value)}lookup(key){return this.node?.search(key)?.value??null}},tree=new TernarySearchTree;for(let i=0;i<wellknownHeaderNames.length;++i){let key=headerNameLowerCasedRecord[wellknownHeaderNames[i]];tree.insert(key,key)}module.exports={TernarySearchTree,tree}}});var require_util=__commonJS({"node_modules/undici/lib/core/util.js"(exports,module){"use strict";var assert=__require("node:assert"),{kDestroyed,kBodyUsed,kListeners,kBody}=require_symbols(),{IncomingMessage}=__require("node:http"),stream=__require("node:stream"),net=__require("node:net"),{stringify}=__require("node:querystring"),{EventEmitter:EE,addAbortListener:addAbortListenerNative}=__require("node:events"),timers=require_timers(),{InvalidArgumentError,ConnectTimeoutError}=require_errors(),{headerNameLowerCasedRecord}=require_constants(),{tree}=require_tree(),BodyAsyncIterable=class{constructor(body){this[kBody]=body,this[kBodyUsed]=!1}async*[Symbol.asyncIterator](){assert(!this[kBodyUsed],"disturbed"),this[kBodyUsed]=!0,yield*this[kBody]}};function noop(){}function wrapRequestBody(body){return isStream(body)?(bodyLength(body)===0&&body.on("data",function(){assert(!1)}),typeof body.readableDidRead!="boolean"&&(body[kBodyUsed]=!1,EE.prototype.on.call(body,"data",function(){this[kBodyUsed]=!0})),body):body&&typeof body.pipeTo=="function"?new BodyAsyncIterable(body):body&&isFormDataLike(body)?body:body&&typeof body!="string"&&!ArrayBuffer.isView(body)&&isIterable(body)?new BodyAsyncIterable(body):body}function isStream(obj){return obj&&typeof obj=="object"&&typeof obj.pipe=="function"&&typeof obj.on=="function"}function isBlobLike(object){return object instanceof Blob}function pathHasQueryOrFragment(url){return url.includes("?")||url.includes("#")}function serializePathWithQuery(url,queryParams){if(pathHasQueryOrFragment(url))throw new Error('Query params cannot be passed when url already contains "?" or "#".');let stringified=stringify(queryParams);return stringified&&(url+="?"+stringified),url}function isValidPort(port){let value=parseInt(port,10);return value===Number(port)&&value>=0&&value<=65535}function isHttpOrHttpsPrefixed(value){return value!=null&&value[0]==="h"&&value[1]==="t"&&value[2]==="t"&&value[3]==="p"&&(value[4]===":"||value[4]==="s"&&value[5]===":")}function parseURL(url){if(typeof url=="string"){if(url=new URL(url),!isHttpOrHttpsPrefixed(url.origin||url.protocol))throw new InvalidArgumentError("Invalid URL protocol: the URL must start with `http:` or `https:`.");return url}if(!url||typeof url!="object")throw new InvalidArgumentError("Invalid URL: The URL argument must be a non-null object.");if(!(url instanceof URL)){if(url.port!=null&&url.port!==""&&isValidPort(url.port)===!1)throw new InvalidArgumentError("Invalid URL: port must be a valid integer or a string representation of an integer.");if(url.path!=null&&typeof url.path!="string")throw new InvalidArgumentError("Invalid URL path: the path must be a string or null/undefined.");if(url.pathname!=null&&typeof url.pathname!="string")throw new InvalidArgumentError("Invalid URL pathname: the pathname must be a string or null/undefined.");if(url.hostname!=null&&typeof url.hostname!="string")throw new InvalidArgumentError("Invalid URL hostname: the hostname must be a string or null/undefined.");if(url.origin!=null&&typeof url.origin!="string")throw new InvalidArgumentError("Invalid URL origin: the origin must be a string or null/undefined.");if(!isHttpOrHttpsPrefixed(url.origin||url.protocol))throw new InvalidArgumentError("Invalid URL protocol: the URL must start with `http:` or `https:`.");let port=url.port!=null?url.port:url.protocol==="https:"?443:80,origin=url.origin!=null?url.origin:`${url.protocol||""}//${url.hostname||""}:${port}`,path=url.path!=null?url.path:`${url.pathname||""}${url.search||""}`;return origin[origin.length-1]==="/"&&(origin=origin.slice(0,origin.length-1)),path&&path[0]!=="/"&&(path=`/${path}`),new URL(`${origin}${path}`)}if(!isHttpOrHttpsPrefixed(url.origin||url.protocol))throw new InvalidArgumentError("Invalid URL protocol: the URL must start with `http:` or `https:`.");return url}function parseOrigin(url){if(url=parseURL(url),url.pathname!=="/"||url.search||url.hash)throw new InvalidArgumentError("invalid url");return url}function getHostname(host){if(host[0]==="["){let idx2=host.indexOf("]");return assert(idx2!==-1),host.substring(1,idx2)}let idx=host.indexOf(":");return idx===-1?host:host.substring(0,idx)}function getServerName(host){if(!host)return null;assert(typeof host=="string");let servername=getHostname(host);return net.isIP(servername)?"":servername}function deepClone(obj){return JSON.parse(JSON.stringify(obj))}function isAsyncIterable(obj){return obj!=null&&typeof obj[Symbol.asyncIterator]=="function"}function isIterable(obj){return obj!=null&&(typeof obj[Symbol.iterator]=="function"||typeof obj[Symbol.asyncIterator]=="function")}function hasSafeIterator(obj){let prototype=Object.getPrototypeOf(obj);return Object.hasOwn(obj,Symbol.iterator)||prototype!=null&&prototype!==Object.prototype&&typeof obj[Symbol.iterator]=="function"}function bodyLength(body){if(body==null)return 0;if(isStream(body)){let state=body._readableState;return state&&state.objectMode===!1&&state.ended===!0&&Number.isFinite(state.length)?state.length:null}else{if(isBlobLike(body))return body.size!=null?body.size:null;if(isBuffer(body))return body.byteLength}return null}function isDestroyed(body){return body&&!!(body.destroyed||body[kDestroyed]||stream.isDestroyed?.(body))}function destroy(stream2,err){if(!(stream2==null||!isStream(stream2)||isDestroyed(stream2))){if(typeof stream2.destroy=="function"){Object.getPrototypeOf(stream2).constructor===IncomingMessage&&(stream2.socket=null);try{stream2.destroy(err)}catch{}}else err&&queueMicrotask(()=>{stream2.emit("error",err)});stream2.destroyed!==!0&&(stream2[kDestroyed]=!0)}}var KEEPALIVE_TIMEOUT_EXPR=/timeout=(\d+)/;function parseKeepAliveTimeout(val){let m=val.match(KEEPALIVE_TIMEOUT_EXPR);return m?parseInt(m[1],10)*1e3:null}function headerNameToString(value){return typeof value=="string"?headerNameLowerCasedRecord[value]??value.toLowerCase():tree.lookup(value)??value.toString("latin1").toLowerCase()}function bufferToLowerCasedHeaderName(value){return tree.lookup(value)??value.toString("latin1").toLowerCase()}function parseHeaders(headers,obj){obj===void 0&&(obj={});for(let i=0;i<headers.length;i+=2){let key=headerNameToString(headers[i]),val=obj[key];if(val!==void 0)if(Object.hasOwn(obj,key))typeof val=="string"&&(val=[val],obj[key]=val),val.push(headers[i+1].toString("latin1"));else{let headersValue=typeof headers[i+1]=="string"?headers[i+1]:Array.isArray(headers[i+1])?headers[i+1].map(x=>x.toString("latin1")):headers[i+1].toString("latin1");key==="__proto__"?Object.defineProperty(obj,key,{value:headersValue,enumerable:!0,configurable:!0,writable:!0}):obj[key]=headersValue}else{let headersValue=typeof headers[i+1]=="string"?headers[i+1]:Array.isArray(headers[i+1])?headers[i+1].map(x=>x.toString("latin1")):headers[i+1].toString("latin1");obj[key]=headersValue}}return obj}function parseRawHeaders(headers){if(headers==null)return[];if(!Array.isArray(headers)){let rawHeaders=[];for(let[name,value]of Object.entries(headers))if(Array.isArray(value))for(let entry of value)rawHeaders.push(name,`${entry}`);else rawHeaders.push(name,`${value}`);return rawHeaders}let headersLength=headers.length,ret=new Array(headersLength),key,val;for(let n=0;n<headersLength;n+=2)key=headers[n],val=headers[n+1],typeof key!="string"&&(key=key.toString()),typeof val!="string"&&(val=val.toString("latin1")),ret[n]=key,ret[n+1]=val;return ret}function toRawHeaders(headers){let rawHeaders=[];for(let[name,value]of Object.entries(headers))if(Array.isArray(value))for(let entry of value)rawHeaders.push(Buffer.from(name,"latin1"),Buffer.from(`${entry}`,"latin1"));else rawHeaders.push(Buffer.from(name,"latin1"),Buffer.from(`${value}`,"latin1"));return rawHeaders}function encodeRawHeaders(headers){if(!Array.isArray(headers))throw new TypeError("expected headers to be an array");return headers.map(x=>Buffer.from(x))}function isBuffer(buffer){return buffer instanceof Uint8Array||Buffer.isBuffer(buffer)}function assertRequestHandler(handler,method,upgrade){if(!handler||typeof handler!="object")throw new InvalidArgumentError("handler must be an object");if(typeof handler.onRequestStart!="function")throw new InvalidArgumentError("invalid onRequestStart method");if(typeof handler.onResponseError!="function")throw new InvalidArgumentError("invalid onResponseError method");if(typeof handler.onBodySent!="function"&&handler.onBodySent!==void 0)throw new InvalidArgumentError("invalid onBodySent method");if(typeof handler.onRequestSent!="function"&&handler.onRequestSent!==void 0)throw new InvalidArgumentError("invalid onRequestSent method");if(upgrade||method==="CONNECT"){if(typeof handler.onRequestUpgrade!="function")throw new InvalidArgumentError("invalid onRequestUpgrade method")}else{if(typeof handler.onResponseStart!="function")throw new InvalidArgumentError("invalid onResponseStart method");if(typeof handler.onResponseData!="function")throw new InvalidArgumentError("invalid onResponseData method");if(typeof handler.onResponseEnd!="function")throw new InvalidArgumentError("invalid onResponseEnd method")}}function isDisturbed(body){return!!(body&&(stream.isDisturbed(body)||body[kBodyUsed]))}function getSocketInfo(socket){return{localAddress:socket.localAddress,localPort:socket.localPort,remoteAddress:socket.remoteAddress,remotePort:socket.remotePort,remoteFamily:socket.remoteFamily,timeout:socket.timeout,bytesWritten:socket.bytesWritten,bytesRead:socket.bytesRead}}function ReadableStreamFrom(iterable){let iterator;return new ReadableStream({start(){iterator=iterable[Symbol.asyncIterator]()},pull(controller){return iterator.next().then(({done,value})=>{if(done)return queueMicrotask(()=>{controller.close(),controller.byobRequest?.respond(0)});{let buf=Buffer.isBuffer(value)?value:Buffer.from(value);return buf.byteLength?controller.enqueue(new Uint8Array(buf)):this.pull(controller)}})},cancel(){return iterator.return()},type:"bytes"})}function isFormDataLike(object){return object&&typeof object=="object"&&typeof object.append=="function"&&typeof object.delete=="function"&&typeof object.get=="function"&&typeof object.getAll=="function"&&typeof object.has=="function"&&typeof object.set=="function"&&object[Symbol.toStringTag]==="FormData"}function addAbortListener(signal,listener){return!signal||"aborted"in signal?addAbortListenerNative(signal,listener)[Symbol.dispose]:typeof signal.addEventListener=="function"?(signal.addEventListener("abort",listener,{once:!0}),()=>signal.removeEventListener("abort",listener)):(signal.once("abort",listener),()=>signal.removeListener("abort",listener))}var validTokenChars=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);function isTokenCharCode(c){return validTokenChars[c]===1}var tokenRegExp=/^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/;function isValidHTTPToken(characters){if(characters.length>=12)return tokenRegExp.test(characters);if(characters.length===0)return!1;for(let i=0;i<characters.length;i++)if(validTokenChars[characters.charCodeAt(i)]!==1)return!1;return!0}var headerCharRegex=/[^\t\x20-\x7e\x80-\xff]/;function isValidHeaderValue(characters){return!headerCharRegex.test(characters)}var rangeHeaderRegex=/^bytes (\d+)-(\d+)\/(\d+|\*)?$/;function parseRangeHeader(range){if(range==null||range==="")return{start:0,end:null,size:null};if(!range)return null;let m=rangeHeaderRegex.exec(range);return m?{start:parseInt(m[1]),end:m[2]?parseInt(m[2]):null,size:m[3]&&m[3]!=="*"?parseInt(m[3]):null}:null}function addListener(obj,name,listener){return(obj[kListeners]??=[]).push([name,listener]),obj.on(name,listener),obj}function removeAllListeners(obj){if(obj[kListeners]!=null){for(let[name,listener]of obj[kListeners])obj.removeListener(name,listener);obj[kListeners]=null}return obj}function errorRequest(client,request,err){try{request.onResponseError(err),assert(request.aborted)}catch(err2){client.emit("error",err2)}}var setupConnectTimeout=process.platform==="win32"?(socketWeakRef,opts)=>{if(!opts.timeout)return noop;let s1=null,s2=null,fastTimer=timers.setFastTimeout(()=>{s1=setImmediate(()=>{s2=setImmediate(()=>onConnectTimeout(socketWeakRef.deref(),opts))})},opts.timeout);return()=>{timers.clearFastTimeout(fastTimer),clearImmediate(s1),clearImmediate(s2)}}:(socketWeakRef,opts)=>{if(!opts.timeout)return noop;let s1=null,fastTimer=timers.setFastTimeout(()=>{s1=setImmediate(()=>{onConnectTimeout(socketWeakRef.deref(),opts)})},opts.timeout);return()=>{timers.clearFastTimeout(fastTimer),clearImmediate(s1)}};function onConnectTimeout(socket,opts){if(socket==null)return;let message="Connect Timeout Error";Array.isArray(socket.autoSelectFamilyAttemptedAddresses)?message+=` (attempted addresses: ${socket.autoSelectFamilyAttemptedAddresses.join(", ")},`:message+=` (attempted address: ${opts.hostname}:${opts.port},`,message+=` timeout: ${opts.timeout}ms)`,destroy(socket,new ConnectTimeoutError(message))}var lastUrlString=null,lastProtocol=null;function getProtocolFromUrlString(urlString){if(urlString===lastUrlString)return lastProtocol;let protocol=getProtocolFromUrlStringSlow(urlString);return lastUrlString=urlString,lastProtocol=protocol,protocol}function getProtocolFromUrlStringSlow(urlString){if(urlString[0]==="h"&&urlString[1]==="t"&&urlString[2]==="t"&&urlString[3]==="p")switch(urlString[4]){case":":return"http:";case"s":if(urlString[5]===":")return"https:"}return urlString.slice(0,urlString.indexOf(":")+1)}var kEnumerableProperty={__proto__:null,enumerable:!0},normalizedMethodRecordsBase={delete:"DELETE",DELETE:"DELETE",get:"GET",GET:"GET",head:"HEAD",HEAD:"HEAD",options:"OPTIONS",OPTIONS:"OPTIONS",post:"POST",POST:"POST",put:"PUT",PUT:"PUT",query:"QUERY",QUERY:"QUERY"},normalizedMethodRecords={...normalizedMethodRecordsBase,patch:"patch",PATCH:"PATCH"};Object.setPrototypeOf(normalizedMethodRecordsBase,null);Object.setPrototypeOf(normalizedMethodRecords,null);module.exports={kEnumerableProperty,isDisturbed,isBlobLike,parseOrigin,parseURL,getServerName,isStream,isIterable,hasSafeIterator,isAsyncIterable,isDestroyed,headerNameToString,bufferToLowerCasedHeaderName,addListener,removeAllListeners,errorRequest,parseRawHeaders,toRawHeaders,encodeRawHeaders,parseHeaders,parseKeepAliveTimeout,destroy,bodyLength,deepClone,ReadableStreamFrom,isBuffer,assertRequestHandler,getSocketInfo,isFormDataLike,pathHasQueryOrFragment,serializePathWithQuery,addAbortListener,isValidHTTPToken,isValidHeaderValue,isTokenCharCode,parseRangeHeader,normalizedMethodRecordsBase,normalizedMethodRecords,isValidPort,isHttpOrHttpsPrefixed,safeHTTPMethods:Object.freeze(["GET","HEAD","OPTIONS","TRACE"]),wrapRequestBody,setupConnectTimeout,getProtocolFromUrlString}}});var require_stats=__commonJS({"node_modules/undici/lib/util/stats.js"(exports,module){"use strict";var{kConnected,kPending,kRunning,kSize,kFree,kQueued}=require_symbols(),ClientStats=class{constructor(client){this.connected=client[kConnected],this.pending=client[kPending],this.running=client[kRunning],this.size=client[kSize]}},PoolStats=class{constructor(pool){this.connected=pool[kConnected],this.free=pool[kFree],this.pending=pool[kPending],this.queued=pool[kQueued],this.running=pool[kRunning],this.size=pool[kSize]}};module.exports={ClientStats,PoolStats}}});var require_diagnostics=__commonJS({"node_modules/undici/lib/core/diagnostics.js"(exports,module){"use strict";var diagnosticsChannel=__require("node:diagnostics_channel"),util=__require("node:util"),undiciDebugLog=util.debuglog("undici"),fetchDebuglog=util.debuglog("fetch"),websocketDebuglog=util.debuglog("websocket"),channels={beforeConnect:diagnosticsChannel.channel("undici:client:beforeConnect"),connected:diagnosticsChannel.channel("undici:client:connected"),connectError:diagnosticsChannel.channel("undici:client:connectError"),sendHeaders:diagnosticsChannel.channel("undici:client:sendHeaders"),create:diagnosticsChannel.channel("undici:request:create"),bodySent:diagnosticsChannel.channel("undici:request:bodySent"),bodyChunkSent:diagnosticsChannel.channel("undici:request:bodyChunkSent"),bodyChunkReceived:diagnosticsChannel.channel("undici:request:bodyChunkReceived"),headers:diagnosticsChannel.channel("undici:request:headers"),trailers:diagnosticsChannel.channel("undici:request:trailers"),error:diagnosticsChannel.channel("undici:request:error"),open:diagnosticsChannel.channel("undici:websocket:open"),close:diagnosticsChannel.channel("undici:websocket:close"),socketError:diagnosticsChannel.channel("undici:websocket:socket_error"),ping:diagnosticsChannel.channel("undici:websocket:ping"),pong:diagnosticsChannel.channel("undici:websocket:pong"),proxyConnected:diagnosticsChannel.channel("undici:proxy:connected")},isTrackingClientEvents=!1;function trackClientEvents(debugLog=undiciDebugLog){if(!isTrackingClientEvents){if(channels.beforeConnect.hasSubscribers||channels.connected.hasSubscribers||channels.connectError.hasSubscribers||channels.sendHeaders.hasSubscribers){isTrackingClientEvents=!0;return}isTrackingClientEvents=!0,diagnosticsChannel.subscribe("undici:client:beforeConnect",evt=>{let{connectParams:{version,protocol,port,host}}=evt;debugLog("connecting to %s%s using %s%s",host,port?`:${port}`:"",protocol,version)}),diagnosticsChannel.subscribe("undici:client:connected",evt=>{let{connectParams:{version,protocol,port,host}}=evt;debugLog("connected to %s%s using %s%s",host,port?`:${port}`:"",protocol,version)}),diagnosticsChannel.subscribe("undici:client:connectError",evt=>{let{connectParams:{version,protocol,port,host},error}=evt;debugLog("connection to %s%s using %s%s errored - %s",host,port?`:${port}`:"",protocol,version,error.message)}),diagnosticsChannel.subscribe("undici:client:sendHeaders",evt=>{let{request:{method,path,origin}}=evt;debugLog("sending request to %s %s%s",method,origin,path)})}}var isTrackingRequestEvents=!1;function trackRequestEvents(debugLog=undiciDebugLog){if(!isTrackingRequestEvents){if(channels.headers.hasSubscribers||channels.trailers.hasSubscribers||channels.error.hasSubscribers){isTrackingRequestEvents=!0;return}isTrackingRequestEvents=!0,diagnosticsChannel.subscribe("undici:request:headers",evt=>{let{request:{method,path,origin},response:{statusCode}}=evt;debugLog("received response to %s %s%s - HTTP %d",method,origin,path,statusCode)}),diagnosticsChannel.subscribe("undici:request:trailers",evt=>{let{request:{method,path,origin}}=evt;debugLog("trailers received from %s %s%s",method,origin,path)}),diagnosticsChannel.subscribe("undici:request:error",evt=>{let{request:{method,path,origin},error}=evt;debugLog("request to %s %s%s errored - %s",method,origin,path,error.message)})}}var isTrackingWebSocketEvents=!1;function trackWebSocketEvents(debugLog=websocketDebuglog){if(!isTrackingWebSocketEvents){if(channels.open.hasSubscribers||channels.close.hasSubscribers||channels.socketError.hasSubscribers||channels.ping.hasSubscribers||channels.pong.hasSubscribers){isTrackingWebSocketEvents=!0;return}isTrackingWebSocketEvents=!0,diagnosticsChannel.subscribe("undici:websocket:open",evt=>{if(evt.address!=null){let{address,port}=evt.address;debugLog("connection opened %s%s",address,port?`:${port}`:"")}else debugLog("connection opened")}),diagnosticsChannel.subscribe("undici:websocket:close",evt=>{let{websocket,code,reason}=evt;debugLog("closed connection to %s - %s %s",websocket.url,code,reason)}),diagnosticsChannel.subscribe("undici:websocket:socket_error",err=>{debugLog("connection errored - %s",err.message)}),diagnosticsChannel.subscribe("undici:websocket:ping",evt=>{debugLog("ping received")}),diagnosticsChannel.subscribe("undici:websocket:pong",evt=>{debugLog("pong received")})}}(undiciDebugLog.enabled||fetchDebuglog.enabled)&&(trackClientEvents(fetchDebuglog.enabled?fetchDebuglog:undiciDebugLog),trackRequestEvents(fetchDebuglog.enabled?fetchDebuglog:undiciDebugLog));websocketDebuglog.enabled&&(trackClientEvents(undiciDebugLog.enabled?undiciDebugLog:websocketDebuglog),trackWebSocketEvents(websocketDebuglog));module.exports={channels}}});var require_request=__commonJS({"node_modules/undici/lib/core/request.js"(exports,module){"use strict";var{InvalidArgumentError,NotSupportedError}=require_errors(),assert=__require("node:assert"),{isValidHTTPToken,isValidHeaderValue,isStream,destroy,isBuffer,isFormDataLike,isIterable,hasSafeIterator,isBlobLike,serializePathWithQuery,parseHeaders,assertRequestHandler,getServerName,normalizedMethodRecords,getProtocolFromUrlString}=require_util(),{channels}=require_diagnostics(),{headerNameLowerCasedRecord}=require_constants(),invalidPathRegex=/[^\u0021-\u00ff]/;function isValidContentLengthHeaderValue(val){if(typeof val!="string"||val.length===0)return!1;for(let i=0;i<val.length;i++){let charCode=val.charCodeAt(i);if(charCode<48||charCode>57)return!1}return!0}var kHandler=Symbol("handler"),kController=Symbol("controller"),kResume=Symbol("resume"),RequestController=class{#paused=!1;#reason=null;#aborted=!1;#abort;[kResume]=null;rawHeaders=null;rawTrailers=null;constructor(abort){this.#abort=abort}pause(){this.#paused=!0}resume(){this.#paused&&(this.#paused=!1,this[kResume]?.())}abort(reason){this.#aborted||(this.#aborted=!0,this.#reason=reason,this.#abort(reason))}get aborted(){return this.#aborted}get reason(){return this.#reason}get paused(){return this.#paused}},Request=class{constructor(origin,{path,method,body,headers,query,idempotent,blocking,upgrade,headersTimeout,bodyTimeout,reset,expectContinue,servername,throwOnError,maxRedirections,typeOfService},handler){if(typeof path!="string")throw new InvalidArgumentError("path must be a string");if(path[0]!=="/"&&!(path.startsWith("http://")||path.startsWith("https://"))&&method!=="CONNECT")throw new InvalidArgumentError("path must be an absolute URL or start with a slash");if(invalidPathRegex.test(path))throw new InvalidArgumentError("invalid request path");if(typeof method!="string")throw new InvalidArgumentError("method must be a string");if(normalizedMethodRecords[method]===void 0&&!isValidHTTPToken(method))throw new InvalidArgumentError("invalid request method");if(upgrade&&typeof upgrade!="string")throw new InvalidArgumentError("upgrade must be a string");if(upgrade&&!isValidHeaderValue(upgrade))throw new InvalidArgumentError("invalid upgrade header");if(headersTimeout!=null&&(!Number.isFinite(headersTimeout)||headersTimeout<0))throw new InvalidArgumentError("invalid headersTimeout");if(bodyTimeout!=null&&(!Number.isFinite(bodyTimeout)||bodyTimeout<0))throw new InvalidArgumentError("invalid bodyTimeout");if(reset!=null&&typeof reset!="boolean")throw new InvalidArgumentError("invalid reset");if(expectContinue!=null&&typeof expectContinue!="boolean")throw new InvalidArgumentError("invalid expectContinue");if(throwOnError!=null)throw new InvalidArgumentError("invalid throwOnError");if(maxRedirections!=null&&maxRedirections!==0)throw new InvalidArgumentError("maxRedirections is not supported, use the redirect interceptor");if(typeOfService!=null&&(!Number.isInteger(typeOfService)||typeOfService<0||typeOfService>255))throw new InvalidArgumentError("typeOfService must be an integer between 0 and 255");if(this.headersTimeout=headersTimeout,this.bodyTimeout=bodyTimeout,this.method=method,this.typeOfService=typeOfService,this.abort=null,body==null)this.body=null;else if(isStream(body)){this.body=body;let rState=this.body._readableState;(!rState||!rState.autoDestroy)&&(this.endHandler=function(){destroy(this)},this.body.on("end",this.endHandler)),this.errorHandler=err=>{this.abort?this.abort(err):this.error=err},this.body.on("error",this.errorHandler)}else if(isBuffer(body))this.body=body.byteLength?body:null;else if(ArrayBuffer.isView(body))this.body=body.buffer.byteLength?Buffer.from(body.buffer,body.byteOffset,body.byteLength):null;else if(body instanceof ArrayBuffer)this.body=body.byteLength?Buffer.from(body):null;else if(typeof body=="string")this.body=body.length?Buffer.from(body):null;else if(isFormDataLike(body)||isIterable(body)||isBlobLike(body))this.body=body;else throw new InvalidArgumentError("body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable");if(this.completed=!1,this.aborted=!1,this.upgrade=upgrade||null,this.path=query?serializePathWithQuery(path,query):path,this.origin=origin,this.protocol=getProtocolFromUrlString(origin),this.idempotent=idempotent??(method==="HEAD"||method==="GET"||method==="QUERY"),this.blocking=blocking??this.method!=="HEAD",this.reset=reset??null,this.host=null,this.contentLength=null,this.contentType=null,this.headers=[],this.expectContinue=expectContinue??!1,Array.isArray(headers)){if(headers.length%2!==0)throw new InvalidArgumentError("headers array must be even");for(let i=0;i<headers.length;i+=2)processHeader(this,headers[i],headers[i+1])}else if(headers&&typeof headers=="object")if(hasSafeIterator(headers))for(let header of headers){if(!Array.isArray(header)||header.length!==2)throw new InvalidArgumentError("headers must be in key-value pair format");processHeader(this,header[0],header[1])}else{let keys=Object.keys(headers);for(let i=0;i<keys.length;++i)processHeader(this,keys[i],headers[keys[i]])}else if(headers!=null)throw new InvalidArgumentError("headers must be an object or an array");assertRequestHandler(handler,method,upgrade),this.servername=servername||getServerName(this.host)||null,this[kHandler]=handler,channels.create.hasSubscribers&&channels.create.publish({request:this})}onBodySent(chunk){if(channels.bodyChunkSent.hasSubscribers&&channels.bodyChunkSent.publish({request:this,chunk}),this[kHandler].onBodySent)try{return this[kHandler].onBodySent(chunk)}catch(err){this.abort(err)}}onRequestSent(){if(channels.bodySent.hasSubscribers&&channels.bodySent.publish({request:this}),this[kHandler].onRequestSent)try{return this[kHandler].onRequestSent()}catch(err){this.abort(err)}}onRequestStart(abort,context){if(assert(!this.aborted),assert(!this.completed),this[kController]=new RequestController(abort),this.error){this[kController].abort(this.error);return}return this.abort=abort,this[kHandler].onRequestStart(this[kController],context)}onResponseStarted(){return this[kHandler].onResponseStarted?.()}onResponseStart(statusCode,headers,resume,statusText){assert(!this.aborted),assert(!this.completed),channels.headers.hasSubscribers&&channels.headers.publish({request:this,response:{statusCode,headers,statusText}});let controller=this[kController];controller&&(controller[kResume]=resume,controller.rawHeaders=headers);let parsedHeaders=Array.isArray(headers)?parseHeaders(headers):headers;try{return this[kHandler].onResponseStart?.(controller,statusCode,parsedHeaders,statusText),!controller?.paused}catch(err){return this.abort(err),!1}}onResponseData(chunk){assert(!this.aborted),assert(!this.completed),channels.bodyChunkReceived.hasSubscribers&&channels.bodyChunkReceived.publish({request:this,chunk});let controller=this[kController];try{return this[kHandler].onResponseData?.(controller,chunk),!controller?.paused}catch(err){return this.abort(err),!1}}onRequestUpgrade(statusCode,headers,socket){assert(!this.aborted),assert(!this.completed);let controller=this[kController];controller&&(controller.rawHeaders=headers);let parsedHeaders=Array.isArray(headers)?parseHeaders(headers):headers;return this[kHandler].onRequestUpgrade?.(controller,statusCode,parsedHeaders,socket)}onResponseEnd(trailers){this.onFinally(),assert(!this.aborted),assert(!this.completed),this.completed=!0,channels.trailers.hasSubscribers&&channels.trailers.publish({request:this,trailers});let controller=this[kController];controller&&(controller.rawTrailers=trailers);let parsedTrailers=Array.isArray(trailers)?parseHeaders(trailers):trailers;try{return this[kHandler].onResponseEnd?.(controller,parsedTrailers)}catch(err){this.onResponseError(err)}}onResponseError(error){if(this.onFinally(),channels.error.hasSubscribers&&channels.error.publish({request:this,error}),this.aborted)return;this.aborted=!0;let controller=this[kController];return this[kHandler].onResponseError?.(controller,error)}onFinally(){this.errorHandler&&(this.body.off("error",this.errorHandler),this.errorHandler=null),this.endHandler&&(this.body.off("end",this.endHandler),this.endHandler=null)}addHeader(key,value){return processHeader(this,key,value),this}};function processHeader(request,key,val){if(val&&typeof val=="object"&&!Array.isArray(val))throw new InvalidArgumentError(`invalid ${key} header`);if(val===void 0)return;let headerName=headerNameLowerCasedRecord[key];if(headerName===void 0&&(headerName=key.toLowerCase(),headerNameLowerCasedRecord[headerName]===void 0&&!isValidHTTPToken(headerName)))throw new InvalidArgumentError("invalid header key");if(Array.isArray(val)){let arr=[];for(let i=0;i<val.length;i++)if(typeof val[i]=="string"){if(!isValidHeaderValue(val[i]))throw new InvalidArgumentError(`invalid ${key} header`);arr.push(val[i])}else if(val[i]===null)arr.push("");else{if(typeof val[i]=="object")throw new InvalidArgumentError(`invalid ${key} header`);{let str=`${val[i]}`;if(!isValidHeaderValue(str))throw new InvalidArgumentError(`invalid ${key} header`);arr.push(str)}}val=arr}else if(typeof val=="string"){if(!isValidHeaderValue(val))throw new InvalidArgumentError(`invalid ${key} header`)}else if(val===null)val="";else if(val=`${val}`,!isValidHeaderValue(val))throw new InvalidArgumentError(`invalid ${key} header`);if(headerName==="host"){if(request.host!==null)throw new InvalidArgumentError("duplicate host header");if(typeof val!="string")throw new InvalidArgumentError("invalid host header");request.host=val}else if(headerName==="content-length"){if(request.contentLength!==null)throw new InvalidArgumentError("duplicate content-length header");if(!isValidContentLengthHeaderValue(val))throw new InvalidArgumentError("invalid content-length header");request.contentLength=parseInt(val,10)}else if(request.contentType===null&&headerName==="content-type")request.contentType=val,request.headers.push(key,val);else{if(headerName==="transfer-encoding"||headerName==="keep-alive"||headerName==="upgrade")throw new InvalidArgumentError(`invalid ${headerName} header`);if(headerName==="connection"){let value=typeof val=="string"?val:null;if(value===null)throw new InvalidArgumentError("invalid connection header");for(let token of value.toLowerCase().split(",")){let trimmed=token.trim();if(!isValidHTTPToken(trimmed))throw new InvalidArgumentError("invalid connection header");trimmed==="close"&&(request.reset=!0)}}else{if(headerName==="expect")throw new NotSupportedError("expect header not supported");request.headers.push(key,val)}}}module.exports=Request}});var require_dispatcher=__commonJS({"node_modules/undici/lib/dispatcher/dispatcher.js"(exports,module){"use strict";var EventEmitter=__require("node:events"),Dispatcher=class extends EventEmitter{dispatch(){throw new Error("not implemented")}close(){throw new Error("not implemented")}destroy(){throw new Error("not implemented")}compose(...args){let interceptors=Array.isArray(args[0])?args[0]:args,dispatch=this.dispatch.bind(this);for(let interceptor of interceptors)if(interceptor!=null){if(typeof interceptor!="function")throw new TypeError(`invalid interceptor, expected function received ${typeof interceptor}`);if(dispatch=interceptor(dispatch),dispatch==null||typeof dispatch!="function"||dispatch.length!==2)throw new TypeError("invalid interceptor")}return new Proxy(this,{get:(target,key)=>key==="dispatch"?dispatch:target[key]})}};module.exports=Dispatcher}});var require_dispatcher_base=__commonJS({"node_modules/undici/lib/dispatcher/dispatcher-base.js"(exports,module){"use strict";var Dispatcher=require_dispatcher(),{ClientDestroyedError,ClientClosedError,InvalidArgumentError}=require_errors(),{kDestroy,kClose,kClosed,kDestroyed,kDispatch}=require_symbols(),kOnDestroyed=Symbol("onDestroyed"),kOnClosed=Symbol("onClosed"),kWebSocketOptions=Symbol("webSocketOptions"),DispatcherBase=class extends Dispatcher{[kDestroyed]=!1;[kOnDestroyed]=null;[kClosed]=!1;[kOnClosed]=null;constructor(opts){super(),this[kWebSocketOptions]=opts?.webSocket??{}}get webSocketOptions(){return{maxFragments:this[kWebSocketOptions].maxFragments??131072,maxPayloadSize:this[kWebSocketOptions].maxPayloadSize??128*1024*1024}}get destroyed(){return this[kDestroyed]}get closed(){return this[kClosed]}close(callback){if(callback===void 0)return new Promise((resolve,reject)=>{this.close((err,data)=>err?reject(err):resolve(data))});if(typeof callback!="function")throw new InvalidArgumentError("invalid callback");if(this[kDestroyed]){let err=new ClientDestroyedError;queueMicrotask(()=>callback(err,null));return}if(this[kClosed]){this[kOnClosed]?this[kOnClosed].push(callback):queueMicrotask(()=>callback(null,null));return}this[kClosed]=!0,this[kOnClosed]??=[],this[kOnClosed].push(callback);let onClosed=()=>{let callbacks=this[kOnClosed];this[kOnClosed]=null;for(let i=0;i<callbacks.length;i++)callbacks[i](null,null)};this[kClose]().then(()=>this.destroy()).then(()=>queueMicrotask(onClosed))}destroy(err,callback){if(typeof err=="function"&&(callback=err,err=null),callback===void 0)return new Promise((resolve,reject)=>{this.destroy(err,(err2,data)=>err2?reject(err2):resolve(data))});if(typeof callback!="function")throw new InvalidArgumentError("invalid callback");if(this[kDestroyed]){this[kOnDestroyed]?this[kOnDestroyed].push(callback):queueMicrotask(()=>callback(null,null));return}err||(err=new ClientDestroyedError),this[kDestroyed]=!0,this[kOnDestroyed]??=[],this[kOnDestroyed].push(callback);let onDestroyed=()=>{let callbacks=this[kOnDestroyed];this[kOnDestroyed]=null;for(let i=0;i<callbacks.length;i++)callbacks[i](null,null)};this[kDestroy](err).then(()=>queueMicrotask(onDestroyed))}dispatch(opts,handler){if(!handler||typeof handler!="object")throw new InvalidArgumentError("handler must be an object");try{if(!opts||typeof opts!="object")throw new InvalidArgumentError("opts must be an object.");if(opts.dispatcher)throw new InvalidArgumentError("opts.dispatcher is not supported by instance methods. Pass opts.dispatcher to the top-level undici functions or call the dispatcher instance method directly.");if(this[kDestroyed]||this[kOnDestroyed])throw new ClientDestroyedError;if(this[kClosed])throw new ClientClosedError;return this[kDispatch](opts,handler)}catch(err){if(typeof handler.onResponseError!="function")throw err;return handler.onResponseError(null,err),!1}}};module.exports=DispatcherBase}});var require_connect=__commonJS({"node_modules/undici/lib/core/connect.js"(exports,module){"use strict";var net=__require("node:net"),assert=__require("node:assert"),util=require_util(),{InvalidArgumentError,ConnectTimeoutError}=require_errors(),tls,SessionCache=class{constructor(maxCachedSessions){this._maxCachedSessions=maxCachedSessions,this._sessionCache=new Map,this._sessionRegistry=new FinalizationRegistry(key=>{if(this._sessionCache.size<this._maxCachedSessions)return;let ref=this._sessionCache.get(key);ref!==void 0&&ref.deref()===void 0&&this._sessionCache.delete(key)})}get(sessionKey){let ref=this._sessionCache.get(sessionKey);return ref?ref.deref():null}set(sessionKey,session){if(this._maxCachedSessions!==0){if(this._sessionCache.has(sessionKey))this._sessionCache.delete(sessionKey);else if(this._sessionCache.size>=this._maxCachedSessions){for(let[key,ref]of this._sessionCache)if(ref.deref()===void 0){this._sessionCache.delete(key);return}let oldest=this._sessionCache.keys().next();oldest.done||this._sessionCache.delete(oldest.value)}this._sessionCache.set(sessionKey,new WeakRef(session)),this._sessionRegistry.register(session,sessionKey)}}};function buildConnector({allowH2,preferH2,useH2c,maxCachedSessions,socketPath,timeout,session:customSession,...opts}){if(maxCachedSessions!=null&&(!Number.isInteger(maxCachedSessions)||maxCachedSessions<0))throw new InvalidArgumentError("maxCachedSessions must be a positive integer or zero");let options={path:socketPath,...opts},sessionCache=new SessionCache(maxCachedSessions??100);return timeout=timeout??1e4,allowH2=allowH2??!0,function({hostname,host,protocol,port,servername,localAddress,httpSocket},callback){let socket;if(protocol==="https:"){tls||(tls=__require("node:tls")),servername=servername||options.servername||util.getServerName(host)||null;let sessionKey=servername||hostname;assert(sessionKey);let session=customSession||sessionCache.get(sessionKey)||null;port=port||443,socket=tls.connect({highWaterMark:16384,...options,servername,session,localAddress,ALPNProtocols:allowH2?preferH2?["h2","http/1.1"]:["http/1.1","h2"]:["http/1.1"],socket:httpSocket,port,host:hostname}),socket.on("session",function(session2){sessionCache.set(sessionKey,session2)})}else{assert(!httpSocket,"httpSocket can only be sent on TLS update"),port=port||80;let connectOptions={highWaterMark:64*1024,...options,localAddress,port,host:hostname},family=net.isIP(hostname);family!==0&&servername&&servername!==hostname&&(connectOptions.host=servername,connectOptions.lookup=(_hostname,lookupOptions,cb)=>{lookupOptions.all?cb(null,[{address:hostname,family}]):cb(null,hostname,family)}),socket=net.connect(connectOptions),useH2c===!0&&(socket.alpnProtocol="h2")}if(options.keepAlive==null||options.keepAlive){let keepAliveInitialDelay=options.keepAliveInitialDelay===void 0?6e4:options.keepAliveInitialDelay;socket.setKeepAlive(!0,keepAliveInitialDelay)}let clearConnectTimeout=util.setupConnectTimeout(new WeakRef(socket),{timeout,hostname,port});return socket.setNoDelay(!0).once(protocol==="https:"?"secureConnect":"connect",function(){if(queueMicrotask(clearConnectTimeout),callback){let cb=callback;callback=null,cb(null,this)}}).on("error",function(err){if(queueMicrotask(clearConnectTimeout),callback){let cb=callback;callback=null,cb(maybeNormalizeConnectError(err,this,{timeout,hostname,port}))}}),socket}}function maybeNormalizeConnectError(err,socket,opts){if(err instanceof AggregateError&&(err.code==="ETIMEDOUT"||err.errors.some(e=>e!=null&&e.code==="ETIMEDOUT"))){let message="Connect Timeout Error";Array.isArray(socket.autoSelectFamilyAttemptedAddresses)?message+=` (attempted addresses: ${socket.autoSelectFamilyAttemptedAddresses.join(", ")},`:message+=` (attempted address: ${opts.hostname}:${opts.port},`,message+=` timeout: ${opts.timeout}ms)`;let wrapped=new ConnectTimeoutError(message);return wrapped.cause=err,wrapped}return err}module.exports=buildConnector}});var require_utils=__commonJS({"node_modules/undici/lib/llhttp/utils.js"(exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.enumToMap=enumToMap;function enumToMap(obj,filter=[],exceptions=[]){let emptyFilter=(filter?.length??0)===0,emptyExceptions=(exceptions?.length??0)===0;return Object.fromEntries(Object.entries(obj).filter(([,value])=>typeof value=="number"&&(emptyFilter||filter.includes(value))&&(emptyExceptions||!exceptions.includes(value))))}}});var require_constants2=__commonJS({"node_modules/undici/lib/llhttp/constants.js"(exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.SPECIAL_HEADERS=exports.MINOR=exports.MAJOR=exports.HTAB_SP_VCHAR_OBS_TEXT=exports.QUOTED_STRING=exports.CONNECTION_TOKEN_CHARS=exports.HEADER_CHARS=exports.TOKEN=exports.HEX=exports.URL_CHAR=exports.USERINFO_CHARS=exports.MARK=exports.ALPHANUM=exports.NUM=exports.HEX_MAP=exports.NUM_MAP=exports.ALPHA=exports.STATUSES_HTTP=exports.H_METHOD_MAP=exports.METHOD_MAP=exports.METHODS_RTSP=exports.METHODS_ICE=exports.METHODS_HTTP=exports.HEADER_STATE=exports.FINISH=exports.STATUSES=exports.METHODS=exports.LENIENT_FLAGS=exports.FLAGS=exports.TYPE=exports.ERROR=void 0;var utils_1=require_utils();exports.ERROR={OK:0,INTERNAL:1,STRICT:2,CR_EXPECTED:25,LF_EXPECTED:3,UNEXPECTED_CONTENT_LENGTH:4,UNEXPECTED_SPACE:30,CLOSED_CONNECTION:5,INVALID_METHOD:6,INVALID_URL:7,INVALID_CONSTANT:8,INVALID_VERSION:9,INVALID_HEADER_TOKEN:10,INVALID_CONTENT_LENGTH:11,INVALID_CHUNK_SIZE:12,INVALID_STATUS:13,INVALID_EOF_STATE:14,INVALID_TRANSFER_ENCODING:15,CB_MESSAGE_BEGIN:16,CB_HEADERS_COMPLETE:17,CB_MESSAGE_COMPLETE:18,CB_CHUNK_HEADER:19,CB_CHUNK_COMPLETE:20,PAUSED:21,PAUSED_UPGRADE:22,PAUSED_H2_UPGRADE:23,USER:24,CB_URL_COMPLETE:26,CB_STATUS_COMPLETE:27,CB_METHOD_COMPLETE:32,CB_VERSION_COMPLETE:33,CB_HEADER_FIELD_COMPLETE:28,CB_HEADER_VALUE_COMPLETE:29,CB_CHUNK_EXTENSION_NAME_COMPLETE:34,CB_CHUNK_EXTENSION_VALUE_COMPLETE:35,CB_RESET:31,CB_PROTOCOL_COMPLETE:38};exports.TYPE={BOTH:0,REQUEST:1,RESPONSE:2};exports.FLAGS={CONNECTION_KEEP_ALIVE:1,CONNECTION_CLOSE:2,CONNECTION_UPGRADE:4,CHUNKED:8,UPGRADE:16,CONTENT_LENGTH:32,SKIPBODY:64,TRAILING:128,TRANSFER_ENCODING:512};exports.LENIENT_FLAGS={HEADERS:1,CHUNKED_LENGTH:2,KEEP_ALIVE:4,TRANSFER_ENCODING:8,VERSION:16,DATA_AFTER_CLOSE:32,OPTIONAL_LF_AFTER_CR:64,OPTIONAL_CRLF_AFTER_CHUNK:128,OPTIONAL_CR_BEFORE_LF:256,SPACES_AFTER_CHUNK_SIZE:512};exports.METHODS={DELETE:0,GET:1,HEAD:2,POST:3,PUT:4,CONNECT:5,OPTIONS:6,TRACE:7,COPY:8,LOCK:9,MKCOL:10,MOVE:11,PROPFIND:12,PROPPATCH:13,SEARCH:14,UNLOCK:15,BIND:16,REBIND:17,UNBIND:18,ACL:19,REPORT:20,MKACTIVITY:21,CHECKOUT:22,MERGE:23,"M-SEARCH":24,NOTIFY:25,SUBSCRIBE:26,UNSUBSCRIBE:27,PATCH:28,PURGE:29,MKCALENDAR:30,LINK:31,UNLINK:32,SOURCE:33,PRI:34,DESCRIBE:35,ANNOUNCE:36,SETUP:37,PLAY:38,PAUSE:39,TEARDOWN:40,GET_PARAMETER:41,SET_PARAMETER:42,REDIRECT:43,RECORD:44,FLUSH:45,QUERY:46};exports.STATUSES={CONTINUE:100,SWITCHING_PROTOCOLS:101,PROCESSING:102,EARLY_HINTS:103,RESPONSE_IS_STALE:110,REVALIDATION_FAILED:111,DISCONNECTED_OPERATION:112,HEURISTIC_EXPIRATION:113,MISCELLANEOUS_WARNING:199,OK:200,CREATED:201,ACCEPTED:202,NON_AUTHORITATIVE_INFORMATION:203,NO_CONTENT:204,RESET_CONTENT:205,PARTIAL_CONTENT:206,MULTI_STATUS:207,ALREADY_REPORTED:208,TRANSFORMATION_APPLIED:214,IM_USED:226,MISCELLANEOUS_PERSISTENT_WARNING:299,MULTIPLE_CHOICES:300,MOVED_PERMANENTLY:301,FOUND:302,SEE_OTHER:303,NOT_MODIFIED:304,USE_PROXY:305,SWITCH_PROXY:306,TEMPORARY_REDIRECT:307,PERMANENT_REDIRECT:308,BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,METHOD_NOT_ALLOWED:405,NOT_ACCEPTABLE:406,PROXY_AUTHENTICATION_REQUIRED:407,REQUEST_TIMEOUT:408,CONFLICT:409,GONE:410,LENGTH_REQUIRED:411,PRECONDITION_FAILED:412,PAYLOAD_TOO_LARGE:413,URI_TOO_LONG:414,UNSUPPORTED_MEDIA_TYPE:415,RANGE_NOT_SATISFIABLE:416,EXPECTATION_FAILED:417,IM_A_TEAPOT:418,PAGE_EXPIRED:419,ENHANCE_YOUR_CALM:420,MISDIRECTED_REQUEST:421,UNPROCESSABLE_ENTITY:422,LOCKED:423,FAILED_DEPENDENCY:424,TOO_EARLY:425,UPGRADE_REQUIRED:426,PRECONDITION_REQUIRED:428,TOO_MANY_REQUESTS:429,REQUEST_HEADER_FIELDS_TOO_LARGE_UNOFFICIAL:430,REQUEST_HEADER_FIELDS_TOO_LARGE:431,LOGIN_TIMEOUT:440,NO_RESPONSE:444,RETRY_WITH:449,BLOCKED_BY_PARENTAL_CONTROL:450,UNAVAILABLE_FOR_LEGAL_REASONS:451,CLIENT_CLOSED_LOAD_BALANCED_REQUEST:460,INVALID_X_FORWARDED_FOR:463,REQUEST_HEADER_TOO_LARGE:494,SSL_CERTIFICATE_ERROR:495,SSL_CERTIFICATE_REQUIRED:496,HTTP_REQUEST_SENT_TO_HTTPS_PORT:497,INVALID_TOKEN:498,CLIENT_CLOSED_REQUEST:499,INTERNAL_SERVER_ERROR:500,NOT_IMPLEMENTED:501,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504,HTTP_VERSION_NOT_SUPPORTED:505,VARIANT_ALSO_NEGOTIATES:506,INSUFFICIENT_STORAGE:507,LOOP_DETECTED:508,BANDWIDTH_LIMIT_EXCEEDED:509,NOT_EXTENDED:510,NETWORK_AUTHENTICATION_REQUIRED:511,WEB_SERVER_UNKNOWN_ERROR:520,WEB_SERVER_IS_DOWN:521,CONNECTION_TIMEOUT:522,ORIGIN_IS_UNREACHABLE:523,TIMEOUT_OCCURED:524,SSL_HANDSHAKE_FAILED:525,INVALID_SSL_CERTIFICATE:526,RAILGUN_ERROR:527,SITE_IS_OVERLOADED:529,SITE_IS_FROZEN:530,IDENTITY_PROVIDER_AUTHENTICATION_ERROR:561,NETWORK_READ_TIMEOUT:598,NETWORK_CONNECT_TIMEOUT:599};exports.FINISH={SAFE:0,SAFE_WITH_CB:1,UNSAFE:2};exports.HEADER_STATE={GENERAL:0,CONNECTION:1,CONTENT_LENGTH:2,TRANSFER_ENCODING:3,UPGRADE:4,CONNECTION_KEEP_ALIVE:5,CONNECTION_CLOSE:6,CONNECTION_UPGRADE:7,TRANSFER_ENCODING_CHUNKED:8};exports.METHODS_HTTP=[exports.METHODS.DELETE,exports.METHODS.GET,exports.METHODS.HEAD,exports.METHODS.POST,exports.METHODS.PUT,exports.METHODS.CONNECT,exports.METHODS.OPTIONS,exports.METHODS.TRACE,exports.METHODS.COPY,exports.METHODS.LOCK,exports.METHODS.MKCOL,exports.METHODS.MOVE,exports.METHODS.PROPFIND,exports.METHODS.PROPPATCH,exports.METHODS.SEARCH,exports.METHODS.UNLOCK,exports.METHODS.BIND,exports.METHODS.REBIND,exports.METHODS.UNBIND,exports.METHODS.ACL,exports.METHODS.REPORT,exports.METHODS.MKACTIVITY,exports.METHODS.CHECKOUT,exports.METHODS.MERGE,exports.METHODS["M-SEARCH"],exports.METHODS.NOTIFY,exports.METHODS.SUBSCRIBE,exports.METHODS.UNSUBSCRIBE,exports.METHODS.PATCH,exports.METHODS.PURGE,exports.METHODS.MKCALENDAR,exports.METHODS.LINK,exports.METHODS.UNLINK,exports.METHODS.PRI,exports.METHODS.SOURCE,exports.METHODS.QUERY];exports.METHODS_ICE=[exports.METHODS.SOURCE];exports.METHODS_RTSP=[exports.METHODS.OPTIONS,exports.METHODS.DESCRIBE,exports.METHODS.ANNOUNCE,exports.METHODS.SETUP,exports.METHODS.PLAY,exports.METHODS.PAUSE,exports.METHODS.TEARDOWN,exports.METHODS.GET_PARAMETER,exports.METHODS.SET_PARAMETER,exports.METHODS.REDIRECT,exports.METHODS.RECORD,exports.METHODS.FLUSH,exports.METHODS.GET,exports.METHODS.POST];exports.METHOD_MAP=(0,utils_1.enumToMap)(exports.METHODS);exports.H_METHOD_MAP=Object.fromEntries(Object.entries(exports.METHODS).filter(([k])=>k.startsWith("H")));exports.STATUSES_HTTP=[exports.STATUSES.CONTINUE,exports.STATUSES.SWITCHING_PROTOCOLS,exports.STATUSES.PROCESSING,exports.STATUSES.EARLY_HINTS,exports.STATUSES.RESPONSE_IS_STALE,exports.STATUSES.REVALIDATION_FAILED,exports.STATUSES.DISCONNECTED_OPERATION,exports.STATUSES.HEURISTIC_EXPIRATION,exports.STATUSES.MISCELLANEOUS_WARNING,exports.STATUSES.OK,exports.STATUSES.CREATED,exports.STATUSES.ACCEPTED,exports.STATUSES.NON_AUTHORITATIVE_INFORMATION,exports.STATUSES.NO_CONTENT,exports.STATUSES.RESET_CONTENT,exports.STATUSES.PARTIAL_CONTENT,exports.STATUSES.MULTI_STATUS,exports.STATUSES.ALREADY_REPORTED,exports.STATUSES.TRANSFORMATION_APPLIED,exports.STATUSES.IM_USED,exports.STATUSES.MISCELLANEOUS_PERSISTENT_WARNING,exports.STATUSES.MULTIPLE_CHOICES,exports.STATUSES.MOVED_PERMANENTLY,exports.STATUSES.FOUND,exports.STATUSES.SEE_OTHER,exports.STATUSES.NOT_MODIFIED,exports.STATUSES.USE_PROXY,exports.STATUSES.SWITCH_PROXY,exports.STATUSES.TEMPORARY_REDIRECT,exports.STATUSES.PERMANENT_REDIRECT,exports.STATUSES.BAD_REQUEST,exports.STATUSES.UNAUTHORIZED,exports.STATUSES.PAYMENT_REQUIRED,exports.STATUSES.FORBIDDEN,exports.STATUSES.NOT_FOUND,exports.STATUSES.METHOD_NOT_ALLOWED,exports.STATUSES.NOT_ACCEPTABLE,exports.STATUSES.PROXY_AUTHENTICATION_REQUIRED,exports.STATUSES.REQUEST_TIMEOUT,exports.STATUSES.CONFLICT,exports.STATUSES.GONE,exports.STATUSES.LENGTH_REQUIRED,exports.STATUSES.PRECONDITION_FAILED,exports.STATUSES.PAYLOAD_TOO_LARGE,exports.STATUSES.URI_TOO_LONG,exports.STATUSES.UNSUPPORTED_MEDIA_TYPE,exports.STATUSES.RANGE_NOT_SATISFIABLE,exports.STATUSES.EXPECTATION_FAILED,exports.STATUSES.IM_A_TEAPOT,exports.STATUSES.PAGE_EXPIRED,exports.STATUSES.ENHANCE_YOUR_CALM,exports.STATUSES.MISDIRECTED_REQUEST,exports.STATUSES.UNPROCESSABLE_ENTITY,exports.STATUSES.LOCKED,exports.STATUSES.FAILED_DEPENDENCY,exports.STATUSES.TOO_EARLY,exports.STATUSES.UPGRADE_REQUIRED,exports.STATUSES.PRECONDITION_REQUIRED,exports.STATUSES.TOO_MANY_REQUESTS,exports.STATUSES.REQUEST_HEADER_FIELDS_TOO_LARGE_UNOFFICIAL,exports.STATUSES.REQUEST_HEADER_FIELDS_TOO_LARGE,exports.STATUSES.LOGIN_TIMEOUT,exports.STATUSES.NO_RESPONSE,exports.STATUSES.RETRY_WITH,exports.STATUSES.BLOCKED_BY_PARENTAL_CONTROL,exports.STATUSES.UNAVAILABLE_FOR_LEGAL_REASONS,exports.STATUSES.CLIENT_CLOSED_LOAD_BALANCED_REQUEST,exports.STATUSES.INVALID_X_FORWARDED_FOR,exports.STATUSES.REQUEST_HEADER_TOO_LARGE,exports.STATUSES.SSL_CERTIFICATE_ERROR,exports.STATUSES.SSL_CERTIFICATE_REQUIRED,exports.STATUSES.HTTP_REQUEST_SENT_TO_HTTPS_PORT,exports.STATUSES.INVALID_TOKEN,exports.STATUSES.CLIENT_CLOSED_REQUEST,exports.STATUSES.INTERNAL_SERVER_ERROR,exports.STATUSES.NOT_IMPLEMENTED,exports.STATUSES.BAD_GATEWAY,exports.STATUSES.SERVICE_UNAVAILABLE,exports.STATUSES.GATEWAY_TIMEOUT,exports.STATUSES.HTTP_VERSION_NOT_SUPPORTED,exports.STATUSES.VARIANT_ALSO_NEGOTIATES,exports.STATUSES.INSUFFICIENT_STORAGE,exports.STATUSES.LOOP_DETECTED,exports.STATUSES.BANDWIDTH_LIMIT_EXCEEDED,exports.STATUSES.NOT_EXTENDED,exports.STATUSES.NETWORK_AUTHENTICATION_REQUIRED,exports.STATUSES.WEB_SERVER_UNKNOWN_ERROR,exports.STATUSES.WEB_SERVER_IS_DOWN,exports.STATUSES.CONNECTION_TIMEOUT,exports.STATUSES.ORIGIN_IS_UNREACHABLE,exports.STATUSES.TIMEOUT_OCCURED,exports.STATUSES.SSL_HANDSHAKE_FAILED,exports.STATUSES.INVALID_SSL_CERTIFICATE,exports.STATUSES.RAILGUN_ERROR,exports.STATUSES.SITE_IS_OVERLOADED,exports.STATUSES.SITE_IS_FROZEN,exports.STATUSES.IDENTITY_PROVIDER_AUTHENTICATION_ERROR,exports.STATUSES.NETWORK_READ_TIMEOUT,exports.STATUSES.NETWORK_CONNECT_TIMEOUT];exports.ALPHA=[];for(let i=65;i<=90;i++)exports.ALPHA.push(String.fromCharCode(i)),exports.ALPHA.push(String.fromCharCode(i+32));exports.NUM_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9};exports.HEX_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15};exports.NUM=["0","1","2","3","4","5","6","7","8","9"];exports.ALPHANUM=exports.ALPHA.concat(exports.NUM);exports.MARK=["-","_",".","!","~","*","'","(",")"];exports.USERINFO_CHARS=exports.ALPHANUM.concat(exports.MARK).concat(["%",";",":","&","=","+","$",","]);exports.URL_CHAR=["!",'"',"$","%","&","'","(",")","*","+",",","-",".","/",":",";","<","=",">","@","[","\\","]","^","_","`","{","|","}","~"].concat(exports.ALPHANUM);exports.HEX=exports.NUM.concat(["a","b","c","d","e","f","A","B","C","D","E","F"]);exports.TOKEN=["!","#","$","%","&","'","*","+","-",".","^","_","`","|","~"].concat(exports.ALPHANUM);exports.HEADER_CHARS=[" "];for(let i=32;i<=255;i++)i!==127&&exports.HEADER_CHARS.push(i);exports.CONNECTION_TOKEN_CHARS=exports.HEADER_CHARS.filter(c=>c!==44);exports.QUOTED_STRING=[" "," "];for(let i=33;i<=255;i++)i!==34&&i!==92&&exports.QUOTED_STRING.push(i);exports.HTAB_SP_VCHAR_OBS_TEXT=[" "," "];for(let i=33;i<=126;i++)exports.HTAB_SP_VCHAR_OBS_TEXT.push(i);for(let i=128;i<=255;i++)exports.HTAB_SP_VCHAR_OBS_TEXT.push(i);exports.MAJOR=exports.NUM_MAP;exports.MINOR=exports.MAJOR;exports.SPECIAL_HEADERS={connection:exports.HEADER_STATE.CONNECTION,"content-length":exports.HEADER_STATE.CONTENT_LENGTH,"proxy-connection":exports.HEADER_STATE.CONNECTION,"transfer-encoding":exports.HEADER_STATE.TRANSFER_ENCODING,upgrade:exports.HEADER_STATE.UPGRADE};exports.default={ERROR:exports.ERROR,TYPE:exports.TYPE,FLAGS:exports.FLAGS,LENIENT_FLAGS:exports.LENIENT_FLAGS,METHODS:exports.METHODS,STATUSES:exports.STATUSES,FINISH:exports.FINISH,HEADER_STATE:exports.HEADER_STATE,ALPHA:exports.ALPHA,NUM_MAP:exports.NUM_MAP,HEX_MAP:exports.HEX_MAP,NUM:exports.NUM,ALPHANUM:exports.ALPHANUM,MARK:exports.MARK,USERINFO_CHARS:exports.USERINFO_CHARS,URL_CHAR:exports.URL_CHAR,HEX:exports.HEX,TOKEN:exports.TOKEN,HEADER_CHARS:exports.HEADER_CHARS,CONNECTION_TOKEN_CHARS:exports.CONNECTION_TOKEN_CHARS,QUOTED_STRING:exports.QUOTED_STRING,HTAB_SP_VCHAR_OBS_TEXT:exports.HTAB_SP_VCHAR_OBS_TEXT,MAJOR:exports.MAJOR,MINOR:exports.MINOR,SPECIAL_HEADERS:exports.SPECIAL_HEADERS,METHODS_HTTP:exports.METHODS_HTTP,METHODS_ICE:exports.METHODS_ICE,METHODS_RTSP:exports.METHODS_RTSP,METHOD_MAP:exports.METHOD_MAP,H_METHOD_MAP:exports.H_METHOD_MAP,STATUSES_HTTP:exports.STATUSES_HTTP}}});var require_llhttp_wasm=__commonJS({"node_modules/undici/lib/llhttp/llhttp-wasm.js"(exports,module){"use strict";var{Buffer:Buffer2}=__require("node:buffer"),wasmBase64="AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAn9/AGABfwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAzU0BQYAAAMAAAAAAAADAQMAAwMDAAACAAAAAAICAgICAgICAgIBAQEBAQEBAQEBAwAAAwAAAAQFAXABExMFAwEAAgYIAX8BQcDZBAsHxQcoBm1lbW9yeQIAC19pbml0aWFsaXplAAgZX19pbmRpcmVjdF9mdW5jdGlvbl90YWJsZQEAC2xsaHR0cF9pbml0AAkYbGxodHRwX3Nob3VsZF9rZWVwX2FsaXZlADcMbGxodHRwX2FsbG9jAAsGbWFsbG9jADkLbGxodHRwX2ZyZWUADARmcmVlAAwPbGxodHRwX2dldF90eXBlAA0VbGxodHRwX2dldF9odHRwX21ham9yAA4VbGxodHRwX2dldF9odHRwX21pbm9yAA8RbGxodHRwX2dldF9tZXRob2QAEBZsbGh0dHBfZ2V0X3N0YXR1c19jb2RlABESbGxodHRwX2dldF91cGdyYWRlABIMbGxodHRwX3Jlc2V0ABMObGxodHRwX2V4ZWN1dGUAFBRsbGh0dHBfc2V0dGluZ3NfaW5pdAAVDWxsaHR0cF9maW5pc2gAFgxsbGh0dHBfcGF1c2UAFw1sbGh0dHBfcmVzdW1lABgbbGxodHRwX3Jlc3VtZV9hZnRlcl91cGdyYWRlABkQbGxodHRwX2dldF9lcnJubwAaF2xsaHR0cF9nZXRfZXJyb3JfcmVhc29uABsXbGxodHRwX3NldF9lcnJvcl9yZWFzb24AHBRsbGh0dHBfZ2V0X2Vycm9yX3BvcwAdEWxsaHR0cF9lcnJub19uYW1lAB4SbGxodHRwX21ldGhvZF9uYW1lAB8SbGxodHRwX3N0YXR1c19uYW1lACAabGxodHRw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AXRrQT5qIQILIAEgAjYCHCABQgA3AhAgAkECdEH01wBqIQACQEHI1QAoAgAiA0EBIAJ0IgdxRQRAIAAgATYCAEHI1QAgAyAHcjYCACABIAA2AhggASABNgIIIAEgATYCDAwBCyAEQRkgAkEBdmtBACACQR9HG3QhAiAAKAIAIQACQANAIAAiAygCBEF4cSAERg0BIAJBHXYhACACQQF0IQIgAyAAQQRxakEQaiIHKAIAIgANAAsgByABNgIAIAEgAzYCGCABIAE2AgwgASABNgIIDAELIAMoAggiACABNgIMIAMgATYCCCABQQA2AhggASADNgIMIAEgADYCCAtB5NUAQeTVACgCAEEBayIAQX8gABs2AgALCwcAIAAtACgLBwAgAC0AKgsHACAALQArCwcAIAAtACkLBwAgAC8BNAsHACAALQAwC0ABBH8gACgCGCEBIAAvAS4hAiAALQAoIQMgACgCOCEEIAAQOCAAIAQ2AjggACADOgAoIAAgAjsBLiAAIAE2AhgL5YUCAgd/A34gASACaiEEAkAgACIDKAIMIgANACADKAIEBEAgAyABNgIECyMAQRBrIgkkAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAygCHCICQQJrDvwBAfkBAgMEBQYHCAkKCwwNDg8QERL4ARP3ARQV9gEWF/UBGBkaGxwdHh8g/QH7ASH0ASIjJCUmJygpKivzASwtLi8wMTLyAfEBMzTwAe8BNTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5P+gFQUVJT7gHtAVTsAVXrAVZXWFla6gFbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEBkgGTAZQBlQGWAZcBmAGZAZoBmwGcAZ0BngGfAaABoQGiAaMBpAGlAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AbUBtgG3AbgBuQG6AbsBvAG9Ab4BvwHAAcEBwgHDAcQBxQHGAccByAHJAcoBywHMAc0BzgHpAegBzwHnAdAB5gHRAdIB0wHUAeUB1QHWAdcB2AHZAdoB2wHcAd0B3gHfAeAB4QHiAeMBAPwBC0EADOMBC0EODOIBC0ENDOEBC0EPDOABC0EQDN8BC0ETDN4BC0EUDN0BC0EVDNwBC0EWDNsBC0EXDNoBC0EYDNkBC0EZDNgBC0EaDNcBC0EbDNYBC0EcDNUBC0EdDNQBC0EeDNMBC0EfDNIBC0EgDNEBC0EhDNABC0EIDM8BC0EiDM4BC0EkDM0BC0EjDMwBC0EHDMsBC0ElDMoBC0EmDMkBC0EnDMgBC0EoDMcBC0ESDMYBC0ERDMUBC0EpDMQBC0EqDMMBC0ErDMIBC0EsDMEBC0HeAQzAAQtBLgy/AQtBLwy+AQtBMAy9AQtBMQy8AQtBMgy7AQtBMwy6AQtBNAy5AQtB3wEMuAELQTUMtwELQTkMtgELQQwMtQELQTYMtAELQTcMswELQTgMsgELQT4MsQELQToMsAELQeABDK8BC0ELDK4BC0E/DK0BC0E7DKwBC0EKDKsBC0E8DKoBC0E9DKkBC0HhAQyoAQtBwQAMpwELQcAADKYBC0HCAAylAQtBCQykAQtBLQyjAQtBwwAMogELQcQADKEBC0HFAAygAQtBxgAMnwELQccADJ4BC0HIAAydAQtByQAMnAELQcoADJsBC0HLAAyaAQtBzAAMmQELQc0ADJgBC0HOAAyXAQtBzwAMlgELQdAADJUBC0HRAAyUAQtB0gAMkwELQdMADJIBC0HVAAyRAQtB1AAMkAELQdYADI8BC0HXAAyOAQtB2AAMjQELQdkADIwBC0HaAAyLAQtB2wAMigELQdwADIkBC0HdAAyIAQtB3gAMhwELQd8ADIYBC0HgAAyFAQtB4QAMhAELQeIADIMBC0HjAAyCAQtB5AAMgQELQeUADIABC0HiAQx/C0HmAAx+C0HnAAx9C0EGDHwLQegADHsLQQUMegtB6QAMeQtBBAx4C0HqAAx3C0HrAAx2C0HsAAx1C0HtAAx0C0EDDHMLQe4ADHILQe8ADHELQfAADHALQfIADG8LQfEADG4LQfMADG0LQfQADGwLQfUADGsLQfYADGoLQQIMaQtB9wAMaAtB+AAMZwtB+QAMZgtB+gAMZQtB+wAMZAtB/AAMYwtB/QAMYgtB/gAMYQtB/wAMYAtBgAEMXwtBgQEMXgtBggEMXQtBgwEMXAtBhAEMWwtBhQEMWgtBhgEMWQtBhwEMWAtBiAEMVwtBiQEMVgtBigEMVQtBiwEMVAtBjAEMUwtBjQEMUgtBjgEMUQtBjwEMUAtBkAEMTwtBkQEMTgtBkgEMTQtBkwEMTAtBlAEMSwtBlQEMSgtBlgEMSQtBlwEMSAtBmAEMRwtBmQEMRgtBmgEMRQtBmwEMRAtBnAEMQwtBnQEMQgtBngEMQQtBnwEMQAtBoAEMPwtBoQEMPgtBogEMPQtBowEMPAtBpAEMOwtBpQEMOgtBpgEMOQtBpwEMOAtBqAEMNwtBqQEMNgtBqgEMNQtBqwEMNAtBrAEMMwtBrQEMMgtBrgEMMQtBrwEMMAtBsAEMLwtBsQEMLgtBsgEMLQtBswEMLAtBtAEMKwtBtQEMKgtBtgEMKQtBtwEMKAtBuAEMJwtBuQEMJgtBugEMJQtBuwEMJAtBvAEMIwtBvQEMIgtBvgEMIQtBvwEMIAtBwAEMHwtBwQEMHgtBwgEMHQtBAQwcC0HDAQwbC0HEAQwaC0HFAQwZC0HGAQwYC0HHAQwXC0HIAQwWC0HJAQwVC0HKAQwUC0HLAQwTC0HMAQwSC0HNAQwRC0HOAQwQC0HPAQwPC0HQAQwOC0HRAQwNC0HSAQwMC0HTAQwLC0HUAQwKC0HVAQwJC0HWAQwIC0HjAQwHC0HXAQwGC0HYAQwFC0HZAQwEC0HaAQwDC0HbAQwCC0HdAQwBC0HcAQshAgNAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCADAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJ/AkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAMCfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAg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ogKiAqICogKiAqICogKiAqICogKiAqICogIAogILIAQgAUEBaiIBRw0AC0HJACECDOwCCyABQQFqIQEgA0Evai0AAEEBcQ2lAiADQQA2AhwgAyABNgIUIANBlxA2AhAgA0EKNgIMQQAhAgzrAgsgASAERwRAA0AgAS0AAEEgRw0VIAQgAUEBaiIBRw0AC0H4ACECDOsCC0H4ACECDOoCCyADQQI6ACgMOAtBACECIANBADYCHCADQb8LNgIQIANBAjYCDCADIAFBAWo2AhQM6AILQQAhAgzOAgtBDSECDM0CC0ETIQIMzAILQRUhAgzLAgtBFiECDMoCC0EYIQIMyQILQRkhAgzIAgtBGiECDMcCC0EbIQIMxgILQRwhAgzFAgtBHSECDMQCC0EeIQIMwwILQR8hAgzCAgtBICECDMECC0EiIQIMwAILQSMhAgy/AgtBJSECDL4CC0HlACECDL0CCyADQT02AhwgAyABNgIUIAMgADYCDEEAIQIM1QILIANBGzYCHCADIAE2AhQgA0GkHDYCECADQRU2AgxBACECDNQCCyADQSA2AhwgAyABNgIUIANBmBo2AhAgA0EVNgIMQQAhAgzTAgsgA0ETNgIcIAMgATYCFCADQZgaNgIQIANBFTYCDEEAIQIM0gILIANBCzYCHCADIAE2AhQgA0GYGjYCECADQRU2AgxBACECDNECCyADQRA2AhwgAyABNgIUIANBmBo2AhAgA0EVNgIMQQAhAgzQAgsgA0EgNgIcIAMgATYCFCADQaQcNgIQIANBFTYCDEEAIQIMzwILIANBCzYCHCADIAE2AhQgA0GkHDYCECADQRU2AgxBACECDM4CCyADQQw2AhwgAyABNgIUIANBpBw2AhAgA0EVNgIMQQAhAgzNAgtBACECIANBADYCHCADIAE2AhQgA0HdDjYCECADQRI2AgwMzAILAkADQAJAIAEtAABBCmsOBAACAgACCyAEIAFBAWoiAUcNAAtB/QEhAgzMAgsCQAJAIAMtADZBAUcNAEEAIQACQCADKAI4IgJFDQAgAigCYCICRQ0AIAMgAhEAACEACyAARQ0AIABBFUcNASADQfwBNgIcIAMgATYCFCADQdwZNgIQIANBFTYCDEEAIQIMzQILQdwBIQIMswILIANBADYCHCADIAE2AhQgA0H5CzYCECADQR82AgxBACECDMsCCwJAAkAgAy0AKEEBaw4CBAEAC0HbASECDLICC0HUASECDLECCyADQQI6ADFBACEAAkAgAygCOCICRQ0AIAIoAgAiAkUNACADIAIRAAAhAAsgAEUEQEHdASECDLECCyAAQRVHBEAgA0EANgIcIAMgATYCFCADQbQMNgIQIANBEDYCDEEAIQIMygILIANB+wE2AhwgAyABNgIUIANBgRo2AhAgA0EVNgIMQQAhAgzJAgsgASAERgRAQfoBIQIMyQILIAEtAABByABGDQEgA0EBOgAoC0HAASECDK4CC0HaASECDK0CCyABIARHBEAgA0EMNgIIIAMgATYCBEHZASECDK0CC0H5ASECDMUCCyABIARGBEBB+AEhAgzFAgsgAS0AAEHIAEcNBCABQQFqIQFB2AEhAgyrAgsgASAERgRAQfcBIQIMxAILAkACQCABLQAAQcUAaw4QAAUFBQUFBQUFBQUFBQUFAQULIAFBAWohAUHWASECDKsCCyABQQFqIQFB1wEhAgyqAgtB9gEhAiABIARGDcICIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQbrVAGotAABHDQMgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADMMCCyADKAIEIQAgA0IANwMAIAMgACAGQQFqIgEQLiIARQRAQeMBIQIMqgILIANB9QE2AhwgAyABNgIUIAMgADYCDEEAIQIMwgILQfQBIQIgASAERg3BAiADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEG41QBqLQAARw0CIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzCAgsgA0GBBDsBKCADKAIEIQAgA0IANwMAIAMgACAGQQFqIgEQLiIADQMMAgsgA0EANgIAC0EAIQIgA0EANgIcIAMgATYCFCADQeUfNgIQIANBCDYCDAy/AgtB1QEhAgylAgsgA0HzATYCHCADIAE2AhQgAyAANgIMQQAhAgy9AgtBACEAAkAgAygCOCICRQ0AIAIoAkAiAkUNACADIAIRAAAhAAsgAEUNbiAAQRVHBEAgA0EANgIcIAMgATYCFCADQYIPNgIQIANBIDYCDEEAIQIMvQILIANBjwE2AhwgAyABNgIUIANB7Bs2AhAgA0EVNgIMQQAhAgy8AgsgASAERwRAIANBDTYCCCADIAE2AgRB0wEhAgyjAgtB8gEhAgy7AgsgASAERgRAQfEBIQIMuwILAkACQAJAIAEtAABByABrDgsAAQgICAgICAgIAggLIAFBAWohAUHQASECDKMCCyABQQFqIQFB0QEhAgyiAgsgAUEBaiEBQdIBIQIMoQILQfABIQIgASAERg25AiADKAIAIgAgBCABa2ohBiABIABrQQJqIQUDQCABLQAAIABBtdUAai0AAEcNBCAAQQJGDQMgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAY2AgAMuQILQe8BIQIgASAERg24AiADKAIAIgAgBCABa2ohBiABIABrQQFqIQUDQCABLQAAIABBs9UAai0AAEcNAyAAQQFGDQIgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAY2AgAMuAILQe4BIQIgASAERg23AiADKAIAIgAgBCABa2ohBiABIABrQQJqIQUDQCABLQAAIABBsNUAai0AAEcNAiAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAY2AgAMtwILIAMoAgQhACADQgA3AwAgAyAAIAVBAWoiARArIgBFDQIgA0HsATYCHCADIAE2AhQgAyAANgIMQQAhAgy2AgsgA0EANgIACyADKAIEIQAgA0EANgIEIAMgACABECsiAEUNnAIgA0HtATYCHCADIAE2AhQgAyAANgIMQQAhAgy0AgtBzwEhAgyaAgtBACEAAkAgAygCOCICRQ0AIAIoAjQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0HqDTYCECADQSY2AgxBACECDLQCC0HOASECDJoCCyADQesBNgIcIAMgATYCFCADQYAbNgIQIANBFTYCDEEAIQIMsgILIAEgBEYEQEHrASECDLICCyABLQAAQS9GBEAgAUEBaiEBDAELIANBADYCHCADIAE2AhQgA0GyODYCECADQQg2AgxBACECDLECC0HNASECDJcCCyABIARHBEAgA0EONgIIIAMgATYCBEHMASECDJcCC0HqASECDK8CCyABIARGBEBB6QEhAgyvAgsgAS0AAEEwayIAQf8BcUEKSQRAIAMgADoAKiABQQFqIQFBywEhAgyWAgsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDZcCIANB6AE2AhwgAyABNgIUIAMgADYCDEEAIQIMrgILIAEgBEYEQEHnASECDK4CCwJAIAEtAABBLkYEQCABQQFqIQEMAQsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDZgCIANB5gE2AhwgAyABNgIUIAMgADYCDEEAIQIMrgILQcoBIQIMlAILIAEgBEYEQEHlASECDK0CC0EAIQBBASEFQQEhB0EAIQICQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQCABLQAAQTBrDgoKCQABAgMEBQYICwtBAgwGC0EDDAULQQQMBAtBBQwDC0EGDAILQQcMAQtBCAshAkEAIQVBACEHDAILQQkhAkEBIQBBACEFQQAhBwwBC0EAIQVBASECCyADIAI6ACsgAUEBaiEBAkACQCADLQAuQRBxDQACQAJAAkAgAy0AKg4DAQACBAsgB0UNAwwCCyAADQEMAgsgBUUNAQsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDQIgA0HiATYCHCADIAE2AhQgAyAANgIMQQAhAgyvAgsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDZoCIANB4wE2AhwgAyABNgIUIAMgADYCDEEAIQIMrgILIAMoAgQhACADQQA2AgQgAyAAIAEQLyIARQ2YAiADQeQBNgIcIAMgATYCFCADIAA2AgwMrQILQckBIQIMkwILQQAhAAJAIAMoAjgiAkUNACACKAJEIgJFDQAgAyACEQAAIQALAkAgAARAIABBFUYNASADQQA2AhwgAyABNgIUIANBpA02AhAgA0EhNgIMQQAhAgytAgtByAEhAgyTAgsgA0HhATYCHCADIAE2AhQgA0HQGjYCECADQRU2AgxBACECDKsCCyABIARGBEBB4QEhAgyrAgsCQCABLQAAQSBGBEAgA0EAOwE0IAFBAWohAQwBCyADQQA2AhwgAyABNgIUIANBmRE2AhAgA0EJNgIMQQAhAgyrAgtBxwEhAgyRAgsgASAERgRAQeABIQIMqgILAkAgAS0AAEEwa0H/AXEiAkEKSQRAIAFBAWohAQJAIAMvATQiAEGZM0sNACADIABBCmwiADsBNCAAQf7/A3EgAkH//wNzSw0AIAMgACACajsBNAwCC0EAIQIgA0EANgIcIAMgATYCFCADQZUeNgIQIANBDTYCDAyrAgsgA0EANgIcIAMgATYCFCADQZUeNgIQIANBDTYCDEEAIQIMqgILQcYBIQIMkAILIAEgBEYEQEHfASECDKkCCwJAIAEtAABBMGtB/wFxIgJBCkkEQCABQQFqIQECQCADLwE0IgBBmTNLDQAgAyAAQQpsIgA7ATQgAEH+/wNxIAJB//8Dc0sNACADIAAgAmo7ATQMAgtBACECIANBADYCHCADIAE2AhQgA0GVHjYCECADQQ02AgwMqgILIANBADYCHCADIAE2AhQgA0GVHjYCECADQQ02AgxBACECDKkCC0HFASECDI8CCyABIARGBEBB3gEhAgyoAgsCQCABLQAAQTBrQf8BcSICQQpJBEAgAUEBaiEBAkAgAy8BNCIAQZkzSw0AIAMgAEEKbCIAOwE0IABB/v8DcSACQf//A3NLDQAgAyAAIAJqOwE0DAILQQAhAiADQQA2AhwgAyABNgIUIANBlR42AhAgA0ENNgIMDKkCCyADQQA2AhwgAyABNgIUIANBlR42AhAgA0ENNgIMQQAhAgyoAgtBxAEhAgyOAgsgASAERgRAQd0BIQIMpwILAkACQAJAAkAgAS0AAEEKaw4XAgMDAAMDAwMDAwMDAwMDAwMDAwMDAwEDCyABQQFqDAULIAFBAWohAUHDASECDI8CCyABQQFqIQEgA0Evai0AAEEBcQ0IIANBADYCHCADIAE2AhQgA0GNCzYCECADQQ02AgxBACECDKcCCyADQQA2AhwgAyABNgIUIANBjQs2AhAgA0ENNgIMQQAhAgymAgsgASAERwRAIANBDzYCCCADIAE2AgRBASECDI0CC0HcASECDKUCCwJAAkADQAJAIAEtAABBCmsOBAIAAAMACyAEIAFBAWoiAUcNAAtB2wEhAgymAgsgAygCBCEAIANBADYCBCADIAAgARAtIgBFBEAgAUEBaiEBDAQLIANB2gE2AhwgAyAANgIMIAMgAUEBajYCFEEAIQIMpQILIAMoAgQhACADQQA2AgQgAyAAIAEQLSIADQEgAUEBagshAUHBASECDIoCCyADQdkBNgIcIAMgADYCDCADIAFBAWo2AhRBACECDKICC0HCASECDIgCCyADQS9qLQAAQQFxDQEgA0EANgIcIAMgATYCFCADQeQcNgIQIANBGTYCDEEAIQIMoAILIAEgBEYEQEHZASEC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IAFBAWohAUGeASECDOQBCyABQQFqIQFBnwEhAgzjAQtBtwEhAiABIARGDfsBIAMoAgAiACAEIAFraiEFIAEgAGtBA2ohBgJAA0AgAS0AACAAQezUAGotAABHDSggAEEDRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPwBCyADQQA2AgAgBkEBaiEBQQ0MKAtBtgEhAiABIARGDfoBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQaHVAGotAABHDScgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPsBCyADQQA2AgAgBkEBaiEBQQwMJwtBtQEhAiABIARGDfkBIAMoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQerUAGotAABHDSYgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPoBCyADQQA2AgAgBkEBaiEBQQMMJgtBtAEhAiABIARGDfgBIAMoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQejUAGotAABHDSUgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPkBCyADQQA2AgAgBkEBaiEBQSYMJQsgASAERgRAQbMBIQIM+AELAkACQCABLQAAQdQAaw4CAAEnCyABQQFqIQFBmQEhAgzfAQsgAUEBaiEBQZoBIQIM3gELQbIBIQIgASAERg32ASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHm1ABqLQAARw0jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAz3AQsgA0EANgIAIAZBAWohAUEnDCMLQbEBIQIgASAERg31ASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHk1ABqLQAARw0iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAz2AQsgA0EANgIAIAZBAWohAUEcDCILQbABIQIgASAERg30ASADKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEHe1ABqLQAARw0hIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAz1AQsgA0EANgIAIAZBAWohAUEGDCELQa8BIQIgASAERg3zASADKAIAIgAgBCABa2ohBSABIABrQQRqIQYCQANAIAEtAAAgAEHZ1ABqLQAARw0gIABBBEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAz0AQsgA0EANgIAIAZBAWohAUEZDCALIAEgBEYEQEGuASECDPMBCwJAAkACQAJAIAEtAABBLWsOIwAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJAEkJCQkJAIkJCQDJAsgAUEBaiEBQY4BIQIM3AELIAFBAWohAUGPASECDNsBCyABQQFqIQFBlAEhAgzaAQsgAUEBaiEBQZUBIQIM2QELQa0BIQIgASAERg3xASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHX1ABqLQAARw0eIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzyAQsgA0EANgIAIAZBAWohAUELDB4LIAEgBEYEQEGsASECDPEBCwJAAkAgAS0AAEHBAGsOAwAgASALIAFBAWohAUGQASECDNgBCyABQQFqIQFBkwEhAgzXAQsgASAERgRAQasBIQIM8AELAkACQCABLQAAQcEAaw4PAB8fHx8fHx8fHx8fHx8BHwsgAUEBaiEBQZEBIQIM1wELIAFBAWohAUGSASECDNYBCyABIARGBEBBqgEhAgzvAQsgAS0AAEHMAEcNHCABQQFqIQFBCgwbC0GpASECIAEgBEYN7QEgAygCACIAIAQgAWtqIQUgASAAa0EFaiEGAkADQCABLQAAIABB0dQAai0AAEcNGiAAQQVGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM7gELIANBADYCACAGQQFqIQFBHgwaC0GoASECIAEgBEYN7AEgAygCACIAIAQgAWtqIQUgASAAa0EGaiEGAkADQCABLQAAIABBytQAai0AAEcNGSAAQQZGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM7QELIANBADYCACAGQQFqIQFBFQwZC0GnASECIAEgBEYN6wEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBx9QAai0AAEcNGCAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM7AELIANBADYCACAGQQFqIQFBFwwYC0GmASECIAEgBEYN6gEgAygCACIAIAQgAWtqIQUgASAAa0EFaiEGAkADQCABLQAAIABBwdQAai0AAEcNFyAAQQVGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM6wELIANBADYCACAGQQFqIQFBGAwXCyABIARGBEBBpQEhAgzqAQsCQAJAIAEtAABByQBrDgcAGRkZGRkBGQsgAUEBaiEBQYsBIQIM0QELIAFBAWohAUGMASECDNABC0GkASECIAEgBEYN6AEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABBptUAai0AAEcNFSAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM6QELIANBADYCACAGQQFqIQFBCQwVC0GjASECIAEgBEYN5wEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABBpNUAai0AAEcNFCAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM6AELIANBADYCACAGQQFqIQFBHwwUC0GiASECIAEgBEYN5gEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBvtQAai0AAEcNEyAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM5wELIANBADYCACAGQQFqIQFBAgwTC0GhASECIAEgBEYN5QEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGA0AgAS0AACAAQbzUAGotAABHDREgAEEBRg0CIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADOUBCyABIARGBEBBoAEhAgzlAQtBASABLQAAQd8ARw0RGiABQQFqIQFBhwEhAgzLAQsgA0EANgIAIAZBAWohAUGIASECDMoBC0GfASECIAEgBEYN4gEgAygCACIAIAQgAWtqIQUgASAAa0EIaiEGAkADQCABLQAAIABBhNUAai0AAEcNDyAAQQhGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM4wELIANBADYCACAGQQFqIQFBKQwPC0GeASECIAEgBEYN4QEgAygCACIAIAQgAWtqIQUgASAAa0EDaiEGAkADQCABLQAAIABBuNQAai0AAEcNDiAAQQNGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM4gELIANBADYCACAGQQFqIQFBLQwOCyABIARGBEBBnQEhAgzhAQsgAS0AAEHFAEcNDiABQQFqIQFBhAEhAgzHAQsgASAERgRAQZwBIQIM4AELAkACQCABLQAAQcwAaw4IAA8PDw8PDwEPCyABQQFqIQFBggEhAgzHAQsgAUEBaiEBQYMBIQIMxgELQZsBIQIgASAERg3eASADKAIAIgAgBCABa2ohBSABIABrQQRqIQYCQANAIAEtAAAgAEGz1ABqLQAARw0LIABBBEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzfAQsgA0EANgIAIAZBAWohAUEjDAsLQZoBIQIgASAERg3dASADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGw1ABqLQAARw0KIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzeAQsgA0EANgIAIAZBAWohAUEADAoLIAEgBEYEQEGZASECDN0BCwJAAkAgAS0AAEHIAGsOCAAMDAwMDAwBDAsgAUEBaiEBQf0AIQIMxAELIAFBAWohAUGAASECDMMBCyABIARGBEBBmAEhAgzcAQsCQAJAIAEtAABBzgBrDgMACwELCyABQQFqIQFB/gAhAgzDAQsgAUEBaiEBQf8AIQIMwgELIAEgBEYEQEGXASECDNsBCyABLQAAQdkARw0IIAFBAWohAUEIDAcLQZYBIQIgASAERg3ZASADKAIAIgAgBCABa2ohBSABIABrQQNqIQYCQANAIAEtAAAgAEGs1ABqLQAARw0GIABBA0YNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzaAQsgA0EANgIAIAZBAWohAUEFDAYLQZUBIQIgASAERg3YASADKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGm1ABqLQAARw0FIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzZAQsgA0EANgIAIAZBAWohAUEWDAULQZQBIQIgASAERg3XASADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGh1QBqLQAARw0EIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzYAQsgA0EANgIAIAZBAWohAUEQDAQLIAEgBEYEQEGTASECDNcBCwJAAkAgAS0AAEHDAGsODAAGBgYGBgYGBgYGAQYLIAFBAWohAUH5ACECDL4BCyABQQFqIQFB+gAhAgy9AQtBkgEhAiABIARGDdUBIAMoAgAiACAEIAFraiEFIAEgAGtBBWohBgJAA0AgAS0AACAAQaDUAGotAABHDQIgAEEFRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNYBCyADQQA2AgAgBkEBaiEBQSQMAgsgA0EANgIADAILIAEgBEYEQEGRASECDNQBCyABLQAAQcwARw0BIAFBAWohAUETCzoAKSADKAIEIQAgA0EANgIEIAMgACABEC4iAA0CDAELQQAhAiADQQA2AhwgAyABNgIUIANB/h82AhAgA0EGNgIMDNEBC0H4ACECDLcBCyADQZABNgIcIAMgATYCFCADIAA2AgxBACECDM8BC0EAIQACQCADKAI4IgJFDQAgAigCQCICRQ0AIAMgAhEAACEACyAARQ0AIABBFUYNASADQQA2AhwgAyABNgIUIANBgg82AhAgA0EgNgIMQQAhAgzOAQtB9wAhAgy0AQsgA0GPATYCHCADIAE2AhQgA0HsGzYCECADQRU2AgxBACECDMwBCyABIARGBEBBjwEhAgzMAQsCQCABLQAAQSBGBEAgAUEBaiEBDAELIANBADYCHCADIAE2AhQgA0GbHzYCECADQQY2AgxBACECDMwBC0ECIQIMsgELA0AgAS0AAEEgRw0CIAQgAUEBaiIBRw0AC0GOASECDMoBCyABIARGBEBBjQEhAgzKAQsCQCABLQAAQQlrDgRKAABKAAtB9QAhAgywAQsgAy0AKUEFRgRAQfYAIQIMsAELQfQAIQIMrwELIAEgBEYEQEGMASECDMgBCyADQRA2AgggAyABNgIEDAoLIAEgBEYEQEGLASECDMcBCwJAIAEtAABBCWsOBEcAAEcAC0HzACECDK0BCyABIARHBEAgA0EQNgIIIAMgATYCBEHxACECDK0BC0GKASECDMUBCwJAIAEgBEcEQANAIAEtAABBoNAAai0AACIAQQNHBEACQCAAQQFrDgJJAAQLQfAAIQIMrwELIAQgAUEBaiIBRw0AC0GIASEC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BCABQQFqIgFHDQALQfsAIQIMpwELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0DIANB2wA2AhwgAyABNgIUIAMgADYCDEEAIQIMpgELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0DIANB3QA2AhwgAyABNgIUIAMgADYCDEEAIQIMpQELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0DIANB+gA2AhwgAyABNgIUIAMgADYCDEEAIQIMpAELIANBADYCHCADIAE2AhQgA0G8CjYCECADQQc2AgxBACECDKMBC0HPACECDIkBC0HRACECDIgBC0HnACECDIcBCyABIARGBEBB+gAhAgygAQsCQCABLQAAQQlrDgQgAAAgAAsgAUEBaiEBQeYAIQIMhgELIAEgBEYEQEH5ACECDJ8BCwJAIAEtAABBCWsOBB8AAB8AC0EAIQACQCADKAI4IgJFDQAgAigCOCICRQ0AIAMgAhEAACEACyAARQRAQeIBIQIMhgELIABBFUcEQCADQQA2AhwgAyABNgIUIANByQ02AhAgA0EaNgIMQQAhAgyfAQsgA0H4ADYCHCADIAE2AhQgA0HqGjYCECADQRU2AgxBACECDJ4BCyABIARHBEAgA0ENNgIIIAMgATYCBEHkACECDIUBC0H3ACECDJ0BCyABIARGBEBB9gAhAgydAQsCQAJAAkAgAS0AAEHIAGsOCwABCwsLCwsLCwsCCwsgAUEBaiEBQd0AIQIMhQELIAFBAWohAUHgACECDIQBCyABQQFqIQFB4wAhAgyDAQtB9QAhAiABIARGDZsBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQbXVAGotAABHDQggAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADJwBCyADKAIEIQAgA0IANwMAIAMgACAGQQFqIgEQKyIABEAgA0H0ADYCHCADIAE2AhQgAyAANgIMQQAhAgycAQtB4gAhAgyCAQtBACEAAkAgAygCOCICRQ0AIAIoAjQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0HqDTYCECADQSY2AgxBACECDJwBC0HhACECDIIBCyADQfMANgIcIAMgATYCFCADQYAbNgIQIANBFTYCDEEAIQIMmgELIAMtACkiAEEja0ELSQ0JAkAgAEEGSw0AQQEgAHRBygBxRQ0ADAoLQQAhAiADQQA2AhwgAyABNgIUIANB7Qk2AhAgA0EINgIMDJkBC0HyACECIAEgBEYNmAEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABBs9UAai0AAEcNBSAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMmQELIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARArIgAEQCADQfEANgIcIAMgATYCFCADIAA2AgxBACECDJkBC0HfACECDH8LQQAhAAJAIAMoAjgiAkUNACACKAI0IgJFDQAgAyACEQAAIQALAkAgAARAIABBFUYNASADQQA2AhwgAyABNgIUIANB6g02AhAgA0EmNgIMQQAhAgyZAQtB3gAhAgx/CyADQfAANgIcIAMgATYCFCADQYAbNgIQIANBFTYCDEEAIQIMlwELIAMtAClBIUYNBiADQQA2AhwgAyABNgIUIANBkQo2AhAgA0EINgIMQQAhAgyWAQtB7wAhAiABIARGDZUBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQbDVAGotAABHDQIgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADJYBCyADKAIEIQAgA0IANwMAIAMgACAGQQFqIgEQKyIARQ0CIANB7QA2AhwgAyABNgIUIAMgADYCDEEAIQIMlQELIANBADYCAAsgAygCBCEAIANBADYCBCADIAAgARArIgBFDYABIANB7gA2AhwgAyABNgIUIAMgADYCDEEAIQIMkwELQdwAIQIMeQtBACEAAkAgAygCOCICRQ0AIAIoAjQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0HqDTYCECADQSY2AgxBACECDJMBC0HbACECDHkLIANB7AA2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyRAQsgAy0AKSIAQSNJDQAgAEEuRg0AIANBADYCHCADIAE2AhQgA0HJCTYCECADQQg2AgxBACECDJABC0HaACECDHYLIAEgBEYEQEHrACECDI8BCwJAIAEtAABBL0YEQCABQQFqIQEMAQsgA0EANgIcIAMgATYCFCADQbI4NgIQIANBCDYCDEEAIQIMjwELQdkAIQIMdQsgASAERwRAIANBDjYCCCADIAE2AgRB2AAhAgx1C0HqACECDI0BCyABIARGBEBB6QAhAgyNAQsgAS0AAEEwayIAQf8BcUEKSQRAIAMgADoAKiABQQFqIQFB1wAhAgx0CyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNeiADQegANgIcIAMgATYCFCADIAA2AgxBACECDIwBCyABIARGBEBB5wAhAgyMAQsCQCABLQAAQS5GBEAgAUEBaiEBDAELIAMoAgQhACADQQA2AgQgAyAAIAEQLyIARQ17IANB5gA2AhwgAyABNgIUIAMgADYCDEEAIQIMjAELQdYAIQIMcgsgASAERgRAQeUAIQIMiwELQQAhAEEBIQVBASEHQQAhAgJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAIAEtAABBMGsOCgoJAAECAwQFBggLC0ECDAYLQQMMBQtBBAwEC0EFDAMLQQYMAgtBBwwBC0EICyECQQAhBUEAIQcMAgtBCSECQQEhAEEAIQVBACEHDAELQQAhBUEBIQILIAMgAjoAKyABQQFqIQECQAJAIAMtAC5BEHENAAJAAkACQCADLQAqDgMBAAIECyAHRQ0DDAILIAANAQwCCyAFRQ0BCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNAiADQeIANgIcIAMgATYCFCADIAA2AgxBACECDI0BCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNfSADQeMANgIcIAMgATYCFCADIAA2AgxBACECDIwBCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNeyADQeQANgIcIAMgATYCFCADIAA2AgwMiwELQdQAIQIMcQsgAy0AKUEiRg2GAUHTACECDHALQQAhAAJAIAMoAjgiAkUNACACKAJEIgJFDQAgAyACEQAAIQALIABFBEBB1QAhAgxwCyAAQRVHBEAgA0EANgIcIAMgATYCFCADQaQNNgIQIANBITYCDEEAIQIMiQELIANB4QA2AhwgAyABNgIUIANB0Bo2AhAgA0EVNgIMQQAhAgyIAQsgASAERgRAQeAAIQIMiAELAkACQAJAAkACQCABLQAAQQprDgQBBAQABAsgAUEBaiEBDAELIAFBAWohASADQS9qLQAAQQFxRQ0BC0HSACECDHALIANBADYCHCADIAE2AhQgA0G2ETYCECADQQk2AgxBACECDIgBCyADQQA2AhwgAyABNgIUIANBthE2AhAgA0EJNgIMQQAhAgyHAQsgASAERgRAQd8AIQIMhwELIAEtAABBCkYEQCABQQFqIQEMCQsgAy0ALkHAAHENCCADQQA2AhwgAyABNgIUIANBthE2AhAgA0ECNgIMQQAhAgyGAQsgASAERgRAQd0AIQIMhgELIAEtAAAiAkENRgRAIAFBAWohAUHQACECDG0LIAEhACACQQlrDgQFAQEFAQsgBCABIgBGBEBB3AAhAgyFAQsgAC0AAEEKRw0AIABBAWoMAgtBACECIANBADYCHCADIAA2AhQgA0HKLTYCECADQQc2AgwMgwELIAEgBEYEQEHbACECDIMBCwJAIAEtAABBCWsOBAMAAAMACyABQQFqCyEBQc4AIQIMaAsgASAERgRAQdoAIQIMgQELIAEtAABBCWsOBAABAQABC0EAIQIgA0EANgIcIANBmhI2AhAgA0EHNgIMIAMgAUEBajYCFAx/CyADQYASOwEqQQAhAAJAIAMoAjgiAkUNACACKAI4IgJFDQAgAyACEQAAIQALIABFDQAgAEEVRw0BIANB2QA2AhwgAyABNgIUIANB6ho2AhAgA0EVNgIMQQAhAgx+C0HNACECDGQLIANBADYCHCADIAE2AhQgA0HJDTYCECADQRo2AgxBACECDHwLIAEgBEYEQEHZACECDHwLIAEtAABBIEcNPSABQQFqIQEgAy0ALkEBcQ09IANBADYCHCADIAE2AhQgA0HCHDYCECADQR42AgxBACECDHsLIAEgBEYEQEHYACECDHsLAkACQAJAAkACQCABLQAAIgBBCmsOBAIDAwABCyABQQFqIQFBLCECDGULIABBOkcNASADQQA2AhwgAyABNgIUIANB5xE2AhAgA0EKNgIMQQAhAgx9CyABQQFqIQEgA0Evai0AAEEBcUUNcyADLQAyQYABcUUEQCADQTJqIQIgAxA1QQAhAAJAIAMoAjgiBkUNACAGKAIoIgZFDQAgAyAGEQAAIQALAkACQCAADhZNTEsBAQEBAQEBAQEBAQEBAQEBAQEAAQsgA0EpNgIcIAMgATYCFCADQawZNgIQIANBFTYCDEEAIQIMfgsgA0EANgIcIAMgATYCFCADQeULNgIQIANBETYCDEEAIQIMfQtBACEAAkAgAygCOCICRQ0AIAIoAlwiAkUNACADIAIRAAAhAAsgAEUNWSAAQRVHDQEgA0EFNgIcIAMgATYCFCADQZsbNgIQIANBFTYCDEEAIQIMfAtBywAhAgxiC0EAIQIgA0EANgIcIAMgATYCFCADQZAONgIQIANBFDYCDAx6CyADIAMvATJBgAFyOwEyDDsLIAEgBEcEQCADQRE2AgggAyABNgIEQcoAIQIMYAtB1wAhAgx4CyABIARGBEBB1gAhAgx4CwJAAkACQAJAIAEtAAAiAEEgciAAIABBwQBrQf8BcUEaSRtB/wFxQeMAaw4TAEBAQEBAQEBAQEBAQAFAQEACA0ALIAFBAWohAUHGACECDGELIAFBAWohAUHHACECDGALIAFBAWohAUHIACECDF8LIAFBAWohAUHJACECDF4LQdUAIQIgBCABIgBGDXYgBCABayADKAIAIgFqIQYgACABa0EFaiEHA0AgAUGQyABqLQAAIAAtAAAiBUEgciAFIAVBwQBrQf8BcUEaSRtB/wFxRw0IQQQgAUEFRg0KGiABQQFqIQEgBCAAQQFqIgBHDQALIAMgBjYCAAx2C0HUACECIAQgASIARg11IAQgAWsgAygCACIBaiEGIAAgAWtBD2ohBwNAIAFBgMgAai0AACAALQAAIgVBIHIgBSAFQcEAa0H/AXFBGkkbQf8BcUcNB0EDIAFBD0YNCRogAUEBaiEBIAQgAEEBaiIARw0ACyADIAY2AgAMdQtB0wAhAiAEIAEiAEYNdCAEIAFrIAMoAgAiAWohBiAAIAFrQQ5qIQcDQCABQeLHAGotAAAgAC0AACIFQSByIAUgBUHBAGtB/wFxQRpJG0H/AXFHDQYgAUEORg0HIAFBAWohASAEIABBAWoiAEcNAAsgAyAGNgIADHQLQdIAIQIgBCABIgBGDXMgBCABayADKAIAIgFqIQUgACABa0EBaiEGA0AgAUHgxwBqLQAAIAAtAAAiB0EgciAHIAdBwQBrQf8BcUEaSRtB/wFxRw0FIAFBAUYNAiABQQFqIQEgBCAAQQFqIgBHDQALIAMgBTYCAAxzCyABIARGBEBB0QAhAgxzCwJAAkAgAS0AACIAQSByIAAgAEHBAGtB/wFxQRpJG0H/AXFB7gBrDgcAOTk5OTkBOQsgAUEBaiEBQcMAIQIMWgsgAUEBaiEBQcQAIQIMWQsgA0EANgIAIAZBAWohAUHFACECDFgLQdAAIQIgBCABIgBGDXAgBCABayADKAIAIgFqIQYgACABa0EJaiEHA0AgAUHWxwBqLQAAIAAtAAAiBUEgciAFIAVBwQBrQf8BcUEaSRtB/wFxRw0CQQIgAUEJRg0EGiABQQFqIQEgBCAAQQFqIgBHDQALIAMgBjYCAAxwC0HPACECIAQgASIARg1vIAQgAWsgAygCACIBaiEGIAAgAWtBBWohBwNAIAFB0McAai0AACAALQAAIgVBIHIgBSAFQcEAa0H/AXFBGkkbQf8BcUcNASABQQVGDQIgAUEBaiEBIAQgAEEBaiIARw0ACyADIAY2AgAMbwsgACEBIANBADYCAAwzC0EBCzoALCADQQA2AgAgB0EBaiEBC0EtIQIMUgsCQANAIAEtAABB0MUAai0AAEEBRw0BIAQgAUEBaiIBRw0AC0HNACECDGsLQcIAIQIMUQsgASAERgRAQcwAIQIMagsgAS0AAEE6RgRAIAMoAgQhACADQQA2AgQgAyAAIAEQMCIARQ0zIANBywA2AhwgAyAANgIMIAMgAUEBajYCFEEAIQIMagsgA0EANgIcIAMgATYCFCADQecRNgIQIANBCjYCDEEAIQIMaQsCQAJAIAMtACxBAmsOAgABJwsgA0Ezai0AAEECcUUNJiADLQAuQQJxDSYgA0EANgIcIAMgATYCFCADQaYUNgIQIANBCzYCDEEAIQIMaQsgAy0AMkEgcUUNJSADLQAuQQJxDSUgA0EANgIcIAMgATYCFCADQb0TNgIQIANBDzYCDEEAIQIMaAtBACEAAkAgAygCOCICRQ0AIAIoAkgiAkUNACADIAIRAAAhAAsgAEUEQEHBACECDE8LIABBFUcEQCADQQA2AhwgAyABNgIUIANBpg82AhAgA0EcNgIMQQAhAgxoCyADQcoANgIcIAMgATYCFCADQYUcNgIQIANBFTYCDEEAIQIMZwsgASAERwRAA0AgAS0AAEHAwQBqLQAAQQFHDRcgBCABQQFqIgFHDQALQcQAIQIMZwtBxAAhAgxmCyABIARHBEADQAJAIAEtAAAiAEEgciAAIABBwQBrQf8BcUEaSRtB/wFxIgBBCUYNACAAQSBGDQACQAJAAkACQCAAQeMAaw4TAAMDAwMDAwMBAwMDAwMDAwMDAgMLIAFBAWohAUE2IQIMUgsgAUEBaiEBQTchAgxRCyABQQFqIQFBOCECDFALDBULIAQgAUEBaiIBRw0AC0E8IQIMZgtBPCECDGULIAEgBEYEQEHIACECDGULIANBEjYCCCADIAE2AgQCQAJAAkACQAJAIAMtACxBAWsOBBQAAQIJCyADLQAyQSBxDQNB4AEhAgxPCwJAIAMvATIiAEEIcUUNACADLQAoQQFHDQAgAy0ALkEIcUUNAgsgAyAAQff7A3FBgARyOwEyDAsLIAMgAy8BMkEQcjsBMgwECyADQQA2AgQgAyABIAEQMSIABEAgA0HBADYCHCADIAA2AgwgAyABQQFqNgIUQQAhAgxmCyABQQFqIQEMWAsgA0EANgIcIAMgATYCFCADQfQTNgIQIANBBDYCDEEAIQIMZAtBxwAhAiABIARGDWMgAygCACIAIAQgAWtqIQUgASAAa0EGaiEGAkADQCAAQcDFAGotAAAgAS0AAEEgckcNASAAQQZGDUogAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMZAsgA0EANgIADAULAkAgASAERwRAA0AgAS0AAEHAwwBqLQAAIgBBAUcEQCAAQQJHDQMgAUEBaiEBDAULIAQgAUEBaiIBRw0AC0HFACECDGQLQcUAIQIMYwsLIANBADoALAwBC0ELIQIMRwtBPyECDEYLAkACQANAIAEtAAAiAEEgRwRAAkAgAEEKaw4EAwUFAwALIABBLEYNAwwECyAEIAFBAWoiAUcNAAtBxgAhAgxgCyADQQg6ACwMDgsgAy0AKEEBRw0CIAMtAC5BCHENAiADKAIEIQAgA0EANgIEIAMgACABEDEiAARAIANBwgA2AhwgAyAANgIMIAMgAUEBajYCFEEAIQIMXwsgAUEBaiEBDFALQTshAgxECwJAA0AgAS0AACIAQSBHIABBCUdxDQEgBCABQQFqIgFHDQALQcMAIQIMXQsLQTwhAgxCCwJAAkAgASAERwRAA0AgAS0AACIAQSBHBEAgAEEKaw4EAwQEAwQLIAQgAUEBaiIBRw0AC0E/IQIMXQtBPyECDFwLIAMgAy8BMkEgcjsBMgwKCyADKAIEIQAgA0EANgIEIAMgACABEDEiAEUNTiADQT42AhwgAyABNgIUIAMgADYCDEEAIQIMWgsCQCABIARHBEADQCABLQAAQcDDAGotAAAiAEEBRwRAIABBAkYNAwwMCyAEIAFBAWoiAUcNAAtBNyECDFsLQTchAgxaCyABQQFqIQEMBAtBOyECIAQgASIARg1YIAQgAWsgAygCACIBaiEGIAAgAWtBBWohBwJAA0AgAUGQyABqLQAAIAAtAAAiBUEgciAFIAVBwQBrQf8BcUEaSRtB/wFxRw0BIAFBBUYEQEEHIQEMPwsgAUEBaiEBIAQgAEEBaiIARw0ACyADIAY2AgAMWQsgA0EANgIAIAAhAQwFC0E6IQIgBCABIgBGDVcgBCABayADKAIAIgFqIQYgACABa0EIaiEHAkADQCABQbTBAGotAAAgAC0AACIFQSByIAUgBUHBAGtB/wFxQRpJG0H/AXFHDQEgAUEIRgRAQQUhAQw+CyABQQFqIQEgBCAAQQFqIgBHDQALIAMgBjYCAAxYCyADQQA2AgAgACEBDAQLQTkhAiAEIAEiAEYNViAEIAFrIAMoAgAiAWohBiAAIAFrQQNqIQcCQANAIAFBsMEAai0AACAALQAAIgVBIHIgBSAFQcEAa0H/AXFBGkkbQf8BcUcNASABQQNGBEBBBiEBDD0LIAFBAWohASAEIABBAWoiAEcNAAsgAyAGNgIADFcLIANBADYCACAAIQEMAwsCQANAIAEtAAAiAEEgRwRAIABBCmsOBAcEBAcCCyAEIAFBAWoiAUcNAAtBOCECDFYLIABBLEcNASABQQFqIQBBASEBAkACQAJAAkACQCADLQAsQQVrDgQDAQIEAAsgACEBDAQLQQIhAQwBC0EEIQELIANBAToALCADIAMvATIgAXI7ATIgACEBDAELIAMgAy8BMkEIcjsBMiAAIQELQT4hAgw7CyADQQA6ACwLQTkhAgw5CyABIARGBEBBNiECDFILAkACQAJAAkACQCABLQAAQQprDgQAAgIBAgsgAygCBCEAIANBADYCBCADIAAgARAxIgBFDQIgA0EzNgIcIAMgATYCFCADIAA2AgxBACECDFULIAMoAgQhACADQQA2AgQgAyAAIAEQMSIARQRAIAFBAWohAQwGCyADQTI2AhwgAyAANgIMIAMgAUEBajYCFEEAIQIMVAsgAy0ALkEBcQRAQd8BIQIMOwsgAygCBCEAIANBADYCBCADIAAgARAxIgANAQxJC0E0IQIMOQsgA0E1NgIcIAMgATYCFCADIAA2AgxBACECDFELQTUhAgw3CyADQS9qLQAAQQFxDQAgA0EANgIcIAMgATYCFCADQesWNgIQIANBGTYCDEEAIQIMTwtBMyECDDULIAEgBEYEQEEyIQIMTgsCQCABLQAAQQpGBEAgAUEBaiEBDAELIANBADYCHCADIAE2AhQgA0GSFzYCECADQQM2AgxBACECDE4LQTIhAgw0CyABIARGBEBBMSECDE0LAkAgAS0AACIAQQlGDQAgAEEgRg0AQQEhAgJAIAMtACxBBWsOBAYEBQANCyADIAMvATJBCHI7ATIMDAsgAy0ALkEBcUUNASADLQAsQQhHDQAgA0EAOgAsC0E9IQIMMgsgA0EANgIcIAMgATYCFCADQcIWNgIQIANBCjYCDEEAIQIMSgtBAiECDAELQQQhAgsgA0EBOgAsIAMgAy8BMiACcjsBMgwGCyABIARGBEBBMCECDEcLIAEtAABBCkYEQCABQQFqIQEMAQsgAy0ALkEBcQ0AIANBADYCHCADIAE2AhQgA0HcKDYCECADQQI2AgxBACECDEYLQTAhAgwsCyABQQFqIQFBMSECDCsLIAEgBEYEQEEvIQIMRAsgAS0AACIAQQlHIABBIEdxRQRAIAFBAWohASADLQAuQQFxDQEgA0EANgIcIAMgATYCFCADQZcQNgIQIANBCjYCDEEAIQIMRAtBASECAkACQAJAAkACQAJAIAMtACxBAmsOBwUEBAMBAgAECyADIAMvATJBCHI7ATIMAwtBAiECDAELQQQhAgsgA0EBOgAsIAMgAy8BMiACcjsBMgtBLyECDCsLIANBADYCHCADIAE2AhQgA0GEEzYCECADQQs2AgxBACECDEMLQeEBIQIMKQsgASAERgRAQS4hAgxCCyADQQA2AgQgA0ESNgIIIAMgASABEDEiAA0BC0EuIQIMJwsgA0EtNgIcIAMgATYCFCADIAA2AgxBACECDD8LQQAhAAJAIAMoAjgiAkUNACACKAJMIgJFDQAgAyACEQAAIQALIABFDQAgAEEVRw0BIANB2AA2AhwgAyABNgIUIANBsxs2AhAgA0EVNgIMQQAhAgw+C0HMACECDCQLIANBADYCHCADIAE2AhQgA0GzDjYCECADQR02AgxBACECDDwLIAEgBEYEQEHOACECDDwLIAEtAAAiAEEgRg0CIABBOkYNAQsgA0EAOgAsQQkhAgwhCyADKAIEIQAgA0EANgIEIAMgACABEDAiAA0BDAILIAMtAC5BAXEEQEHeASECDCALIAMoAgQhACADQQA2AgQgAyAAIAEQMCIARQ0CIANBKjYCHCADIAA2AgwgAyABQQFqNgIUQQAhAgw4CyADQcsANgIcIAMgADYCDCADIAFBAWo2AhRBACECDDcLIAFBAWohAUHAACECDB0LIAFBAWohAQwsCyABIARGBEBBKyECDDULAkAgAS0AAEEKRgRAIAFBAWohAQwBCyADLQAuQcAAcUUNBgsgAy0AMkGAAXEEQEEAIQACQCADKAI4IgJFDQAgAigCXCICRQ0AIAMgAhEAACEACyAARQ0SIABBFUYEQCADQQU2AhwgAyABNgIUIANBmxs2AhAgA0EVNgIMQQAhAgw2CyADQQA2AhwgAyABNgIUIANBkA42AhAgA0EUNgIMQQAhAgw1CyADQTJqIQIgAxA1QQAhAAJAIAMoAjgiBkUNACAGKAIoIgZFDQAgAyAGEQAAIQALIAAOFgIBAAQEBAQEBAQEBAQEBAQEBAQEBAMECyADQQE6ADALIAIgAi8BAEHAAHI7AQALQSshAgwYCyADQSk2AhwgAyABNgIUIANBrBk2AhAgA0EVNgIMQQAhAgwwCyADQQA2AhwgAyABNgIUIANB5Qs2AhAgA0ERNgIMQQAhAgwvCyADQQA2AhwgAyABNgIUIANBpQs2AhAgA0ECNgIMQQAhAgwuC0EBIQcgAy8BMiIFQQhxRQRAIAMpAyBCAFIhBwsCQCADLQAwBEBBASEAIAMtAClBBUYNASAFQcAAcUUgB3FFDQELAkAgAy0AKCICQQJGBEBBASEAIAMvATQiBkHlAEYNAkEAIQAgBUHAAHENAiAGQeQARg0CIAZB5gBrQQJJDQIgBkHMAUYNAiAGQbACRg0CDAELQQAhACAFQcAAcQ0BC0ECIQAgBUEIcQ0AIAVBgARxBEACQCACQQFHDQAgAy0ALkEKcQ0AQQUhAAwCC0EEIQAMAQsgBUEgcUUEQCADEDZBAEdBAnQhAAwBC0EAQQMgAykDIFAbIQALIABBAWsOBQIABwEDBAtBESECDBMLIANBAToAMQwpC0EAIQICQCADKAI4IgBFDQAgACgCMCIARQ0AIAMgABEAACECCyACRQ0mIAJBFUYEQCADQQM2AhwgAyABNgIUIANB0hs2AhAgA0EVNgIMQQAhAgwrC0EAIQIgA0EANgIcIAMgATYCFCADQd0ONgIQIANBEjYCDAwqCyADQQA2AhwgAyABNgIUIANB+SA2AhAgA0EPNgIMQQAhAgwpC0EAIQACQCADKAI4IgJFDQAgAigCMCICRQ0AIAMgAhEAACEACyAADQELQQ4hAgwOCyAAQRVGBEAgA0ECNgIcIAMgATYCFCADQdIbNgIQIANBFTYCDEEAIQIMJwsgA0EANgIcIAMgATYCFCADQd0ONgIQIANBEjYCDEEAIQIMJgtBKiECDAwLIAEgBEcEQCADQQk2AgggAyABNgIEQSkhAgwMC0EmIQIMJAsgAyADKQMgIgwgBCABa60iCn0iC0IAIAsgDFgbNwMgIAogDFQEQEElIQIMJAsgAygCBCEAIANBADYCBCADIAAgASAMp2oiARAyIgBFDQAgA0EFNgIcIAMgATYCFCADIAA2AgxBACECDCMLQQ8hAgwJC0IAIQoCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAS0AAEEwaw43FxYAAQIDBAUGBxQUFBQUFBQICQoLDA0UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFA4PEBESExQLQgIhCgwWC0IDIQoMFQtCBCEKDBQLQgUhCgwTC0IGIQoMEgtCByEKDBELQgghCgwQC0IJIQoMDwtCCiEKDA4LQgshCgwNC0IMIQoMDAtCDSEKDAsLQg4hCgwKC0IPIQoMCQtCCiEKDAgLQgshCgwHC0IMIQoMBgtCDSEKDAULQg4hCgwEC0IPIQoMAwsgA0EANgIcIAMgATYCFCADQZ8VNgIQIANBDDYCDEEAIQIMIQsgASAERgRAQSIhAgwhC0IAIQoCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEtAABBMGsONxUUAAECAwQFBgcWFhYWFhYWCAkKCwwNFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYODxAREhMWC0ICIQoMFAtCAyEKDBMLQgQhCgwSC0IFIQoMEQtCBiEKDBALQgchCgwPC0IIIQoMDgtCCSEKDA0LQgohCgwMC0ILIQoMCwtCDCEKDAoLQg0hCgwJC0IOIQoMCAtCDyEKDAcLQgohCgwGC0ILIQoMBQtCDCEKDAQLQg0hCgwDC0IOIQoMAgtCDyEKDAELQgEhCgsgAUEBaiEBIAMpAyAiC0L//////////w9YBEAgAyALQgSGIAqENwMgDAILIANBADYCHCADIAE2AhQgA0G1CTYCECADQQw2AgxBACECDB4LQSchAgwEC0EoIQIMAwsgAyABOgAsIANBADYCACAHQQFqIQFBDCECDAILIANBADYCACAGQQFqIQFBCiECDAELIAFBAWohAUEIIQIMAAsAC0EAIQIgA0EANgIcIAMgATYCFCADQbI4NgIQIANBCDYCDAwXC0EAIQIgA0EANgIcIAMgATYCFCADQYMRNgIQIANBCTYCDAwWC0EAIQIgA0EANgIcIAMgATYCFCADQd8KNgIQIANBCTYCDAwVC0EAIQIgA0EANgIcIAMgATYCFCADQe0QNgIQIANBCTYCDAwUC0EAIQIgA0EANgIcIAMgATYCFCADQdIRNgIQIANBCTYCDAwTC0EAIQIgA0EANgIcIAMgATYCFCADQbI4NgIQIANBCDYCDAwSC0EAIQIgA0EANgIcIAMgATYCFCADQYMRNgIQIANBCTYCDAwRC0EAIQIgA0EANgIcIAMgATYCFCADQd8KNgIQIANBCTYCDAwQC0EAIQIgA0EANgIcIAMgATYCFCADQe0QNgIQIANBCTYCDAwPC0EAIQIgA0EANgIcIAMgATYCFCADQdIRNgIQIANBCTYCDAwOC0EAIQIgA0EANgIcIAMgATYCFCADQbkXNgIQIANBDzYCDAwNC0EAIQIgA0EANgIcIAMgATYCFCADQbkXNgIQIANBDzYCDAwMC0EAIQIgA0EANgIcIAMgATYCFCADQZkTNgIQIANBCzYCDAwLC0EAIQIgA0EANgIcIAMgATYCFCADQZ0JNgIQIANBCzYCDAwKC0EAIQIgA0EANgIcIAMgATYCFCADQZcQNgIQIANBCjYCDAwJC0EAIQIgA0EANgIcIAMgATYCFCADQbEQNgIQIANBCjYCDAwIC0EAIQIgA0EANgIcIAMgATYCFCADQbsdNgIQIANBAjYCDAwHC0EAIQIgA0EANgIcIAMgATYCFCADQZYWNgIQIANBAjYCDAwGC0EAIQIgA0EANgIcIAMgATYCFCADQfkYNgIQIANBAjYCDAwFC0EAIQIgA0EANgIcIAMgATYCFCADQcQYNgIQIANBAjYCDAwECyADQQI2AhwgAyABNgIUIANBqR42AhAgA0EWNgIMQQAhAgwDC0HeACECIAEgBEYNAiAJQQhqIQcgAygCACEFAkACQCABIARHBEAgBUGWyABqIQggBCAFaiABayEGIAVBf3NBCmoiBSABaiEAA0AgAS0AACAILQAARwRAQQIhCAwDCyAFRQRAQQAhCCAAIQEMAwsgBUEBayEFIAhBAWohCCAEIAFBAWoiAUcNAAsgBiEFIAQhAQsgB0EBNgIAIAMgBTYCAAwBCyADQQA2AgAgByAINgIACyAHIAE2AgQgCSgCDCEAAkACQCAJKAIIQQFrDgIEAQALIANBADYCHCADQcIeNgIQIANBFzYCDCADIABBAWo2AhRBACECDAMLIANBADYCHCADIAA2AhQgA0HXHjYCECADQQk2AgxBACECDAILIAEgBEYEQEEoIQIMAgsgA0EJNgIIIAMgATYCBEEnIQIMAQsgASAERgRAQQEhAgwBCwNAAkACQAJAIAEtAABBCmsOBAABAQABCyABQQFqIQEMAQsgAUEBaiEBIAMtAC5BIHENAEEAIQIgA0EANgIcIAMgATYCFCADQaEhNgIQIANBBTYCDAwCC0EBIQIgASAERw0ACwsgCUEQaiQAIAJFBEAgAygCDCEADAELIAMgAjYCHEEAIQAgAygCBCIBRQ0AIAMgASAEIAMoAggRAQAiAUUNACADIAQ2AhQgAyABNgIMIAEhAAsgAAu+AgECfyAAQQA6AAAgAEHkAGoiAUEBa0EAOgAAIABBADoAAiAAQQA6AAEgAUEDa0EAOgAAIAFBAmtBADoAACAAQQA6AAMgAUEEa0EAOgAAQQAgAGtBA3EiASAAaiIAQQA2AgBB5AAgAWtBfHEiAiAAaiIBQQRrQQA2AgACQCACQQlJDQAgAEEANgIIIABBADYCBCABQQhrQQA2AgAgAUEMa0EANgIAIAJBGUkNACAAQQA2AhggAEEANgIUIABBADYCECAAQQA2AgwgAUEQa0EANgIAIAFBFGtBADYCACABQRhrQQA2AgAgAUEca0EANgIAIAIgAEEEcUEYciICayIBQSBJDQAgACACaiEAA0AgAEIANwMYIABCADcDECAAQgA3AwggAEIANwMAIABBIGohACABQSBrIgFBH0sNAAsLC1YBAX8CQCAAKAIMDQACQAJAAkACQCAALQAxDgMBAAMCCyAAKAI4IgFFDQAgASgCMCIBRQ0AIAAgAREAACIBDQMLQQAPCwALIABByhk2AhBBDiEBCyABCxoAIAAoAgxFBEAgAEHeHzYCECAAQRU2AgwLCxQAIAAoAgxBFUYEQCAAQQA2AgwLCxQAIAAoAgxBFkYEQCAAQQA2AgwLCwcAIAAoAgwLBwAgACgCEAsJACAAIAE2AhALBwAgACgCFAsrAAJAIABBJ08NAEL//////wkgAK2IQgGDUA0AIABBAnRB0DhqKAIADwsACxcAIABBL08EQAALIABBAnRB7DlqKAIAC78JAQF/QfQtIQECQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAQeQAaw70A2NiAAFhYWFhYWECAwQFYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYQYHCAkKCwwNDg9hYWFhYRBhYWFhYWFhYWFhYRFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWESExQVFhcYGRobYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1NmE3ODk6YWFhYWFhYWE7YWFhPGFhYWE9Pj9hYWFhYWFhYUBhYUFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFCQ0RFRkdISUpLTE1OT1BRUlNhYWFhYWFhYVRVVldYWVpbYVxdYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhXmFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYV9gYQtB6iwPC0GYJg8LQe0xDwtBoDcPC0HJKQ8LQbQpDwtBli0PC0HrKw8LQaI1DwtB2zQPC0HgKQ8LQeMkDwtB1SQPC0HuJA8LQeYlDwtByjQPC0HQNw8LQao1DwtB9SwPC0H2Jg8LQYIiDwtB8jMPC0G+KA8LQec3DwtBzSEPC0HAIQ8LQbglDwtByyUPC0GWJA8LQY80DwtBzTUPC0HdKg8LQe4zDwtBnDQPC0GeMQ8LQfQ1DwtB5SIPC0GvJQ8LQZkxDwtBsjYPC0H5Ng8LQcQyDwtB3SwPC0GCMQ8LQcExDwtBjTcPC0HJJA8LQew2DwtB5yoPC0HIIw8LQeIhDwtByTcPC0GlIg8LQZQiDwtB2zYPC0HeNQ8LQYYmDwtBvCsPC0GLMg8LQaAjDwtB9jAPC0GALA8LQYkrDwtBpCYPC0HyIw8LQYEoDwtBqzIPC0HrJw8LQcI2DwtBoiQPC0HPKg8LQdwjDwtBhycPC0HkNA8LQbciDwtBrTEPC0HVIg8LQa80DwtB3iYPC0HWMg8LQfQ0DwtBgTgPC0H0Nw8LQZI2DwtBnScPC0GCKQ8LQY0jDwtB1zEPC0G9NQ8LQbQ3DwtB2DAPC0G2Jw8LQZo4DwtBpyoPC0HEJw8LQa4jDwtB9SIPCwALQcomIQELIAELFwAgACAALwEuQf7/A3EgAUEAR3I7AS4LGgAgACAALwEuQf3/A3EgAUEAR0EBdHI7AS4LGgAgACAALwEuQfv/A3EgAUEAR0ECdHI7AS4LGgAgACAALwEuQff/A3EgAUEAR0EDdHI7AS4LGgAgACAALwEuQe//A3EgAUEAR0EEdHI7AS4LGgAgACAALwEuQd//A3EgAUEAR0EFdHI7AS4LGgAgACAALwEuQb//A3EgAUEAR0EGdHI7AS4LGgAgACAALwEuQf/+A3EgAUEAR0EHdHI7AS4LGgAgACAALwEuQf/9A3EgAUEAR0EIdHI7AS4LGgAgACAALwEuQf/7A3EgAUEAR0EJdHI7AS4LPgECfwJAIAAoAjgiA0UNACADKAIEIgNFDQAgACABIAIgAWsgAxEBACIEQX9HDQAgAEHhEjYCEEEYIQQLIAQLPgECfwJAIAAoAjgiA0UNACADKAIIIgNFDQAgACABIAIgAWsgAxEBACIEQX9HDQAgAEH8ETYCEEEYIQQLIAQLPgECfwJAIAAoAjgiA0UNACADKAIMIgNFDQAgACABIAIgAWsgAxEBACIEQX9HDQAgAEHsCjYCEEEYIQQLIAQLPgECfwJAIAAoAjgiA0UNACADKAIQIgNFDQAgACABIAIgAWsgAxEBACIEQX9HDQAgAEH6HjYCEEEYIQQLIAQLPgECfwJAIAAoAjgiA0UNACADKAIUIgNFDQAgACABIAIgAWsgAxEBACIEQX9HDQAgAEHLEDYCEEEYIQQLIAQLPgECfwJAIAAoAjgiA0UNACADKAIYIgNFDQAgACABIAIgAWsgAxEBACIEQX9HDQAgAEG3HzYCEEEYIQQLIAQLPgECfwJAIAAoAjgiA0UNACADKAIcIgNFDQAgACABIAIgAWsgAxEBACIEQX9HDQAgAEG/FTYCEEEYIQQLIAQLPgECfwJAIAAoAjgiA0UNACADKAIsIgNFDQAgACABIAIgAWsgAxEBACIEQX9HDQAgAEH+CDYCEEEYIQQLIAQLPgECfwJAIAAoAjgiA0UNACADKAIgIgNFDQAgACABIAIgAWsgAxEBACIEQX9HDQAgAEGMHTYCEEEYIQQLIAQLPgECfwJAIAAoAjgiA0UNACADKAIkIgNFDQAgACABIAIgAWsgAxEBACIEQX9HDQAgAEHmFTYCEEEYIQQLIAQLOAAgAAJ/IAAvATJBFHFBFEYEQEEBIAAtAChBAUYNARogAC8BNEHlAEYMAQsgAC0AKUEFRgs6ADALWQECfwJAIAAtAChBAUYNACAALwE0IgFB5ABrQeQASQ0AIAFBzAFGDQAgAUGwAkYNACAALwEyIgBBwABxDQBBASECIABBiARxQYAERg0AIABBKHFFIQILIAILjAEBAn8CQAJAAkAgAC0AKkUNACAALQArRQ0AIAAvATIiAUECcUUNAQwCCyAALwEyIgFBAXFFDQELQQEhAiAALQAoQQFGDQAgAC8BNCIAQeQAa0HkAEkNACAAQcwBRg0AIABBsAJGDQAgAUHAAHENAEEAIQIgAUGIBHFBgARGDQAgAUEocUEARyECCyACC1cAIABBGGpCADcDACAAQgA3AwAgAEE4akIANwMAIABBMGpCADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEH9ATYCHAsGACAAEDoLmi0BC38jAEEQayIKJABB3NUAKAIAIglFBEBBnNkAKAIAIgVFBEBBqNkAQn83AgBBoNkAQoCAhICAgMAANwIAQZzZACAKQQhqQXBxQdiq1aoFcyIFNgIAQbDZAEEANgIAQYDZAEEANgIAC0GE2QBBwNkENgIAQdTVAEHA2QQ2AgBB6NUAIAU2AgBB5NUAQX82AgBBiNkAQcCmAzYCAANAIAFBgNYAaiABQfTVAGoiAjYCACACIAFB7NUAaiIDNgIAIAFB+NUAaiADNgIAIAFBiNYAaiABQfzVAGoiAzYCACADIAI2AgAgAUGQ1gBqIAFBhNYAaiICNgIAIAIgAzYCACABQYzWAGogAjYCACABQSBqIgFBgAJHDQALQczZBEGBpgM2AgBB4NUAQazZACgCADYCAEHQ1QBBgKYDNgIAQdzVAEHI2QQ2AgBBzP8HQTg2AgBByNkEIQkLAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAEHsAU0EQEHE1QAoAgAiBkEQIABBE2pBcHEgAEELSRsiBEEDdiIAdiIBQQNxBEACQCABQQFxIAByQQFzIgJBA3QiAEHs1QBqIgEgAEH01QBqKAIAIgAoAggiA0YEQEHE1QAgBkF+IAJ3cTYCAAwBCyABIAM2AgggAyABNgIMCyAAQQhqIQEgACACQQN0IgJBA3I2AgQgACACaiIAIAAoAgRBAXI2AgQMEQtBzNUAKAIAIgggBE8NASABBEACQEECIAB0IgJBACACa3IgASAAdHFoIgBBA3QiAkHs1QBqIgEgAkH01QBqKAIAIgIoAggiA0YEQEHE1QAgBkF+IAB3cSIGNgIADAELIAEgAzYCCCADIAE2AgwLIAIgBEEDcjYCBCAAQQN0IgAgBGshBSAAIAJqIAU2AgAgAiAEaiIEIAVBAXI2AgQgCARAIAhBeHFB7NUAaiEAQdjVACgCACEDAn9BASAIQQN2dCIBIAZxRQRAQcTVACABIAZyNgIAIAAMAQsgACgCCAsiASADNgIMIAAgAzYCCCADIAA2AgwgAyABNgIICyACQQhqIQFB2NUAIAQ2AgBBzNUAIAU2AgAMEQtByNUAKAIAIgtFDQEgC2hBAnRB9NcAaigCACIAKAIEQXhxIARrIQUgACECA0ACQCACKAIQIgFFBEAgAkEUaigCACIBRQ0BCyABKAIEQXhxIARrIgMgBUkhAiADIAUgAhshBSABIAAgAhshACABIQIMAQsLIAAoAhghCSAAKAIMIgMgAEcEQEHU1QAoAgAaIAMgACgCCCIBNgIIIAEgAzYCDAwQCyAAQRRqIgIoAgAiAUUEQCAAKAIQIgFFDQMgAEEQaiECCwNAIAIhByABIgNBFGoiAigCACIBDQAgA0EQaiECIAMoAhAiAQ0ACyAHQQA2AgAMDwtBfyEEIABBv39LDQAgAEETaiIBQXBxIQRByNUAKAIAIghFDQBBACAEayEFAkACQAJAAn9BACAEQYACSQ0AGkEfIARB////B0sNABogBEEmIAFBCHZnIgBrdkEBcSAAQQF0a0E+agsiBkECdEH01wBqKAIAIgJFBEBBACEBQQAhAwwBC0EAIQEgBEEZIAZBAXZrQQAgBkEfRxt0IQBBACEDA0ACQCACKAIEQXhxIARrIgcgBU8NACACIQMgByIFDQBBACEFIAIhAQwDCyABIAJBFGooAgAiByAHIAIgAEEddkEEcWpBEGooAgAiAkYbIAEgBxshASAAQQF0IQAgAg0ACwsgASADckUEQEEAIQNBAiAGdCIAQQAgAGtyIAhxIgBFDQMgAGhBAnRB9NcAaigCACEBCyABRQ0BCwNAIAEoAgRBeHEgBGsiAiAFSSEAIAIgBSAAGyEFIAEgAyAAGyEDIAEoAhAiAAR/IAAFIAFBFGooAgALIgENAAsLIANFDQAgBUHM1QAoAgAgBGtPDQAgAygCGCEHIAMgAygCDCIARwRAQdTVACgCABogACADKAIIIgE2AgggASAANgIMDA4LIANBFGoiAigCACIBRQRAIAMoAhAiAUUNAyADQRBqIQILA0AgAiEGIAEiAEEUaiICKAIAIgENACAAQRBqIQIgACgCECIBDQALIAZBADYCAAwNC0HM1QAoAgAiAyAETwRAQdjVACgCACEBAkAgAyAEayICQRBPBEAgASAEaiIAIAJBAXI2AgQgASADaiACNgIAIAEgBEEDcjYCBAwBCyABIANBA3I2AgQgASADaiIAIAAoAgRBAXI2AgRBACEAQQAhAgtBzNUAIAI2AgBB2NUAIAA2AgAgAUEIaiEBDA8LQdDVACgCACIDIARLBEAgBCAJaiIAIAMgBGsiAUEBcjYCBEHc1QAgADYCAEHQ1QAgATYCACAJIARBA3I2AgQgCUEIaiEBDA8LQQAhASAEAn9BnNkAKAIABEBBpNkAKAIADAELQajZAEJ/NwIAQaDZAEKAgISAgIDAADcCAEGc2QAgCkEMakFwcUHYqtWqBXM2AgBBsNkAQQA2AgBBgNkAQQA2AgBBgIAECyIAIARBxwBqIgVqIgZBACAAayIHcSICTwRAQbTZAEEwNgIADA8LAkBB/NgAKAIAIgFFDQBB9NgAKAIAIgggAmohACAAIAFNIAAgCEtxDQBBACEBQbTZAEEwNgIADA8LQYDZAC0AAEEEcQ0EAkACQCAJBEBBhNkAIQEDQCABKAIAIgAgCU0EQCAAIAEoAgRqIAlLDQMLIAEoAggiAQ0ACwtBABA7IgBBf0YNBSACIQZBoNkAKAIAIgFBAWsiAyAAcQRAIAIgAGsgACADakEAIAFrcWohBgsgBCAGTw0FIAZB/v///wdLDQVB/NgAKAIAIgMEQEH02AAoAgAiByAGaiEBIAEgB00NBiABIANLDQYLIAYQOyIBIABHDQEMBwsgBiADayAHcSIGQf7///8HSw0EIAYQOyEAIAAgASgCACABKAIEakYNAyAAIQELAkAgBiAEQcgAak8NACABQX9GDQBBpNkAKAIAIgAgBSAGa2pBACAAa3EiAEH+////B0sEQCABIQAMBwsgABA7QX9HBEAgACAGaiEGIAEhAAwHC0EAIAZrEDsaDAQLIAEiAEF/Rw0FDAMLQQAhAwwMC0EAIQAMCgsgAEF/Rw0CC0GA2QBBgNkAKAIAQQRyNgIACyACQf7///8HSw0BIAIQOyEAQQAQOyEBIABBf0YNASABQX9GDQEgACABTw0BIAEgAGsiBiAEQThqTQ0BC0H02ABB9NgAKAIAIAZqIgE2AgBB+NgAKAIAIAFJBEBB+NgAIAE2AgALAkACQAJAQdzVACgCACICBEBBhNkAIQEDQCAAIAEoAgAiAyABKAIEIgVqRg0CIAEoAggiAQ0ACwwCC0HU1QAoAgAiAUEARyAAIAFPcUUEQEHU1QAgADYCAAtBACEBQYjZACAGNgIAQYTZACAANgIAQeTVAEF/NgIAQejVAEGc2QAoAgA2AgBBkNkAQQA2AgADQCABQYDWAGogAUH01QBqIgI2AgAgAiABQezVAGoiAzYCACABQfjVAGogAzYCACABQYjWAGogAUH81QBqIgM2AgAgAyACNgIAIAFBkNYAaiABQYTWAGoiAjYCACACIAM2AgAgAUGM1gBqIAI2AgAgAUEgaiIBQYACRw0AC0F4IABrQQ9xIgEgAGoiAiAGQThrIgMgAWsiAUEBcjYCBEHg1QBBrNkAKAIANgIAQdDVACABNgIAQdzVACACNgIAIAAgA2pBODYCBAwCCyAAIAJNDQAgAiADSQ0AIAEoAgxBCHENAEF4IAJrQQ9xIgAgAmoiA0HQ1QAoAgAgBmoiByAAayIAQQFyNgIEIAEgBSAGajYCBEHg1QBBrNkAKAIANgIAQdDVACAANgIAQdzVACADNgIAIAIgB2pBODYCBAwBCyAAQdTVACgCAEkEQEHU1QAgADYCAAsgACAGaiEDQYTZACEBAkACQAJAA0AgAyABKAIARwRAIAEoAggiAQ0BDAILCyABLQAMQQhxRQ0BC0GE2QAhAQNAIAEoAgAiAyACTQRAIAMgASgCBGoiBSACSw0DCyABKAIIIQEMAAsACyABIAA2AgAgASABKAIEIAZqNgIEIABBeCAAa0EPcWoiCSAEQQNyNgIEIANBeCADa0EPcWoiBiAEIAlqIgRrIQEgAiAGRgRAQdzVACAENgIAQdDVAEHQ1QAoAgAgAWoiADYCACAEIABBAXI2AgQMCAtB2NUAKAIAIAZGBEBB2NUAIAQ2AgBBzNUAQczVACgCACABaiIANgIAIAQgAEEBcjYCBCAAIARqIAA2AgAMCAsgBigCBCIFQQNxQQFHDQYgBUF4cSEIIAVB/wFNBEAgBUEDdiEDIAYoAggiACAGKAIMIgJGBEBBxNUAQcTVACgCAEF+IAN3cTYCAAwHCyACIAA2AgggACACNgIMDAYLIAYoAhghByAGIAYoAgwiAEcEQCAAIAYoAggiAjYCCCACIAA2AgwMBQsgBkEUaiICKAIAIgVFBEAgBigCECIFRQ0EIAZBEGohAgsDQCACIQMgBSIAQRRqIgIoAgAiBQ0AIABBEGohAiAAKAIQIgUNAAsgA0EANgIADAQLQXggAGtBD3EiASAAaiIHIAZBOGsiAyABayIBQQFyNgIEIAAgA2pBODYCBCACIAVBNyAFa0EPcWpBP2siAyADIAJBEGpJGyIDQSM2AgRB4NUAQazZACgCADYCAEHQ1QAgATYCAEHc1QAgBzYCACADQRBqQYzZACkCADcCACADQYTZACkCADcCCEGM2QAgA0EIajYCAEGI2QAgBjYCAEGE2QAgADYCAEGQ2QBBADYCACADQSRqIQEDQCABQQc2AgAgBSABQQRqIgFLDQALIAIgA0YNACADIAMoAgRBfnE2AgQgAyADIAJrIgU2AgAgAiAFQQFyNgIEIAVB/wFNBEAgBUF4cUHs1QBqIQACf0HE1QAoAgAiAUEBIAVBA3Z0IgNxRQRAQcTVACABIANyNgIAIAAMAQsgACgCCAsiASACNgIMIAAgAjYCCCACIAA2AgwgAiABNgIIDAELQR8hASAFQf///wdNBEAgBUEmIAVBCHZnIgBrdkEBcSAAQQF0a0E+aiEBCyACIAE2AhwgAkIANwIQIAFBAnRB9NcAaiEAQcjVACgCACIDQQEgAXQiBnFFBEAgACACNgIAQcjVACADIAZyNgIAIAIgADYCGCACIAI2AgggAiACNgIMDAELIAVBGSABQQF2a0EAIAFBH0cbdCEBIAAoAgAhAwJAA0AgAyIAKAIEQXhxIAVGDQEgAUEddiEDIAFBAXQhASAAIANBBHFqQRBqIgYoAgAiAw0ACyAGIAI2AgAgAiAANgIYIAIgAjYCDCACIAI2AggMAQsgACgCCCIBIAI2AgwgACACNgIIIAJBADYCGCACIAA2AgwgAiABNgIIC0HQ1QAoAgAiASAETQ0AQdzVACgCACIAIARqIgIgASAEayIBQQFyNgIEQdDVACABNgIAQdzVACACNgIAIAAgBEEDcjYCBCAAQQhqIQEMCAtBACEBQbTZAEEwNgIADAcLQQAhAAsgB0UNAAJAIAYoAhwiAkECdEH01wBqIgMoAgAgBkYEQCADIAA2AgAgAA0BQcjVAEHI1QAoAgBBfiACd3E2AgAMAgsgB0EQQRQgBygCECAGRhtqIAA2AgAgAEUNAQsgACAHNgIYIAYoAhAiAgRAIAAgAjYCECACIAA2AhgLIAZBFGooAgAiAkUNACAAQRRqIAI2AgAgAiAANgIYCyABIAhqIQEgBiAIaiIGKAIEIQULIAYgBUF+cTYCBCABIARqIAE2AgAgBCABQQFyNgIEIAFB/wFNBEAgAUF4cUHs1QBqIQACf0HE1QAoAgAiAkEBIAFBA3Z0IgFxRQRAQcTVACABIAJyNgIAIAAMAQsgACgCCAsiASAENgIMIAAgBDYCCCAEIAA2AgwgBCABNgIIDAELQR8hBSABQf///wdNBEAgAUEmIAFBCHZnIgBrdkEBcSAAQQF0a0E+aiEFCyAEIAU2AhwgBEIANwIQIAVBAnRB9NcAaiEAQcjVACgCACICQQEgBXQiA3FFBEAgACAENgIAQcjVACACIANyNgIAIAQgADYCGCAEIAQ2AgggBCAENgIMDAELIAFBGSAFQQF2a0EAIAVBH0cbdCEFIAAoAgAhAAJAA0AgACICKAIEQXhxIAFGDQEgBUEddiEAIAVBAXQhBSACIABBBHFqQRBqIgMoAgAiAA0ACyADIAQ2AgAgBCACNgIYIAQgBDYCDCAEIAQ2AggMAQsgAigCCCIAIAQ2AgwgAiAENgIIIARBADYCGCAEIAI2AgwgBCAANgIICyAJQQhqIQEMAgsCQCAHRQ0AAkAgAygCHCIBQQJ0QfTXAGoiAigCACADRgRAIAIgADYCACAADQFByNUAIAhBfiABd3EiCDYCAAwCCyAHQRBBFCAHKAIQIANGG2ogADYCACAARQ0BCyAAIAc2AhggAygCECIBBEAgACABNgIQIAEgADYCGAsgA0EUaigCACIBRQ0AIABBFGogATYCACABIAA2AhgLAkAgBUEPTQRAIAMgBCAFaiIAQQNyNgIEIAAgA2oiACAAKAIEQQFyNgIEDAELIAMgBGoiAiAFQQFyNgIEIAMgBEEDcjYCBCACIAVqIAU2AgAgBUH/AU0EQCAFQXhxQezVAGohAAJ/QcTVACgCACIBQQEgBUEDdnQiBXFFBEBBxNUAIAEgBXI2AgAgAAwBCyAAKAIICyIBIAI2AgwgACACNgIIIAIgADYCDCACIAE2AggMAQtBHyEBIAVB////B00EQCAFQSYgBUEIdmciAGt2QQFxIABBAXRrQT5qIQELIAIgATYCHCACQgA3AhAgAUECdEH01wBqIQBBASABdCIEIAhxRQRAIAAgAjYCAEHI1QAgBCAIcjYCACACIAA2AhggAiACNgIIIAIgAjYCDAwBCyAFQRkgAUEBdmtBACABQR9HG3QhASAAKAIAIQQCQANAIAQiACgCBEF4cSAFRg0BIAFBHXYhBCABQQF0IQEgACAEQQRxakEQaiIGKAIAIgQNAAsgBiACNgIAIAIgADYCGCACIAI2AgwgAiACNgIIDAELIAAoAggiASACNgIMIAAgAjYCCCACQQA2AhggAiAANgIMIAIgATYCCAsgA0EIaiEBDAELAkAgCUUNAAJAIAAoAhwiAUECdEH01wBqIgIoAgAgAEYEQCACIAM2AgAgAw0BQcjVACALQX4gAXdxNgIADAILIAlBEEEUIAkoAhAgAEYbaiADNgIAIANFDQELIAMgCTYCGCAAKAIQIgEEQCADIAE2AhAgASADNgIYCyAAQRRqKAIAIgFFDQAgA0EUaiABNgIAIAEgAzYCGAsCQCAFQQ9NBEAgACAEIAVqIgFBA3I2AgQgACABaiIBIAEoAgRBAXI2AgQMAQsgACAEaiIHIAVBAXI2AgQgACAEQQNyNgIEIAUgB2ogBTYCACAIBEAgCEF4cUHs1QBqIQFB2NUAKAIAIQMCf0EBIAhBA3Z0IgIgBnFFBEBBxNUAIAIgBnI2AgAgAQwBCyABKAIICyICIAM2AgwgASADNgIIIAMgATYCDCADIAI2AggLQdjVACAHNgIAQczVACAFNgIACyAAQQhqIQELIApBEGokACABC0MAIABFBEA/AEEQdA8LAkAgAEH//wNxDQAgAEEASA0AIABBEHZAACIAQX9GBEBBtNkAQTA2AgBBfw8LIABBEHQPCwALC5lCIgBBgAgLDQEAAAAAAAAAAgAAAAMAQZgICwUEAAAABQBBqAgLCQYAAAAHAAAACABB5AgLwjJJbnZhbGlkIGNoYXIgaW4gdXJsIHF1ZXJ5AFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fYm9keQBDb250ZW50LUxlbmd0aCBvdmVyZmxvdwBDaHVuayBzaXplIG92ZXJmbG93AEludmFsaWQgbWV0aG9kIGZvciBIVFRQL3gueCByZXF1ZXN0AEludmFsaWQgbWV0aG9kIGZvciBSVFNQL3gueCByZXF1ZXN0AEV4cGVjdGVkIFNPVVJDRSBtZXRob2QgZm9yIElDRS94LnggcmVxdWVzdABJbnZhbGlkIGNoYXIgaW4gdXJsIGZyYWdtZW50IHN0YXJ0AEV4cGVjdGVkIGRvdABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3N0YXR1cwBJbnZhbGlkIHJlc3BvbnNlIHN0YXR1cwBFeHBlY3RlZCBMRiBhZnRlciBoZWFkZXJzAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMAVXNlciBjYWxsYmFjayBlcnJvcgBgb25fcmVzZXRgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19oZWFkZXJgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3Byb3RvY29sX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fcHJvdG9jb2wARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgAVHJhbnNmZXItRW5jb2RpbmcgY2FuJ3QgYmUgcHJlc2VudCB3aXRoIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgc2l6ZQBFeHBlY3RlZCBMRiBhZnRlciBjaHVuayBzaXplAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBVbmV4cGVjdGVkIHdoaXRlc3BhY2UgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciBjaHVuayBleHRlbnNpb24gdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIHF1b3RlZC1wYWlyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fcHJvdG9jb2xfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciByZXNwb25zZSBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgZXh0ZW5zaW9uIG5hbWUASW52YWxpZCBzdGF0dXMgY29kZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABNaXNzaW5nIGV4cGVjdGVkIENSIGFmdGVyIGNodW5rIGRhdGEARXhwZWN0ZWQgTEYgYWZ0ZXIgY2h1bmsgZGF0YQBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AARGF0YSBhZnRlciBgQ29ubmVjdGlvbjogY2xvc2VgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBRVUVSWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAEV4cGVjdGVkIExGIGFmdGVyIENSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX1BST1RPQ09MX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8sIFJUU1AvIG9yIElDRS8A5xUAAK8VAACkEgAAkhoAACYWAACeFAAA2xkAAHkVAAB+EgAA/hQAADYVAAALFgAA2BYAAPMSAABCGAAArBYAABIVAAAUFwAA7xcAAEgUAABxFwAAshoAAGsZAAB+GQAANRQAAIIaAABEFwAA/RYAAB4YAACHFwAAqhkAAJMSAAAHGAAALBcAAMoXAACkFwAA5xUAAOcVAABYFwAAOxgAAKASAAAtHAAAwxEAAEgRAADeEgAAQhMAAKQZAAD9EAAA9xUAAKUVAADvFgAA+BkAAEoWAABWFgAA9RUAAAoaAAAIGgAAARoAAKsVAABCEgAA1xAAAEwRAAAFGQAAVBYAAB4RAADKGQAAyBkAAE4WAAD/GAAAcRQAAPAVAADuFQAAlBkAAPwVAAC/GQAAmxkAAHwUAABDEQAAcBgAAJUUAAAnFAAAGRQAANUSAADUGQAARBYAAPcQAEG5OwsBAQBB0DsL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBuj0LBAEAAAIAQdE9C14DBAMDAwMDAAADAwADAwADAwMDAwMDAwMDAAUAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAwADAEG6PwsEAQAAAgBB0T8LXgMAAwMDAwMAAAMDAAMDAAMDAwMDAwMDAwMABAAFAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwADAAMAQbDBAAsNbG9zZWVlcC1hbGl2ZQBBycEACwEBAEHgwQAL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBycMACwEBAEHgwwAL5wEBAQEBAQEBAQEBAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAWNodW5rZWQAQfHFAAteAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBB0McACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQYDIAAsgcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQpTTQ0KDQoAQanIAAsFAQIAAQMAQcDIAAtfBAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanKAAsFAQIAAQMAQcDKAAtfBAUFBgUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanMAAsEAQAAAQBBwcwAC14CAgACAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAEGpzgALBQECAAEDAEHAzgALXwQFAAAFBQUFBQUFBQUFBQYFBQUFBQUFBQUFBQUABQAHCAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQAFAAUABQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAAAAFAEGp0AALBQEBAAEBAEHA0AALAQEAQdrQAAtBAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQanSAAsFAQEAAQEAQcDSAAsBAQBBytIACwYCAAAAAAIAQeHSAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBBoNQAC50BTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRVVFUllPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFVFRQQ0VUU1BBRFRQLw==",wasmBuffer;Object.defineProperty(module,"exports",{get:()=>wasmBuffer||(wasmBuffer=Buffer2.from(wasmBase64,"base64"))})}});var require_llhttp_simd_wasm=__commonJS({"node_modules/undici/lib/llhttp/llhttp_simd-wasm.js"(exports,module){"use strict";var{Buffer:Buffer2}=__require("node:buffer"),wasmBase64="AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAn9/AGABfwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAzU0BQYAAAMAAAAAAAADAQMAAwMDAAACAAAAAAICAgICAgICAgIBAQEBAQEBAQEBAwAAAwAAAAQFAXABExMFAwEAAgYIAX8BQcDZBAsHxQcoBm1lbW9yeQIAC19pbml0aWFsaXplAAgZX19pbmRpcmVjdF9mdW5jdGlvbl90YWJsZQEAC2xsaHR0cF9pbml0AAkYbGxodHRwX3Nob3VsZF9rZWVwX2FsaXZlADcMbGxodHRwX2FsbG9jAAsGbWFsbG9jADkLbGxodHRwX2ZyZWUADARmcmVlAAwPbGxodHRwX2dldF90eXBlAA0VbGxodHRwX2dldF9odHRwX21ham9yAA4VbGxodHRwX2dldF9odHRwX21pbm9yAA8RbGxodHRwX2dldF9tZXRob2QAEBZsbGh0dHBfZ2V0X3N0YXR1c19jb2RlABESbGxodHRwX2dldF91cGdyYWRlABIMbGxodHRwX3Jlc2V0ABMObGxodHRwX2V4ZWN1dGUAFBRsbGh0dHBfc2V0dGluZ3NfaW5pdAAVDWxsaHR0cF9maW5pc2gAFgxsbGh0dHBfcGF1c2UAFw1sbGh0dHBfcmVzdW1lABgbbGxodHRwX3Jlc3VtZV9hZnRlcl91cGdyYWRlABkQbGxodHRwX2dldF9lcnJubwAaF2xsaHR0cF9nZXRfZXJyb3JfcmVhc29uABsXbGxodHRwX3NldF9lcnJvcl9yZWFzb24AHBRsbGh0dHBfZ2V0X2Vycm9yX3BvcwAdEWxsaHR0cF9lcnJub19uYW1lAB4SbGxodHRwX21ldGhvZF9uYW1lAB8SbGxodHRwX3N0YXR1c19uYW1lACAabGxodHRwX3NldF9sZW5pZW50X2hlYWRlcnMAISFsbGh0dHBfc2V0X2xlbmllbnRfY2h1bmtlZF9sZW5ndGgAIh1sbGh0dHBfc2V0X2xlbmllbnRfa2VlcF9hbGl2ZQAjJGxsaHR0cF9zZXRfbGVuaWVudF90cmFuc2Zlcl9lbmNvZGluZwAkGmxsaHR0cF9zZXRfbGVuaWVudF92ZXJzaW9uACUjbGxodHRwX3NldF9sZW5pZW50X2RhdGFfYWZ0ZXJfY2xvc2UAJidsbGh0dHBfc2V0X2xlbmllbnRfb3B0aW9uYWxfbGZfYWZ0ZXJfY3IAJyxsbGh0dHBfc2V0X2xlbmllbnRfb3B0aW9uYWxfY3JsZl9hZnRlcl9jaHVuawAoKGxsaHR0cF9zZXRfbGVuaWVudF9vcHRpb25hbF9jcl9iZWZvcmVfbGYAKSpsbGh0dHBfc2V0X2xlbmllbnRfc3BhY2VzX2FmdGVyX2NodW5rX3NpemUAKhhsbGh0dHBfbWVzc2FnZV9uZWVkc19lb2YANgkYAQBBAQsSAQIDBAUKBgcyNDMuKy8tLDAxCuzaAjQWAEHA1QAoAgAEQAALQcDVAEEBNgIACxQAIAAQOCAAIAI2AjggACABOgAoCxQAIAAgAC8BNCAALQAwIAAQNxAACx4BAX9BwAAQOiIBEDggAUGACDYCOCABIAA6ACggAQuPDAEHfwJAIABFDQAgAEEIayIBIABBBGsoAgAiAEF4cSIEaiEFAkAgAEEBcQ0AIABBA3FFDQEgASABKAIAIgBrIgFB1NUAKAIASQ0BIAAgBGohBAJAAkBB2NUAKAIAIAFHBEAgAEH/AU0EQCAAQQN2IQMgASgCCCIAIAEoAgwiAkYEQEHE1QBBxNUAKAIAQX4gA3dxNgIADAULIAIgADYCCCAAIAI2AgwMBAsgASgCGCEGIAEgASgCDCIARwRAIAAgASgCCCICNgIIIAIgADYCDAwDCyABQRRqIgMoAgAiAkUEQCABKAIQIgJFDQIgAUEQaiEDCwNAIAMhByACIgBBFGoiAygCACICDQAgAEEQaiEDIAAoAhAiAg0ACyAHQQA2AgAMAgsgBSgCBCIAQQNxQQNHDQIgBSAAQX5xNgIEQczVACAENgIAIAUgBDYCACABIARBAXI2AgQMAwtBACEACyAGRQ0AAkAgASgCHCICQQJ0QfTXAGoiAygCACABRgRAIAMgADYCACAADQFByNUAQcjVACgCAEF+IAJ3cTYCAAwCCyAGQRBBFCAGKAIQIAFGG2ogADYCACAARQ0BCyAAIAY2AhggASgCECICBEAgACACNgIQIAIgADYCGAsgAUEUaigCACICRQ0AIABBFGogAjYCACACIAA2AhgLIAEgBU8NACAFKAIEIgBBAXFFDQACQAJAAkACQCAAQQJxRQRAQdzVACgCACAFRgRAQdzVACABNgIAQdDVAEHQ1QAoAgAgBGoiADYCACABIABBAXI2AgQgAUHY1QAoAgBHDQZBzNUAQQA2AgBB2NUAQQA2AgAMBgtB2NUAKAIAIAVGBEBB2NUAIAE2AgBBzNUAQczVACgCACAEaiIANgIAIAEgAEEBcjYCBCAAIAFqIAA2AgAMBgsgAEF4cSAEaiEEIABB/wFNBEAgAEEDdiEDIAUoAggiACAFKAIMIgJGBEBBxNUAQcTVACgCAEF+IAN3cTYCAAwFCyACIAA2AgggACACNgIMDAQLIAUoAhghBiAFIAUoAgwiAEcEQEHU1QAoAgAaIAAgBSgCCCICNgIIIAIgADYCDAwDCyAFQRRqIgMoAgAiAkUEQCAFKAIQIgJFDQIgBUEQaiEDCwNAIAMhByACIgBBFGoiAygCACICDQAgAEEQaiEDIAAoAhAiAg0ACyAHQQA2AgAMAgsgBSAAQX5xNgIEIAEgBGogBDYCACABIARBAXI2AgQMAwtBACEACyAGRQ0AAkAgBSgCHCICQQJ0QfTXAGoiAygCACAFRgRAIAMgADYCACAADQFByNUAQcjVACgCAEF+IAJ3cTYCAAwCCyAGQRBBFCAGKAIQIAVGG2ogADYCACAARQ0BCyAAIAY2AhggBSgCECICBEAgACACNgIQIAIgADYCGAsgBUEUaigCACICRQ0AIABBFGogAjYCACACIAA2AhgLIAEgBGogBDYCACABIARBAXI2AgQgAUHY1QAoAgBHDQBBzNUAIAQ2AgAMAQsgBEH/AU0EQCAEQXhxQezVAGohAAJ/QcTVACgCACICQQEgBEEDdnQiA3FFBEBBxNUAIAIgA3I2AgAgAAwBCyAAKAIICyICIAE2AgwgACABNgIIIAEgADYCDCABIAI2AggMAQtBHyECIARB////B00EQCAEQSYgBEEIdmciAGt2QQFxIABBAXRrQT5qIQILIAEgAjYCHCABQgA3AhAgAkECdEH01wBqIQACQEHI1QAoAgAiA0EBIAJ0IgdxRQRAIAAgATYCAEHI1QAgAyAHcjYCACABIAA2AhggASABNgIIIAEgATYCDAwBCyAEQRkgAkEBdmtBACACQR9HG3QhAiAAKAIAIQACQANAIAAiAygCBEF4cSAERg0BIAJBHXYhACACQQF0IQIgAyAAQQRxakEQaiIHKAIAIgANAAsgByABNgIAIAEgAzYCGCABIAE2AgwgASABNgIIDAELIAMoAggiACABNgIMIAMgATYCCCABQQA2AhggASADNgIMIAEgADYCCAtB5NUAQeTVACgCAEEBayIAQX8gABs2AgALCwcAIAAtACgLBwAgAC0AKgsHACAALQArCwcAIAAtACkLBwAgAC8BNAsHACAALQAwC0ABBH8gACgCGCEBIAAvAS4hAiAALQAoIQMgACgCOCEEIAAQOCAAIAQ2AjggACADOgAoIAAgAjsBLiAAIAE2AhgLhocCAwd/A34BeyABIAJqIQQCQCAAIgMoAgwiAA0AIAMoAgQEQCADIAE2AgQLIwBBEGsiCSQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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DAgLQeMBDAcLQdcBDAYLQdgBDAULQdkBDAQLQdoBDAMLQdsBDAILQd0BDAELQdwBCyECA0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAMCfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAn8CQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAwJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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A0EXNgIcIAMgADYCDCADIAFBAWo2AhQM+AILIABBFUYNI0EAIQIgA0EANgIcIAMgATYCFCADQdYMNgIQIANBIzYCDAz3AgsgAygCBCEAQQAhAiADQQA2AgQgAyAAIAEQNCIARQRAIAFBAWohAQwdCyADQRk2AhwgAyAANgIMIAMgAUEBajYCFAz2AgsgAygCBCEAQQAhAiADQQA2AgQgAyAAIAEQNCIARQRAIAFBAWohAQzvAgsgA0EaNgIcIAMgADYCDCADIAFBAWo2AhQM9QILIABBFUYNH0EAIQIgA0EANgIcIAMgATYCFCADQdAPNgIQIANBIjYCDAz0AgsgAygCBCEAIANBADYCBCADIAAgARAzIgBFBEAgAUEBaiEBDBsLIANBHDYCHCADIAA2AgwgAyABQQFqNgIUQQAhAgzzAgsgAygCBCEAIANBADYCBCADIAAgARAzIgBFBEAgAUEBaiEBDOsCCyADQR02AhwgAyAANgIMIAMgAUEBajYCFEEAIQIM8gILIABBO0cNASABQQFqIQELQSYhAgzXAgtBACECIANBADYCHCADIAE2AhQgA0GfFTYCECADQQw2AgwM7wILIAEgBEcEQANAIAEtAABBIEcNhAIgBCABQQFqIgFHDQALQSwhAgzvAgtBLCECDO4CCyABIARGBEBBNCECDO4CCwJAAkADQAJAIAEtAABBCmsOBAIAAAMACyAEIAFBAWoiAUcNAAtBNCECDO8CCyADKAIEIQAgA0EANgIEIAMgACABEDEiAEUNnwIgA0EyNgIcIAMgATYCFCADIAA2AgxBACECDO4CCyADKAIEIQAgA0EANgIEIAMgACABEDEiAEUEQCABQQFqIQEMnwILIANBMjYCHCADIAA2AgwgAyABQQFqNgIUQQAhAgztAgsgASAERwRAAkADQCABLQAAQTBrIgBB/wFxQQpPBEBBOiECDNcCCyADKQMgIgtCmbPmzJmz5swZVg0BIAMgC0IKfiIKNwMgIAogAK1C/wGDIgtCf4VWDQEgAyAKIAt8NwMgIAQgAUEBaiIBRw0AC0HAACECDO4CCyADKAIEIQAgA0EANgIEIAMgACABQQFqIgEQMSIADRcM4gILQcAAIQIM7AILIAEgBEYEQEHJACECDOwCCwJAA0ACQCABLQAAQQlrDhgAAqICogKpAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAgCiAgsgBCABQQFqIgFHDQALQckAIQIM7AILIAFBAWohASADQS9qLQAAQQFxDaUCIANBADYCHCADIAE2AhQgA0GXEDYCECADQQo2AgxBACECDOsCCyABIARHBEADQCABLQAAQSBHDRUgBCABQQFqIgFHDQALQfgAIQIM6wILQfgAIQIM6gILIANBAjoAKAw4C0EAIQIgA0EANgIcIANBvws2AhAgA0ECNgIMIAMgAUEBajYCFAzoAgtBACECDM4CC0ENIQIMzQILQRMhAgzMAgtBFSECDMsCC0EWIQIMygILQRghAgzJAgtBGSECDMgCC0EaIQIMxwILQRshAgzGAgtBHCECDMUCC0EdIQIMxAILQR4hAgzDAgtBHyECDMICC0EgIQIMwQILQSIhAgzAAgtBIyECDL8CC0ElIQIMvgILQeUAIQIMvQILIANBPTYCHCADIAE2AhQgAyAANgIMQQAhAgzVAgsgA0EbNgIcIAMgATYCFCADQaQcNgIQIANBFTYCDEEAIQIM1AILIANBIDYCHCADIAE2AhQgA0GYGjYCECADQRU2AgxBACECDNMCCyADQRM2AhwgAyABNgIUIANBmBo2AhAgA0EVNgIMQQAhAgzSAgsgA0ELNgIcIAMgATYCFCADQZgaNgIQIANBFTYCDEEAIQIM0QILIANBEDYCHCADIAE2AhQgA0GYGjYCECADQRU2AgxBACECDNACCyADQSA2AhwgAyABNgIUIANBpBw2AhAgA0EVNgIMQQAhAgzPAgsgA0ELNgIcIAMgATYCFCADQaQcNgIQIANBFTYCDEEAIQIMzgILIANBDDYCHCADIAE2AhQgA0GkHDYCECADQRU2AgxBACECDM0CC0EAIQIgA0EANgIcIAMgATYCFCADQd0ONgIQIANBEjYCDAzMAgsCQANAAkAgAS0AAEEKaw4EAAICAAILIAQgAUEBaiIBRw0AC0H9ASECDMwCCwJAAkAgAy0ANkEBRw0AQQAhAAJAIAMoAjgiAkUNACACKAJgIgJFDQAgAyACEQAAIQALIABFDQAgAEEVRw0BIANB/AE2AhwgAyABNgIUIANB3Bk2AhAgA0EVNgIMQQAhAgzNAgtB3AEhAgyzAgsgA0EANgIcIAMgATYCFCADQfkLNgIQIANBHzYCDEEAIQIMywILAkACQCADLQAoQQFrDgIEAQALQdsBIQIMsgILQdQBIQIMsQILIANBAjoAMUEAIQACQCADKAI4IgJFDQAgAigCACICRQ0AIAMgAhEAACEACyAARQRAQd0BIQIMsQILIABBFUcEQCADQQA2AhwgAyABNgIUIANBtAw2AhAgA0EQNgIMQQAhAgzKAgsgA0H7ATYCHCADIAE2AhQgA0GBGjYCECADQRU2AgxBACECDMkCCyABIARGBEBB+gEhAgzJAgsgAS0AAEHIAEYNASADQQE6ACgLQcABIQIMrgILQdoBIQIMrQILIAEgBEcEQCADQQw2AgggAyABNgIEQdkBIQIMrQILQfkBIQIMxQILIAEgBEYEQEH4ASECDMUCCyABLQAAQcgARw0EIAFBAWohAUHYASECDKsCCyABIARGBEBB9wEhAgzEAgsCQAJAIAEtAABBxQBrDhAABQUFBQUFBQUFBQUFBQUBBQsgAUEBaiEBQdYBIQIMqwILIAFBAWohAUHXASECDKoCC0H2ASECIAEgBEYNwgIgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABButUAai0AAEcNAyAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMwwILIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARAuIgBFBEBB4wEhAgyqAgsgA0H1ATYCHCADIAE2AhQgAyAANgIMQQAhAgzCAgtB9AEhAiABIARGDcECIAMoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQbjVAGotAABHDQIgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADMICCyADQYEEOwEoIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARAuIgANAwwCCyADQQA2AgALQQAhAiADQQA2AhwgAyABNgIUIANB5R82AhAgA0EINgIMDL8CC0HVASECDKUCCyADQfMBNgIcIAMgATYCFCADIAA2AgxBACECDL0CC0EAIQACQCADKAI4IgJFDQAgAigCQCICRQ0AIAMgAhEAACEACyAARQ1uIABBFUcEQCADQQA2AhwgAyABNgIUIANBgg82AhAgA0EgNgIMQQAhAgy9AgsgA0GPATYCHCADIAE2AhQgA0HsGzYCECADQRU2AgxBACECDLwCCyABIARHBEAgA0ENNgIIIAMgATYCBEHTASECDKMCC0HyASECDLsCCyABIARGBEBB8QEhAgy7AgsCQAJAAkAgAS0AAEHIAGsOCwABCAgICAgICAgCCAsgAUEBaiEBQdABIQIMowILIAFBAWohAUHRASECDKICCyABQQFqIQFB0gEhAgyhAgtB8AEhAiABIARGDbkCIAMoAgAiACAEIAFraiEGIAEgAGtBAmohBQNAIAEtAAAgAEG11QBqLQAARw0EIABBAkYNAyAAQQFqIQAgBCABQQFqIgFHDQALIAMgBjYCAAy5AgtB7wEhAiABIARGDbgCIAMoAgAiACAEIAFraiEGIAEgAGtBAWohBQNAIAEtAAAgAEGz1QBqLQAARw0DIABBAUYNAiAAQQFqIQAgBCABQQFqIgFHDQALIAMgBjYCAAy4AgtB7gEhAiABIARGDbcCIAMoAgAiACAEIAFraiEGIAEgAGtBAmohBQNAIAEtAAAgAEGw1QBqLQAARw0CIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBjYCAAy3AgsgAygCBCEAIANCADcDACADIAAgBUEBaiIBECsiAEUNAiADQewBNgIcIAMgATYCFCADIAA2AgxBACECDLYCCyADQQA2AgALIAMoAgQhACADQQA2AgQgAyAAIAEQKyIARQ2cAiADQe0BNgIcIAMgATYCFCADIAA2AgxBACECDLQCC0HPASECDJoCC0EAIQACQCADKAI4IgJFDQAgAigCNCICRQ0AIAMgAhEAACEACwJAIAAEQCAAQRVGDQEgA0EANgIcIAMgATYCFCADQeoNNgIQIANBJjYCDEEAIQIMtAILQc4BIQIMmgILIANB6wE2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyyAgsgASAERgRAQesBIQIMsgILIAEtAABBL0YEQCABQQFqIQEMAQsgA0EANgIcIAMgATYCFCADQbI4NgIQIANBCDYCDEEAIQIMsQILQc0BIQIMlwILIAEgBEcEQCADQQ42AgggAyABNgIEQcwBIQIMlwILQeoBIQIMrwILIAEgBEYEQEHpASECDK8CCyABLQAAQTBrIgBB/wFxQQpJBEAgAyAAOgAqIAFBAWohAUHLASECDJYCCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNlwIgA0HoATYCHCADIAE2AhQgAyAANgIMQQAhAgyuAgsgASAERgRAQecBIQIMrgILAkAgAS0AAEEuRgRAIAFBAWohAQwBCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNmAIgA0HmATYCHCADIAE2AhQgAyAANgIMQQAhAgyuAgtBygEhAgyUAgsgASAERgRAQeUBIQIMrQILQQAhAEEBIQVBASEHQQAhAgJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAIAEtAABBMGsOCgoJAAECAwQFBggLC0ECDAYLQQMMBQtBBAwEC0EFDAMLQQYMAgtBBwwBC0EICyECQQAhBUEAIQcMAgtBCSECQQEhAEEAIQVBACEHDAELQQAhBUEBIQILIAMgAjoAKyABQQFqIQECQAJAIAMtAC5BEHENAAJAAkACQCADLQAqDgMBAAIECyAHRQ0DDAILIAANAQwCCyAFRQ0BCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNAiADQeIBNgIcIAMgATYCFCADIAA2AgxBACECDK8CCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNmgIgA0HjATYCHCADIAE2AhQgAyAANgIMQQAhAgyuAgsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDZgCIANB5AE2AhwgAyABNgIUIAMgADYCDAytAgtByQEhAgyTAgtBACEAAkAgAygCOCICRQ0AIAIoAkQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0GkDTYCECADQSE2AgxBACECDK0CC0HIASECDJMCCyADQeEBNgIcIAMgATYCFCADQdAaNgIQIANBFTYCDEEAIQIMqwILIAEgBEYEQEHhASECDKsCCwJAIAEtAABBIEYEQCADQQA7ATQgAUEBaiEBDAELIANBADYCHCADIAE2AhQgA0GZETYCECADQQk2AgxBACECDKsCC0HHASECDJECCyABIARGBEBB4AEhAgyqAgsCQCABLQAAQTBrQf8BcSICQQpJBEAgAUEBaiEBAkAgAy8BNCIAQZkzSw0AIAMgAEEKbCIAOwE0IABB/v8DcSACQf//A3NLDQAgAyAAIAJqOwE0DAILQQAhAiADQQA2AhwgAyABNgIUIANBlR42AhAgA0ENNgIMDKsCCyADQQA2AhwgAyABNgIUIANBlR42AhAgA0ENNgIMQQAhAgyqAgtBxgEhAgyQAgsgASAERgRAQd8BIQIMqQILAkAgAS0AAEEwa0H/AXEiAkEKSQRAIAFBAWohAQJAIAMvATQiAEGZM0sNACADIABBCmwiADsBNCAAQf7/A3EgAkH//wNzSw0AIAMgACACajsBNAwCC0EAIQIgA0EANgIcIAMgATYCFCADQZUeNgIQIANBDTYCDAyqAgsgA0EANgIcIAMgATYCFCADQZUeNgIQIANBDTYCDEEAIQIMqQILQcUBIQIMjwILIAEgBEYEQEHeASECDKgCCwJAIAEtAABBMGtB/wFxIgJBCkkEQCABQQFqIQECQCADLwE0IgBBmTNLDQAgAyAAQQpsIgA7ATQgAEH+/wNxIAJB//8Dc0sNACADIAAgAmo7ATQMAgtBACECIANBADYCHCADIAE2AhQgA0GVHjYCECADQQ02AgwMqQILIANBADYCHCADIAE2AhQgA0GVHjYCECADQQ02AgxBACECDKgCC0HEASECDI4CCyABIARGBEBB3QEhAgynAgsCQAJAAkACQCABLQAAQQprDhcCAwMAAwMDAwMDAwMDAwMDAwMDAwMDAQMLIAFBAWoMBQsgAUEBaiEBQcMBIQIMjwILIAFBAWohASADQS9qLQAAQQFxDQggA0EANgIcIAMgATYCFCADQY0LNgIQIANBDTYCDEEAIQIMpwILIANBADYCHCADIAE2AhQgA0GNCzYCECADQQ02AgxBACECDKYCCyABIARHBEAgA0EPNgIIIAMgATYCBEEBIQIMjQILQdwBIQIMpQILAkACQANAAkAgAS0AAEEKaw4EAgAAAwALIAQgAUEBaiIBRw0AC0HbASECDKYCCyADKAIEIQAgA0EANgIEIAMgACABEC0iAEUEQCABQQFqIQEMBAsgA0HaATYCHCADIAA2AgwgAyABQQFqNgIUQQAhAgylAgsgAygCBCEAIANBADYCBCADIAAgARAtIgANASABQQFqCyEBQcEBIQIMigILIANB2QE2AhwgAyAANgIMIAMgAUEBajYCFEEAIQIMogILQcIBIQIMiAILIANBL2otAABBAXENASADQQA2AhwgAyABNgIUIANB5Bw2AhAgA0EZNgIMQQAhAgygAgsgASAERgRAQdkB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CyADIAU2AgAMkAILIANBADYCACAGQQFqIQFBGgw8C0HKASECIAEgBEYNjgIgAygCACIAIAQgAWtqIQUgASAAa0EDaiEGAkADQCABLQAAIABBjdUAai0AAEcNOyAAQQNGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMjwILIANBADYCACAGQQFqIQFBIQw7CyABIARGBEBByQEhAgyOAgsCQAJAIAEtAABBwQBrDhQAPT09PT09PT09PT09PT09PT09AT0LIAFBAWohAUGtASECDPUBCyABQQFqIQFBsAEhAgz0AQsgASAERgRAQcgBIQIMjQILAkACQCABLQAAQdUAaw4LADw8PDw8PDw8PAE8CyABQQFqIQFBrgEhAgz0AQsgAUEBaiEBQa8BIQIM8wELQccBIQIgASAERg2LAiADKAIAIgAgBCABa2ohBSABIABrQQhqIQYCQANAIAEtAAAgAEGE1QBqLQAARw04IABBCEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyMAgsgA0EANgIAIAZBAWohAUEqDDgLIAEgBEYEQEHGASECDIsCCyABLQAAQdAARw04IAFBAWohAUElDDcLQcUBIQIgASAERg2JAiADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGB1QBqLQAARw02IABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyKAgsgA0EANgIAIAZBAWohAUEODDYLIAEgBEYEQEHEASECDIkCCyABLQAAQcUARw02IAFBAWohAUGrASECDO8BCyABIARGBEBBwwEhAgyIAgsCQAJAAkACQCABLQAAQcIAaw4PAAECOTk5OTk5OTk5OTkDOQsgAUEBaiEBQacBIQIM8QELIAFBAWohAUGoASECDPABCyABQQFqIQFBqQEhAgzvAQsgAUEBaiEBQaoBIQIM7gELQcIBIQIgASAERg2GAiADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEH+1ABqLQAARw0zIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyHAgsgA0EANgIAIAZBAWohAUEUDDMLQcEBIQIgASAERg2FAiADKAIAIgAgBCABa2ohBSABIABrQQRqIQYCQANA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BTYCAAzsAQsgA0EANgIAIAZBAWohAUEXDBgLQaYBIQIgASAERg3qASADKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEHB1ABqLQAARw0XIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzrAQsgA0EANgIAIAZBAWohAUEYDBcLIAEgBEYEQEGlASECDOoBCwJAAkAgAS0AAEHJAGsOBwAZGRkZGQEZCyABQQFqIQFBiwEhAgzRAQsgAUEBaiEBQYwBIQIM0AELQaQBIQIgASAERg3oASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEGm1QBqLQAARw0VIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzpAQsgA0EANgIAIAZBAWohAUEJDBULQaMBIQIgASAERg3nASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEGk1QBqLQAARw0UIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzoAQsgA0EANgIAIAZBAWohAUEfDBQLQaIBIQIgASAERg3mASADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEG+1ABqLQAARw0TIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAznAQsgA0EANgIAIAZBAWohAUECDBMLQaEBIQIgASAERg3lASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYDQCABLQAAIABBvNQAai0AAEcNESAAQQFGDQIgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM5QELIAEgBEYEQEGgASECDOUBC0EBIAEtAABB3wBHDREaIAFBAWohAUGHASECDMsBCyADQQA2AgAgBkEBaiEBQYgBIQIMygELQZ8BIQIgASAERg3iASADKAIAIgAgBCABa2ohBSABIABrQQhqIQYCQANAIAEtAAAgAEGE1QBqLQAARw0PIABBCEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzjAQsgA0EANgIAIAZBAWohAUEpDA8LQZ4BIQIgASAERg3hASADKAIAIgAgBCABa2ohBSABIABrQQNqIQYCQANAIAEtAAAgAEG41ABqLQAARw0OIABBA0YNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAziAQsgA0EANgIAIAZBAWohAUEtDA4LIAEgBEYEQEGdASECDOEBCyABLQAAQcUARw0OIAFBAWohAUGEASECDMcBCyABIARGBEBBnAEhAgzgAQsCQAJAIAEtAABBzABrDggADw8PDw8PAQ8LIAFBAWohAUGCASECDMcBCyABQQFqIQFBgwEhAgzGAQtBmwEhAiABIARGDd4BIAMoAgAiACAEIAFraiEFIAEgAGtBBGohBgJAA0AgAS0AACAAQbPUAGotAABHDQsgAEEERg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADN8BCyADQQA2AgAgBkEBaiEBQSMMCwtBmgEhAiABIARGDd0BIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQbDUAGotAABHDQogAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADN4BCyADQQA2AgAgBkEBaiEBQQAMCgsgASAERgRAQZkBIQIM3QELAkACQCABLQAAQcgAaw4IAAwMDAwMDAEMCyABQQFqIQFB/QAhAgzEAQsgAUEBaiEBQYABIQIMwwELIAEgBEYEQEGYASECDNwBCwJAAkAgAS0AAEHOAGsOAwALAQsLIAFBAWohAUH+ACECDMMBCyABQQFqIQFB/wAhAgzCAQsgASAERgRAQZcBIQIM2wELIAEtAABB2QBHDQggAUEBaiEBQQgMBwtBlgEhAiABIARGDdkBIAMoAgAiACAEIAFraiEFIAEgAGtBA2ohBgJAA0AgAS0AACAAQazUAGotAABHDQYgAEEDRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNoBCyADQQA2AgAgBkEBaiEBQQUMBgtBlQEhAiABIARGDdgBIAMoAgAiACAEIAFraiEFIAEgAGtBBWohBgJAA0AgAS0AACAAQabUAGotAABHDQUgAEEFRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNkBCyADQQA2AgAgBkEBaiEBQRYMBQtBlAEhAiABIARGDdcBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQaHVAGotAABHDQQgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNgBCyADQQA2AgAgBkEBaiEBQRAMBAsgASAERgRAQZMBIQIM1wELAkACQCABLQAAQcMAaw4MAAYGBgYGBgYGBgYBBgsgAUEBaiEBQfkAIQIMvgELIAFBAWohAUH6ACECDL0BC0GSASECIAEgBEYN1QEgAygCACIAIAQgAWtqIQUgASAAa0EFaiEGAkADQCABLQAAIABBoNQAai0AAEcNAiAAQQVGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM1gELIANBADYCACAGQQFqIQFBJAwCCyADQQA2AgAMAgsgASAERgRAQZEBIQIM1AELIAEtAABBzABHDQEgAUEBaiEBQRMLOgApIAMoAgQhACADQQA2AgQgAyAAIAEQLiIADQIMAQtBACECIANBADYCHCADIAE2AhQgA0H+HzYCECADQQY2AgwM0QELQfgAIQIMtwELIANBkAE2AhwgAyABNgIUIAMgADYCDEEAIQIMzwELQQAhAAJAIAMoAjgiAkUNACACKAJAIgJFDQAgAyACEQAAIQALIABFDQAgAEEVRg0BIANBADYCHCADIAE2AhQgA0GCDzYCECADQSA2AgxBACECDM4BC0H3ACECDLQBCyADQY8BNgIcIAMgATYCFCADQewbNgIQIANBFTYCDEEAIQIMzAELIAEgBEYEQEGPASECDMwBCwJAIAEtAABBIEYEQCABQQFqIQEMAQsgA0EANgIcIAMgATYCFCADQZsfNgIQIANBBjYCDEEAIQIMzAELQQIhAgyyAQsDQCABLQAAQSBHDQIgBCABQQFqIgFHDQALQY4BIQIMygELIAEgBEYEQEGNASECDMoBCwJAIAEtAABBCWsOBEoAAEoAC0H1ACECDLABCyADLQApQQVGBEBB9gAhAgywAQtB9AAhAgyvAQsgASAERgRAQYwBIQIMyAELIANBEDYCCCADIAE2AgQMCgsgASAERgRAQYsBIQIMxwELAkAgAS0AAEEJaw4ERwAARwALQfMAIQIMrQELIAEgBEcEQCADQRA2AgggAyABNgIEQfEAIQIMrQELQYoBIQIMxQELAkAgASAERwRAA0AgAS0AAEGg0ABqLQAAIgBBA0cEQAJAIABBAWsOAkkABAtB8AAhAgyvAQsgBCABQQFqIgFHDQALQYgBIQIMxgELQYgBIQIMxQELIANBADYCHCADIAE2AhQgA0HbIDYCECADQQc2AgxBACECDMQBCyABIARGBEBBiQEhAgzEAQsCQAJAAkAgAS0AAEGg0gBqLQAAQQFrDgNGAgABC0HyACECDKwBCyADQQA2AhwgAyABNgIUIANBtBI2AhAgA0EHNgIMQQAhAgzEAQtB6gAhAgyqAQsgASAERwRAIAFBAWohAUHvACECDKoBC0GHASECDMIBCyAEIAEiAEYEQEGGASECDMIBCyAALQAAIgFBL0YEQCAAQQFqIQFB7gAhAgypAQsgAUEJayICQRdLDQEgACEBQQEgAnRBm4CABHENQQwBCyAEIAEiAEYEQEGFASECDMEBCyAALQAAQS9HDQAgAEEBaiEBDAMLQQAhAiADQQA2AhwgAyAANgIUIANB2yA2AhAgA0EHNgIMDL8BCwJAAkACQAJAAkADQCABLQAAQaDOAGotAAAiAEEFRwRAAkACQCAAQQFrDghHBQYHCAAEAQgLQesAIQIMrQELIAFBAWohAUHtACECDKwBCyAEIAFBAWoiAUcNAAtBhAEhAgzDAQsgAUEBagwUCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNHiADQdsANgIcIAMgATYCFCADIAA2AgxBACECDMEBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNHiADQd0ANgIcIAMgATYCFCADIAA2AgxBACECDMABCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNHiADQfoANgIcIAMgATYCFCADIAA2AgxBACECDL8BCyADQQA2AhwgAyABNgIUIANB+Q82AhAgA0EHNgIMQQAhAgy+AQsgASAERgRAQYMBIQIMvgELAkAgAS0AAEGgzgBqLQAAQQFrDgg+BAUGAAgCAwcLIAFBAWohAQtBAyECDKMBCyABQQFqDA0LQQAhAiADQQA2AhwgA0HREjYCECADQQc2AgwgAyABQQFqNgIUDLoBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNFiADQdsANgIcIAMgATYCFCADIAA2AgxBACECDLkBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNFiADQd0ANgIcIAMgATYCFCADIAA2AgxBACECDLgBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNFiADQfoANgIcIAMgATYCFCADIAA2AgxBACECDLcBCyADQQA2AhwgAyABNgIUIANB+Q82AhAgA0EHNgIMQQAhAgy2AQtB7AAhAgycAQsgASAERgRAQYIBIQIMtQELIAFBAWoMAgsgASAERgRAQYEBIQIMtAELIAFBAWoMAQsgASAERg0BIAFBAWoLIQFBBCECDJgBC0GAASECDLABCwNAIAEtAABBoMwAai0AACIAQQJHBEAgAEEBRwRAQekAIQIMmQELDDELIAQgAUEBaiIBRw0AC0H/ACECDK8BCyABIARGBEBB/gAhAgyvAQsCQCABLQAAQQlrDjcvAwYvBAYGBgYGBgYGBgYGBgYGBgYGBgUGBgIGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYABgsgAUEBagshAUEFIQIMlAELIAFBAWoMBgsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQggA0HbADYCHCADIAE2AhQgAyAANgIMQQAhAgyrAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQggA0HdADYCHCADIAE2AhQgAyAANgIMQQAhAgyqAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQggA0H6ADYCHCADIAE2AhQgAyAANgIMQQAhAgypAQsgA0EANgIcIAMgATYCFCADQY0UNgIQIANBBzYCDEEAIQIMqAELAkACQAJAAkADQCABLQAAQaDKAGotAAAiAEEFRwRAAkAgAEEBaw4GLgMEBQYABgtB6AAhAgyUAQsgBCABQQFqIgFHDQALQf0AIQIMqwELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0HIANB2wA2AhwgAyABNgIUIAMgADYCDEEAIQIMqgELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0HIANB3QA2AhwgAyABNgIUIAMgADYCDEEAIQIMqQELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0HIANB+gA2AhwgAyABNgIUIAMgADYCDEEAIQIMqAELIANBADYCHCADIAE2AhQgA0HkCDYCECADQQc2AgxBACECDKcBCyABIARGDQEgAUEBagshAUEGIQIMjAELQfwAIQIMpAELAkACQAJAAkADQCABLQAAQaDIAGotAAAiAEEFRwRAIABBAWsOBCkCAwQFCyAEIAFBAWoiAUcNAAtB+wAhAgynAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQMgA0HbADYCHCADIAE2AhQgAyAANgIMQQAhAgymAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQMgA0HdADYCHCADIAE2AhQgAyAANgIMQQAhAgylAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQMgA0H6ADYCHCADIAE2AhQgAyAANgIMQQAhAgykAQsgA0EANgIcIAMgATYCFCADQbwKNgIQIANBBzYCDEEAIQIMowELQc8AIQIMiQELQdEAIQIMiAELQecAIQIMhwELIAEgBEYEQEH6ACECDKABCwJAIAEtAABBCWsOBCAAACAACyABQQFqIQFB5gAhAgyGAQsgASAERgRAQfkAIQIMnwELAkAgAS0AAEEJaw4EHwAAHwALQQAhAAJAIAMoAjgiAkUNACACKAI4IgJFDQAgAyACEQAAIQALIABFBEBB4gEhAgyGAQsgAEEVRwRAIANBADYCHCADIAE2AhQgA0HJDTYCECADQRo2AgxBACECDJ8BCyADQfgANgIcIAMgATYCFCADQeoaNgIQIANBFTYCDEEAIQIMngELIAEgBEcEQCADQQ02AgggAyABNgIEQeQAIQIMhQELQfcAIQIMnQELIAEgBEYEQEH2ACECDJ0BCwJAAkACQCABLQAAQcgAaw4LAAELCwsLCwsLCwILCyABQQFqIQFB3QAhAgyFAQsgAUEBaiEBQeAAIQIMhAELIAFBAWohAUHjACECDIMBC0H1ACECIAEgBEYNmwEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBtdUAai0AAEcNCCAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMnAELIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARArIgAEQCADQfQANgIcIAMgATYCFCADIAA2AgxBACECDJwBC0HiACECDIIBC0EAIQACQCADKAI4IgJFDQAgAigCNCICRQ0AIAMgAhEAACEACwJAIAAEQCAAQRVGDQEgA0EANgIcIAMgATYCFCADQeoNNgIQIANBJjYCDEEAIQIMnAELQeEAIQIMggELIANB8wA2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyaAQsgAy0AKSIAQSNrQQtJDQkCQCAAQQZLDQBBASAAdEHKAHFFDQAMCgtBACECIANBADYCHCADIAE2AhQgA0HtCTYCECADQQg2AgwMmQELQfIAIQIgASAERg2YASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEGz1QBqLQAARw0FIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyZAQsgAygCBCEAIANCADcDACADIAAgBkEBaiIBECsiAARAIANB8QA2AhwgAyABNgIUIAMgADYCDEEAIQIMmQELQd8AIQIMfwtBACEAAkAgAygCOCICRQ0AIAIoAjQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0HqDTYCECADQSY2AgxBACECDJkBC0HeACECDH8LIANB8AA2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyXAQsgAy0AKUEhRg0GIANBADYCHCADIAE2AhQgA0GRCjYCECADQQg2AgxBACECDJYBC0HvACECIAEgBEYNlQEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBsNUAai0AAEcNAiAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMlgELIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARArIgBFDQIgA0HtADYCHCADIAE2AhQgAyAANgIMQQAhAgyVAQsgA0EANgIACyADKAIEIQAgA0EANgIEIAMgACABECsiAEUNgAEgA0HuADYCHCADIAE2AhQgAyAANgIMQQAhAgyTAQtB3AAhAgx5C0EAIQACQCADKAI4IgJFDQAgAigCNCICRQ0AIAMgAhEAACEACwJAIAAEQCAAQRVGDQEgA0EANgIcIAMgATYCFCADQeoNNgIQIANBJjYCDEEAIQIMkwELQdsAIQIMeQsgA0HsADYCHCADIAE2AhQgA0GAGzYCECADQRU2AgxBACECDJEBCyADLQApIgBBI0kNACAAQS5GDQAgA0EANgIcIAMgATYCFCADQckJNgIQIANBCDYCDEEAIQIMkAELQdoAIQIMdgsgASAERgRAQesAIQIMjwELAkAgAS0AAEEvRgRAIAFBAWohAQwBCyAD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ciBIVFRQL3gueCByZXF1ZXN0AEludmFsaWQgbWV0aG9kIGZvciBSVFNQL3gueCByZXF1ZXN0AEV4cGVjdGVkIFNPVVJDRSBtZXRob2QgZm9yIElDRS94LnggcmVxdWVzdABJbnZhbGlkIGNoYXIgaW4gdXJsIGZyYWdtZW50IHN0YXJ0AEV4cGVjdGVkIGRvdABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3N0YXR1cwBJbnZhbGlkIHJlc3BvbnNlIHN0YXR1cwBFeHBlY3RlZCBMRiBhZnRlciBoZWFkZXJzAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMAVXNlciBjYWxsYmFjayBlcnJvcgBgb25fcmVzZXRgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19oZWFkZXJgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3Byb3RvY29sX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fcHJvdG9jb2wARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgAVHJhbnNmZXItRW5jb2RpbmcgY2FuJ3QgYmUgcHJlc2VudCB3aXRoIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgc2l6ZQBFeHBlY3RlZCBMRiBhZnRlciBjaHVuayBzaXplAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBVbmV4cGVjdGVkIHdoaXRlc3BhY2UgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciBjaHVuayBleHRlbnNpb24gdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIHF1b3RlZC1wYWlyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fcHJvdG9jb2xfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciByZXNwb25zZSBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgZXh0ZW5zaW9uIG5hbWUASW52YWxpZCBzdGF0dXMgY29kZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABNaXNzaW5nIGV4cGVjdGVkIENSIGFmdGVyIGNodW5rIGRhdGEARXhwZWN0ZWQgTEYgYWZ0ZXIgY2h1bmsgZGF0YQBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AARGF0YSBhZnRlciBgQ29ubmVjdGlvbjogY2xvc2VgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBRVUVSWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAEV4cGVjdGVkIExGIGFmdGVyIENSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX1BST1RPQ09MX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8sIFJUU1AvIG9yIElDRS8A5xUAAK8VAACkEgAAkhoAACYWAACeFAAA2xkAAHkVAAB+EgAA/hQAADYVAAALFgAA2BYAAPMSAABCGAAArBYAABIVAAAUFwAA7xcAAEgUAABxFwAAshoAAGsZAAB+GQAANRQAAIIaAABEFwAA/RYAAB4YAACHFwAAqhkAAJMSAAAHGAAALBcAAMoXAACkFwAA5xUAAOcVAABYFwAAOxgAAKASAAAtHAAAwxEAAEgRAADeEgAAQhMAAKQZAAD9EAAA9xUAAKUVAADvFgAA+BkAAEoWAABWFgAA9RUAAAoaAAAIGgAAARoAAKsVAABCEgAA1xAAAEwRAAAFGQAAVBYAAB4RAADKGQAAyBkAAE4WAAD/GAAAcRQAAPAVAADuFQAAlBkAAPwVAAC/GQAAmxkAAHwUAABDEQAAcBgAAJUUAAAnFAAAGRQAANUSAADUGQAARBYAAPcQAEG5OwsBAQBB0DsL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBuj0LBAEAAAIAQdE9C14DBAMDAwMDAAADAwADAwADAwMDAwMDAwMDAAUAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAwADAEG6PwsEAQAAAgBB0T8LXgMAAwMDAwMAAAMDAAMDAAMDAwMDAwMDAwMABAAFAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwADAAMAQbDBAAsNbG9zZWVlcC1hbGl2ZQBBycEACwEBAEHgwQAL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBycMACwEBAEHgwwAL5wEBAQEBAQEBAQEBAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAWNodW5rZWQAQfHFAAteAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBB0McACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQYDIAAsgcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQpTTQ0KDQoAQanIAAsFAQIAAQMAQcDIAAtfBAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanKAAsFAQIAAQMAQcDKAAtfBAUFBgUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanMAAsEAQAAAQBBwcwAC14CAgACAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAEGpzgALBQECAAEDAEHAzgALXwQFAAAFBQUFBQUFBQUFBQYFBQUFBQUFBQUFBQUABQAHCAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQAFAAUABQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAAAAFAEGp0AALBQEBAAEBAEHA0AALAQEAQdrQAAtBAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQanSAAsFAQEAAQEAQcDSAAsBAQBBytIACwYCAAAAAAIAQeHSAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBBoNQAC50BTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRVVFUllPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFVFRQQ0VUU1BBRFRQLw==",wasmBuffer;Object.defineProperty(module,"exports",{get:()=>wasmBuffer||(wasmBuffer=Buffer2.from(wasmBase64,"base64"))})}});var require_constants3=__commonJS({"node_modules/undici/lib/web/fetch/constants.js"(exports,module){"use strict";var corsSafeListedMethods=["GET","HEAD","POST"],corsSafeListedMethodsSet=new Set(corsSafeListedMethods),nullBodyStatus=[101,204,205,304],redirectStatus=[301,302,303,307,308],redirectStatusSet=new Set(redirectStatus),badPorts=["1","7","9","11","13","15","17","19","20","21","22","23","25","37","42","43","53","69","77","79","87","95","101","102","103","104","109","110","111","113","115","117","119","123","135","137","139","143","161","179","389","427","465","512","513","514","515","526","530","531","532","540","548","554","556","563","587","601","636","989","990","993","995","1719","1720","1723","2049","3659","4045","4190","5060","5061","6000","6566","6665","6666","6667","6668","6669","6679","6697","10080"],badPortsSet=new Set(badPorts),referrerPolicyTokens=["no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"],referrerPolicy=["",...referrerPolicyTokens],referrerPolicyTokensSet=new Set(referrerPolicyTokens),requestRedirect=["follow","manual","error"],safeMethods=["GET","HEAD","OPTIONS","TRACE","QUERY"],safeMethodsSet=new Set(safeMethods),requestMode=["navigate","same-origin","no-cors","cors"],requestCredentials=["omit","same-origin","include"],requestCache=["default","no-store","reload","no-cache","force-cache","only-if-cached"],requestBodyHeader=["content-encoding","content-language","content-location","content-type","content-length"],requestDuplex=["half"],forbiddenMethods=["CONNECT","TRACE","TRACK"],forbiddenMethodsSet=new Set(forbiddenMethods),subresource=["audio","audioworklet","font","image","manifest","paintworklet","script","style","track","video","xslt",""],subresourceSet=new Set(subresource);module.exports={subresource,forbiddenMethods,requestBodyHeader,referrerPolicy,requestRedirect,requestMode,requestCredentials,requestCache,redirectStatus,corsSafeListedMethods,nullBodyStatus,safeMethods,badPorts,requestDuplex,subresourceSet,badPortsSet,redirectStatusSet,corsSafeListedMethodsSet,safeMethodsSet,forbiddenMethodsSet,referrerPolicyTokens:referrerPolicyTokensSet}}});var require_global=__commonJS({"node_modules/undici/lib/web/fetch/global.js"(exports,module){"use strict";var globalOrigin=Symbol.for("undici.globalOrigin.1");function getGlobalOrigin(){return globalThis[globalOrigin]}function setGlobalOrigin(newOrigin){if(newOrigin===void 0){Object.defineProperty(globalThis,globalOrigin,{value:void 0,writable:!0,enumerable:!1,configurable:!1});return}let parsedURL=new URL(newOrigin);if(parsedURL.protocol!=="http:"&&parsedURL.protocol!=="https:")throw new TypeError(`Only http & https urls are allowed, received ${parsedURL.protocol}`);Object.defineProperty(globalThis,globalOrigin,{value:parsedURL,writable:!0,enumerable:!1,configurable:!1})}module.exports={getGlobalOrigin,setGlobalOrigin}}});var require_encoding=__commonJS({"node_modules/undici/lib/encoding/index.js"(exports,module){"use strict";var textDecoder=new TextDecoder;function utf8DecodeBytes(buffer){return buffer.length===0?"":(buffer[0]===239&&buffer[1]===187&&buffer[2]===191&&(buffer=buffer.subarray(3)),textDecoder.decode(buffer))}module.exports={utf8DecodeBytes}}});var require_infra=__commonJS({"node_modules/undici/lib/web/infra/index.js"(exports,module){"use strict";var assert=__require("node:assert"),{utf8DecodeBytes}=require_encoding();function collectASequenceOfCodePoints(condition,input,position){let result="";for(;position.position<input.length&&condition(input[position.position]);)result+=input[position.position],position.position++;return result}function collectASequenceOfCodePointsFast(char,input,position){let idx=input.indexOf(char,position.position),start=position.position;return idx===-1?(position.position=input.length,input.slice(start)):(position.position=idx,input.slice(start,position.position))}var ASCII_WHITESPACE_REPLACE_REGEX=/[\u0009\u000A\u000C\u000D\u0020]/g;function forgivingBase64(data){data=data.replace(ASCII_WHITESPACE_REPLACE_REGEX,"");let dataLength=data.length;if(dataLength%4===0&&data.charCodeAt(dataLength-1)===61&&(--dataLength,data.charCodeAt(dataLength-1)===61&&--dataLength),dataLength%4===1||/[^+/0-9A-Za-z]/.test(data.length===dataLength?data:data.substring(0,dataLength)))return"failure";let buffer=Buffer.from(data,"base64");return new Uint8Array(buffer.buffer,buffer.byteOffset,buffer.byteLength)}function isASCIIWhitespace(char){return char===9||char===10||char===12||char===13||char===32}function isomorphicDecode(input){let length=input.length;if(65535>length)return String.fromCharCode.apply(null,input);let result="",i=0,addition=65535;for(;i<length;)i+addition>length&&(addition=length-i),result+=String.fromCharCode.apply(null,input.subarray(i,i+=addition));return result}var invalidIsomorphicEncodeValueRegex=/[^\x00-\xFF]/;function isomorphicEncode(input){return assert(!invalidIsomorphicEncodeValueRegex.test(input)),input}function parseJSONFromBytes(bytes){return JSON.parse(utf8DecodeBytes(bytes))}function removeASCIIWhitespace(str,leading=!0,trailing=!0){return removeChars(str,leading,trailing,isASCIIWhitespace)}function removeChars(str,leading,trailing,predicate){let lead=0,trail=str.length-1;if(leading)for(;lead<str.length&&predicate(str.charCodeAt(lead));)lead++;if(trailing)for(;trail>0&&predicate(str.charCodeAt(trail));)trail--;return lead===0&&trail===str.length-1?str:str.slice(lead,trail+1)}function serializeJavascriptValueToJSONString(value){let result=JSON.stringify(value);if(result===void 0)throw new TypeError("Value is not JSON serializable");return assert(typeof result=="string"),result}module.exports={collectASequenceOfCodePoints,collectASequenceOfCodePointsFast,forgivingBase64,isASCIIWhitespace,isomorphicDecode,isomorphicEncode,parseJSONFromBytes,removeASCIIWhitespace,removeChars,serializeJavascriptValueToJSONString}}});var require_data_url=__commonJS({"node_modules/undici/lib/web/fetch/data-url.js"(exports,module){"use strict";var assert=__require("node:assert"),{forgivingBase64,collectASequenceOfCodePoints,collectASequenceOfCodePointsFast,isomorphicDecode,removeASCIIWhitespace,removeChars}=require_infra(),encoder=new TextEncoder,HTTP_TOKEN_CODEPOINTS=/^[-!#$%&'*+.^_|~A-Za-z0-9]+$/u,HTTP_WHITESPACE_REGEX=/[\u000A\u000D\u0009\u0020]/u,HTTP_QUOTED_STRING_TOKENS=/^[\u0009\u0020-\u007E\u0080-\u00FF]+$/u;function dataURLProcessor(dataURL){assert(dataURL.protocol==="data:");let input=URLSerializer(dataURL,!0);input=input.slice(5);let position={position:0},mimeType=collectASequenceOfCodePointsFast(",",input,position),mimeTypeLength=mimeType.length;if(mimeType=removeASCIIWhitespace(mimeType,!0,!0),position.position>=input.length)return"failure";position.position++;let encodedBody=input.slice(mimeTypeLength+1),body=stringPercentDecode(encodedBody);if(/;(?:\u0020*)base64$/ui.test(mimeType)){let stringBody=isomorphicDecode(body);if(body=forgivingBase64(stringBody),body==="failure")return"failure";mimeType=mimeType.slice(0,-6),mimeType=mimeType.replace(/(\u0020+)$/u,""),mimeType=mimeType.slice(0,-1)}mimeType.startsWith(";")&&(mimeType="text/plain"+mimeType);let mimeTypeRecord=parseMIMEType(mimeType);return mimeTypeRecord==="failure"&&(mimeTypeRecord=parseMIMEType("text/plain;charset=US-ASCII")),{mimeType:mimeTypeRecord,body}}function URLSerializer(url,excludeFragment=!1){if(!excludeFragment)return url.href;let href=url.href,hashLength=url.hash.length,serialized=hashLength===0?href:href.substring(0,href.length-hashLength);return!hashLength&&href.endsWith("#")?serialized.slice(0,-1):serialized}function stringPercentDecode(input){let bytes=encoder.encode(input);return percentDecode(bytes)}function isHexCharByte(byte){return byte>=48&&byte<=57||byte>=65&&byte<=70||byte>=97&&byte<=102}function hexByteToNumber(byte){return byte>=48&&byte<=57?byte-48:(byte&223)-55}function percentDecode(input){let length=input.length,output=new Uint8Array(length),j=0,i=0;for(;i<length;){let byte=input[i];byte!==37?output[j++]=byte:byte===37&&!(isHexCharByte(input[i+1])&&isHexCharByte(input[i+2]))?output[j++]=37:(output[j++]=hexByteToNumber(input[i+1])<<4|hexByteToNumber(input[i+2]),i+=2),++i}return length===j?output:output.subarray(0,j)}function parseMIMEType(input){input=removeHTTPWhitespace(input,!0,!0);let position={position:0},type=collectASequenceOfCodePointsFast("/",input,position);if(type.length===0||!HTTP_TOKEN_CODEPOINTS.test(type)||position.position>=input.length)return"failure";position.position++;let subtype=collectASequenceOfCodePointsFast(";",input,position);if(subtype=removeHTTPWhitespace(subtype,!1,!0),subtype.length===0||!HTTP_TOKEN_CODEPOINTS.test(subtype))return"failure";let typeLowercase=type.toLowerCase(),subtypeLowercase=subtype.toLowerCase(),mimeType={type:typeLowercase,subtype:subtypeLowercase,parameters:new Map,essence:`${typeLowercase}/${subtypeLowercase}`};for(;position.position<input.length;){position.position++,collectASequenceOfCodePoints(char=>HTTP_WHITESPACE_REGEX.test(char),input,position);let parameterName=collectASequenceOfCodePoints(char=>char!==";"&&char!=="=",input,position);if(parameterName=parameterName.toLowerCase(),position.position<input.length){if(input[position.position]===";")continue;position.position++}if(position.position>=input.length)break;let parameterValue=null;if(input[position.position]==='"')parameterValue=collectAnHTTPQuotedString(input,position,!0),collectASequenceOfCodePointsFast(";",input,position);else if(parameterValue=collectASequenceOfCodePointsFast(";",input,position),parameterValue=removeHTTPWhitespace(parameterValue,!1,!0),parameterValue.length===0)continue;parameterName.length!==0&&HTTP_TOKEN_CODEPOINTS.test(parameterName)&&(parameterValue.length===0||HTTP_QUOTED_STRING_TOKENS.test(parameterValue))&&!mimeType.parameters.has(parameterName)&&mimeType.parameters.set(parameterName,parameterValue)}return mimeType}function collectAnHTTPQuotedString(input,position,extractValue=!1){let positionStart=position.position,value="";for(assert(input[position.position]==='"'),position.position++;value+=collectASequenceOfCodePoints(char=>char!=='"'&&char!=="\\",input,position),!(position.position>=input.length);){let quoteOrBackslash=input[position.position];if(position.position++,quoteOrBackslash==="\\"){if(position.position>=input.length){value+="\\";break}value+=input[position.position],position.position++}else{assert(quoteOrBackslash==='"');break}}return extractValue?value:input.slice(positionStart,position.position)}function serializeAMimeType(mimeType){assert(mimeType!=="failure");let{parameters,essence}=mimeType,serialization=essence;for(let[name,value]of parameters.entries())serialization+=";",serialization+=name,serialization+="=",HTTP_TOKEN_CODEPOINTS.test(value)||(value=value.replace(/[\\"]/ug,"\\$&"),value='"'+value,value+='"'),serialization+=value;return serialization}function isHTTPWhiteSpace(char){return char===13||char===10||char===9||char===32}function removeHTTPWhitespace(str,leading=!0,trailing=!0){return removeChars(str,leading,trailing,isHTTPWhiteSpace)}function minimizeSupportedMimeType(mimeType){switch(mimeType.essence){case"application/ecmascript":case"application/javascript":case"application/x-ecmascript":case"application/x-javascript":case"text/ecmascript":case"text/javascript":case"text/javascript1.0":case"text/javascript1.1":case"text/javascript1.2":case"text/javascript1.3":case"text/javascript1.4":case"text/javascript1.5":case"text/jscript":case"text/livescript":case"text/x-ecmascript":case"text/x-javascript":return"text/javascript";case"application/json":case"text/json":return"application/json";case"image/svg+xml":return"image/svg+xml";case"text/xml":case"application/xml":return"application/xml"}return mimeType.subtype.endsWith("+json")?"application/json":mimeType.subtype.endsWith("+xml")?"application/xml":""}module.exports={dataURLProcessor,URLSerializer,stringPercentDecode,parseMIMEType,collectAnHTTPQuotedString,serializeAMimeType,removeHTTPWhitespace,minimizeSupportedMimeType,HTTP_TOKEN_CODEPOINTS}}});var require_webidl=__commonJS({"node_modules/undici/lib/web/webidl/index.js"(exports,module){"use strict";var assert=__require("node:assert"),{types,inspect}=__require("node:util"),{markAsUncloneable}=__require("node:worker_threads"),UNDEFINED=1,BOOLEAN=2,STRING=3,SYMBOL=4,NUMBER=5,BIGINT=6,NULL=7,OBJECT=8,FunctionPrototypeSymbolHasInstance=Function.call.bind(Function.prototype[Symbol.hasInstance]),webidl={converters:{},util:{},errors:{},is:{}};webidl.errors.exception=function(message){return new TypeError(`${message.header}: ${message.message}`)};webidl.errors.conversionFailed=function(opts){let plural=opts.types.length===1?"":" one of",message=`${opts.argument} could not be converted to${plural}: ${opts.types.join(", ")}.`;return webidl.errors.exception({header:opts.prefix,message})};webidl.errors.invalidArgument=function(context){return webidl.errors.exception({header:context.prefix,message:`"${context.value}" is an invalid ${context.type}.`})};webidl.brandCheck=function(V,I){if(!FunctionPrototypeSymbolHasInstance(I,V)){let err=new TypeError("Illegal invocation");throw err.code="ERR_INVALID_THIS",err}};webidl.brandCheckMultiple=function(List){let prototypes=List.map(c=>webidl.util.MakeTypeAssertion(c));return V=>{if(prototypes.every(typeCheck=>!typeCheck(V))){let err=new TypeError("Illegal invocation");throw err.code="ERR_INVALID_THIS",err}}};webidl.argumentLengthCheck=function({length},min,ctx){if(length<min)throw webidl.errors.exception({message:`${min} argument${min!==1?"s":""} required, but${length?" only":""} ${length} found.`,header:ctx})};webidl.illegalConstructor=function(){throw webidl.errors.exception({header:"TypeError",message:"Illegal constructor"})};webidl.util.MakeTypeAssertion=function(I){return O=>FunctionPrototypeSymbolHasInstance(I,O)};webidl.util.Type=function(V){switch(typeof V){case"undefined":return UNDEFINED;case"boolean":return BOOLEAN;case"string":return STRING;case"symbol":return SYMBOL;case"number":return NUMBER;case"bigint":return BIGINT;case"function":case"object":return V===null?NULL:OBJECT}};webidl.util.Types={UNDEFINED,BOOLEAN,STRING,SYMBOL,NUMBER,BIGINT,NULL,OBJECT};webidl.util.TypeValueToString=function(o){switch(webidl.util.Type(o)){case UNDEFINED:return"Undefined";case BOOLEAN:return"Boolean";case STRING:return"String";case SYMBOL:return"Symbol";case NUMBER:return"Number";case BIGINT:return"BigInt";case NULL:return"Null";case OBJECT:return"Object"}};webidl.util.markAsUncloneable=markAsUncloneable;webidl.util.ConvertToInt=function(V,bitLength,signedness,flags){let upperBound,lowerBound;bitLength===64?(upperBound=Math.pow(2,53)-1,signedness==="unsigned"?lowerBound=0:lowerBound=Math.pow(-2,53)+1):signedness==="unsigned"?(lowerBound=0,upperBound=Math.pow(2,bitLength)-1):(lowerBound=-Math.pow(2,bitLength-1),upperBound=Math.pow(2,bitLength-1)-1);let x=Number(V);if(x===0&&(x=0),webidl.util.HasFlag(flags,webidl.attributes.EnforceRange)){if(Number.isNaN(x)||x===Number.POSITIVE_INFINITY||x===Number.NEGATIVE_INFINITY)throw webidl.errors.exception({header:"Integer conversion",message:`Could not convert ${webidl.util.Stringify(V)} to an integer.`});if(x=webidl.util.IntegerPart(x),x<lowerBound||x>upperBound)throw webidl.errors.exception({header:"Integer conversion",message:`Value must be between ${lowerBound}-${upperBound}, got ${x}.`});return x}return!Number.isNaN(x)&&webidl.util.HasFlag(flags,webidl.attributes.Clamp)?(x=Math.min(Math.max(x,lowerBound),upperBound),Math.floor(x)%2===0?x=Math.floor(x):x=Math.ceil(x),x):Number.isNaN(x)||x===0&&Object.is(0,x)||x===Number.POSITIVE_INFINITY||x===Number.NEGATIVE_INFINITY?0:(x=webidl.util.IntegerPart(x),x=x%Math.pow(2,bitLength),signedness==="signed"&&x>=Math.pow(2,bitLength-1)?x-Math.pow(2,bitLength):x)};webidl.util.IntegerPart=function(n){let r=Math.floor(Math.abs(n));return n<0?-1*r:r};webidl.util.Stringify=function(V){switch(webidl.util.Type(V)){case SYMBOL:return`Symbol(${V.description})`;case OBJECT:return inspect(V);case STRING:return`"${V}"`;case BIGINT:return`${V}n`;default:return`${V}`}};webidl.util.IsResizableArrayBuffer=function(V){if(types.isArrayBuffer(V))return V.resizable;if(types.isSharedArrayBuffer(V))return V.growable;throw webidl.errors.exception({header:"IsResizableArrayBuffer",message:`"${webidl.util.Stringify(V)}" is not an array buffer.`})};webidl.util.HasFlag=function(flags,attributes){return typeof flags=="number"&&(flags&attributes)===attributes};webidl.sequenceConverter=function(converter){return(V,prefix,argument,Iterable)=>{if(webidl.util.Type(V)!==OBJECT)throw webidl.errors.exception({header:prefix,message:`${argument} (${webidl.util.Stringify(V)}) is not iterable.`});let method=typeof Iterable=="function"?Iterable():V?.[Symbol.iterator]?.(),seq=[],index=0;if(method===void 0||typeof method.next!="function")throw webidl.errors.exception({header:prefix,message:`${argument} is not iterable.`});for(;;){let{done,value}=method.next();if(done)break;seq.push(converter(value,prefix,`${argument}[${index++}]`))}return seq}};webidl.recordConverter=function(keyConverter,valueConverter){return(O,prefix,argument)=>{if(webidl.util.Type(O)!==OBJECT)throw webidl.errors.exception({header:prefix,message:`${argument} ("${webidl.util.TypeValueToString(O)}") is not an Object.`});let result={};if(!types.isProxy(O)){let keys2=[...Object.getOwnPropertyNames(O),...Object.getOwnPropertySymbols(O)];for(let key of keys2){let keyName=webidl.util.Stringify(key),typedKey=keyConverter(key,prefix,`Key ${keyName} in ${argument}`),typedValue=valueConverter(O[key],prefix,`${argument}[${keyName}]`);result[typedKey]=typedValue}return result}let keys=Reflect.ownKeys(O);for(let key of keys)if(Reflect.getOwnPropertyDescriptor(O,key)?.enumerable){let typedKey=keyConverter(key,prefix,argument),typedValue=valueConverter(O[key],prefix,argument);result[typedKey]=typedValue}return result}};webidl.interfaceConverter=function(TypeCheck,name){return(V,prefix,argument)=>{if(!TypeCheck(V))throw webidl.errors.exception({header:prefix,message:`Expected ${argument} ("${webidl.util.Stringify(V)}") to be an instance of ${name}.`});return V}};webidl.dictionaryConverter=function(converters){return converters.sort((a,b)=>(a.key>b.key)-(a.key<b.key)),(dictionary,prefix,argument)=>{let dict={};if(dictionary!=null&&webidl.util.Type(dictionary)!==OBJECT)throw webidl.errors.exception({header:prefix,message:`Expected ${dictionary} to be one of: Null, Undefined, Object.`});for(let options of converters){let{key,defaultValue,required,converter}=options;if(required===!0&&(dictionary==null||!Object.hasOwn(dictionary,key)))throw webidl.errors.exception({header:prefix,message:`Missing required key "${key}".`});let value=dictionary?.[key],hasDefault=defaultValue!==void 0;if(hasDefault&&value===void 0&&(value=defaultValue()),required||hasDefault||value!==void 0){if(value=converter(value,prefix,`${argument}.${key}`),options.allowedValues&&!options.allowedValues.includes(value))throw webidl.errors.exception({header:prefix,message:`${value} is not an accepted type. Expected one of ${options.allowedValues.join(", ")}.`});dict[key]=value}}return dict}};webidl.nullableConverter=function(converter){return(V,prefix,argument)=>V===null?V:converter(V,prefix,argument)};webidl.is.USVString=function(value){return typeof value=="string"&&value.isWellFormed()};webidl.is.ReadableStream=webidl.util.MakeTypeAssertion(ReadableStream);webidl.is.Blob=webidl.util.MakeTypeAssertion(Blob);webidl.is.URLSearchParams=webidl.util.MakeTypeAssertion(URLSearchParams);webidl.is.File=webidl.util.MakeTypeAssertion(File);webidl.is.URL=webidl.util.MakeTypeAssertion(URL);webidl.is.AbortSignal=webidl.util.MakeTypeAssertion(AbortSignal);webidl.is.MessagePort=webidl.util.MakeTypeAssertion(MessagePort);webidl.is.BufferSource=function(V){return types.isArrayBuffer(V)||ArrayBuffer.isView(V)&&types.isArrayBuffer(V.buffer)};webidl.util.getCopyOfBytesHeldByBufferSource=function(bufferSource){let jsBufferSource=bufferSource,jsArrayBuffer=jsBufferSource,offset=0,length=0;if(types.isTypedArray(jsBufferSource)||types.isDataView(jsBufferSource)?(jsArrayBuffer=jsBufferSource.buffer,offset=jsBufferSource.byteOffset,length=jsBufferSource.byteLength):(assert(types.isAnyArrayBuffer(jsBufferSource)),length=jsBufferSource.byteLength),jsArrayBuffer.detached)return new Uint8Array(0);let bytes=new Uint8Array(length),view=new Uint8Array(jsArrayBuffer,offset,length);return bytes.set(view),bytes};webidl.converters.DOMString=function(V,prefix,argument,flags){if(V===null&&webidl.util.HasFlag(flags,webidl.attributes.LegacyNullToEmptyString))return"";if(typeof V=="symbol")throw webidl.errors.exception({header:prefix,message:`${argument} is a symbol, which cannot be converted to a DOMString.`});return String(V)};webidl.converters.ByteString=function(V,prefix,argument){if(typeof V=="symbol")throw webidl.errors.exception({header:prefix,message:`${argument} is a symbol, which cannot be converted to a ByteString.`});let x=String(V);for(let index=0;index<x.length;index++)if(x.charCodeAt(index)>255)throw new TypeError(`Cannot convert argument to a ByteString because the character at index ${index} has a value of ${x.charCodeAt(index)} which is greater than 255.`);return x};webidl.converters.USVString=function(value){return typeof value=="string"?value.toWellFormed():`${value}`.toWellFormed()};webidl.converters.boolean=function(V){return!!V};webidl.converters.any=function(V){return V};webidl.converters["long long"]=function(V,prefix,argument){return webidl.util.ConvertToInt(V,64,"signed",0,prefix,argument)};webidl.converters["unsigned long long"]=function(V,prefix,argument){return webidl.util.ConvertToInt(V,64,"unsigned",0,prefix,argument)};webidl.converters["unsigned long"]=function(V,prefix,argument){return webidl.util.ConvertToInt(V,32,"unsigned",0,prefix,argument)};webidl.converters["unsigned short"]=function(V,prefix,argument,flags){return webidl.util.ConvertToInt(V,16,"unsigned",flags,prefix,argument)};webidl.converters.ArrayBuffer=function(V,prefix,argument,flags){if(webidl.util.Type(V)!==OBJECT||!types.isArrayBuffer(V))throw webidl.errors.conversionFailed({prefix,argument:`${argument} ("${webidl.util.Stringify(V)}")`,types:["ArrayBuffer"]});if(!webidl.util.HasFlag(flags,webidl.attributes.AllowResizable)&&webidl.util.IsResizableArrayBuffer(V))throw webidl.errors.exception({header:prefix,message:`${argument} cannot be a resizable ArrayBuffer.`});return V};webidl.converters.SharedArrayBuffer=function(V,prefix,argument,flags){if(webidl.util.Type(V)!==OBJECT||!types.isSharedArrayBuffer(V))throw webidl.errors.conversionFailed({prefix,argument:`${argument} ("${webidl.util.Stringify(V)}")`,types:["SharedArrayBuffer"]});if(!webidl.util.HasFlag(flags,webidl.attributes.AllowResizable)&&webidl.util.IsResizableArrayBuffer(V))throw webidl.errors.exception({header:prefix,message:`${argument} cannot be a resizable SharedArrayBuffer.`});return V};webidl.converters.TypedArray=function(V,T,prefix,argument,flags){if(webidl.util.Type(V)!==OBJECT||!types.isTypedArray(V)||V.constructor.name!==T.name)throw webidl.errors.conversionFailed({prefix,argument:`${argument} ("${webidl.util.Stringify(V)}")`,types:[T.name]});if(!webidl.util.HasFlag(flags,webidl.attributes.AllowShared)&&types.isSharedArrayBuffer(V.buffer))throw webidl.errors.exception({header:prefix,message:`${argument} cannot be a view on a shared array buffer.`});if(!webidl.util.HasFlag(flags,webidl.attributes.AllowResizable)&&webidl.util.IsResizableArrayBuffer(V.buffer))throw webidl.errors.exception({header:prefix,message:`${argument} cannot be a view on a resizable array buffer.`});return V};webidl.converters.DataView=function(V,prefix,argument,flags){if(webidl.util.Type(V)!==OBJECT||!types.isDataView(V))throw webidl.errors.conversionFailed({prefix,argument:`${argument} ("${webidl.util.Stringify(V)}")`,types:["DataView"]});if(!webidl.util.HasFlag(flags,webidl.attributes.AllowShared)&&types.isSharedArrayBuffer(V.buffer))throw webidl.errors.exception({header:prefix,message:`${argument} cannot be a view on a shared array buffer.`});if(!webidl.util.HasFlag(flags,webidl.attributes.AllowResizable)&&webidl.util.IsResizableArrayBuffer(V.buffer))throw webidl.errors.exception({header:prefix,message:`${argument} cannot be a view on a resizable array buffer.`});return V};webidl.converters.ArrayBufferView=function(V,prefix,argument,flags){if(webidl.util.Type(V)!==OBJECT||!types.isArrayBufferView(V))throw webidl.errors.conversionFailed({prefix,argument:`${argument} ("${webidl.util.Stringify(V)}")`,types:["ArrayBufferView"]});if(!webidl.util.HasFlag(flags,webidl.attributes.AllowShared)&&types.isSharedArrayBuffer(V.buffer))throw webidl.errors.exception({header:prefix,message:`${argument} cannot be a view on a shared array buffer.`});if(!webidl.util.HasFlag(flags,webidl.attributes.AllowResizable)&&webidl.util.IsResizableArrayBuffer(V.buffer))throw webidl.errors.exception({header:prefix,message:`${argument} cannot be a view on a resizable array buffer.`});return V};webidl.converters.BufferSource=function(V,prefix,argument,flags){if(types.isArrayBuffer(V))return webidl.converters.ArrayBuffer(V,prefix,argument,flags);if(types.isArrayBufferView(V))return flags&=~webidl.attributes.AllowShared,webidl.converters.ArrayBufferView(V,prefix,argument,flags);throw types.isSharedArrayBuffer(V)?webidl.errors.exception({header:prefix,message:`${argument} cannot be a SharedArrayBuffer.`}):webidl.errors.conversionFailed({prefix,argument:`${argument} ("${webidl.util.Stringify(V)}")`,types:["ArrayBuffer","ArrayBufferView"]})};webidl.converters.AllowSharedBufferSource=function(V,prefix,argument,flags){if(types.isArrayBuffer(V))return webidl.converters.ArrayBuffer(V,prefix,argument,flags);if(types.isSharedArrayBuffer(V))return webidl.converters.SharedArrayBuffer(V,prefix,argument,flags);if(types.isArrayBufferView(V))return flags|=webidl.attributes.AllowShared,webidl.converters.ArrayBufferView(V,prefix,argument,flags);throw webidl.errors.conversionFailed({prefix,argument:`${argument} ("${webidl.util.Stringify(V)}")`,types:["ArrayBuffer","SharedArrayBuffer","ArrayBufferView"]})};webidl.converters["sequence<ByteString>"]=webidl.sequenceConverter(webidl.converters.ByteString);webidl.converters["sequence<sequence<ByteString>>"]=webidl.sequenceConverter(webidl.converters["sequence<ByteString>"]);webidl.converters["record<ByteString, ByteString>"]=webidl.recordConverter(webidl.converters.ByteString,webidl.converters.ByteString);webidl.converters.Blob=webidl.interfaceConverter(webidl.is.Blob,"Blob");webidl.converters.AbortSignal=webidl.interfaceConverter(webidl.is.AbortSignal,"AbortSignal");webidl.converters.EventHandlerNonNull=function(V){return webidl.util.Type(V)!==OBJECT?null:typeof V=="function"?V:()=>{}};webidl.attributes={Clamp:1,EnforceRange:2,AllowShared:4,AllowResizable:8,LegacyNullToEmptyString:16};module.exports={webidl}}});var require_util2=__commonJS({"node_modules/undici/lib/web/fetch/util.js"(exports,module){"use strict";var{Transform}=__require("node:stream"),zlib=__require("node:zlib"),{redirectStatusSet,referrerPolicyTokens,badPortsSet}=require_constants3(),{getGlobalOrigin}=require_global(),{collectAnHTTPQuotedString,parseMIMEType}=require_data_url(),{performance:performance2}=__require("node:perf_hooks"),{ReadableStreamFrom,isValidHTTPToken,normalizedMethodRecordsBase}=require_util(),assert=__require("node:assert"),{isUint8Array}=__require("node:util/types"),{webidl}=require_webidl(),{isomorphicEncode,collectASequenceOfCodePoints,removeChars}=require_infra();function responseURL(response){let urlList=response.urlList,length=urlList.length;return length===0?null:urlList[length-1].toString()}function responseLocationURL(response,requestFragment){if(!redirectStatusSet.has(response.status))return null;let location=response.headersList.get("location",!0);return location!==null&&isValidHeaderValue(location)&&(isValidEncodedURL(location)||(location=normalizeBinaryStringToUtf8(location)),location=new URL(location,responseURL(response))),location&&!location.hash&&(location.hash=requestFragment),location}function isValidEncodedURL(url){for(let i=0;i<url.length;++i){let code=url.charCodeAt(i);if(code>126||code<32)return!1}return!0}function normalizeBinaryStringToUtf8(value){return Buffer.from(value,"binary").toString("utf8")}function requestCurrentURL(request){return request.urlList[request.urlList.length-1]}function requestBadPort(request){let url=requestCurrentURL(request);return urlIsHttpHttpsScheme(url)&&badPortsSet.has(url.port)?"blocked":"allowed"}function isErrorLike(object){return object instanceof Error||object?.constructor?.name==="Error"||object?.constructor?.name==="DOMException"}function isValidReasonPhrase(statusText){for(let i=0;i<statusText.length;++i){let c=statusText.charCodeAt(i);if(!(c===9||c>=32&&c<=126||c>=128&&c<=255))return!1}return!0}var isValidHeaderName=isValidHTTPToken;function isValidHeaderValue(potentialValue){return(potentialValue[0]===" "||potentialValue[0]===" "||potentialValue[potentialValue.length-1]===" "||potentialValue[potentialValue.length-1]===" "||potentialValue.includes(`
|
|
3
|
+
`)||potentialValue.includes("\r")||potentialValue.includes("\0"))===!1}function parseReferrerPolicy(actualResponse){let policyHeader=(actualResponse.headersList.get("referrer-policy",!0)??"").split(","),policy="";if(policyHeader.length)for(let i=policyHeader.length;i!==0;i--){let token=policyHeader[i-1].trim();if(referrerPolicyTokens.has(token)){policy=token;break}}return policy}function setRequestReferrerPolicyOnRedirect(request,actualResponse){let policy=parseReferrerPolicy(actualResponse);policy!==""&&(request.referrerPolicy=policy)}function crossOriginResourcePolicyCheck(){return"allowed"}function corsCheck(){return"success"}function TAOCheck(){return"success"}function appendFetchMetadata(httpRequest){let header=null;header=httpRequest.mode,httpRequest.headersList.set("sec-fetch-mode",header,!0)}function appendRequestOriginHeader(request){let serializedOrigin=request.origin;if(!(serializedOrigin==="client"||serializedOrigin===void 0)){if(request.responseTainting==="cors"||request.mode==="websocket")request.headersList.append("origin",serializedOrigin,!0);else if(request.method!=="GET"&&request.method!=="HEAD"){switch(request.referrerPolicy){case"no-referrer":serializedOrigin=null;break;case"no-referrer-when-downgrade":case"strict-origin":case"strict-origin-when-cross-origin":request.origin&&urlHasHttpsScheme(request.origin)&&!urlHasHttpsScheme(requestCurrentURL(request))&&(serializedOrigin=null);break;case"same-origin":sameOrigin(request,requestCurrentURL(request))||(serializedOrigin=null);break;default:}request.headersList.append("origin",serializedOrigin,!0)}}}function coarsenTime(timestamp,crossOriginIsolatedCapability){return timestamp}function clampAndCoarsenConnectionTimingInfo(connectionTimingInfo,defaultStartTime,crossOriginIsolatedCapability){return!connectionTimingInfo?.startTime||connectionTimingInfo.startTime<defaultStartTime?{domainLookupStartTime:defaultStartTime,domainLookupEndTime:defaultStartTime,connectionStartTime:defaultStartTime,connectionEndTime:defaultStartTime,secureConnectionStartTime:defaultStartTime,ALPNNegotiatedProtocol:connectionTimingInfo?.ALPNNegotiatedProtocol}:{domainLookupStartTime:coarsenTime(connectionTimingInfo.domainLookupStartTime,crossOriginIsolatedCapability),domainLookupEndTime:coarsenTime(connectionTimingInfo.domainLookupEndTime,crossOriginIsolatedCapability),connectionStartTime:coarsenTime(connectionTimingInfo.connectionStartTime,crossOriginIsolatedCapability),connectionEndTime:coarsenTime(connectionTimingInfo.connectionEndTime,crossOriginIsolatedCapability),secureConnectionStartTime:coarsenTime(connectionTimingInfo.secureConnectionStartTime,crossOriginIsolatedCapability),ALPNNegotiatedProtocol:connectionTimingInfo.ALPNNegotiatedProtocol}}function coarsenedSharedCurrentTime(crossOriginIsolatedCapability){return coarsenTime(performance2.now(),crossOriginIsolatedCapability)}function createOpaqueTimingInfo(timingInfo){return{startTime:timingInfo.startTime??0,redirectStartTime:0,redirectEndTime:0,postRedirectStartTime:timingInfo.startTime??0,finalServiceWorkerStartTime:0,finalNetworkResponseStartTime:0,finalNetworkRequestStartTime:0,endTime:0,encodedBodySize:0,decodedBodySize:0,finalConnectionTimingInfo:null}}function makePolicyContainer(){return{referrerPolicy:"strict-origin-when-cross-origin"}}function clonePolicyContainer(policyContainer){return{referrerPolicy:policyContainer.referrerPolicy}}function determineRequestsReferrer(request){let policy=request.referrerPolicy;assert(policy);let referrerSource=null;if(request.referrer==="client"){let globalOrigin=getGlobalOrigin();if(!globalOrigin||globalOrigin.origin==="null")return"no-referrer";referrerSource=new URL(globalOrigin)}else webidl.is.URL(request.referrer)&&(referrerSource=request.referrer);let referrerURL=stripURLForReferrer(referrerSource),referrerOrigin=stripURLForReferrer(referrerSource,!0);switch(referrerURL.toString().length>4096&&(referrerURL=referrerOrigin),policy){case"no-referrer":return"no-referrer";case"origin":return referrerOrigin??stripURLForReferrer(referrerSource,!0);case"unsafe-url":return referrerURL;case"strict-origin":{let currentURL=requestCurrentURL(request);return isURLPotentiallyTrustworthy(referrerURL)&&!isURLPotentiallyTrustworthy(currentURL)?"no-referrer":referrerOrigin}case"strict-origin-when-cross-origin":{let currentURL=requestCurrentURL(request);return sameOrigin(referrerURL,currentURL)?referrerURL:isURLPotentiallyTrustworthy(referrerURL)&&!isURLPotentiallyTrustworthy(currentURL)?"no-referrer":referrerOrigin}case"same-origin":return sameOrigin(request,referrerURL)?referrerURL:"no-referrer";case"origin-when-cross-origin":return sameOrigin(request,referrerURL)?referrerURL:referrerOrigin;case"no-referrer-when-downgrade":{let currentURL=requestCurrentURL(request);return isURLPotentiallyTrustworthy(referrerURL)&&!isURLPotentiallyTrustworthy(currentURL)?"no-referrer":referrerURL}}}function stripURLForReferrer(url,originOnly=!1){return assert(webidl.is.URL(url)),url=new URL(url),urlIsLocal(url)?"no-referrer":(url.username="",url.password="",url.hash="",originOnly===!0&&(url.pathname="",url.search=""),url)}var isPotentialleTrustworthyIPv4=RegExp.prototype.test.bind(/^127\.(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)\.){2}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)$/),isPotentiallyTrustworthyIPv6=RegExp.prototype.test.bind(/^(?:(?:0{1,4}:){7}|(?:0{1,4}:){1,6}:|::)0{0,3}1$/);function isOriginIPPotentiallyTrustworthy(origin){return origin.includes(":")?(origin[0]==="["&&origin[origin.length-1]==="]"&&(origin=origin.slice(1,-1)),isPotentiallyTrustworthyIPv6(origin)):isPotentialleTrustworthyIPv4(origin)}function isOriginPotentiallyTrustworthy(origin){return origin==null||origin==="null"?!1:(origin=new URL(origin),!!(origin.protocol==="https:"||origin.protocol==="wss:"||isOriginIPPotentiallyTrustworthy(origin.hostname)||origin.hostname==="localhost"||origin.hostname==="localhost."||origin.hostname.endsWith(".localhost")||origin.hostname.endsWith(".localhost.")||origin.protocol==="file:"))}function isURLPotentiallyTrustworthy(url){return webidl.is.URL(url)?url.href==="about:blank"||url.href==="about:srcdoc"||url.protocol==="data:"||url.protocol==="blob:"?!0:isOriginPotentiallyTrustworthy(url.origin):!1}function tryUpgradeRequestToAPotentiallyTrustworthyURL(request){}function sameOrigin(A,B){return A.origin===B.origin&&A.origin==="null"||A.protocol===B.protocol&&A.hostname===B.hostname&&A.port===B.port}function isAborted(fetchParams){return fetchParams.controller.state==="aborted"}function isCancelled(fetchParams){return fetchParams.controller.state==="aborted"||fetchParams.controller.state==="terminated"}function normalizeMethod(method){return normalizedMethodRecordsBase[method.toLowerCase()]??method}var esIteratorPrototype=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));function createIterator(name,kInternalIterator,keyIndex=0,valueIndex=1){class FastIterableIterator{#target;#kind;#index;constructor(target,kind){this.#target=target,this.#kind=kind,this.#index=0}next(){if(typeof this!="object"||this===null||!(#target in this))throw new TypeError(`'next' called on an object that does not implement interface ${name} Iterator.`);let index=this.#index,values=kInternalIterator(this.#target),len=values.length;if(index>=len)return{value:void 0,done:!0};let{[keyIndex]:key,[valueIndex]:value}=values[index];this.#index=index+1;let result;switch(this.#kind){case"key":result=key;break;case"value":result=value;break;case"key+value":result=[key,value];break}return{value:result,done:!1}}}return delete FastIterableIterator.prototype.constructor,Object.setPrototypeOf(FastIterableIterator.prototype,esIteratorPrototype),Object.defineProperties(FastIterableIterator.prototype,{[Symbol.toStringTag]:{writable:!1,enumerable:!1,configurable:!0,value:`${name} Iterator`},next:{writable:!0,enumerable:!0,configurable:!0}}),function(target,kind){return new FastIterableIterator(target,kind)}}function iteratorMixin(name,object,kInternalIterator,keyIndex=0,valueIndex=1){let makeIterator=createIterator(name,kInternalIterator,keyIndex,valueIndex),properties={keys:{writable:!0,enumerable:!0,configurable:!0,value:function(){return webidl.brandCheck(this,object),makeIterator(this,"key")}},values:{writable:!0,enumerable:!0,configurable:!0,value:function(){return webidl.brandCheck(this,object),makeIterator(this,"value")}},entries:{writable:!0,enumerable:!0,configurable:!0,value:function(){return webidl.brandCheck(this,object),makeIterator(this,"key+value")}},forEach:{writable:!0,enumerable:!0,configurable:!0,value:function(callbackfn,thisArg=globalThis){if(webidl.brandCheck(this,object),webidl.argumentLengthCheck(arguments,1,`${name}.forEach`),typeof callbackfn!="function")throw new TypeError(`Failed to execute 'forEach' on '${name}': parameter 1 is not of type 'Function'.`);for(let{0:key,1:value}of makeIterator(this,"key+value"))callbackfn.call(thisArg,value,key,this)}}};return Object.defineProperties(object.prototype,{...properties,[Symbol.iterator]:{writable:!0,enumerable:!1,configurable:!0,value:properties.entries.value}})}function fullyReadBody(body,processBody,processBodyError){let successSteps=processBody,errorSteps=processBodyError;try{let reader=body.stream.getReader();readAllBytes(reader,successSteps,errorSteps)}catch(e){errorSteps(e)}}function readableStreamClose(controller){try{controller.close(),controller.byobRequest?.respond(0)}catch(err){if(!err.message.includes("Controller is already closed")&&!err.message.includes("ReadableStream is already closed"))throw err}}async function readAllBytes(reader,successSteps,failureSteps){try{let bytes=[],byteLength=0;do{let{done,value:chunk}=await reader.read();if(done){successSteps(Buffer.concat(bytes,byteLength));return}if(!isUint8Array(chunk)){failureSteps(new TypeError("Received non-Uint8Array chunk"));return}bytes.push(chunk),byteLength+=chunk.length}while(!0)}catch(e){failureSteps(e)}}function urlIsLocal(url){assert("protocol"in url);let protocol=url.protocol;return protocol==="about:"||protocol==="blob:"||protocol==="data:"}function urlHasHttpsScheme(url){return typeof url=="string"&&url[5]===":"&&url[0]==="h"&&url[1]==="t"&&url[2]==="t"&&url[3]==="p"&&url[4]==="s"||url.protocol==="https:"}function urlIsHttpHttpsScheme(url){assert("protocol"in url);let protocol=url.protocol;return protocol==="http:"||protocol==="https:"}function simpleRangeHeaderValue(value,allowWhitespace){let data=value;if(!data.startsWith("bytes"))return"failure";let position={position:5};if(allowWhitespace&&collectASequenceOfCodePoints(char=>char===" "||char===" ",data,position),data.charCodeAt(position.position)!==61)return"failure";position.position++,allowWhitespace&&collectASequenceOfCodePoints(char=>char===" "||char===" ",data,position);let rangeStart=collectASequenceOfCodePoints(char=>{let code=char.charCodeAt(0);return code>=48&&code<=57},data,position),rangeStartValue=rangeStart.length?Number(rangeStart):null;if(allowWhitespace&&collectASequenceOfCodePoints(char=>char===" "||char===" ",data,position),data.charCodeAt(position.position)!==45)return"failure";position.position++,allowWhitespace&&collectASequenceOfCodePoints(char=>char===" "||char===" ",data,position);let rangeEnd=collectASequenceOfCodePoints(char=>{let code=char.charCodeAt(0);return code>=48&&code<=57},data,position),rangeEndValue=rangeEnd.length?Number(rangeEnd):null;return position.position<data.length||rangeEndValue===null&&rangeStartValue===null||rangeStartValue!==null&&rangeEndValue!==null&&rangeStartValue>rangeEndValue?"failure":{rangeStartValue,rangeEndValue}}function buildContentRange(rangeStart,rangeEnd,fullLength){let contentRange="bytes ";return contentRange+=isomorphicEncode(`${rangeStart}`),contentRange+="-",contentRange+=isomorphicEncode(`${rangeEnd}`),contentRange+="/",contentRange+=isomorphicEncode(`${fullLength}`),contentRange}var InflateStream=class extends Transform{#zlibOptions;constructor(zlibOptions){super(),this.#zlibOptions=zlibOptions}_transform(chunk,encoding,callback){if(!this._inflateStream){if(chunk.length===0){callback();return}this._inflateStream=(chunk[0]&15)===8?zlib.createInflate(this.#zlibOptions):zlib.createInflateRaw(this.#zlibOptions),this._inflateStream.on("data",this.push.bind(this)),this._inflateStream.on("end",()=>this.push(null)),this._inflateStream.on("error",err=>this.destroy(err))}this._inflateStream.write(chunk,encoding,callback)}_final(callback){this._inflateStream&&(this._inflateStream.end(),this._inflateStream=null),callback()}};function createInflate(zlibOptions){return new InflateStream(zlibOptions)}function extractMimeType(headers){let charset=null,essence=null,mimeType=null,values=getDecodeSplit("content-type",headers);if(values===null)return"failure";for(let value of values){let temporaryMimeType=parseMIMEType(value);temporaryMimeType==="failure"||temporaryMimeType.essence==="*/*"||(mimeType=temporaryMimeType,mimeType.essence!==essence?(charset=null,mimeType.parameters.has("charset")&&(charset=mimeType.parameters.get("charset")),essence=mimeType.essence):!mimeType.parameters.has("charset")&&charset!==null&&mimeType.parameters.set("charset",charset))}return mimeType??"failure"}function gettingDecodingSplitting(value){let input=value,position={position:0},values=[],temporaryValue="";for(;position.position<input.length;){if(temporaryValue+=collectASequenceOfCodePoints(char=>char!=='"'&&char!==",",input,position),position.position<input.length)if(input.charCodeAt(position.position)===34){if(temporaryValue+=collectAnHTTPQuotedString(input,position),position.position<input.length)continue}else assert(input.charCodeAt(position.position)===44),position.position++;temporaryValue=removeChars(temporaryValue,!0,!0,char=>char===9||char===32),values.push(temporaryValue),temporaryValue=""}return values}function getDecodeSplit(name,list){let value=list.get(name,!0);return value===null?null:gettingDecodingSplitting(value)}function hasAuthenticationEntry(request){return!1}function includesCredentials(url){return!!(url.username||url.password)}function isTraversableNavigable(navigable){return navigable!=null&&navigable!=="client"&&navigable!=="no-traversable"}var EnvironmentSettingsObjectBase=class{get baseUrl(){return getGlobalOrigin()}get origin(){return this.baseUrl?.origin}policyContainer=makePolicyContainer()},EnvironmentSettingsObject=class{settingsObject=new EnvironmentSettingsObjectBase},environmentSettingsObject=new EnvironmentSettingsObject;module.exports={isAborted,isCancelled,isValidEncodedURL,ReadableStreamFrom,tryUpgradeRequestToAPotentiallyTrustworthyURL,clampAndCoarsenConnectionTimingInfo,coarsenedSharedCurrentTime,determineRequestsReferrer,makePolicyContainer,clonePolicyContainer,appendFetchMetadata,appendRequestOriginHeader,TAOCheck,corsCheck,crossOriginResourcePolicyCheck,createOpaqueTimingInfo,setRequestReferrerPolicyOnRedirect,isValidHTTPToken,requestBadPort,requestCurrentURL,responseURL,responseLocationURL,isURLPotentiallyTrustworthy,isValidReasonPhrase,sameOrigin,normalizeMethod,iteratorMixin,createIterator,isValidHeaderName,isValidHeaderValue,isErrorLike,fullyReadBody,readableStreamClose,urlIsLocal,urlHasHttpsScheme,urlIsHttpHttpsScheme,readAllBytes,simpleRangeHeaderValue,buildContentRange,createInflate,extractMimeType,getDecodeSplit,environmentSettingsObject,isOriginIPPotentiallyTrustworthy,hasAuthenticationEntry,includesCredentials,isTraversableNavigable}}});var require_runtime_features=__commonJS({"node_modules/undici/lib/util/runtime-features.js"(exports,module){"use strict";var lazyLoaders={__proto__:null,"node:crypto":()=>__require("node:crypto"),"node:sqlite":()=>__require("node:sqlite")};function detectRuntimeFeatureByNodeModule(moduleName){try{return lazyLoaders[moduleName](),!0}catch(err){if(err.code!=="ERR_UNKNOWN_BUILTIN_MODULE"&&err.code!=="ERR_NO_CRYPTO")throw err;return!1}}var runtimeFeaturesAsNodeModule=["crypto","sqlite"];function detectRuntimeFeature(feature){if(runtimeFeaturesAsNodeModule.includes(feature))return detectRuntimeFeatureByNodeModule(`node:${feature}`);throw new TypeError(`unknown feature: ${feature}`)}var RuntimeFeatures=class{#map=new Map;clear(){this.#map.clear()}has(feature){return this.#map.get(feature)??this.#detectRuntimeFeature(feature)}set(feature,value){if(runtimeFeaturesAsNodeModule.includes(feature)===!1)throw new TypeError(`unknown feature: ${feature}`);this.#map.set(feature,value)}#detectRuntimeFeature(feature){let result=detectRuntimeFeature(feature);return this.#map.set(feature,result),result}},instance=new RuntimeFeatures;module.exports.runtimeFeatures=instance;module.exports.default=instance}});var require_formdata=__commonJS({"node_modules/undici/lib/web/fetch/formdata.js"(exports,module){"use strict";var{iteratorMixin}=require_util2(),{kEnumerableProperty}=require_util(),{webidl}=require_webidl(),nodeUtil=__require("node:util"),{runtimeFeatures}=require_runtime_features(),random=runtimeFeatures.has("crypto")?__require("node:crypto").randomInt:max=>Math.floor(Math.random()*max),FormData=class _FormData{#state=[];#boundary=null;constructor(form=void 0){if(webidl.util.markAsUncloneable(this),form!==void 0)throw webidl.errors.conversionFailed({prefix:"FormData constructor",argument:"Argument 1",types:["undefined"]})}append(name,value,filename=void 0){webidl.brandCheck(this,_FormData);let prefix="FormData.append";webidl.argumentLengthCheck(arguments,2,prefix),name=webidl.converters.USVString(name),arguments.length===3||webidl.is.Blob(value)?(value=webidl.converters.Blob(value,prefix,"value"),filename!==void 0&&(filename=webidl.converters.USVString(filename))):value=webidl.converters.USVString(value);let entry=makeEntry(name,value,filename);this.#state.push(entry)}delete(name){webidl.brandCheck(this,_FormData),webidl.argumentLengthCheck(arguments,1,"FormData.delete"),name=webidl.converters.USVString(name),this.#state=this.#state.filter(entry=>entry.name!==name)}get(name){webidl.brandCheck(this,_FormData),webidl.argumentLengthCheck(arguments,1,"FormData.get"),name=webidl.converters.USVString(name);let idx=this.#state.findIndex(entry=>entry.name===name);return idx===-1?null:this.#state[idx].value}getAll(name){return webidl.brandCheck(this,_FormData),webidl.argumentLengthCheck(arguments,1,"FormData.getAll"),name=webidl.converters.USVString(name),this.#state.filter(entry=>entry.name===name).map(entry=>entry.value)}has(name){return webidl.brandCheck(this,_FormData),webidl.argumentLengthCheck(arguments,1,"FormData.has"),name=webidl.converters.USVString(name),this.#state.findIndex(entry=>entry.name===name)!==-1}set(name,value,filename=void 0){webidl.brandCheck(this,_FormData);let prefix="FormData.set";webidl.argumentLengthCheck(arguments,2,prefix),name=webidl.converters.USVString(name),arguments.length===3||webidl.is.Blob(value)?(value=webidl.converters.Blob(value,prefix,"value"),filename!==void 0&&(filename=webidl.converters.USVString(filename))):value=webidl.converters.USVString(value);let entry=makeEntry(name,value,filename),idx=this.#state.findIndex(entry2=>entry2.name===name);idx!==-1?this.#state=[...this.#state.slice(0,idx),entry,...this.#state.slice(idx+1).filter(entry2=>entry2.name!==name)]:this.#state.push(entry)}[nodeUtil.inspect.custom](depth,options){let state=this.#state.reduce((a,b)=>(a[b.name]?Array.isArray(a[b.name])?a[b.name].push(b.value):a[b.name]=[a[b.name],b.value]:a[b.name]=b.value,a),{__proto__:null});options.depth??=depth,options.colors??=!0;let output=nodeUtil.formatWithOptions(options,state);return`FormData ${output.slice(output.indexOf("]")+2)}`}static getFormDataState(formData){return formData.#state}static setFormDataState(formData,newState){formData.#state=newState}static getFormDataBoundary(formData){let boundary=formData.#boundary;return boundary??(formData.#boundary=`----formdata-undici-0${`${random(1e11)}`.padStart(11,"0")}`)}},{getFormDataState,setFormDataState,getFormDataBoundary}=FormData;Reflect.deleteProperty(FormData,"getFormDataState");Reflect.deleteProperty(FormData,"setFormDataState");Reflect.deleteProperty(FormData,"getFormDataBoundary");iteratorMixin("FormData",FormData,getFormDataState,"name","value");Object.defineProperties(FormData.prototype,{append:kEnumerableProperty,delete:kEnumerableProperty,get:kEnumerableProperty,getAll:kEnumerableProperty,has:kEnumerableProperty,set:kEnumerableProperty,[Symbol.toStringTag]:{value:"FormData",configurable:!0}});function makeEntry(name,value,filename){if(typeof value!="string"){if(webidl.is.File(value)||(value=new File([value],"blob",{type:value.type})),filename!==void 0){let options={type:value.type,lastModified:value.lastModified};value=new File([value],filename,options)}}return{name,value}}webidl.is.FormData=webidl.util.MakeTypeAssertion(FormData);module.exports={FormData,makeEntry,setFormDataState,getFormDataBoundary}}});var require_formdata_parser=__commonJS({"node_modules/undici/lib/web/fetch/formdata-parser.js"(exports,module){"use strict";var{bufferToLowerCasedHeaderName}=require_util(),{HTTP_TOKEN_CODEPOINTS}=require_data_url(),{makeEntry}=require_formdata(),{webidl}=require_webidl(),assert=__require("node:assert"),{isomorphicDecode}=require_infra(),dd=Buffer.from("--"),decoder=new TextDecoder,decoderIgnoreBOM=new TextDecoder("utf-8",{ignoreBOM:!0});function isAsciiString(chars){for(let i=0;i<chars.length;++i)if((chars.charCodeAt(i)&-128)!==0)return!1;return!0}function validateBoundary(boundary){let length=boundary.length;if(length<27||length>70)return!1;for(let i=0;i<length;++i){let cp=boundary.charCodeAt(i);if(!(cp>=48&&cp<=57||cp>=65&&cp<=90||cp>=97&&cp<=122||cp===39||cp===45||cp===95))return!1}return!0}function multipartFormDataParser(input,mimeType){assert(mimeType!=="failure"&&mimeType.essence==="multipart/form-data");let boundaryString=mimeType.parameters.get("boundary");if(boundaryString===void 0)throw parsingError("missing boundary in content-type header");let boundary=Buffer.from(`--${boundaryString}`,"utf8"),entryList=[],position={position:0},firstBoundaryIndex=input.indexOf(boundary);if(firstBoundaryIndex===-1)throw parsingError("no boundary found in multipart body");for(position.position=firstBoundaryIndex;;){if(input.subarray(position.position,position.position+boundary.length).equals(boundary))position.position+=boundary.length;else throw parsingError("expected a value starting with -- and the boundary");if(bufferStartsWith(input,dd,position))return entryList;if(input[position.position]!==13||input[position.position+1]!==10)throw parsingError("expected CRLF");position.position+=2;let result=parseMultipartFormDataHeaders(input,position),{name,filename,contentType,encoding}=result;position.position+=2;let body;{let boundaryIndex=input.indexOf(boundary.subarray(2),position.position);if(boundaryIndex===-1)throw parsingError("expected boundary after body");body=input.subarray(position.position,boundaryIndex-4),position.position+=body.length,encoding==="base64"&&(body=Buffer.from(body.toString(),"base64"))}if(input[position.position]!==13||input[position.position+1]!==10)throw parsingError("expected CRLF");position.position+=2;let value;filename!==null?(contentType??="text/plain",isAsciiString(contentType)||(contentType=""),value=new File([body],filename,{type:contentType})):value=decoderIgnoreBOM.decode(Buffer.from(body)),assert(webidl.is.USVString(name)),assert(typeof value=="string"&&webidl.is.USVString(value)||webidl.is.File(value)),entryList.push(makeEntry(name,value,filename))}}function parseContentDispositionAttribute(input,position){input[position.position]===59&&position.position++,collectASequenceOfBytes(char=>char===32||char===9,input,position);let attributeName=collectASequenceOfBytes(char=>isToken(char)&&char!==61&&char!==42,input,position);if(attributeName.length===0)return null;let attrNameStr=attributeName.toString("ascii").toLowerCase(),isExtended=input[position.position]===42;if(isExtended&&position.position++,input[position.position]!==61)return null;position.position++,collectASequenceOfBytes(char=>char===32||char===9,input,position);let value;if(isExtended){let headerValue=collectASequenceOfBytes(char=>char!==32&&char!==13&&char!==10&&char!==59,input,position);if(headerValue[0]!==117&&headerValue[0]!==85||headerValue[1]!==116&&headerValue[1]!==84||headerValue[2]!==102&&headerValue[2]!==70||headerValue[3]!==45||headerValue[4]!==56)throw parsingError("unknown encoding, expected utf-8''");value=decodeURIComponent(decoder.decode(headerValue.subarray(7)))}else if(input[position.position]===34){position.position++;let quotedValue=collectASequenceOfBytes(char=>char!==10&&char!==13&&char!==34,input,position);if(input[position.position]!==34)throw parsingError("Closing quote not found");position.position++,value=decoder.decode(quotedValue).replace(/%0A/ig,`
|
|
4
|
+
`).replace(/%0D/ig,"\r").replace(/%22/g,'"')}else{let tokenValue=collectASequenceOfBytes(char=>isToken(char)&&char!==59,input,position);value=decoder.decode(tokenValue)}return{name:attrNameStr,value,extended:isExtended}}function parseMultipartFormDataHeaders(input,position){let name=null,filename=null,contentType=null,encoding=null;for(;;){if(input[position.position]===13&&input[position.position+1]===10){if(name===null)throw parsingError("header name is null");return{name,filename,contentType,encoding}}let headerName=collectASequenceOfBytes(char=>char!==10&&char!==13&&char!==58,input,position);if(headerName=removeChars(headerName,!0,!0,char=>char===9||char===32),!HTTP_TOKEN_CODEPOINTS.test(headerName.toString()))throw parsingError("header name does not match the field-name token production");if(input[position.position]!==58)throw parsingError("expected :");switch(position.position++,collectASequenceOfBytes(char=>char===32||char===9,input,position),bufferToLowerCasedHeaderName(headerName)){case"content-disposition":{name=filename=null;let filenameIsExtended=!1;if(collectASequenceOfBytes(char=>isToken(char),input,position).toString("ascii").toLowerCase()!=="form-data")throw parsingError("expected form-data for content-disposition header");for(;position.position<input.length&&(input[position.position]!==13||input[position.position+1]!==10);){let attribute=parseContentDispositionAttribute(input,position);if(!attribute)break;attribute.name==="name"?name=attribute.value:attribute.name==="filename"&&(attribute.extended?(filename=attribute.value,filenameIsExtended=!0):filenameIsExtended||(filename=attribute.value))}if(name===null)throw parsingError("name attribute is required in content-disposition header");break}case"content-type":{let headerValue=collectASequenceOfBytes(char=>char!==10&&char!==13,input,position);headerValue=removeChars(headerValue,!1,!0,char=>char===9||char===32),contentType=isomorphicDecode(headerValue);break}case"content-transfer-encoding":{let headerValue=collectASequenceOfBytes(char=>char!==10&&char!==13,input,position);headerValue=removeChars(headerValue,!1,!0,char=>char===9||char===32),encoding=isomorphicDecode(headerValue);break}default:collectASequenceOfBytes(char=>char!==10&&char!==13,input,position)}if(input[position.position]!==13||input[position.position+1]!==10)throw parsingError("expected CRLF");position.position+=2}}function collectASequenceOfBytes(condition,input,position){let start=position.position;for(;start<input.length&&condition(input[start]);)++start;return input.subarray(position.position,position.position=start)}function removeChars(buf,leading,trailing,predicate){let lead=0,trail=buf.length-1;if(leading)for(;lead<buf.length&&predicate(buf[lead]);)lead++;if(trailing)for(;trail>0&&predicate(buf[trail]);)trail--;return lead===0&&trail===buf.length-1?buf:buf.subarray(lead,trail+1)}function bufferStartsWith(buffer,start,position){if(buffer.length<start.length)return!1;for(let i=0;i<start.length;i++)if(start[i]!==buffer[position.position+i])return!1;return!0}function parsingError(cause){return new TypeError("Failed to parse body as FormData.",{cause:new TypeError(cause)})}function isCTL(char){return char<=31||char===127}function isTSpecial(char){return char===40||char===41||char===60||char===62||char===64||char===44||char===59||char===58||char===92||char===34||char===47||char===91||char===93||char===63||char===61}function isToken(char){return char<=127&&char!==32&&char!==9&&!isCTL(char)&&!isTSpecial(char)}module.exports={multipartFormDataParser,validateBoundary}}});var require_body=__commonJS({"node_modules/undici/lib/web/fetch/body.js"(exports,module){"use strict";var util=require_util(),{ReadableStreamFrom,readableStreamClose,fullyReadBody,extractMimeType}=require_util2(),{FormData,setFormDataState,getFormDataBoundary}=require_formdata(),{webidl}=require_webidl(),assert=__require("node:assert"),{isErrored,isDisturbed}=__require("node:stream"),{isUint8Array}=__require("node:util/types"),{serializeAMimeType}=require_data_url(),{multipartFormDataParser}=require_formdata_parser(),{parseJSONFromBytes}=require_infra(),{utf8DecodeBytes}=require_encoding(),{ReadableStreamTee}=__require("node:stream/web"),textEncoder=new TextEncoder;function noop(){}var streamRegistry=new FinalizationRegistry(weakRef=>{let stream=weakRef.deref();stream&&!stream.locked&&!isDisturbed(stream)&&!isErrored(stream)&&stream.cancel("Response object has been garbage collected").catch(noop)});function extractBody(object,keepalive=!1){let stream=null,controller=null;webidl.is.ReadableStream(object)?stream=object:webidl.is.Blob(object)?stream=object.stream():stream=new ReadableStream({pull(){},start(c){controller=c},cancel(){},type:"bytes"}),assert(webidl.is.ReadableStream(stream));let action=null,source=null,length=null,type=null;if(typeof object=="string")source=object,type="text/plain;charset=UTF-8";else if(webidl.is.URLSearchParams(object))source=object.toString(),type="application/x-www-form-urlencoded;charset=UTF-8";else if(webidl.is.BufferSource(object))source=webidl.util.getCopyOfBytesHeldByBufferSource(object);else if(webidl.is.FormData(object)){let boundary=getFormDataBoundary(object),prefix=`--${boundary}\r
|
|
5
|
+
Content-Disposition: form-data`;let formdataEscape=str=>str.replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),normalizeLinefeeds=value=>value.replace(/\r?\n|\r/g,`\r
|
|
6
|
+
`),blobParts=[],rn=new Uint8Array([13,10]);length=0;let hasUnknownSizeValue=!1;for(let[name,value]of object)if(typeof value=="string"){let chunk2=textEncoder.encode(prefix+`; name="${formdataEscape(normalizeLinefeeds(name))}"\r
|
|
7
|
+
\r
|
|
8
|
+
${normalizeLinefeeds(value)}\r
|
|
9
|
+
`);blobParts.push(chunk2),length+=chunk2.byteLength}else{let chunk2=textEncoder.encode(`${prefix}; name="${formdataEscape(normalizeLinefeeds(name))}"`+(value.name?`; filename="${formdataEscape(value.name)}"`:"")+`\r
|
|
10
|
+
Content-Type: ${value.type||"application/octet-stream"}\r
|
|
11
|
+
\r
|
|
12
|
+
`);blobParts.push(chunk2,value,rn),typeof value.size=="number"?length+=chunk2.byteLength+value.size+rn.byteLength:hasUnknownSizeValue=!0}let chunk=textEncoder.encode(`--${boundary}--\r
|
|
13
|
+
`);blobParts.push(chunk),length+=chunk.byteLength,hasUnknownSizeValue&&(length=null),source=object,action=async function*(){for(let part of blobParts)part.stream?yield*part.stream():yield part},type=`multipart/form-data; boundary=${boundary}`}else if(webidl.is.Blob(object))source=object,length=object.size,object.type&&(type=object.type);else if(typeof object[Symbol.asyncIterator]=="function"){if(keepalive)throw new TypeError("keepalive");if(util.isDisturbed(object)||object.locked)throw new TypeError("Response body object should not be disturbed or locked");stream=webidl.is.ReadableStream(object)?object:ReadableStreamFrom(object)}return(typeof source=="string"||isUint8Array(source))&&(action=()=>(length=typeof source=="string"?Buffer.byteLength(source):source.length,source)),action!=null&&(async()=>{let result=action(),iterator=result?.[Symbol.asyncIterator]?.();if(iterator)for await(let bytes of iterator){if(isErrored(stream))break;bytes.length&&controller.enqueue(new Uint8Array(bytes))}else result?.length&&!isErrored(stream)&&controller.enqueue(typeof result=="string"?textEncoder.encode(result):new Uint8Array(result));queueMicrotask(()=>readableStreamClose(controller))})(),[{stream,source,length},type]}function safelyExtractBody(object,keepalive=!1){return webidl.is.ReadableStream(object)&&(assert(!util.isDisturbed(object),"The body has already been consumed."),assert(!object.locked,"The stream is locked.")),extractBody(object,keepalive)}function cloneBody(body){let{0:out1,1:out2}=ReadableStreamTee?.(body.stream,!0)??body.stream.tee();return body.stream=out1,{stream:out2,length:body.length,source:body.source}}function bodyMixinMethods(instance,getInternalState){return{blob(){return consumeBody(this,bytes=>{let mimeType=bodyMimeType(getInternalState(this));return mimeType===null?mimeType="":mimeType&&(mimeType=serializeAMimeType(mimeType)),new Blob([bytes],{type:mimeType})},instance,getInternalState)},arrayBuffer(){return consumeBody(this,bytes=>new Uint8Array(bytes).buffer,instance,getInternalState)},text(){return consumeBody(this,utf8DecodeBytes,instance,getInternalState)},json(){return consumeBody(this,parseJSONFromBytes,instance,getInternalState)},formData(){return consumeBody(this,value=>{let mimeType=bodyMimeType(getInternalState(this));if(mimeType!==null)switch(mimeType.essence){case"multipart/form-data":{let parsed=multipartFormDataParser(value,mimeType),fd=new FormData;return setFormDataState(fd,parsed),fd}case"application/x-www-form-urlencoded":{let entries=new URLSearchParams(value.toString()),fd=new FormData;for(let[name,value2]of entries)fd.append(name,value2);return fd}}throw new TypeError('Content-Type was not one of "multipart/form-data" or "application/x-www-form-urlencoded".')},instance,getInternalState)},bytes(){return consumeBody(this,bytes=>new Uint8Array(bytes),instance,getInternalState)},textStream(){let this_=getInternalState(this);if(bodyUnusable(this_))throw new TypeError("Body is unusable: Body has already been read");if(this_.body==null){let controller,emptyStream=new ReadableStream({start:c=>{controller=c},pull:()=>Promise.resolve(),cancel:()=>Promise.resolve()},{size:()=>1});return controller.close(),emptyStream}let stream=this_.body.stream,decoder=new TextDecoderStream("UTF-8");return stream.pipeThrough(decoder)}}}function mixinBody(prototype,getInternalState){Object.assign(prototype.prototype,bodyMixinMethods(prototype,getInternalState))}function consumeBody(object,convertBytesToJSValue,instance,getInternalState){try{webidl.brandCheck(object,instance)}catch(e){return Promise.reject(e)}if(object=getInternalState(object),bodyUnusable(object))return Promise.reject(new TypeError("Body is unusable: Body has already been read"));let promise=Promise.withResolvers(),errorSteps=promise.reject,successSteps=data=>{try{promise.resolve(convertBytesToJSValue(data))}catch(e){errorSteps(e)}};return object.body==null?(successSteps(Buffer.allocUnsafe(0)),promise.promise):(fullyReadBody(object.body,successSteps,errorSteps),promise.promise)}function bodyUnusable(object){let body=object.body;return body!=null&&(body.stream.locked||util.isDisturbed(body.stream))}function bodyMimeType(requestOrResponse){let headers=requestOrResponse.headersList,mimeType=extractMimeType(headers);return mimeType==="failure"?null:mimeType}module.exports={extractBody,safelyExtractBody,cloneBody,mixinBody,streamRegistry,bodyUnusable}}});var require_client_h1=__commonJS({"node_modules/undici/lib/dispatcher/client-h1.js"(exports,module){"use strict";var assert=__require("node:assert"),util=require_util(),{channels}=require_diagnostics(),timers=require_timers(),{RequestContentLengthMismatchError,ResponseContentLengthMismatchError,RequestAbortedError,InvalidArgumentError,HeadersTimeoutError,HeadersOverflowError,SocketError,InformationalError,BodyTimeoutError,HTTPParserError,ResponseExceededMaxSizeError}=require_errors(),{kUrl,kReset,kClient,kParser,kBlocking,kRunning,kPending,kSize,kWriting,kQueue,kNoRef,kKeepAliveDefaultTimeout,kHostHeader,kPendingIdx,kRunningIdx,kError,kPipelining,kSocket,kKeepAliveTimeoutValue,kMaxHeadersSize,kKeepAliveMaxTimeout,kKeepAliveTimeoutThreshold,kHeadersTimeout,kBodyTimeout,kStrictContentLength,kMaxRequests,kCounter,kMaxResponseSize,kOnError,kResume,kHTTPContext,kClosed}=require_symbols(),constants=require_constants2(),EMPTY_BUF=Buffer.alloc(0),FastBuffer=Buffer[Symbol.species],removeAllListeners=util.removeAllListeners,kIdleSocketValidation=Symbol("kIdleSocketValidation"),kIdleSocketValidationTimeout=Symbol("kIdleSocketValidationTimeout"),kSocketUsed=Symbol("kSocketUsed"),kTypeOfService=Symbol("kTypeOfService"),extractBody;function lazyllhttp(){let llhttpWasmData=process.env.JEST_WORKER_ID?require_llhttp_wasm():void 0,mod,useWasmSIMD=process.arch!=="ppc64";if(process.env.UNDICI_NO_WASM_SIMD==="1"?useWasmSIMD=!1:process.env.UNDICI_NO_WASM_SIMD==="0"&&(useWasmSIMD=!0),useWasmSIMD)try{mod=new WebAssembly.Module(require_llhttp_simd_wasm())}catch{}return mod||(mod=new WebAssembly.Module(llhttpWasmData||require_llhttp_wasm())),new WebAssembly.Instance(mod,{env:{wasm_on_url:(p,at,len)=>0,wasm_on_status:(p,at,len)=>{assert(currentParser.ptr===p);let start=at-currentBufferPtr+currentBufferRef.byteOffset;return currentParser.onStatus(new FastBuffer(currentBufferRef.buffer,start,len))},wasm_on_message_begin:p=>(assert(currentParser.ptr===p),currentParser.onMessageBegin()),wasm_on_header_field:(p,at,len)=>{assert(currentParser.ptr===p);let start=at-currentBufferPtr+currentBufferRef.byteOffset;return currentParser.onHeaderField(new FastBuffer(currentBufferRef.buffer,start,len))},wasm_on_header_value:(p,at,len)=>{assert(currentParser.ptr===p);let start=at-currentBufferPtr+currentBufferRef.byteOffset;return currentParser.onHeaderValue(new FastBuffer(currentBufferRef.buffer,start,len))},wasm_on_headers_complete:(p,statusCode,upgrade,shouldKeepAlive)=>(assert(currentParser.ptr===p),currentParser.onHeadersComplete(statusCode,upgrade===1,shouldKeepAlive===1)),wasm_on_body:(p,at,len)=>{assert(currentParser.ptr===p);let start=at-currentBufferPtr+currentBufferRef.byteOffset;return currentParser.onBody(new FastBuffer(currentBufferRef.buffer,start,len))},wasm_on_message_complete:p=>(assert(currentParser.ptr===p),currentParser.onMessageComplete())}})}var llhttpInstance=null,currentParser=null,currentBufferRef=null,currentBufferSize=0,currentBufferPtr=null,currentBuffer=null,USE_NATIVE_TIMER=0,USE_FAST_TIMER=1,TIMEOUT_HEADERS=2|USE_FAST_TIMER,TIMEOUT_BODY=4|USE_FAST_TIMER,TIMEOUT_KEEP_ALIVE=8|USE_NATIVE_TIMER,Parser=class{constructor(client,socket,{exports:exports2}){this.llhttp=exports2,this.ptr=this.llhttp.llhttp_alloc(constants.TYPE.RESPONSE),this.client=client,this.socket=socket,this.timeout=null,this.timeoutWeakRef=new WeakRef(this),this.timeoutValue=null,this.timeoutType=null,this.statusCode=0,this.statusText="",this.upgrade=!1,this.headers=[],this.headersSize=0,this.headersMaxSize=client[kMaxHeadersSize],this.shouldKeepAlive=!1,this.paused=!1,this.resume=this.resume.bind(this),this.bytesRead=0,this.keepAlive="",this.contentLength=-1,this.connectionKeepAlive=!1,this.maxResponseSize=client[kMaxResponseSize]}setTimeout(delay,type){delay!==this.timeoutValue||type&USE_FAST_TIMER^this.timeoutType&USE_FAST_TIMER?(this.timeout&&(timers.clearTimeout(this.timeout),this.timeout=null),delay&&(type&USE_FAST_TIMER?this.timeout=timers.setFastTimeout(onParserTimeout,delay,this.timeoutWeakRef):(this.timeout=setTimeout(onParserTimeout,delay,this.timeoutWeakRef),this.timeout?.unref())),this.timeoutValue=delay):this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.timeoutType=type}resume(){this.socket.destroyed||!this.paused||(assert(this.ptr!=null),assert(currentParser===null),this.llhttp.llhttp_resume(this.ptr),assert(this.timeoutType===TIMEOUT_BODY),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.paused=!1,this.execute(this.socket.read()||EMPTY_BUF),this.readMore())}readMore(){for(;!this.paused&&this.ptr;){let chunk=this.socket.read();if(chunk===null)break;this.execute(chunk)}}execute(chunk){assert(currentParser===null),assert(this.ptr!=null),assert(!this.paused);let{socket,llhttp}=this;chunk.length>currentBufferSize&&(currentBufferPtr&&llhttp.free(currentBufferPtr),currentBufferSize=Math.ceil(chunk.length/4096)*4096,currentBufferPtr=llhttp.malloc(currentBufferSize)),(currentBuffer===null||currentBuffer.buffer!==llhttp.memory.buffer||currentBuffer.byteOffset!==currentBufferPtr||currentBuffer.byteLength!==currentBufferSize)&&(currentBuffer=new Uint8Array(llhttp.memory.buffer,currentBufferPtr,currentBufferSize)),currentBuffer.set(chunk);try{let ret;try{currentBufferRef=chunk,currentParser=this,ret=llhttp.llhttp_execute(this.ptr,currentBufferPtr,chunk.length)}finally{currentParser=null,currentBufferRef=null}if(ret!==constants.ERROR.OK){let data=chunk.subarray(llhttp.llhttp_get_error_pos(this.ptr)-currentBufferPtr);if(ret===constants.ERROR.PAUSED_UPGRADE)this.onUpgrade(data);else if(ret===constants.ERROR.PAUSED)this.paused=!0,socket.unshift(data);else throw this.createError(ret,data)}}catch(err){util.destroy(socket,err)}}finish(){assert(currentParser===null),assert(this.ptr!=null);let{llhttp}=this;if(this.paused){let data;do llhttp.llhttp_resume(this.ptr),this.paused=!1,data=this.socket.read()||EMPTY_BUF,this.execute(data);while(this.paused&&data.length>0);this.paused&&(llhttp.llhttp_resume(this.ptr),this.paused=!1)}let ret;try{currentParser=this,ret=llhttp.llhttp_finish(this.ptr)}finally{currentParser=null}return ret===constants.ERROR.OK?null:ret===constants.ERROR.PAUSED||ret===constants.ERROR.PAUSED_UPGRADE?(this.paused=!0,null):this.createError(ret,EMPTY_BUF)}createError(ret,data){let{llhttp,contentLength,bytesRead}=this;if(contentLength!==-1&&bytesRead!==contentLength)return new ResponseContentLengthMismatchError;let ptr=llhttp.llhttp_get_error_reason(this.ptr),message="";if(ptr){let len=new Uint8Array(llhttp.memory.buffer,ptr).indexOf(0);message="Response does not match the HTTP/1.1 protocol ("+Buffer.from(llhttp.memory.buffer,ptr,len).toString()+")"}return new HTTPParserError(message,constants.ERROR[ret],data)}destroy(){assert(currentParser===null),assert(this.ptr!=null),this.llhttp.llhttp_free(this.ptr),this.ptr=null,this.timeout&&timers.clearTimeout(this.timeout),this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.paused=!1}onStatus(buf){return this.statusText=buf.toString(),0}onMessageBegin(){let{socket,client}=this;if(socket.destroyed)return-1;if(client[kRunning]===0)return util.destroy(socket,new SocketError("bad response",util.getSocketInfo(socket))),-1;let request=client[kQueue][client[kRunningIdx]];return request?(request.onResponseStarted(),0):-1}onHeaderField(buf){let len=this.headers.length;return(len&1)===0?this.headers.push(buf):this.headers[len-1]=Buffer.concat([this.headers[len-1],buf]),this.trackHeader(buf.length),0}onHeaderValue(buf){let len=this.headers.length;(len&1)===1?(this.headers.push(buf),len+=1):this.headers[len-1]=Buffer.concat([this.headers[len-1],buf]);let key=this.headers[len-2];if(key.length===10){let headerName=util.bufferToLowerCasedHeaderName(key);headerName==="keep-alive"?this.keepAlive+=buf.toString():headerName==="connection"&&(this.connectionKeepAlive=this.headers[len-1].length===10&&util.bufferToLowerCasedHeaderName(this.headers[len-1])==="keep-alive")}else if(key.length===14&&util.bufferToLowerCasedHeaderName(key)==="content-length"){this.contentLength===-1&&(this.contentLength=0);for(let i=0;i<buf.length;i++)this.contentLength=this.contentLength*10+(buf[i]-48)}return this.trackHeader(buf.length),0}trackHeader(len){this.headersSize+=len,this.headersSize>=this.headersMaxSize&&util.destroy(this.socket,new HeadersOverflowError)}onUpgrade(head){let{upgrade,client,socket,headers,statusCode}=this;assert(upgrade),assert(client[kSocket]===socket),assert(!socket.destroyed),assert(!this.paused),assert((headers.length&1)===0);let request=client[kQueue][client[kRunningIdx]];assert(request),assert(request.upgrade||request.method==="CONNECT"),this.statusCode=0,this.statusText="",this.shouldKeepAlive=!1,this.headers=[],this.headersSize=0,socket.unshift(head),socket[kParser].destroy(),socket[kParser]=null,socket[kClient]=null,socket[kError]=null,removeAllListeners(socket),client[kSocket]=null,client[kHTTPContext]=null,client[kQueue][client[kRunningIdx]++]=null,client.emit("disconnect",client[kUrl],[client],new InformationalError("upgrade"));try{request.onRequestUpgrade(statusCode,headers,socket)}catch(err){util.destroy(socket,err)}client[kResume]()}onHeadersComplete(statusCode,upgrade,shouldKeepAlive){let{client,socket,headers,statusText}=this;if(socket.destroyed)return-1;if(client[kRunning]===0)return util.destroy(socket,new SocketError("bad response",util.getSocketInfo(socket))),-1;let request=client[kQueue][client[kRunningIdx]];if(!request)return-1;if(assert(!this.upgrade),assert(this.statusCode<200),statusCode===100)return util.destroy(socket,new SocketError("bad response",util.getSocketInfo(socket))),-1;if(upgrade&&!request.upgrade)return util.destroy(socket,new SocketError("bad upgrade",util.getSocketInfo(socket))),-1;if(assert(this.timeoutType===TIMEOUT_HEADERS),this.statusCode=statusCode,this.shouldKeepAlive=shouldKeepAlive||request.method==="HEAD"&&!socket[kReset]&&this.connectionKeepAlive,this.statusCode>=200){let bodyTimeout=request.bodyTimeout!=null?request.bodyTimeout:client[kBodyTimeout];this.setTimeout(bodyTimeout,TIMEOUT_BODY)}else this.timeout&&this.timeout.refresh&&this.timeout.refresh();if(request.method==="CONNECT")return assert(client[kRunning]===1),this.upgrade=!0,2;if(upgrade)return assert(client[kRunning]===1),this.upgrade=!0,2;if(assert((this.headers.length&1)===0),this.headers=[],this.headersSize=0,this.shouldKeepAlive&&client[kPipelining]){let keepAliveTimeout=this.keepAlive?util.parseKeepAliveTimeout(this.keepAlive):null;if(keepAliveTimeout!=null){let timeout=Math.min(keepAliveTimeout-client[kKeepAliveTimeoutThreshold],client[kKeepAliveMaxTimeout]);timeout<=0?socket[kReset]=!0:client[kKeepAliveTimeoutValue]=timeout}else client[kKeepAliveTimeoutValue]=client[kKeepAliveDefaultTimeout]}else socket[kReset]=!0;let pause=request.onResponseStart(statusCode,headers,this.resume,statusText)===!1;return request.aborted?-1:request.method==="HEAD"||statusCode<200?1:(socket[kBlocking]&&(socket[kBlocking]=!1,client[kResume]()),pause?constants.ERROR.PAUSED:0)}onBody(buf){let{client,socket,statusCode,maxResponseSize}=this;if(socket.destroyed)return-1;let request=client[kQueue][client[kRunningIdx]];return assert(request),assert(this.timeoutType===TIMEOUT_BODY),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),assert(statusCode>=200),maxResponseSize>-1&&this.bytesRead+buf.length>maxResponseSize?(util.destroy(socket,new ResponseExceededMaxSizeError),-1):(this.bytesRead+=buf.length,request.onResponseData(buf)===!1?constants.ERROR.PAUSED:0)}onMessageComplete(){let{client,socket,statusCode,upgrade,headers,contentLength,bytesRead,shouldKeepAlive}=this;if(socket.destroyed&&(!statusCode||shouldKeepAlive))return-1;if(upgrade)return 0;assert(statusCode>=100),assert((this.headers.length&1)===0);let request=client[kQueue][client[kRunningIdx]];if(assert(request),this.statusCode=0,this.statusText="",this.bytesRead=0,this.contentLength=-1,this.keepAlive="",this.connectionKeepAlive=!1,this.headers=[],this.headersSize=0,statusCode<200)return 0;if(request.method!=="HEAD"&&contentLength!==-1&&bytesRead!==contentLength)return util.destroy(socket,new ResponseContentLengthMismatchError),-1;if(request.onResponseEnd(headers),client[kQueue][client[kRunningIdx]++]=null,socket[kSocketUsed]=client[kPending]===0,socket[kWriting])return assert(client[kRunning]===0),util.destroy(socket,new InformationalError("reset")),constants.ERROR.PAUSED;if(shouldKeepAlive){if(socket[kReset]&&client[kRunning]===0)return util.destroy(socket,new InformationalError("reset")),constants.ERROR.PAUSED;client[kPipelining]==null||client[kPipelining]===1?setImmediate(client[kResume]):client[kResume]()}else return util.destroy(socket,new InformationalError("reset")),constants.ERROR.PAUSED;return 0}};function onParserTimeout(parserWeakRef){let parser=parserWeakRef.deref();if(!parser)return;let{socket,timeoutType,client,paused}=parser;timeoutType===TIMEOUT_HEADERS?(!socket[kWriting]||socket.writableNeedDrain||client[kRunning]>1)&&(assert(!paused,"cannot be paused while waiting for headers"),util.destroy(socket,new HeadersTimeoutError)):timeoutType===TIMEOUT_BODY?paused||util.destroy(socket,new BodyTimeoutError):timeoutType===TIMEOUT_KEEP_ALIVE&&(assert(client[kRunning]===0&&client[kKeepAliveTimeoutValue]),util.destroy(socket,new InformationalError("socket idle timeout")))}function connectH1(client,socket){if(client[kSocket]=socket,llhttpInstance||(llhttpInstance=lazyllhttp()),socket.errored)throw socket.errored;if(socket.destroyed)throw new SocketError("destroyed");return socket[kNoRef]=!1,socket[kWriting]=!1,socket[kReset]=!1,socket[kBlocking]=!1,socket[kIdleSocketValidation]=0,socket[kIdleSocketValidationTimeout]=null,socket[kSocketUsed]=!1,socket[kParser]=new Parser(client,socket,llhttpInstance),util.addListener(socket,"error",onHttpSocketError),util.addListener(socket,"readable",onHttpSocketReadable),util.addListener(socket,"end",onHttpSocketEnd),util.addListener(socket,"close",onHttpSocketClose),socket[kClosed]=!1,socket.on("close",onSocketClose),{version:"h1",defaultPipelining:1,write(request){return writeH1(client,request)},resume(){resumeH1(client)},destroy(err,callback){socket[kClosed]?queueMicrotask(callback):(socket.on("close",callback),socket.destroy(err))},get destroyed(){return socket.destroyed},busy(request){return!!(socket[kWriting]||socket[kReset]||socket[kBlocking]||socket[kIdleSocketValidation]===1||request&&(client[kRunning]>0&&!request.idempotent||client[kRunning]>0&&(request.upgrade||request.method==="CONNECT")||client[kRunning]>0&&util.bodyLength(request.body)!==0&&(util.isStream(request.body)||util.isAsyncIterable(request.body)||util.isFormDataLike(request.body))))}}}function onHttpSocketError(err){assert(err.code!=="ERR_TLS_CERT_ALTNAME_INVALID");let parser=this[kParser];if(err.code==="ECONNRESET"&&parser.statusCode&&!parser.shouldKeepAlive){let parserErr=parser.finish();parserErr&&(this[kError]=parserErr,this[kClient][kOnError](parserErr));return}this[kError]=err,this[kClient][kOnError](err)}function onHttpSocketReadable(){this[kParser]?.readMore()}function onHttpSocketEnd(){let parser=this[kParser];if(parser.statusCode&&!parser.shouldKeepAlive){let parserErr=parser.finish();parserErr&&util.destroy(this,parserErr);return}util.destroy(this,new SocketError("other side closed",util.getSocketInfo(this)))}function onHttpSocketClose(){let parser=this[kParser];clearIdleSocketValidation(this),parser&&(!this[kError]&&parser.statusCode&&!parser.shouldKeepAlive&&(this[kError]=parser.finish()||this[kError]),this[kParser].destroy(),this[kParser]=null);let err=this[kError]||new SocketError("closed",util.getSocketInfo(this)),client=this[kClient];if(client[kSocket]=null,client[kHTTPContext]=null,client.destroyed){assert(client[kPending]===0);let requests=client[kQueue].splice(client[kRunningIdx]);for(let i=0;i<requests.length;i++){let request=requests[i];util.errorRequest(client,request,err)}}else if(client[kRunning]>0&&err.code!=="UND_ERR_INFO"){let request=client[kQueue][client[kRunningIdx]];client[kQueue][client[kRunningIdx]++]=null,util.errorRequest(client,request,err)}client[kPendingIdx]=client[kRunningIdx],assert(client[kRunning]===0),client.emit("disconnect",client[kUrl],[client],err),client[kResume]()}function onSocketClose(){this[kClosed]=!0}function clearIdleSocketValidation(socket){socket[kIdleSocketValidationTimeout]&&(clearTimeout(socket[kIdleSocketValidationTimeout]),socket[kIdleSocketValidationTimeout]=null),socket[kIdleSocketValidation]=0}function scheduleIdleSocketValidation(client,socket){socket[kIdleSocketValidation]=1,socket[kIdleSocketValidationTimeout]=setTimeout(()=>{socket[kIdleSocketValidationTimeout]=null,socket[kIdleSocketValidation]=2,client[kSocket]===socket&&!socket.destroyed&&client[kResume]()},0),socket[kIdleSocketValidationTimeout].unref?.()}function resumeH1(client){let socket=client[kSocket];if(socket&&!socket.destroyed){if(client[kSize]===0?!socket[kNoRef]&&socket.unref&&(socket.unref(),socket[kNoRef]=!0):socket[kNoRef]&&socket.ref&&(socket.ref(),socket[kNoRef]=!1),client[kRunning]===0&&client[kPending]>0&&socket[kSocketUsed]){if(socket[kIdleSocketValidation]===0)return scheduleIdleSocketValidation(client,socket),socket[kParser].readMore(),socket.destroyed,void 0;if(socket[kIdleSocketValidation]===1)return socket[kParser].readMore(),socket.destroyed,void 0}if(client[kRunning]===0&&(socket[kParser].readMore(),socket.destroyed))return;if(client[kSize]===0)socket[kParser].timeoutType!==TIMEOUT_KEEP_ALIVE&&socket[kParser].setTimeout(client[kKeepAliveTimeoutValue],TIMEOUT_KEEP_ALIVE);else if(client[kRunning]>0&&socket[kParser].statusCode<200&&socket[kParser].timeoutType!==TIMEOUT_HEADERS){let request=client[kQueue][client[kRunningIdx]],headersTimeout=request.headersTimeout!=null?request.headersTimeout:client[kHeadersTimeout];socket[kParser].setTimeout(headersTimeout,TIMEOUT_HEADERS)}}}function shouldSendContentLength(method){return method!=="GET"&&method!=="HEAD"&&method!=="OPTIONS"&&method!=="TRACE"&&method!=="CONNECT"}function setTypeOfService(socket,request){if(typeof socket.setTypeOfService!="function")return;let typeOfService=request.typeOfService;if(!(typeOfService===void 0||socket[kTypeOfService]===typeOfService))try{socket.setTypeOfService(typeOfService),socket[kTypeOfService]=typeOfService}catch{}}function writeH1(client,request){let{method,path,host,upgrade,blocking,reset}=request,{body,headers,contentLength}=request,expectsPayload=method==="PUT"||method==="POST"||method==="PATCH"||method==="QUERY"||method==="PROPFIND"||method==="PROPPATCH";if(util.isFormDataLike(body)){extractBody||(extractBody=require_body().extractBody);let[bodyStream,contentType]=extractBody(body);request.contentType==null&&headers.push("content-type",contentType),body=bodyStream.stream,contentLength=bodyStream.length}else if(util.isBlobLike(body)&&request.contentType==null){let contentType=body.type;if(contentType){let contentTypeValue=`${contentType}`;if(!util.isValidHeaderValue(contentTypeValue))return util.errorRequest(client,request,new InvalidArgumentError("invalid content-type header")),!1;headers.push("content-type",contentTypeValue)}}body&&typeof body.read=="function"&&body.read(0);let bodyLength=util.bodyLength(body);if(contentLength=bodyLength??contentLength,contentLength===null&&(contentLength=request.contentLength),contentLength===0&&!expectsPayload&&(contentLength=null),shouldSendContentLength(method)&&contentLength>0&&request.contentLength!==null&&request.contentLength!==contentLength){if(client[kStrictContentLength])return util.errorRequest(client,request,new RequestContentLengthMismatchError),!1;process.emitWarning(new RequestContentLengthMismatchError)}let socket=client[kSocket];clearIdleSocketValidation(socket);let abort=err=>{request.aborted||request.completed||(util.errorRequest(client,request,err||new RequestAbortedError),util.destroy(body),util.destroy(socket,new InformationalError("aborted")))};try{request.onRequestStart(abort,null)}catch(err){util.errorRequest(client,request,err)}if(request.aborted)return!1;method==="HEAD"&&(socket[kReset]=!0),(upgrade||method==="CONNECT")&&(socket[kReset]=!0),reset!=null&&(socket[kReset]=reset),client[kMaxRequests]&&++socket[kCounter]>=client[kMaxRequests]&&(socket[kReset]=!0),blocking&&(socket[kBlocking]=!0),setTypeOfService(socket,request);let header=`${method} ${path} HTTP/1.1\r
|
|
14
|
+
`;if(typeof host=="string"?header+=`host: ${host}\r
|
|
15
|
+
`:header+=client[kHostHeader],upgrade?header+=`connection: upgrade\r
|
|
16
|
+
upgrade: ${upgrade}\r
|
|
17
|
+
`:client[kPipelining]&&!socket[kReset]?header+=`connection: keep-alive\r
|
|
18
|
+
`:header+=`connection: close\r
|
|
19
|
+
`,Array.isArray(headers))for(let n=0;n<headers.length;n+=2){let key=headers[n+0],val=headers[n+1];if(Array.isArray(val))for(let i=0;i<val.length;i++)header+=`${key}: ${val[i]}\r
|
|
20
|
+
`;else header+=`${key}: ${val}\r
|
|
21
|
+
`}return channels.sendHeaders.hasSubscribers&&channels.sendHeaders.publish({request,headers:header,socket}),!body||bodyLength===0?writeBuffer(abort,null,client,request,socket,contentLength,header,expectsPayload):util.isBuffer(body)?writeBuffer(abort,body,client,request,socket,contentLength,header,expectsPayload):util.isBlobLike(body)?typeof body.stream=="function"?writeIterable(abort,body.stream(),client,request,socket,contentLength,header,expectsPayload):writeBlob(abort,body,client,request,socket,contentLength,header,expectsPayload):util.isStream(body)?writeStream(abort,body,client,request,socket,contentLength,header,expectsPayload):util.isIterable(body)?writeIterable(abort,body,client,request,socket,contentLength,header,expectsPayload):assert(!1),!0}function writeStream(abort,body,client,request,socket,contentLength,header,expectsPayload){assert(contentLength!==0||client[kRunning]===0,"stream body cannot be pipelined");let finished=!1,writer=new AsyncWriter({abort,socket,request,contentLength,client,expectsPayload,header}),onData=function(chunk){if(!finished)try{!writer.write(chunk)&&this.pause&&this.pause()}catch(err){util.destroy(this,err)}},onDrain=function(){finished||body.resume&&body.resume()},onClose=function(){if(queueMicrotask(()=>{body.removeListener("error",onFinished)}),!finished){let err=new RequestAbortedError;queueMicrotask(()=>onFinished(err))}},onFinished=function(err){if(!finished){if(finished=!0,assert(socket.destroyed||socket[kWriting]&&client[kRunning]<=1),socket.off("drain",onDrain).off("error",onFinished),body.removeListener("data",onData).removeListener("end",onFinished).removeListener("close",onClose),!err)try{writer.end()}catch(er){err=er}writer.destroy(err),err&&(err.code!=="UND_ERR_INFO"||err.message!=="reset")?util.destroy(body,err):util.destroy(body)}};body.on("data",onData).on("end",onFinished).on("error",onFinished).on("close",onClose),body.resume&&body.resume(),socket.on("drain",onDrain).on("error",onFinished),body.errorEmitted??body.errored?setImmediate(onFinished,body.errored):(body.endEmitted??body.readableEnded)&&setImmediate(onFinished,null),(body.closeEmitted??body.closed)&&setImmediate(onClose)}function writeBuffer(abort,body,client,request,socket,contentLength,header,expectsPayload){try{body?util.isBuffer(body)&&(assert(contentLength===body.byteLength,"buffer body must have content length"),socket.cork(),socket.write(`${header}content-length: ${contentLength}\r
|
|
22
|
+
\r
|
|
23
|
+
`,"latin1"),socket.write(body),socket.uncork(),request.onBodySent(body),!expectsPayload&&request.reset!==!1&&(socket[kReset]=!0)):contentLength===0?socket.write(`${header}content-length: 0\r
|
|
24
|
+
\r
|
|
25
|
+
`,"latin1"):(assert(contentLength===null,"no body must not have content length"),socket.write(`${header}\r
|
|
26
|
+
`,"latin1")),request.onRequestSent(),client[kResume]()}catch(err){abort(err)}}async function writeBlob(abort,body,client,request,socket,contentLength,header,expectsPayload){try{if(contentLength!=null&&contentLength!==body.size)throw new RequestContentLengthMismatchError;let buffer=Buffer.from(await body.arrayBuffer());socket.cork(),socket.write(`${header}content-length: ${contentLength}\r
|
|
27
|
+
\r
|
|
28
|
+
`,"latin1"),socket.write(buffer),socket.uncork(),request.onBodySent(buffer),request.onRequestSent(),!expectsPayload&&request.reset!==!1&&(socket[kReset]=!0),client[kResume]()}catch(err){abort(err)}}async function writeIterable(abort,body,client,request,socket,contentLength,header,expectsPayload){assert(contentLength!==0||client[kRunning]===0,"iterator body cannot be pipelined");let callback=null;function onDrain(){if(callback){let cb=callback;callback=null,cb()}}let waitForDrain=()=>new Promise((resolve,reject)=>{assert(callback===null),socket[kError]?reject(socket[kError]):callback=resolve});socket.on("close",onDrain).on("drain",onDrain);let writer=new AsyncWriter({abort,socket,request,contentLength,client,expectsPayload,header});try{for await(let chunk of body){if(socket[kError])throw socket[kError];writer.write(chunk)||await waitForDrain()}writer.end()}catch(err){writer.destroy(err)}finally{socket.off("close",onDrain).off("drain",onDrain)}}var AsyncWriter=class{constructor({abort,socket,request,contentLength,client,expectsPayload,header}){this.socket=socket,this.request=request,this.contentLength=contentLength,this.client=client,this.bytesWritten=0,this.expectsPayload=expectsPayload,this.header=header,this.abort=abort,socket[kWriting]=!0}write(chunk){let{socket,request,contentLength,client,bytesWritten,expectsPayload,header}=this;if(socket[kError])throw socket[kError];if(socket.destroyed)return!1;let len=chunk instanceof Uint8Array?chunk.byteLength:Buffer.byteLength(chunk);if(!len)return!0;if(contentLength!==null&&bytesWritten+len>contentLength){if(client[kStrictContentLength])throw new RequestContentLengthMismatchError;process.emitWarning(new RequestContentLengthMismatchError)}socket.cork(),bytesWritten===0&&(!expectsPayload&&request.reset!==!1&&(socket[kReset]=!0),contentLength===null?socket.write(`${header}transfer-encoding: chunked\r
|
|
29
|
+
`,"latin1"):socket.write(`${header}content-length: ${contentLength}\r
|
|
30
|
+
\r
|
|
31
|
+
`,"latin1")),contentLength===null&&socket.write(`\r
|
|
32
|
+
${len.toString(16)}\r
|
|
33
|
+
`,"latin1"),this.bytesWritten+=len;let ret=socket.write(chunk);return socket.uncork(),request.onBodySent(chunk),ret||socket[kParser].timeout&&socket[kParser].timeoutType===TIMEOUT_HEADERS&&socket[kParser].timeout.refresh&&socket[kParser].timeout.refresh(),ret}end(){let{socket,contentLength,client,bytesWritten,expectsPayload,header,request}=this;if(request.onRequestSent(),socket[kWriting]=!1,socket[kError])throw socket[kError];if(!socket.destroyed){if(bytesWritten===0?expectsPayload?socket.write(`${header}content-length: 0\r
|
|
34
|
+
\r
|
|
35
|
+
`,"latin1"):socket.write(`${header}\r
|
|
36
|
+
`,"latin1"):contentLength===null&&socket.write(`\r
|
|
37
|
+
0\r
|
|
38
|
+
\r
|
|
39
|
+
`,"latin1"),contentLength!==null&&bytesWritten!==contentLength){if(client[kStrictContentLength])throw new RequestContentLengthMismatchError;process.emitWarning(new RequestContentLengthMismatchError)}socket[kParser].timeout&&socket[kParser].timeoutType===TIMEOUT_HEADERS&&socket[kParser].timeout.refresh&&socket[kParser].timeout.refresh(),client[kResume]()}}destroy(err){let{socket,client,abort}=this;socket[kWriting]=!1,err&&(assert(client[kRunning]<=1,"pipeline should only contain this request"),abort(err))}};module.exports=connectH1}});var require_client_h2=__commonJS({"node_modules/undici/lib/dispatcher/client-h2.js"(exports,module){"use strict";var assert=__require("node:assert"),{pipeline}=__require("node:stream"),util=require_util(),{RequestContentLengthMismatchError,RequestAbortedError,SocketError,InformationalError,InvalidArgumentError,HeadersTimeoutError,BodyTimeoutError}=require_errors(),{kUrl,kReset,kClient,kRunning,kPending,kQueue,kPendingIdx,kRunningIdx,kError,kSocket,kStrictContentLength,kOnError,kMaxConcurrentStreams,kHTTP2Session,kHostAuthority,kResume,kSize,kHTTPContext,kClosed,kKeepAliveDefaultTimeout,kHeadersTimeout,kBodyTimeout,kEnableConnectProtocol,kRemoteSettings,kHTTP2Stream,kHTTP2SessionState,kHTTP2Options}=require_symbols(),{channels}=require_diagnostics(),kOpenStreams=Symbol("open streams"),kRequestStreamId=Symbol("request stream id"),kRequestStream=Symbol("request stream"),kRequestStreamCleanup=Symbol("request stream cleanup"),kRequestStreamState=Symbol("request stream state"),kReceivedGoAway=Symbol("received goaway"),kGoAwayReplayAttempts=Symbol("goaway replay attempts"),kRefusedStreamRetry=Symbol("refused stream retry"),MAX_GOAWAY_REPLAY_ATTEMPTS=1,extractBody,http2;try{http2=__require("node:http2")}catch{http2={constants:{}}}var{constants:{HTTP2_HEADER_AUTHORITY,HTTP2_HEADER_METHOD,HTTP2_HEADER_PATH,HTTP2_HEADER_SCHEME,HTTP2_HEADER_CONTENT_LENGTH,HTTP2_HEADER_EXPECT,HTTP2_HEADER_STATUS,HTTP2_HEADER_PROTOCOL,NGHTTP2_NO_ERROR,NGHTTP2_REFUSED_STREAM}}=http2;function getGoAwayError(session,errorCode){return session[kError]||(errorCode===NGHTTP2_NO_ERROR?new InformationalError(`HTTP/2: "GOAWAY" frame received with code ${errorCode}`):new SocketError(`HTTP/2: "GOAWAY" frame received with code ${errorCode}`,util.getSocketInfo(session[kSocket])))}function resetHttp2Session(session,err){let client=session[kClient],socket=session[kSocket];if(client[kHTTP2Session]===session&&(client[kSocket]=null,client[kHTTPContext]=null,client[kHTTP2Session]=null),socket!=null&&socket[kError]==null&&(socket[kError]=err),!session.closed&&!session.destroyed)try{session.destroy(err)}catch{}util.destroy(socket,err)}function getGoAwayPendingIdx(client,lastStreamID){let maxAcceptedStreamID=Number.isInteger(lastStreamID)?lastStreamID:Number.MAX_SAFE_INTEGER;for(let i=client[kRunningIdx];i<client[kPendingIdx];i++){let request=client[kQueue][i];if(request!=null&&(typeof request[kRequestStreamId]!="number"||request[kRequestStreamId]>maxAcceptedStreamID))return i}return client[kPendingIdx]}function detachRequestFromStream(request){request[kRequestStreamId]=null,request[kRequestStream]=null,request[kRequestStreamCleanup]=null}function bindRequestToStream(request,stream,cleanup){let previousCleanup=request[kRequestStreamCleanup],previousStream=request[kRequestStream];detachRequestFromStream(request),previousCleanup?.(previousStream),request[kRequestStreamId]=stream.id,request[kRequestStream]=stream,request[kRequestStreamCleanup]=cleanup}function clearRequestStream(request){let cleanup=request[kRequestStreamCleanup],stream=request[kRequestStream];detachRequestFromStream(request),cleanup?.(stream)}function requeueUnsentRequest(client,request){client[kQueue].splice(client[kPendingIdx]+1,0,request)}function completeRequest(client,request,resetPendingIdx=!1){let queue=client[kQueue],runningIdx=client[kRunningIdx];if(runningIdx<client[kPendingIdx]&&queue[runningIdx]===request){queue[runningIdx]=null,client[kRunningIdx]=runningIdx+1;return}let index=queue.indexOf(request,runningIdx);index===-1||index>=client[kPendingIdx]||(queue.splice(index,1),client[kPendingIdx]--,resetPendingIdx&&client[kPendingIdx]<client[kRunningIdx]&&(client[kPendingIdx]=client[kRunningIdx]))}function canReplayRequest(request){let{body}=request;return body==null||util.isBuffer(body)||util.isBlobLike(body)}function registerGoAwayRefusal(request){let attempts=(request[kGoAwayReplayAttempts]??0)+1;return request[kGoAwayReplayAttempts]=attempts,attempts<=MAX_GOAWAY_REPLAY_ATTEMPTS}function closeStream(stream,code=NGHTTP2_REFUSED_STREAM){if(stream!=null&&!stream.destroyed&&!stream.closed)try{stream.close(code)}catch{}}function detachRequestStreamForClose(request){let stream=request[kRequestStream];return clearRequestStream(request),severRequestStream(stream),stream}function severRequestStream(stream){stream==null||stream[kRequestStreamState]==null||(stream[kRequestStreamState]=null,stream.off("close",completeRequestStream),stream.off("close",onUpgradeStreamClose),stream[kHTTP2Session]!=null&&closeStreamSession(stream),!stream.destroyed&&!stream.closed&&stream.once("error",noop))}function connectH2(client,socket){client[kSocket]=socket;let http2InitialWindowSize=client[kHTTP2Options].sessionOptions?.initialWindowSize,http2ConnectionWindowSize=client[kHTTP2Options].connectionWindowSize,session=http2.connect(client[kUrl],{createConnection:()=>socket,peerMaxConcurrentStreams:client[kHTTP2Options].maxConcurrentStreams,settings:{enablePush:!1,...http2InitialWindowSize!=null?{initialWindowSize:http2InitialWindowSize}:null}});return client[kSocket]=socket,session[kOpenStreams]=0,session[kClient]=client,session[kSocket]=socket,session[kHTTP2SessionState]={idleTimeout:null,noStreamsTimeout:null,refed:!0,ping:{interval:client[kHTTP2Options].pingInterval===0?null:setInterval(onHttp2SendPing,client[kHTTP2Options].pingInterval,session).unref()}},session[kReceivedGoAway]=!1,session[kEnableConnectProtocol]=!1,session[kRemoteSettings]=!1,http2ConnectionWindowSize&&util.addListener(session,"connect",applyConnectionWindowSize.bind(session,http2ConnectionWindowSize)),util.addListener(session,"error",onHttp2SessionError),util.addListener(session,"frameError",onHttp2FrameError),util.addListener(session,"goaway",onHttp2SessionGoAway),util.addListener(session,"close",onHttp2SessionClose),util.addListener(session,"remoteSettings",onHttp2RemoteSettings),unrefH2Session(session),client[kHTTP2Session]=session,socket[kHTTP2Session]=session,util.addListener(socket,"error",onHttp2SocketError),util.addListener(socket,"end",onHttp2SocketEnd),util.addListener(socket,"close",onHttp2SocketClose),socket[kClosed]=!1,socket.on("close",onSocketClose),{version:"h2",defaultPipelining:1/0,write(request){return writeH2(client,request)},resume(){resumeH2(client)},destroy(err,callback){socket[kClosed]?queueMicrotask(callback):socket.destroy(err).on("close",callback)},get destroyed(){return socket.destroyed},busy(request){if(session[kRemoteSettings]===!1&&client[kRunning]>0||client[kRunning]>=client[kMaxConcurrentStreams])return!0;if(request!=null)if(client[kRunning]>0){if((request.upgrade==="websocket"||request.method==="CONNECT")&&session[kRemoteSettings]===!1)return!0}else return(request.upgrade==="websocket"||request.method==="CONNECT")&&session[kRemoteSettings]===!1;return!1}}}function refH2Session(session){let state=session[kHTTP2SessionState];state.refed===!1&&(state.refed=!0,session.ref())}function unrefH2Session(session){let state=session[kHTTP2SessionState];state.refed===!0&&(state.refed=!1,session.unref())}function resumeH2(client){let socket=client[kSocket],session=client[kHTTP2Session];socket?.destroyed===!1&&(client[kSize]===0||client[kMaxConcurrentStreams]===0?unrefH2Session(session):refH2Session(session),client[kSize]===0&&session[kOpenStreams]===0?setHttp2IdleTimeout(session):clearHttp2IdleTimeout(session),client[kMaxConcurrentStreams]===0&&client[kRunning]===0&&client[kPending]>0?setNoStreamsTimeout(session):clearNoStreamsTimeout(session))}function clearNoStreamsTimeout(session){let state=session[kHTTP2SessionState];state?.noStreamsTimeout!=null&&(clearTimeout(state.noStreamsTimeout),state.noStreamsTimeout=null)}function setNoStreamsTimeout(session){let client=session[kClient],state=session[kHTTP2SessionState],timeout=client[kHeadersTimeout];!timeout||state.noStreamsTimeout!=null||(state.noStreamsTimeout=setTimeout(onNoStreamsTimeout,timeout,session).unref())}function onNoStreamsTimeout(session){let client=session[kClient],state=session[kHTTP2SessionState];if(state.noStreamsTimeout=null,client[kHTTP2Session]!==session||client[kMaxConcurrentStreams]!==0||client[kRunning]!==0||client[kPending]===0)return;let err=new HeadersTimeoutError(`HTTP/2: server did not accept a new stream within ${client[kHeadersTimeout]}`),requests=client[kQueue].splice(client[kPendingIdx]);for(let i=0;i<requests.length;i++)requests[i]!=null&&util.errorRequest(client,requests[i],err);session[kError]=err,resetHttp2Session(session,err)}function clearHttp2IdleTimeout(session){let state=session[kHTTP2SessionState];state?.idleTimeout!=null&&(clearTimeout(state.idleTimeout),state.idleTimeout=null)}function setHttp2IdleTimeout(session){let client=session[kClient];if(client[kHTTP2Session]!==session||session.closed||session.destroyed)return;if(session[kOpenStreams]!==0||client[kSize]!==0){clearHttp2IdleTimeout(session);return}let state=session[kHTTP2SessionState];state.idleTimeout==null&&(state.idleTimeout=setTimeout(onHttp2SessionIdleTimeout,client[kKeepAliveDefaultTimeout],session).unref())}function onHttp2SessionIdleTimeout(session){let client=session[kClient],socket=session[kSocket],state=session[kHTTP2SessionState];if(state.idleTimeout=null,client[kHTTP2Session]!==session||session[kOpenStreams]!==0||client[kSize]!==0||session.closed||session.destroyed)return;let err=new InformationalError("socket idle timeout");socket[kError]=err,util.destroy(socket,err)}function applyConnectionWindowSize(connectionWindowSize){try{typeof this.setLocalWindowSize=="function"&&this.setLocalWindowSize(connectionWindowSize)}catch{}}function onHttp2RemoteSettings(settings){if(this[kClient][kMaxConcurrentStreams]=settings.maxConcurrentStreams??this[kClient][kMaxConcurrentStreams],this[kRemoteSettings]===!0&&this[kEnableConnectProtocol]===!0&&settings.enableConnectProtocol===!1){let err=new InformationalError("HTTP/2: Server disabled extended CONNECT protocol against RFC-8441");this[kSocket][kError]=err,this[kClient][kOnError](err);return}this[kEnableConnectProtocol]=settings.enableConnectProtocol??this[kEnableConnectProtocol],this[kRemoteSettings]=!0,this[kClient][kResume]()}function onHttp2SendPing(session){let state=session[kHTTP2SessionState];if((session.closed||session.destroyed)&&state.ping.interval!=null){clearInterval(state.ping.interval),state.ping.interval=null;return}session.ping(onPing.bind(session));function onPing(err,duration){let client=this[kClient],socket=this[kSocket];if(err!=null){let error=new InformationalError(`HTTP/2: "PING" errored - type ${err.message}`);socket[kError]=error,client[kOnError](error)}else client.emit("ping",duration)}}function onHttp2SessionError(err){assert(err.code!=="ERR_TLS_CERT_ALTNAME_INVALID"),this[kSocket][kError]=err,!this[kReceivedGoAway]&&this[kClient][kOnError](err)}function onHttp2FrameError(type,code,id){if(id===0){if(this[kReceivedGoAway])return;let err=new InformationalError(`HTTP/2: "frameError" received - type ${type}, code ${code}`);this[kSocket][kError]=err,this[kClient][kOnError](err)}}function onHttp2SessionGoAway(errorCode,lastStreamID){if(this[kReceivedGoAway])return;this[kReceivedGoAway]=!0;let err=getGoAwayError(this,errorCode),client=this[kClient],previousPendingIdx=client[kPendingIdx],pendingIdx=getGoAwayPendingIdx(client,lastStreamID),retriableRequests=[],streamsToClose=[];for(let i=pendingIdx;i<previousPendingIdx;i++){let request=client[kQueue][i];request!=null&&(streamsToClose.push(detachRequestStreamForClose(request)),canReplayRequest(request)&®isterGoAwayRefusal(request)?retriableRequests.push(request):util.errorRequest(client,request,err))}for(let i=0;i<streamsToClose.length;i++)closeStream(streamsToClose[i]);if(pendingIdx!==previousPendingIdx){let remainingPendingRequests=client[kQueue].slice(previousPendingIdx);client[kQueue].length=pendingIdx,client[kQueue].push(...retriableRequests,...remainingPendingRequests)}client[kHTTP2Session]===this&&(client[kSocket]=null,client[kHTTPContext]=null,client[kHTTP2Session]=null),clearHttp2IdleTimeout(this),clearNoStreamsTimeout(this),!this.closed&&!this.destroyed&&this.close(),client[kPendingIdx]=pendingIdx,client.emit("disconnect",client[kUrl],[client],err),client[kResume]()}function onHttp2SessionClose(){let{[kClient]:client,[kHTTP2SessionState]:state,[kSocket]:socket}=this,err=socket[kError]||this[kError]||new SocketError("closed",util.getSocketInfo(socket));if(client[kHTTP2Session]===this&&(client[kSocket]=null,client[kHTTPContext]=null,client[kHTTP2Session]=null),clearHttp2IdleTimeout(this),clearNoStreamsTimeout(this),state.ping.interval!=null&&(clearInterval(state.ping.interval),state.ping.interval=null),client.destroyed){assert(client[kPending]===0);let requests=client[kQueue].splice(client[kRunningIdx]);for(let i=0;i<requests.length;i++){let request=requests[i];request!=null&&util.errorRequest(client,request,err)}}}function onHttp2SocketClose(){let err=this[kError]||new SocketError("closed",util.getSocketInfo(this)),session=this[kHTTP2Session],client=session[kClient];client[kSocket]!==this&&(session[kReceivedGoAway]||client[kHTTP2Session]!=null&&client[kHTTP2Session]!==session)||(client[kSocket]=null,client[kHTTPContext]=null,client[kHTTP2Session]===session&&(client[kHTTP2Session]=null),session.destroy(err),client[kPendingIdx]=client[kRunningIdx],assert(client[kRunning]===0),client.emit("disconnect",client[kUrl],[client],err),client[kResume]())}function onHttp2SocketError(err){assert(err.code!=="ERR_TLS_CERT_ALTNAME_INVALID"),this[kError]=err,!this[kHTTP2Session]?.[kReceivedGoAway]&&this[kHTTP2Session]?.[kClient]?.[kOnError](err)}function onHttp2SocketEnd(){util.destroy(this,new SocketError("other side closed",util.getSocketInfo(this)))}function onSocketClose(){this[kClosed]=!0}function noop(){}function closeStreamSession(stream){let session=stream[kHTTP2Session];stream[kHTTP2Session]=null,session[kOpenStreams]-=1,session[kOpenStreams]===0&&(unrefH2Session(session),setHttp2IdleTimeout(session))}function onUpgradeStreamClose(){this.off("error",noop);let state=this[kRequestStreamState];this[kRequestStreamState]=null,failUpgradeStream(state,new InformationalError("HTTP/2: stream closed before response headers")),closeStreamSession(this)}function completeRequestStream(){let state=this[kRequestStreamState];state!=null&&(releaseRequestStream(this),state.pendingEnd&&!state.request.aborted&&!state.request.completed?state.request.onResponseEnd(state.trailers||{}):!state.request.aborted&&!state.request.completed&&util.errorRequest(state.client,state.request,new InformationalError("HTTP/2: stream closed before the response was complete")),finalizeRequest(state),closeStreamSession(this),this[kRequestStreamState]=null)}function shouldSendContentLength(method){return method!=="GET"&&method!=="HEAD"&&method!=="OPTIONS"&&method!=="TRACE"&&method!=="CONNECT"}function buildRequestHeaders(reqHeaders){let headers={};for(let n=0;n<reqHeaders.length;n+=2){let key=reqHeaders[n+0],val=reqHeaders[n+1],current=headers[key];if(key==="cookie"){current!=null?headers[key]=Array.isArray(current)?(current.push(val),current):[current,val]:headers[key]=val;continue}if(typeof val=="string"){headers[key]=current?`${current}, ${val}`:val;continue}for(let i=0;i<val.length;i++)headers[key]=headers[key]?`${headers[key]}, ${val[i]}`:val[i]}return headers}function removeUpgradeStreamListeners(stream){stream.off("response",onUpgradeResponse),stream.off("error",onUpgradeStreamError),stream.off("end",onUpgradeStreamEnd),stream.off("timeout",onUpgradeStreamTimeout),stream.off("error",noop)}function releaseUpgradeStream(stream){if(stream==null)return;let state=stream[kRequestStreamState];if(state==null)return;let{request}=state;request[kRequestStream]===stream&&detachRequestFromStream(request),removeUpgradeStreamListeners(stream),!stream.destroyed&&!stream.closed&&stream.once("error",noop)}function failUpgradeStream(state,err){if(state==null)return;let{request}=state;state.responseReceived||request.aborted||request.completed||(releaseUpgradeStream(state.stream),state.abort(err,!0))}function onUpgradeStreamError(){let state=this[kRequestStreamState];typeof this.rstCode=="number"&&this.rstCode!==0?failUpgradeStream(state,new InformationalError(`HTTP/2: "stream error" received - code ${this.rstCode}`)):failUpgradeStream(state,new InformationalError("HTTP/2: stream errored before response headers"))}function onUpgradeStreamEnd(){failUpgradeStream(this[kRequestStreamState],new InformationalError("HTTP/2: stream half-closed (remote)"))}function onUpgradeStreamTimeout(){let state=this[kRequestStreamState];failUpgradeStream(state,new InformationalError(`HTTP/2: "stream timeout after ${state.headersTimeout}"`))}function onUpgradeResponse(headers,_flags){let stream=this,state=stream[kRequestStreamState],{request}=state;state.responseReceived=!0;let statusCode=headers[HTTP2_HEADER_STATUS];delete headers[HTTP2_HEADER_STATUS],request.onRequestUpgrade(statusCode,headers,stream),!(request.aborted||request.completed)&&(removeUpgradeStreamListeners(stream),detachRequestFromStream(request),finalizeRequest(state))}function setupUpgradeStream(stream,state){let{request,headersTimeout,session}=state;stream[kHTTP2Stream]=!0,stream[kHTTP2Session]=session,stream[kRequestStreamState]=state,state.stream=stream,bindRequestToStream(request,stream,releaseUpgradeStream),stream.once("response",onUpgradeResponse),stream.on("error",onUpgradeStreamError),stream.once("end",onUpgradeStreamEnd),stream.on("timeout",onUpgradeStreamTimeout),stream.once("close",onUpgradeStreamClose),clearHttp2IdleTimeout(session),++session[kOpenStreams],stream.setTimeout(headersTimeout)}function finalizeRequest(state,resetPendingIdx=!1){state.requestFinalized||(state.requestFinalized=!0,completeRequest(state.client,state.request,resetPendingIdx),state.client[kResume]())}function openStream(client,request,session,abort,headers,options){try{return session.request(headers,options)}catch(err){if(err?.code==="ERR_HTTP2_INVALID_SESSION"||err?.code==="ERR_HTTP2_GOAWAY_SESSION"){let wrappedErr2=new SocketError(err.message,util.getSocketInfo(session[kSocket]));return wrappedErr2.cause=err,session[kError]=wrappedErr2,resetHttp2Session(session,wrappedErr2),requeueUnsentRequest(client,request),null}let wrappedErr=new InformationalError(err.message,{cause:err});return session[kError]=wrappedErr,session[kSocket][kError]=wrappedErr,session.destroy(wrappedErr),util.destroy(session[kSocket],wrappedErr),abort(wrappedErr),null}}function writeH2(client,request){let headersTimeout=request.headersTimeout??client[kHeadersTimeout],bodyTimeout=request.bodyTimeout??client[kBodyTimeout],session=client[kHTTP2Session],{method,path,host,upgrade,expectContinue,signal,protocol,headers:reqHeaders}=request;if(upgrade!=null&&upgrade!=="websocket")return util.errorRequest(client,request,new InvalidArgumentError(`Custom upgrade "${upgrade}" not supported over HTTP/2`)),!1;let headers=buildRequestHeaders(reqHeaders);headers[HTTP2_HEADER_AUTHORITY]=host||client[kHostAuthority],headers[HTTP2_HEADER_METHOD]=method;let state={abort:null,body:request.body,client,contentLength:null,expectsPayload:!1,request,headersTimeout,bodyTimeout,requestFinalized:!1,responseReceived:!1,bodySent:!1,pendingEnd:!1,trailers:null,session,stream:null},abort=(err,resetPendingIdx=!1)=>{if(!(request.aborted||request.completed)){if(err=err||new RequestAbortedError,util.errorRequest(client,request,err),state.stream!=null){clearRequestStream(request);let stream2=state.stream;stream2.close(),stream2.destroyed||util.destroy(stream2),client[kOnError](err),finalizeRequest(state,resetPendingIdx)}util.destroy(state.body,err)}};state.abort=abort;let stream=null;try{request.onRequestStart(abort,null)}catch(err){util.errorRequest(client,request,err)}if(request.aborted)return!1;if(upgrade||method==="CONNECT")return refH2Session(session),upgrade==="websocket"?session[kEnableConnectProtocol]===!1?(util.errorRequest(client,request,new InformationalError("HTTP/2: Extended CONNECT protocol not supported by server")),unrefH2Session(session),!1):(headers[HTTP2_HEADER_METHOD]="CONNECT",headers[HTTP2_HEADER_PROTOCOL]="websocket",headers[HTTP2_HEADER_PATH]=path,protocol==="ws:"||protocol==="wss:"?headers[HTTP2_HEADER_SCHEME]=protocol==="ws:"?"http":"https":headers[HTTP2_HEADER_SCHEME]=protocol==="http:"?"http":"https",stream=openStream(client,request,session,abort,headers,{endStream:!1,signal}),stream==null?(unrefH2Session(session),!1):(setupUpgradeStream(stream,state),!0)):(stream=openStream(client,request,session,abort,headers,{endStream:!1,signal}),stream==null?(unrefH2Session(session),!1):(setupUpgradeStream(stream,state),!0));headers[HTTP2_HEADER_PATH]=path,headers[HTTP2_HEADER_SCHEME]=protocol==="http:"?"http":"https";let expectsPayload=method==="PUT"||method==="POST"||method==="PATCH"||method==="QUERY"||method==="PROPFIND"||method==="PROPPATCH",body=state.body;body&&typeof body.read=="function"&&body.read(0);let contentLength=util.bodyLength(body);if(util.isFormDataLike(body)){extractBody??=require_body().extractBody;let[bodyStream,contentType]=extractBody(body);headers["content-type"]=contentType,body=bodyStream.stream,contentLength=bodyStream.length}if(contentLength==null&&(contentLength=request.contentLength),contentLength===0&&!expectsPayload&&(contentLength=null),shouldSendContentLength(method)&&contentLength>0&&request.contentLength!=null&&request.contentLength!==contentLength){if(client[kStrictContentLength])return util.errorRequest(client,request,new RequestContentLengthMismatchError),!1;process.emitWarning(new RequestContentLengthMismatchError)}if(contentLength!=null&&(assert(body||contentLength===0,"no body must not have content length"),headers[HTTP2_HEADER_CONTENT_LENGTH]=`${contentLength}`),refH2Session(session),channels.sendHeaders.hasSubscribers){let header="";for(let key in headers)header+=`${key}: ${headers[key]}\r
|
|
40
|
+
`;channels.sendHeaders.publish({request,headers:header,socket:session[kSocket]})}let shouldEndStream=body===null||contentLength===0;return state.body=body,state.contentLength=contentLength,state.expectsPayload=expectsPayload,expectContinue&&(headers[HTTP2_HEADER_EXPECT]="100-continue"),stream=openStream(client,request,session,abort,headers,{endStream:shouldEndStream,signal}),stream==null?!1:(stream[kHTTP2Stream]=!0,stream[kRequestStreamState]=state,state.stream=stream,clearHttp2IdleTimeout(session),++session[kOpenStreams],headersTimeout&&stream.setTimeout(headersTimeout),stream[kHTTP2Session]=session,stream.on("close",completeRequestStream),bindRequestToStream(request,stream,releaseRequestStream),expectContinue&&stream.once("continue",writeBodyH2),stream.on("response",onResponse),stream.on("end",onEnd),stream.on("error",onError),stream.on("frameError",onFrameError),stream.on("aborted",onAborted),(headersTimeout||bodyTimeout)&&stream.on("timeout",onTimeout),stream.on("trailers",onTrailers),expectContinue||writeBodyH2.call(stream),!0)}function removeRequestStreamListeners(stream){stream.off("error",noop),stream.off("continue",writeBodyH2),stream.off("response",onResponse),stream.off("end",onEnd),stream.off("error",onError),stream.off("frameError",onFrameError),stream.off("aborted",onAborted),stream.off("timeout",onTimeout),stream.off("trailers",onTrailers),stream.off("data",onData)}function releaseRequestStream(stream){if(stream==null)return;let state=stream[kRequestStreamState];if(state==null)return;let{request}=state;request[kRequestStream]===stream&&detachRequestFromStream(request),!stream.destroyed&&!stream.closed&&(removeRequestStreamListeners(stream),stream.once("error",noop))}function onData(chunk){let stream=this,state=stream[kRequestStreamState];if(state==null)return;let{request}=state;request.aborted||request.completed||request.onResponseData(chunk)===!1&&stream.pause()}function onResponse(headers){let stream=this,state=stream[kRequestStreamState];if(state==null)return;let{request}=state;stream.off("response",onResponse),state.body!=null&&!state.bodySent&&!stream.writableEnded&&(stream.removeListener("continue",writeBodyH2),stream.end());let statusCode=headers[HTTP2_HEADER_STATUS];if(delete headers[HTTP2_HEADER_STATUS],request.onResponseStarted(),state.responseReceived=!0,(state.headersTimeout||state.bodyTimeout)&&stream.setTimeout(state.bodyTimeout),request.aborted||request.completed){releaseRequestStream(stream);return}request.onResponseStart(Number(statusCode),headers,stream.resume.bind(stream),"")===!1&&stream.pause(),stream.on("data",onData)}function onEnd(){let stream=this,state=stream[kRequestStreamState];if(state==null)return;let{request}=state;stream.off("end",onEnd),state.responseReceived?!request.aborted&&!request.completed&&(state.pendingEnd=!0,completeRequestStream.call(stream)):state.abort(new InformationalError("HTTP/2: stream half-closed (remote)"),!0)}function retryRefusedStream(stream,state){let{client,request}=state;return state.responseReceived||request.aborted||request.completed||request[kRefusedStreamRetry]||!canReplayRequest(request)?!1:(request[kRefusedStreamRetry]=!0,detachRequestStreamForClose(request),state.stream=null,state.requestFinalized=!0,completeRequest(client,request),client[kQueue].splice(client[kPendingIdx],0,request),client[kResume](),!0)}function onError(err){let stream=this,state=stream[kRequestStreamState];state!=null&&(stream.off("error",onError),typeof stream.rstCode=="number"&&stream.rstCode!==NGHTTP2_NO_ERROR&&(err.http2ErrorCode=stream.rstCode),!(stream.rstCode===NGHTTP2_REFUSED_STREAM&&retryRefusedStream(stream,state))&&state.abort(err))}function onFrameError(type,code){let stream=this,state=stream[kRequestStreamState];state!=null&&(stream.off("frameError",onFrameError),state.abort(new InformationalError(`HTTP/2: "frameError" received - type ${type}, code ${code}`)))}function onAborted(){this.off("data",onData)}function onTimeout(){let stream=this,state=stream[kRequestStreamState];if(state==null)return;stream.off("timeout",onTimeout);let err=state.responseReceived?new BodyTimeoutError(`HTTP/2: "stream timeout after ${state.bodyTimeout}"`):new HeadersTimeoutError(`HTTP/2: "headers timeout after ${state.headersTimeout}"`);state.abort(err)}function onTrailers(trailers){let stream=this,state=stream[kRequestStreamState];if(state==null)return;let{request}=state;stream.off("trailers",onTrailers),stream.off("data",onData),!(request.aborted||request.completed)&&(state.trailers=trailers)}function writeBodyH2(){let stream=this,state=stream[kRequestStreamState];state.bodySent=!0;let{abort,body,client,contentLength,expectsPayload,request}=state;!body||contentLength===0?writeBuffer(abort,stream,null,client,request,client[kSocket],contentLength,expectsPayload):util.isBuffer(body)?writeBuffer(abort,stream,body,client,request,client[kSocket],contentLength,expectsPayload):util.isBlobLike(body)?typeof body.stream=="function"?writeIterable(abort,stream,body.stream(),client,request,client[kSocket],contentLength,expectsPayload):writeBlob(abort,stream,body,client,request,client[kSocket],contentLength,expectsPayload):util.isStream(body)?writeStream(abort,client[kSocket],expectsPayload,stream,body,client,request,contentLength):util.isIterable(body)?writeIterable(abort,stream,body,client,request,client[kSocket],contentLength,expectsPayload):assert(!1)}function writeBuffer(abort,h2stream,body,client,request,socket,contentLength,expectsPayload){try{body!=null&&util.isBuffer(body)&&(assert(contentLength===body.byteLength,"buffer body must have content length"),h2stream.cork(),h2stream.write(body),h2stream.uncork(),h2stream.end(),request.onBodySent(body)),expectsPayload||(socket[kReset]=!0),request.onRequestSent(),client[kResume]()}catch(error){abort(error)}}function writeStream(abort,socket,expectsPayload,h2stream,body,client,request,contentLength){assert(contentLength!==0||client[kRunning]===0,"stream body cannot be pipelined");let pipe=pipeline(body,h2stream,err=>{err?(util.destroy(pipe,err),abort(err)):(util.removeAllListeners(pipe),request.onRequestSent(),expectsPayload||(socket[kReset]=!0),client[kResume]())});util.addListener(pipe,"data",onPipeData);function onPipeData(chunk){request.onBodySent(chunk)}}async function writeBlob(abort,h2stream,body,client,request,socket,contentLength,expectsPayload){try{if(contentLength!=null&&contentLength!==body.size)throw new RequestContentLengthMismatchError;let buffer=Buffer.from(await body.arrayBuffer());h2stream.cork(),h2stream.write(buffer),h2stream.uncork(),h2stream.end(),request.onBodySent(buffer),request.onRequestSent(),expectsPayload||(socket[kReset]=!0),client[kResume]()}catch(err){abort(err)}}async function writeIterable(abort,h2stream,body,client,request,socket,contentLength,expectsPayload){assert(contentLength!==0||client[kRunning]===0,"iterator body cannot be pipelined");let callback=null;function onDrain(){if(callback){let cb=callback;callback=null,cb()}}let waitForDrain=()=>new Promise((resolve,reject)=>{assert(callback===null),socket[kError]?reject(socket[kError]):callback=resolve});h2stream.on("close",onDrain).on("drain",onDrain);try{for await(let chunk of body){if(socket[kError])throw socket[kError];let res=h2stream.write(chunk);request.onBodySent(chunk),res||await waitForDrain()}h2stream.end(),request.onRequestSent(),expectsPayload||(socket[kReset]=!0),client[kResume]()}catch(err){abort(err)}finally{h2stream.off("close",onDrain).off("drain",onDrain)}}module.exports=connectH2}});var require_client=__commonJS({"node_modules/undici/lib/dispatcher/client.js"(exports,module){"use strict";var assert=__require("node:assert"),net=__require("node:net"),http=__require("node:http"),util=require_util(),{ClientStats}=require_stats(),{channels}=require_diagnostics(),Request=require_request(),DispatcherBase=require_dispatcher_base(),{InvalidArgumentError,InformationalError,ClientDestroyedError}=require_errors(),buildConnector=require_connect(),{kUrl,kServerName,kClient,kBusy,kConnect,kResuming,kRunning,kPending,kSize,kQueue,kConnected,kConnecting,kNeedDrain,kKeepAliveDefaultTimeout,kHostHeader,kPendingIdx,kRunningIdx,kError,kPipelining,kKeepAliveTimeoutValue,kMaxHeadersSize,kKeepAliveMaxTimeout,kKeepAliveTimeoutThreshold,kHeadersTimeout,kBodyTimeout,kStrictContentLength,kConnector,kMaxRequests,kCounter,kClose,kDestroy,kDispatch,kLocalAddress,kMaxResponseSize,kOnError,kHTTPContext,kMaxConcurrentStreams,kHostAuthority,kResume,kHTTP2Options}=require_symbols(),connectH1=require_client_h1(),connectH2=require_client_h2(),kClosedResolve=Symbol("kClosedResolve"),getDefaultNodeMaxHeaderSize=http&&http.maxHeaderSize&&Number.isInteger(http.maxHeaderSize)&&http.maxHeaderSize>0?()=>http.maxHeaderSize:()=>{throw new InvalidArgumentError("http module not available or http.maxHeaderSize invalid")},noop=()=>{};function getPipelining(client){return client[kPipelining]??client[kHTTPContext]?.defaultPipelining??1}var h2NamespaceOptsWarning=!1;function emitH2OptionsNamespaceWarning(optName){h2NamespaceOptsWarning!==!0&&(process.emitWarning(`Use h2Options.${optName} instead. ${optName} for H2 will be deprecated in future major.`,{code:"UNDICI-H2-OPTIONS"}),h2NamespaceOptsWarning=!0)}function getMaxConcurrent(client){return client[kHTTPContext]?.version==="h2"?client[kMaxConcurrentStreams]:getPipelining(client)}var Client=class extends DispatcherBase{constructor(url,{maxHeaderSize,headersTimeout,socketTimeout,requestTimeout,connectTimeout,bodyTimeout,idleTimeout,keepAlive,keepAliveTimeout,maxKeepAliveTimeout,keepAliveMaxTimeout,keepAliveTimeoutThreshold,socketPath,pipelining,tls,strictContentLength,maxCachedSessions,connect:connect2,maxRequestsPerClient,localAddress,maxResponseSize,autoSelectFamily,autoSelectFamilyAttemptTimeout,maxConcurrentStreams,allowH2,useH2c,initialWindowSize,connectionWindowSize,pingInterval,webSocket,h2Options}={}){if(keepAlive!==void 0)throw new InvalidArgumentError("unsupported keepAlive, use pipelining=0 instead");if(socketTimeout!==void 0)throw new InvalidArgumentError("unsupported socketTimeout, use headersTimeout & bodyTimeout instead");if(requestTimeout!==void 0)throw new InvalidArgumentError("unsupported requestTimeout, use headersTimeout & bodyTimeout instead");if(idleTimeout!==void 0)throw new InvalidArgumentError("unsupported idleTimeout, use keepAliveTimeout instead");if(maxKeepAliveTimeout!==void 0)throw new InvalidArgumentError("unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead");if(maxHeaderSize!=null){if(!Number.isInteger(maxHeaderSize)||maxHeaderSize<1)throw new InvalidArgumentError("invalid maxHeaderSize")}else maxHeaderSize=getDefaultNodeMaxHeaderSize();if(socketPath!=null&&typeof socketPath!="string")throw new InvalidArgumentError("invalid socketPath");if(connectTimeout!=null&&(!Number.isFinite(connectTimeout)||connectTimeout<0))throw new InvalidArgumentError("invalid connectTimeout");if(keepAliveTimeout!=null&&(!Number.isFinite(keepAliveTimeout)||keepAliveTimeout<=0))throw new InvalidArgumentError("invalid keepAliveTimeout");if(keepAliveMaxTimeout!=null&&(!Number.isFinite(keepAliveMaxTimeout)||keepAliveMaxTimeout<=0))throw new InvalidArgumentError("invalid keepAliveMaxTimeout");if(keepAliveTimeoutThreshold!=null&&!Number.isFinite(keepAliveTimeoutThreshold))throw new InvalidArgumentError("invalid keepAliveTimeoutThreshold");if(headersTimeout!=null&&(!Number.isInteger(headersTimeout)||headersTimeout<0))throw new InvalidArgumentError("headersTimeout must be a positive integer or zero");if(bodyTimeout!=null&&(!Number.isInteger(bodyTimeout)||bodyTimeout<0))throw new InvalidArgumentError("bodyTimeout must be a positive integer or zero");if(connect2!=null&&typeof connect2!="function"&&typeof connect2!="object")throw new InvalidArgumentError("connect must be a function or an object");if(maxRequestsPerClient!=null&&(!Number.isInteger(maxRequestsPerClient)||maxRequestsPerClient<0))throw new InvalidArgumentError("maxRequestsPerClient must be a positive number");if(localAddress!=null&&(typeof localAddress!="string"||net.isIP(localAddress)===0))throw new InvalidArgumentError("localAddress must be valid string IP address");if(maxResponseSize!=null&&(!Number.isInteger(maxResponseSize)||maxResponseSize<-1))throw new InvalidArgumentError("maxResponseSize must be a positive number");if(autoSelectFamilyAttemptTimeout!=null&&(!Number.isInteger(autoSelectFamilyAttemptTimeout)||autoSelectFamilyAttemptTimeout<-1))throw new InvalidArgumentError("autoSelectFamilyAttemptTimeout must be a positive number");if(allowH2!=null&&typeof allowH2!="boolean")throw new InvalidArgumentError("allowH2 must be a valid boolean value");if(allowH2!==!1)if(h2Options!=null){if(h2Options.useH2c!=null&&typeof h2Options.useH2c!="boolean")throw new InvalidArgumentError("h2Options.useH2c must be a valid boolean value");if(h2Options.settings?.initialWindowSize!=null&&(!Number.isInteger(h2Options.settings.initialWindowSize)||h2Options.settings.initialWindowSize<1))throw new InvalidArgumentError("h2Options.settings.initialWindowSize must be a positive integer, greater than 0");if(h2Options.maxConcurrentStreams!=null&&(!Number.isInteger(h2Options.connectionWindowSize)||h2Options.maxConcurrentStreams<1))throw new InvalidArgumentError("h2Options.maxConcurrentStreams must be a positive integer, greater than 0");if(h2Options.connectionWindowSize!=null&&(!Number.isInteger(h2Options.connectionWindowSize)||h2Options.connectionWindowSize<1))throw new InvalidArgumentError("h2Options.connectionWindowSize must be a positive integer, greater than 0");if(h2Options.pingInterval!=null&&(typeof h2Options.pingInterval!="number"||!Number.isInteger(h2Options.pingInterval)||h2Options.pingInterval<0))throw new InvalidArgumentError("h2Options.pingInterval must be a positive integer, greater or equal to 0")}else{if(useH2c!=null&&typeof useH2c!="boolean")throw emitH2OptionsNamespaceWarning("useH2c"),new InvalidArgumentError("useH2c must be a valid boolean value");if(maxConcurrentStreams!=null&&(typeof maxConcurrentStreams!="number"||maxConcurrentStreams<1))throw emitH2OptionsNamespaceWarning("maxConcurrentStreams"),new InvalidArgumentError("maxConcurrentStreams must be a positive integer, greater than 0");if(initialWindowSize!=null&&(!Number.isInteger(initialWindowSize)||initialWindowSize<1))throw emitH2OptionsNamespaceWarning("initialWindowSize"),new InvalidArgumentError("initialWindowSize must be a positive integer, greater than 0");if(connectionWindowSize!=null&&(!Number.isInteger(connectionWindowSize)||connectionWindowSize<1))throw emitH2OptionsNamespaceWarning("connectionWindowSize"),new InvalidArgumentError("connectionWindowSize must be a positive integer, greater than 0");if(pingInterval!=null&&(typeof pingInterval!="number"||!Number.isInteger(pingInterval)||pingInterval<0))throw emitH2OptionsNamespaceWarning("pingInterval"),new InvalidArgumentError("pingInterval must be a positive integer, greater or equal to 0")}if(super({webSocket}),typeof connect2!="function")connect2=buildConnector({...tls,maxCachedSessions,allowH2,socketPath,useH2c:h2Options?.useH2c??useH2c,timeout:connectTimeout,...typeof autoSelectFamily=="boolean"?{autoSelectFamily,autoSelectFamilyAttemptTimeout}:void 0,...connect2});else{let customConnect=connect2;connect2=(opts,callback)=>customConnect({...opts,...socketPath!=null?{socketPath}:null,...allowH2!=null?{allowH2}:null},callback)}this[kUrl]=util.parseOrigin(url),this[kHostAuthority]=`${this[kUrl].hostname}${this[kUrl].port?`:${this[kUrl].port}`:""}`,this[kConnector]=connect2,this[kPipelining]=pipelining??1,this[kMaxHeadersSize]=maxHeaderSize,this[kKeepAliveDefaultTimeout]=keepAliveTimeout??4e3,this[kKeepAliveMaxTimeout]=keepAliveMaxTimeout??6e5,this[kKeepAliveTimeoutThreshold]=keepAliveTimeoutThreshold??2e3,this[kKeepAliveTimeoutValue]=this[kKeepAliveDefaultTimeout],this[kServerName]=null,this[kLocalAddress]=localAddress??null,this[kResuming]=0,this[kNeedDrain]=0,this[kHostHeader]=`host: ${this[kHostAuthority]}\r
|
|
41
|
+
`,this[kBodyTimeout]=bodyTimeout??3e5,this[kHeadersTimeout]=headersTimeout??3e5,this[kStrictContentLength]=strictContentLength??!0,this[kMaxRequests]=maxRequestsPerClient,this[kClosedResolve]=null,this[kMaxResponseSize]=maxResponseSize>-1?maxResponseSize:-1,this[kHTTPContext]=null,this[kHTTP2Options]={pingInterval:h2Options?.pingInterval??pingInterval??6e4,connectionWindowSize:h2Options?.connectionWindowSize??connectionWindowSize??524288,maxConcurrentStreams:h2Options?.maxConcurrentStreams??maxConcurrentStreams??100,sessionOptions:{initialWindowSize:h2Options?.initialWindowSize??initialWindowSize??262144}},this[kQueue]=[],this[kRunningIdx]=0,this[kPendingIdx]=0,this[kResume]=sync=>resume(this,sync),this[kOnError]=err=>onError(this,err)}get pipelining(){return this[kPipelining]}set pipelining(value){this[kPipelining]=value,this[kResume](!0)}get stats(){return new ClientStats(this)}get[kPending](){return this[kQueue].length-this[kPendingIdx]}get[kRunning](){return this[kPendingIdx]-this[kRunningIdx]}get[kSize](){return this[kQueue].length-this[kRunningIdx]}get[kConnected](){return!!this[kHTTPContext]&&!this[kConnecting]&&!this[kHTTPContext].destroyed}get[kBusy](){let allowsMux=this[kHTTPContext]?.version==="h2";return!!(this[kHTTPContext]?.busy(null)||this[kSize]>=(getMaxConcurrent(this)||1)||this[kPending]>0&&!allowsMux)}[kConnect](cb){connect(this),this.once("connect",cb)}[kDispatch](opts,handler){let request=new Request(this[kUrl].origin,opts,handler);return this[kQueue].push(request),this[kResuming]||(util.bodyLength(request.body)==null&&util.isIterable(request.body)?(this[kResuming]=1,queueMicrotask(()=>resume(this))):this[kResume](!0)),this[kResuming]&&this[kNeedDrain]!==2&&this[kBusy]&&(this[kNeedDrain]=2),this[kNeedDrain]<2}[kClose](){return new Promise(resolve=>{this[kSize]?this[kClosedResolve]=resolve:resolve(null)})}[kDestroy](err){return new Promise(resolve=>{let requests=this[kQueue].splice(this[kPendingIdx]);for(let i=0;i<requests.length;i++){let request=requests[i];request!=null&&util.errorRequest(this,request,err)}let callback=()=>{this[kClosedResolve]&&(this[kClosedResolve](),this[kClosedResolve]=null),resolve(null)};this[kHTTPContext]?(this[kHTTPContext].destroy(err,callback),this[kHTTPContext]=null):queueMicrotask(callback),this[kResume]()})}};function onError(client,err){if(client[kRunning]===0&&err.code!=="UND_ERR_INFO"&&err.code!=="UND_ERR_SOCKET"){assert(client[kPendingIdx]===client[kRunningIdx]);let requests=client[kQueue].splice(client[kRunningIdx]);for(let i=0;i<requests.length;i++){let request=requests[i];request!=null&&util.errorRequest(client,request,err)}assert(client[kSize]===0)}}function connect(client){assert(!client[kConnecting]),assert(!client[kHTTPContext]);let{host,hostname,protocol,port}=client[kUrl];if(hostname[0]==="["){let idx=hostname.indexOf("]");assert(idx!==-1);let ip=hostname.substring(1,idx);assert(net.isIPv6(ip)),hostname=ip}client[kConnecting]=!0,channels.beforeConnect.hasSubscribers&&channels.beforeConnect.publish({connectParams:{host,hostname,protocol,port,version:client[kHTTPContext]?.version,servername:client[kServerName],localAddress:client[kLocalAddress]},connector:client[kConnector]});try{client[kConnector]({host,hostname,protocol,port,servername:client[kServerName],localAddress:client[kLocalAddress]},(err,socket)=>{if(err){handleConnectError(client,err,{host,hostname,protocol,port}),client[kResume]();return}if(client.destroyed){util.destroy(socket.on("error",noop),new ClientDestroyedError),client[kResume]();return}assert(socket);try{client[kHTTPContext]=socket.alpnProtocol==="h2"?connectH2(client,socket):connectH1(client,socket)}catch(err2){socket.destroy().on("error",noop),handleConnectError(client,err2,{host,hostname,protocol,port}),client[kResume]();return}client[kConnecting]=!1,socket[kCounter]=0,socket[kMaxRequests]=client[kMaxRequests],socket[kClient]=client,socket[kError]=null,channels.connected.hasSubscribers&&channels.connected.publish({connectParams:{host,hostname,protocol,port,version:client[kHTTPContext]?.version,servername:client[kServerName],localAddress:client[kLocalAddress]},connector:client[kConnector],socket}),client.emit("connect",client[kUrl],[client]),client[kResume]()})}catch(err){handleConnectError(client,err,{host,hostname,protocol,port}),client[kResume]()}}function handleConnectError(client,err,{host,hostname,protocol,port}){if(!client.destroyed){if(client[kConnecting]=!1,channels.connectError.hasSubscribers&&channels.connectError.publish({connectParams:{host,hostname,protocol,port,version:client[kHTTPContext]?.version,servername:client[kServerName],localAddress:client[kLocalAddress]},connector:client[kConnector],error:err}),err.code==="ERR_TLS_CERT_ALTNAME_INVALID"){let running=client[kQueue].splice(client[kRunningIdx],client[kRunning]);client[kPendingIdx]=client[kRunningIdx];for(let i=0;i<running.length;i++)util.errorRequest(client,running[i],err);for(;client[kPending]>0&&client[kQueue][client[kPendingIdx]].servername===client[kServerName];){let request=client[kQueue].splice(client[kPendingIdx],1)[0];util.errorRequest(client,request,err)}}else onError(client,err);client.emit("connectionError",client[kUrl],[client],err)}}function emitDrain(client){client[kNeedDrain]=0,client.emit("drain",client[kUrl],[client])}function resume(client,sync){client[kResuming]!==2&&(client[kResuming]=2,_resume(client,sync),client[kResuming]=0,client[kRunningIdx]>256&&(client[kQueue].splice(0,client[kRunningIdx]),client[kPendingIdx]-=client[kRunningIdx],client[kRunningIdx]=0))}function _resume(client,sync){for(;;){if(client.destroyed){assert(client[kPending]===0);return}if(client[kClosedResolve]&&!client[kSize]){client[kClosedResolve](),client[kClosedResolve]=null;return}if(client[kHTTPContext]&&client[kHTTPContext].resume(),client[kBusy])client[kNeedDrain]=2;else if(client[kNeedDrain]===2){sync?(client[kNeedDrain]=1,queueMicrotask(()=>emitDrain(client))):emitDrain(client);continue}if(client[kPending]===0||client[kRunning]>=(getMaxConcurrent(client)||1))return;let request=client[kQueue][client[kPendingIdx]];if(request===null)return;if(client[kUrl].protocol==="https:"&&client[kServerName]!==request.servername){if(client[kRunning]>0)return;client[kServerName]=request.servername,client[kHTTPContext]?.destroy(new InformationalError("servername changed"),()=>{client[kHTTPContext]=null,resume(client)})}if(client[kConnecting])return;if(!client[kHTTPContext]){client[kServerName]=request.servername,connect(client);return}if(client[kHTTPContext].destroyed||client[kHTTPContext].busy(request))return;!request.aborted&&client[kHTTPContext].write(request)?client[kPendingIdx]++:client[kQueue].splice(client[kPendingIdx],1)}}module.exports=Client}});var require_fixed_queue=__commonJS({"node_modules/undici/lib/dispatcher/fixed-queue.js"(exports,module){"use strict";var FixedCircularBuffer=class{bottom=0;top=0;list=new Array(2048).fill(void 0);next=null;isEmpty(){return this.top===this.bottom}isFull(){return(this.top+1&2047)===this.bottom}push(data){this.list[this.top]=data,this.top=this.top+1&2047}shift(){let nextItem=this.list[this.bottom];return nextItem===void 0?null:(this.list[this.bottom]=void 0,this.bottom=this.bottom+1&2047,nextItem)}};module.exports=class{constructor(){this.head=this.tail=new FixedCircularBuffer}isEmpty(){return this.head.isEmpty()}push(data){this.head.isFull()&&(this.head=this.head.next=new FixedCircularBuffer),this.head.push(data)}shift(){let tail=this.tail,next=tail.shift();return tail.isEmpty()&&tail.next!==null&&(this.tail=tail.next,tail.next=null),next}}}});var require_pool_base=__commonJS({"node_modules/undici/lib/dispatcher/pool-base.js"(exports,module){"use strict";var{PoolStats}=require_stats(),DispatcherBase=require_dispatcher_base(),FixedQueue=require_fixed_queue(),{kConnected,kSize,kRunning,kPending,kQueued,kBusy,kFree,kUrl,kClose,kDestroy,kDispatch}=require_symbols(),kClients=Symbol("clients"),kNeedDrain=Symbol("needDrain"),kQueue=Symbol("queue"),kClosedResolve=Symbol("closed resolve"),kOnDrain=Symbol("onDrain"),kOnConnect=Symbol("onConnect"),kOnDisconnect=Symbol("onDisconnect"),kOnConnectionError=Symbol("onConnectionError"),kGetDispatcher=Symbol("get dispatcher"),kHasDispatcher=Symbol("has dispatcher"),kAddClient=Symbol("add client"),kRemoveClient=Symbol("remove client"),PoolBase=class extends DispatcherBase{[kQueue]=new FixedQueue;[kQueued]=0;[kClients]=[];[kNeedDrain]=!1;[kOnDrain](client,origin,targets){let queue=this[kQueue],needDrain=!1;for(;!needDrain;){let item=queue.shift();if(!item)break;this[kQueued]--,needDrain=!client.dispatch(item.opts,item.handler)}if(client[kNeedDrain]=needDrain,!needDrain&&this[kNeedDrain]&&(this[kNeedDrain]=!1,this.emit("drain",origin,[this,...targets])),this[kClosedResolve]&&queue.isEmpty()){let closeAll=[];for(let i=0;i<this[kClients].length;i++){let client2=this[kClients][i];client2.destroyed||closeAll.push(client2.close())}return Promise.all(closeAll).then(this[kClosedResolve])}}[kOnConnect]=(origin,targets)=>{this.emit("connect",origin,[this,...targets])};[kOnDisconnect]=(origin,targets,err)=>{this.emit("disconnect",origin,[this,...targets],err)};[kOnConnectionError]=(origin,targets,err)=>{this.emit("connectionError",origin,[this,...targets],err)};get[kBusy](){return this[kNeedDrain]}get[kConnected](){let ret=0;for(let{[kConnected]:connected}of this[kClients])ret+=connected;return ret}get[kFree](){let ret=0;for(let{[kConnected]:connected,[kNeedDrain]:needDrain}of this[kClients])ret+=connected&&!needDrain;return ret}get[kPending](){let ret=this[kQueued];for(let{[kPending]:pending}of this[kClients])ret+=pending;return ret}get[kRunning](){let ret=0;for(let{[kRunning]:running}of this[kClients])ret+=running;return ret}get[kSize](){let ret=this[kQueued];for(let{[kSize]:size}of this[kClients])ret+=size;return ret}get stats(){return new PoolStats(this)}[kClose](){if(this[kQueue].isEmpty()){let closeAll=[];for(let i=0;i<this[kClients].length;i++){let client=this[kClients][i];client.destroyed||closeAll.push(client.close())}return Promise.all(closeAll)}else return new Promise(resolve=>{this[kClosedResolve]=resolve})}[kDestroy](err){for(;;){let item=this[kQueue].shift();if(!item)break;item.handler.onResponseError(null,err)}let destroyAll=new Array(this[kClients].length);for(let i=0;i<this[kClients].length;i++)destroyAll[i]=this[kClients][i].destroy(err);return Promise.all(destroyAll)}[kDispatch](opts,handler){let dispatcher=this[kGetDispatcher]();return dispatcher?dispatcher.dispatch(opts,handler)||(dispatcher[kNeedDrain]=!0,this[kNeedDrain]=!this[kHasDispatcher]()):(this[kNeedDrain]=!0,this[kQueue].push({opts,handler}),this[kQueued]++),!this[kNeedDrain]}[kHasDispatcher](){for(let i=0;i<this[kClients].length;i++){let dispatcher=this[kClients][i];if(!dispatcher[kNeedDrain]&&dispatcher.closed!==!0&&dispatcher.destroyed!==!0)return!0}return!1}[kAddClient](client){return client.on("drain",this[kOnDrain].bind(this,client)).on("connect",this[kOnConnect]).on("disconnect",this[kOnDisconnect]).on("connectionError",this[kOnConnectionError]),this[kClients].push(client),this[kNeedDrain]&&queueMicrotask(()=>{this[kNeedDrain]&&this[kOnDrain](client,client[kUrl],[client,this])}),this}[kRemoveClient](client){let idx=this[kClients].indexOf(client);idx!==-1&&this[kClients].splice(idx,1),client.close(()=>{}),this[kNeedDrain]=!this[kClients].some(dispatcher=>!dispatcher[kNeedDrain]&&dispatcher.closed!==!0&&dispatcher.destroyed!==!0)}};module.exports={PoolBase,kClients,kNeedDrain,kAddClient,kRemoveClient,kGetDispatcher,kHasDispatcher}}});var require_pool=__commonJS({"node_modules/undici/lib/dispatcher/pool.js"(exports,module){"use strict";var{PoolBase,kClients,kNeedDrain,kAddClient,kGetDispatcher,kHasDispatcher,kRemoveClient}=require_pool_base(),Client=require_client(),{InvalidArgumentError}=require_errors(),util=require_util(),{kUrl}=require_symbols(),buildConnector=require_connect(),kOptions=Symbol("options"),kConnections=Symbol("connections"),kFactory=Symbol("factory");function defaultFactory(origin,opts){return new Client(origin,opts)}var Pool=class extends PoolBase{constructor(origin,{connections,factory=defaultFactory,connect,connectTimeout,tls,maxCachedSessions,socketPath,autoSelectFamily,autoSelectFamilyAttemptTimeout,allowH2,useH2c,clientTtl,...options}={}){if(connections!=null&&(!Number.isFinite(connections)||connections<0))throw new InvalidArgumentError("invalid connections");if(typeof factory!="function")throw new InvalidArgumentError("factory must be a function.");if(connect!=null&&typeof connect!="function"&&typeof connect!="object")throw new InvalidArgumentError("connect must be a function or an object");typeof connect!="function"&&(connect=buildConnector({...tls,maxCachedSessions,allowH2,useH2c,socketPath,timeout:connectTimeout,...typeof autoSelectFamily=="boolean"?{autoSelectFamily,autoSelectFamilyAttemptTimeout}:void 0,...connect})),super(options),this[kConnections]=connections||null,this[kUrl]=util.parseOrigin(origin),this[kOptions]={...util.deepClone(options),connect,allowH2,useH2c,clientTtl,socketPath},this[kFactory]=factory,this.on("connect",(origin2,targets)=>{if(clientTtl!=null&&clientTtl>0)for(let target of targets)Object.assign(target,{ttl:Date.now()})}),this.on("connectionError",(origin2,targets,error)=>{for(let target of targets){let idx=this[kClients].indexOf(target);idx!==-1&&this[kClients].splice(idx,1)}})}[kGetDispatcher](){let clientTtlOption=this[kOptions].clientTtl;for(let i=0;i<this[kClients].length;i++){let client=this[kClients][i];if(clientTtlOption!=null&&clientTtlOption>0&&client.ttl&&Date.now()-client.ttl>clientTtlOption)this[kRemoveClient](client),i--;else if(!client[kNeedDrain])return client}if(!this[kConnections]||this[kClients].length<this[kConnections]){let dispatcher=this[kFactory](this[kUrl],this[kOptions]);return this[kAddClient](dispatcher),dispatcher}}[kHasDispatcher](){let clientTtlOption=this[kOptions].clientTtl;for(let i=0;i<this[kClients].length;i++){let client=this[kClients][i];if(clientTtlOption!=null&&clientTtlOption>0&&client.ttl&&Date.now()-client.ttl>clientTtlOption)this[kRemoveClient](client),i--;else if(!client[kNeedDrain])return!0}if(!this[kConnections]||this[kClients].length<this[kConnections]){let dispatcher=this[kFactory](this[kUrl],this[kOptions]);return this[kAddClient](dispatcher),!0}return!1}};module.exports=Pool}});var require_balanced_pool=__commonJS({"node_modules/undici/lib/dispatcher/balanced-pool.js"(exports,module){"use strict";var{BalancedPoolMissingUpstreamError,InvalidArgumentError}=require_errors(),{PoolBase,kClients,kNeedDrain,kAddClient,kRemoveClient,kGetDispatcher}=require_pool_base(),Pool=require_pool(),{kUrl}=require_symbols(),util=require_util(),kFactory=Symbol("factory"),kOptions=Symbol("options"),kGreatestCommonDivisor=Symbol("kGreatestCommonDivisor"),kCurrentWeight=Symbol("kCurrentWeight"),kIndex=Symbol("kIndex"),kWeight=Symbol("kWeight"),kMaxWeightPerServer=Symbol("kMaxWeightPerServer"),kErrorPenalty=Symbol("kErrorPenalty");function getGreatestCommonDivisor(a,b){if(a===0)return b;for(;b!==0;){let t=b;b=a%b,a=t}return a}function defaultFactory(origin,opts){return new Pool(origin,opts)}var BalancedPool=class extends PoolBase{constructor(upstreams=[],{factory=defaultFactory,...opts}={}){if(typeof factory!="function")throw new InvalidArgumentError("factory must be a function.");super(),this[kOptions]={...util.deepClone(opts)},this[kIndex]=-1,this[kCurrentWeight]=0,this[kMaxWeightPerServer]=this[kOptions].maxWeightPerServer||100,this[kErrorPenalty]=this[kOptions].errorPenalty||15,Array.isArray(upstreams)||(upstreams=[upstreams]),this[kFactory]=factory;for(let upstream of upstreams)this.addUpstream(upstream);this._updateBalancedPoolStats()}addUpstream(upstream){let upstreamOrigin=util.parseOrigin(upstream).origin;if(this[kClients].find(pool2=>pool2[kUrl].origin===upstreamOrigin&&pool2.closed!==!0&&pool2.destroyed!==!0))return this;let pool=this[kFactory](upstreamOrigin,this[kOptions]);this[kAddClient](pool),pool.on("connect",()=>{pool[kWeight]=Math.min(this[kMaxWeightPerServer],pool[kWeight]+this[kErrorPenalty])}),pool.on("connectionError",()=>{pool[kWeight]=Math.max(1,pool[kWeight]-this[kErrorPenalty]),this._updateBalancedPoolStats()}),pool.on("disconnect",(...args)=>{let err=args[2];err&&err.code==="UND_ERR_SOCKET"&&(pool[kWeight]=Math.max(1,pool[kWeight]-this[kErrorPenalty]),this._updateBalancedPoolStats())});for(let client of this[kClients])client[kWeight]=this[kMaxWeightPerServer];return this._updateBalancedPoolStats(),this}_updateBalancedPoolStats(){let result=0;for(let i=0;i<this[kClients].length;i++)result=getGreatestCommonDivisor(this[kClients][i][kWeight],result);this[kGreatestCommonDivisor]=result}removeUpstream(upstream){let upstreamOrigin=util.parseOrigin(upstream).origin,pool=this[kClients].find(pool2=>pool2[kUrl].origin===upstreamOrigin&&pool2.closed!==!0&&pool2.destroyed!==!0);return pool&&this[kRemoveClient](pool),this}getUpstream(upstream){let upstreamOrigin=util.parseOrigin(upstream).origin;return this[kClients].find(pool=>pool[kUrl].origin===upstreamOrigin&&pool.closed!==!0&&pool.destroyed!==!0)}get upstreams(){return this[kClients].filter(dispatcher=>dispatcher.closed!==!0&&dispatcher.destroyed!==!0).map(p=>p[kUrl].origin)}[kGetDispatcher](){if(this[kClients].length===0)throw new BalancedPoolMissingUpstreamError;let counter=0,maxWeightIndex=-1;for(;counter++<this[kClients].length;){this[kIndex]=(this[kIndex]+1)%this[kClients].length;let pool=this[kClients][this[kIndex]];if(this[kIndex]===0&&(this[kCurrentWeight]=this[kCurrentWeight]-this[kGreatestCommonDivisor],this[kCurrentWeight]<=0&&(this[kCurrentWeight]=this[kMaxWeightPerServer])),!(pool[kNeedDrain]||pool.closed===!0||pool.destroyed===!0)&&((maxWeightIndex===-1||pool[kWeight]>this[kClients][maxWeightIndex][kWeight])&&(maxWeightIndex=this[kIndex]),pool[kWeight]>=this[kCurrentWeight]))return pool}if(maxWeightIndex!==-1)return this[kCurrentWeight]=this[kClients][maxWeightIndex][kWeight],this[kIndex]=maxWeightIndex,this[kClients][maxWeightIndex]}};module.exports=BalancedPool}});var require_round_robin_pool=__commonJS({"node_modules/undici/lib/dispatcher/round-robin-pool.js"(exports,module){"use strict";var{PoolBase,kClients,kNeedDrain,kAddClient,kGetDispatcher,kHasDispatcher,kRemoveClient}=require_pool_base(),Client=require_client(),{InvalidArgumentError}=require_errors(),util=require_util(),{kUrl}=require_symbols(),buildConnector=require_connect(),kOptions=Symbol("options"),kConnections=Symbol("connections"),kFactory=Symbol("factory"),kIndex=Symbol("index");function defaultFactory(origin,opts){return new Client(origin,opts)}var RoundRobinPool=class extends PoolBase{constructor(origin,{connections,factory=defaultFactory,connect,connectTimeout,tls,maxCachedSessions,socketPath,autoSelectFamily,autoSelectFamilyAttemptTimeout,allowH2,clientTtl,...options}={}){if(connections!=null&&(!Number.isFinite(connections)||connections<0))throw new InvalidArgumentError("invalid connections");if(typeof factory!="function")throw new InvalidArgumentError("factory must be a function.");if(connect!=null&&typeof connect!="function"&&typeof connect!="object")throw new InvalidArgumentError("connect must be a function or an object");typeof connect!="function"&&(connect=buildConnector({...tls,maxCachedSessions,allowH2,socketPath,timeout:connectTimeout,...typeof autoSelectFamily=="boolean"?{autoSelectFamily,autoSelectFamilyAttemptTimeout}:void 0,...connect})),super(),this[kConnections]=connections||null,this[kUrl]=util.parseOrigin(origin),this[kOptions]={...util.deepClone(options),connect,allowH2,clientTtl,socketPath},this[kFactory]=factory,this[kIndex]=-1,this.on("connect",(origin2,targets)=>{if(clientTtl!=null&&clientTtl>0)for(let target of targets)Object.assign(target,{ttl:Date.now()})}),this.on("connectionError",(origin2,targets,error)=>{for(let target of targets){let idx=this[kClients].indexOf(target);idx!==-1&&this[kClients].splice(idx,1)}})}[kGetDispatcher](){let clientTtlOption=this[kOptions].clientTtl;if(this[kClients].length===0){let dispatcher=this[kFactory](this[kUrl],this[kOptions]);return this[kAddClient](dispatcher),dispatcher}let checked=0;for(;checked<this[kClients].length;){this[kIndex]=(this[kIndex]+1)%this[kClients].length;let client=this[kClients][this[kIndex]];if(clientTtlOption!=null&&clientTtlOption>0&&client.ttl&&Date.now()-client.ttl>clientTtlOption){this[kRemoveClient](client),this[kIndex]--;continue}if(!client[kNeedDrain])return client;checked++}if(!this[kConnections]||this[kClients].length<this[kConnections]){let dispatcher=this[kFactory](this[kUrl],this[kOptions]);return this[kAddClient](dispatcher),dispatcher}}[kHasDispatcher](){let clientTtlOption=this[kOptions].clientTtl;for(let i=0;i<this[kClients].length;i++){let client=this[kClients][i];if(clientTtlOption!=null&&clientTtlOption>0&&client.ttl&&Date.now()-client.ttl>clientTtlOption)this[kRemoveClient](client),i<=this[kIndex]&&this[kIndex]--,i--;else if(!client[kNeedDrain])return!0}if(!this[kConnections]||this[kClients].length<this[kConnections]){let dispatcher=this[kFactory](this[kUrl],this[kOptions]);return this[kAddClient](dispatcher),!0}return!1}};module.exports=RoundRobinPool}});var require_agent=__commonJS({"node_modules/undici/lib/dispatcher/agent.js"(exports,module){"use strict";var{InvalidArgumentError,MaxOriginsReachedError}=require_errors(),{kBusy,kClients,kConnected,kRunning,kClose,kDestroy,kDispatch,kUrl}=require_symbols(),DispatcherBase=require_dispatcher_base(),Pool=require_pool(),Client=require_client(),util=require_util(),kOnConnect=Symbol("onConnect"),kOnDisconnect=Symbol("onDisconnect"),kOnConnectionError=Symbol("onConnectionError"),kOnDrain=Symbol("onDrain"),kFactory=Symbol("factory"),kOptions=Symbol("options"),kOrigins=Symbol("origins");function defaultFactory(origin,opts){return opts&&opts.connections===1?new Client(origin,opts):new Pool(origin,opts)}var Agent=class extends DispatcherBase{constructor({factory=defaultFactory,maxOrigins=1/0,connect,...options}={}){if(typeof factory!="function")throw new InvalidArgumentError("factory must be a function.");if(connect!=null&&typeof connect!="function"&&typeof connect!="object")throw new InvalidArgumentError("connect must be a function or an object");if(typeof maxOrigins!="number"||Number.isNaN(maxOrigins)||maxOrigins<=0)throw new InvalidArgumentError("maxOrigins must be a number greater than 0");super(options),connect&&typeof connect!="function"&&(connect={...connect}),this[kOptions]={...util.deepClone(options),maxOrigins,connect},this[kFactory]=factory,this[kClients]=new Map,this[kOrigins]=new Set,this[kOnDrain]=(origin,targets)=>{this.emit("drain",origin,[this,...targets])},this[kOnConnect]=(origin,targets)=>{this.emit("connect",origin,[this,...targets])},this[kOnDisconnect]=(origin,targets,err)=>{this.emit("disconnect",origin,[this,...targets],err)},this[kOnConnectionError]=(origin,targets,err)=>{this.emit("connectionError",origin,[this,...targets],err)}}get[kRunning](){let ret=0;for(let dispatcher of this[kClients].values())ret+=dispatcher[kRunning];return ret}[kDispatch](opts,handler){let origin;if(opts.origin&&(typeof opts.origin=="string"||opts.origin instanceof URL))origin=String(opts.origin);else throw new InvalidArgumentError("opts.origin must be a non-empty string or URL.");let allowH2=opts.allowH2??this[kOptions].allowH2,key=allowH2===!1?`${origin}#http1-only`:origin;if(this[kOrigins].size>=this[kOptions].maxOrigins&&!this[kOrigins].has(origin))throw new MaxOriginsReachedError;let dispatcher=this[kClients].get(key);if(!dispatcher){dispatcher=this[kFactory](opts.origin,allowH2===!1?{...this[kOptions],allowH2:!1}:this[kOptions]);let closeClientIfUnused=()=>{if(this[kClients].get(key)!==dispatcher||dispatcher[kConnected]>0||dispatcher[kBusy])return;this[kClients].delete(key),dispatcher.destroyed||dispatcher.close();let hasOrigin=!1;for(let k of this[kClients].keys())if(k===origin||k===`${origin}#http1-only`){hasOrigin=!0;break}hasOrigin||this[kOrigins].delete(origin)};dispatcher.on("drain",this[kOnDrain]).on("connect",this[kOnConnect]).on("disconnect",(origin2,targets,err)=>{closeClientIfUnused(),this[kOnDisconnect](origin2,targets,err)}).on("connectionError",(origin2,targets,err)=>{closeClientIfUnused(),this[kOnConnectionError](origin2,targets,err)}),this[kClients].set(key,dispatcher),this[kOrigins].add(origin)}return dispatcher.dispatch(opts,handler)}[kClose](){let closePromises=[];for(let dispatcher of this[kClients].values())closePromises.push(dispatcher.close());return this[kClients].clear(),Promise.all(closePromises)}[kDestroy](err){let destroyPromises=[];for(let dispatcher of this[kClients].values())destroyPromises.push(dispatcher.destroy(err));return this[kClients].clear(),Promise.all(destroyPromises)}get stats(){let allClientStats={};for(let dispatcher of this[kClients].values())dispatcher.stats&&(allClientStats[dispatcher[kUrl].origin]=dispatcher.stats);return allClientStats}};module.exports=Agent}});var require_dispatcher1_wrapper=__commonJS({"node_modules/undici/lib/dispatcher/dispatcher1-wrapper.js"(exports,module){"use strict";var Dispatcher=require_dispatcher(),{InvalidArgumentError}=require_errors(),{toRawHeaders}=require_util(),LegacyHandlerWrapper=class{#handler;constructor(handler){this.#handler=handler}onRequestStart(controller,context){this.#handler.onConnect?.(reason=>controller.abort(reason),context)}onRequestUpgrade(controller,statusCode,headers,socket){let rawHeaders=controller?.rawHeaders??toRawHeaders(headers??{});this.#handler.onUpgrade?.(statusCode,rawHeaders,socket)}onResponseStart(controller,statusCode,headers,statusMessage){let rawHeaders=controller?.rawHeaders??toRawHeaders(headers??{});this.#handler.onHeaders?.(statusCode,rawHeaders,()=>controller.resume(),statusMessage)===!1&&controller.pause()}onResponseData(controller,chunk){this.#handler.onData?.(chunk)===!1&&controller.pause()}onResponseEnd(controller,trailers){let rawTrailers=controller?.rawTrailers??toRawHeaders(trailers??{});this.#handler.onComplete?.(rawTrailers)}onResponseError(_controller,err){if(!this.#handler.onError)throw err;this.#handler.onError(err)}onBodySent(chunk){this.#handler.onBodySent?.(chunk)}onRequestSent(){this.#handler.onRequestSent?.()}onResponseStarted(){this.#handler.onResponseStarted?.()}},Dispatcher1Wrapper=class _Dispatcher1Wrapper extends Dispatcher{#dispatcher;constructor(dispatcher){if(super(),!dispatcher||typeof dispatcher.dispatch!="function")throw new InvalidArgumentError("Argument dispatcher must implement dispatch");this.#dispatcher=dispatcher}static wrapHandler(handler){if(!handler||typeof handler!="object")throw new InvalidArgumentError("handler must be an object");return typeof handler.onRequestStart=="function"?handler:new LegacyHandlerWrapper(handler)}dispatch(opts,handler){return opts.allowH2!==!1&&(opts={...opts,allowH2:!1}),this.#dispatcher.dispatch(opts,_Dispatcher1Wrapper.wrapHandler(handler))}close(...args){return this.#dispatcher.close(...args)}destroy(...args){return this.#dispatcher.destroy(...args)}};module.exports=Dispatcher1Wrapper}});var require_socks5_utils=__commonJS({"node_modules/undici/lib/core/socks5-utils.js"(exports,module){"use strict";var{Buffer:Buffer2}=__require("node:buffer"),net=__require("node:net"),{InvalidArgumentError}=require_errors();function parseAddress(address){if(net.isIPv4(address)){let parts=address.split(".").map(Number);return{type:1,buffer:Buffer2.from(parts)}}if(net.isIPv6(address))return{type:4,buffer:parseIPv6(address)};let domainBuffer=Buffer2.from(address,"utf8");if(domainBuffer.length>255)throw new InvalidArgumentError("Domain name too long (max 255 bytes)");return{type:3,buffer:Buffer2.concat([Buffer2.from([domainBuffer.length]),domainBuffer])}}function parseIPv6(address){let buffer=Buffer2.alloc(16),normalizedAddress=address;if(address.includes(".")){let lastColonIndex=address.lastIndexOf(":"),ipv4Part=address.slice(lastColonIndex+1);if(net.isIPv4(ipv4Part)){let octets=ipv4Part.split(".").map(Number),high=(octets[0]<<8|octets[1]).toString(16),low=(octets[2]<<8|octets[3]).toString(16);normalizedAddress=`${address.slice(0,lastColonIndex)}:${high}:${low}`}}let doubleColonIndex=normalizedAddress.indexOf("::");if(doubleColonIndex!==-1){let before=normalizedAddress.slice(0,doubleColonIndex),after=normalizedAddress.slice(doubleColonIndex+2),beforeParts=before===""?[]:before.split(":"),afterParts=after===""?[]:after.split(":"),bufferIndex=0;for(let part of beforeParts)buffer.writeUInt16BE(parseInt(part,16),bufferIndex),bufferIndex+=2;bufferIndex=16-afterParts.length*2;for(let part of afterParts)buffer.writeUInt16BE(parseInt(part,16),bufferIndex),bufferIndex+=2}else{let parts=normalizedAddress.split(":");for(let i=0;i<parts.length;i++)buffer.writeUInt16BE(parseInt(parts[i],16),i*2)}return buffer}function buildAddressBuffer(type,addressBuffer,port){let portBuffer=Buffer2.allocUnsafe(2);return portBuffer.writeUInt16BE(port,0),Buffer2.concat([Buffer2.from([type]),addressBuffer,portBuffer])}function parseResponseAddress(buffer,offset=0){if(buffer.length<offset+1)throw new InvalidArgumentError("Buffer too small to contain address type");let addressType=buffer[offset],address,currentOffset=offset+1;switch(addressType){case 1:{if(buffer.length<currentOffset+6)throw new InvalidArgumentError("Buffer too small for IPv4 address");address=Array.from(buffer.subarray(currentOffset,currentOffset+4)).join("."),currentOffset+=4;break}case 3:{if(buffer.length<currentOffset+1)throw new InvalidArgumentError("Buffer too small for domain length");let domainLength=buffer[currentOffset];if(currentOffset+=1,buffer.length<currentOffset+domainLength+2)throw new InvalidArgumentError("Buffer too small for domain address");address=buffer.subarray(currentOffset,currentOffset+domainLength).toString("utf8"),currentOffset+=domainLength;break}case 4:{if(buffer.length<currentOffset+18)throw new InvalidArgumentError("Buffer too small for IPv6 address");let parts=[];for(let i=0;i<8;i++){let value=buffer.readUInt16BE(currentOffset+i*2);parts.push(value.toString(16))}address=parts.join(":"),currentOffset+=16;break}default:throw new InvalidArgumentError(`Invalid address type: ${addressType}`)}if(buffer.length<currentOffset+2)throw new InvalidArgumentError("Buffer too small for port");let port=buffer.readUInt16BE(currentOffset);return currentOffset+=2,{address,port,bytesRead:currentOffset-offset}}function createReplyError(replyCode){let message={1:"General SOCKS server failure",2:"Connection not allowed by ruleset",3:"Network unreachable",4:"Host unreachable",5:"Connection refused",6:"TTL expired",7:"Command not supported",8:"Address type not supported"}[replyCode]||`Unknown SOCKS5 error code: ${replyCode}`,error=new Error(message);return error.code=`SOCKS5_${replyCode}`,error}module.exports={parseAddress,parseIPv6,buildAddressBuffer,parseResponseAddress,createReplyError}}});var require_socks5_client=__commonJS({"node_modules/undici/lib/core/socks5-client.js"(exports,module){"use strict";var{EventEmitter}=__require("node:events"),{Buffer:Buffer2}=__require("node:buffer"),{InvalidArgumentError,Socks5ProxyError}=require_errors(),{debuglog}=__require("node:util"),{parseAddress}=require_socks5_utils(),debug=debuglog("undici:socks5"),EMPTY_BUFFER=Buffer2.alloc(0),SOCKS_VERSION=5,AUTH_METHODS={NO_AUTH:0,GSSAPI:1,USERNAME_PASSWORD:2,NO_ACCEPTABLE:255},COMMANDS={CONNECT:1,BIND:2,UDP_ASSOCIATE:3},ADDRESS_TYPES={IPV4:1,DOMAIN:3,IPV6:4},REPLY_CODES={SUCCEEDED:0,GENERAL_FAILURE:1,CONNECTION_NOT_ALLOWED:2,NETWORK_UNREACHABLE:3,HOST_UNREACHABLE:4,CONNECTION_REFUSED:5,TTL_EXPIRED:6,COMMAND_NOT_SUPPORTED:7,ADDRESS_TYPE_NOT_SUPPORTED:8},STATES={INITIAL:"initial",HANDSHAKING:"handshaking",AUTHENTICATING:"authenticating",AUTHENTICATED:"authenticated",CONNECTING:"connecting",CONNECTED:"connected",ERROR:"error",CLOSED:"closed"},Socks5Client=class extends EventEmitter{constructor(socket,options={}){if(super(),!socket)throw new InvalidArgumentError("socket is required");this.socket=socket,this.options=options,this.state=STATES.INITIAL,this.buffer=EMPTY_BUFFER,this.onSocketData=this.onData.bind(this),this.onSocketError=this.onError.bind(this),this.onSocketClose=this.onClose.bind(this),this.authMethods=[],options.username&&options.password&&this.authMethods.push(AUTH_METHODS.USERNAME_PASSWORD),this.authMethods.push(AUTH_METHODS.NO_AUTH),this.socket.on("data",this.onSocketData),this.socket.on("error",this.onSocketError),this.socket.on("close",this.onSocketClose)}onData(data){debug("received data",data.length,"bytes in state",this.state),this.buffer=Buffer2.concat([this.buffer,data]);try{switch(this.state){case STATES.HANDSHAKING:this.handleHandshakeResponse();break;case STATES.AUTHENTICATING:this.handleAuthResponse();break;case STATES.CONNECTING:this.handleConnectResponse();break}}catch(err){this.onError(err)}}onError(err){debug("socket error",err),this.state=STATES.ERROR,this.emit("error",err),this.destroy()}onClose(){debug("socket closed"),this.state=STATES.CLOSED,this.emit("close")}destroy(){this.socket&&!this.socket.destroyed&&this.socket.destroy()}markAuthenticated(){this.state=STATES.AUTHENTICATED,this.emit("authenticated")}handshake(){if(this.state!==STATES.INITIAL)throw new InvalidArgumentError("Handshake already started");debug("starting handshake with",this.authMethods.length,"auth methods"),this.state=STATES.HANDSHAKING;let request=Buffer2.alloc(2+this.authMethods.length);request[0]=SOCKS_VERSION,request[1]=this.authMethods.length,this.authMethods.forEach((method,i)=>{request[2+i]=method}),this.socket.write(request)}handleHandshakeResponse(){if(this.buffer.length<2)return;let version=this.buffer[0],method=this.buffer[1];if(version!==SOCKS_VERSION)throw new Socks5ProxyError(`Invalid SOCKS version: ${version}`,"UND_ERR_SOCKS5_VERSION");if(method===AUTH_METHODS.NO_ACCEPTABLE)throw new Socks5ProxyError("No acceptable authentication method","UND_ERR_SOCKS5_AUTH_REJECTED");if(this.buffer=this.buffer.subarray(2),debug("server selected auth method",method),method===AUTH_METHODS.NO_AUTH)this.markAuthenticated();else if(method===AUTH_METHODS.USERNAME_PASSWORD)this.state=STATES.AUTHENTICATING,this.sendAuthRequest();else throw new Socks5ProxyError(`Unsupported authentication method: ${method}`,"UND_ERR_SOCKS5_AUTH_METHOD")}sendAuthRequest(){let{username,password}=this.options;if(!username||!password)throw new InvalidArgumentError("Username and password required for authentication");debug("sending username/password auth");let usernameBuffer=Buffer2.from(username),passwordBuffer=Buffer2.from(password);if(usernameBuffer.length>255||passwordBuffer.length>255)throw new InvalidArgumentError("Username or password too long");let request=Buffer2.alloc(3+usernameBuffer.length+passwordBuffer.length);request[0]=1,request[1]=usernameBuffer.length,usernameBuffer.copy(request,2),request[2+usernameBuffer.length]=passwordBuffer.length,passwordBuffer.copy(request,3+usernameBuffer.length),this.socket.write(request)}handleAuthResponse(){if(this.buffer.length<2)return;let version=this.buffer[0],status=this.buffer[1];if(version!==1)throw new Socks5ProxyError(`Invalid auth sub-negotiation version: ${version}`,"UND_ERR_SOCKS5_AUTH_VERSION");if(status!==0)throw new Socks5ProxyError("Authentication failed","UND_ERR_SOCKS5_AUTH_FAILED");this.buffer=this.buffer.subarray(2),debug("authentication successful"),this.markAuthenticated()}connect(address,port){if(this.state===STATES.CONNECTING||this.state===STATES.CONNECTED)throw new InvalidArgumentError("Connection already in progress");if(this.state!==STATES.AUTHENTICATED)throw new InvalidArgumentError("Client must be authenticated before CONNECT");debug("connecting to",address,port),this.state=STATES.CONNECTING;let request=this.buildConnectRequest(COMMANDS.CONNECT,address,port);this.socket.write(request)}buildConnectRequest(command,address,port){let{type:addressType,buffer:addressBuffer}=parseAddress(address),request=Buffer2.alloc(4+addressBuffer.length+2);return request[0]=SOCKS_VERSION,request[1]=command,request[2]=0,request[3]=addressType,addressBuffer.copy(request,4),request.writeUInt16BE(port,4+addressBuffer.length),request}handleConnectResponse(){if(this.buffer.length<4)return;let version=this.buffer[0],reply=this.buffer[1],addressType=this.buffer[3];if(version!==SOCKS_VERSION)throw new Socks5ProxyError(`Invalid SOCKS version in reply: ${version}`,"UND_ERR_SOCKS5_REPLY_VERSION");let responseLength=4;if(addressType===ADDRESS_TYPES.IPV4)responseLength+=6;else if(addressType===ADDRESS_TYPES.DOMAIN){if(this.buffer.length<5)return;responseLength+=1+this.buffer[4]+2}else if(addressType===ADDRESS_TYPES.IPV6)responseLength+=18;else throw new Socks5ProxyError(`Invalid address type in reply: ${addressType}`,"UND_ERR_SOCKS5_ADDR_TYPE");if(this.buffer.length<responseLength)return;if(reply!==REPLY_CODES.SUCCEEDED){let errorMessage=this.getReplyErrorMessage(reply);throw new Socks5ProxyError(`SOCKS5 connection failed: ${errorMessage}`,`UND_ERR_SOCKS5_REPLY_${reply}`)}let boundAddress,offset=4;if(addressType===ADDRESS_TYPES.IPV4)boundAddress=Array.from(this.buffer.subarray(offset,offset+4)).join("."),offset+=4;else if(addressType===ADDRESS_TYPES.DOMAIN){let domainLength=this.buffer[offset];offset+=1,boundAddress=this.buffer.subarray(offset,offset+domainLength).toString(),offset+=domainLength}else if(addressType===ADDRESS_TYPES.IPV6){let parts=[];for(let i=0;i<8;i++){let value=this.buffer.readUInt16BE(offset+i*2);parts.push(value.toString(16))}boundAddress=parts.join(":"),offset+=16}let boundPort=this.buffer.readUInt16BE(offset);this.buffer=EMPTY_BUFFER,this.state=STATES.CONNECTED,this.socket.removeListener("data",this.onSocketData),debug("connected, bound address:",boundAddress,"port:",boundPort),this.emit("connected",{address:boundAddress,port:boundPort})}getReplyErrorMessage(reply){switch(reply){case REPLY_CODES.GENERAL_FAILURE:return"General SOCKS server failure";case REPLY_CODES.CONNECTION_NOT_ALLOWED:return"Connection not allowed by ruleset";case REPLY_CODES.NETWORK_UNREACHABLE:return"Network unreachable";case REPLY_CODES.HOST_UNREACHABLE:return"Host unreachable";case REPLY_CODES.CONNECTION_REFUSED:return"Connection refused";case REPLY_CODES.TTL_EXPIRED:return"TTL expired";case REPLY_CODES.COMMAND_NOT_SUPPORTED:return"Command not supported";case REPLY_CODES.ADDRESS_TYPE_NOT_SUPPORTED:return"Address type not supported";default:return`Unknown error code: ${reply}`}}};module.exports={Socks5Client,AUTH_METHODS,COMMANDS,ADDRESS_TYPES,REPLY_CODES,STATES}}});var require_socks5_proxy_agent=__commonJS({"node_modules/undici/lib/dispatcher/socks5-proxy-agent.js"(exports,module){"use strict";var{URL:URL2}=__require("node:url"),tls,DispatcherBase=require_dispatcher_base(),{InvalidArgumentError}=require_errors(),{Socks5Client,STATES}=require_socks5_client(),{kBusy,kConnected,kDispatch,kClose,kDestroy}=require_symbols(),Pool=require_pool(),buildConnector=require_connect(),{debuglog}=__require("node:util"),debug=debuglog("undici:socks5-proxy"),kProxyUrl=Symbol("proxy url"),kProxyHeaders=Symbol("proxy headers"),kProxyAuth=Symbol("proxy auth"),kProxyProtocol=Symbol("proxy protocol"),kPools=Symbol("pools"),kConnector=Symbol("connector"),kRequestTls=Symbol("request tls settings"),experimentalWarningEmitted=!1,Socks5ProxyAgent=class extends DispatcherBase{constructor(proxyUrl,options={}){if(super(),experimentalWarningEmitted||(process.emitWarning("SOCKS5 proxy support is experimental and subject to change","ExperimentalWarning"),experimentalWarningEmitted=!0),!proxyUrl)throw new InvalidArgumentError("Proxy URL is mandatory");let url=typeof proxyUrl=="string"?new URL2(proxyUrl):proxyUrl;if(url.protocol!=="socks5:"&&url.protocol!=="socks:")throw new InvalidArgumentError("Proxy URL must use socks5:// or socks:// protocol");this[kProxyUrl]=url,this[kProxyHeaders]=options.headers||{},this[kProxyProtocol]=options.proxyTls?"https:":"http:",this[kRequestTls]=options.requestTls,this[kProxyAuth]={username:options.username||(url.username?decodeURIComponent(url.username):null),password:options.password||(url.password?decodeURIComponent(url.password):null)},this[kConnector]=options.connect||buildConnector({...options.proxyTls,servername:options.proxyTls?.servername||url.hostname}),this[kPools]=new Map}async createSocks5Connection(targetHost,targetPort){let proxyHost=this[kProxyUrl].hostname,proxyPort=parseInt(this[kProxyUrl].port)||1080;debug("creating SOCKS5 connection to",proxyHost,proxyPort);let socketReady=Promise.withResolvers();this[kConnector]({hostname:proxyHost,host:proxyHost,port:proxyPort,protocol:this[kProxyProtocol]},(err,socket2)=>{err?socketReady.reject(err):socketReady.resolve(socket2)});let socket=await socketReady.promise,socks5Client=new Socks5Client(socket,this[kProxyAuth]);socks5Client.on("error",err=>{debug("SOCKS5 error:",err),socket.destroy()}),await socks5Client.handshake();let authenticationReady=Promise.withResolvers(),authenticationTimeout=setTimeout(()=>{authenticationReady.reject(new Error("SOCKS5 authentication timeout"))},5e3),onAuthenticated=()=>{clearTimeout(authenticationTimeout),socks5Client.removeListener("error",onAuthenticationError),authenticationReady.resolve()},onAuthenticationError=err=>{clearTimeout(authenticationTimeout),socks5Client.removeListener("authenticated",onAuthenticated),authenticationReady.reject(err)};socks5Client.state===STATES.AUTHENTICATED?(clearTimeout(authenticationTimeout),authenticationReady.resolve()):(socks5Client.once("authenticated",onAuthenticated),socks5Client.once("error",onAuthenticationError)),await authenticationReady.promise,await socks5Client.connect(targetHost,targetPort);let connectionReady=Promise.withResolvers(),connectionTimeout=setTimeout(()=>{connectionReady.reject(new Error("SOCKS5 connection timeout"))},5e3),onConnected=info=>{debug("SOCKS5 tunnel established to",targetHost,targetPort,"via",info),clearTimeout(connectionTimeout),socks5Client.removeListener("error",onConnectionError),connectionReady.resolve()},onConnectionError=err=>{clearTimeout(connectionTimeout),socks5Client.removeListener("connected",onConnected),connectionReady.reject(err)};return socks5Client.once("connected",onConnected),socks5Client.once("error",onConnectionError),await connectionReady.promise,socket}[kDispatch](opts,handler){let{origin}=opts;debug("dispatching request to",origin,"via SOCKS5");try{let originKey=String(origin),pool=this[kPools].get(originKey);if(!pool||pool.destroyed||pool.closed){pool=new Pool(origin,{pipelining:opts.pipelining,connections:opts.connections,connect:async(connectOpts,callback)=>{try{let url=new URL2(origin),targetHost=url.hostname,targetPort=parseInt(url.port)||(url.protocol==="https:"?443:80);debug("establishing SOCKS5 connection to",targetHost,targetPort);let socket=await this.createSocks5Connection(targetHost,targetPort),finalSocket=socket;if(url.protocol==="https:"){tls||(tls=__require("node:tls")),debug("upgrading to TLS"),finalSocket=tls.connect({...this[kRequestTls],socket,servername:this[kRequestTls]?.servername||targetHost});let tlsReady=Promise.withResolvers();finalSocket.once("secureConnect",tlsReady.resolve),finalSocket.once("error",tlsReady.reject),await tlsReady.promise}callback(null,finalSocket)}catch(err){debug("SOCKS5 connection error:",err),callback(err)}}}),this[kPools].set(originKey,pool);let closePoolIfUnused=()=>{this[kPools].get(originKey)!==pool||pool[kConnected]>0||pool[kBusy]||(this[kPools].delete(originKey),pool.destroyed||pool.close())};pool.on("disconnect",closePoolIfUnused),pool.on("connectionError",closePoolIfUnused)}return pool[kDispatch](opts,handler)}catch(err){if(debug("dispatch error:",err),typeof handler.onResponseError=="function")return handler.onResponseError(null,err),!1;if(typeof handler.onError=="function")return handler.onError(err),!1;throw err}}async[kClose](){let closePromises=[];for(let pool of this[kPools].values())closePromises.push(pool.close());this[kPools].clear(),await Promise.all(closePromises)}async[kDestroy](err){let destroyPromises=[];for(let pool of this[kPools].values())destroyPromises.push(pool.destroy(err));this[kPools].clear(),await Promise.all(destroyPromises)}};module.exports=Socks5ProxyAgent}});var require_proxy_agent=__commonJS({"node_modules/undici/lib/dispatcher/proxy-agent.js"(exports,module){"use strict";var{kProxy,kClose,kDestroy,kDispatch}=require_symbols(),Agent=require_agent(),Pool=require_pool(),DispatcherBase=require_dispatcher_base(),{InvalidArgumentError,RequestAbortedError,SecureProxyConnectionError,ProxyConnectionError}=require_errors(),buildConnector=require_connect(),Client=require_client(),{channels}=require_diagnostics(),Socks5ProxyAgent=require_socks5_proxy_agent(),kAgent=Symbol("proxy agent"),kClient=Symbol("proxy client"),kProxyHeaders=Symbol("proxy headers"),kRequestTls=Symbol("request tls settings"),kProxyTls=Symbol("proxy tls settings"),kConnectEndpoint=Symbol("connect endpoint function"),kConnectEndpointHTTP1=Symbol("connect endpoint function (http/1.1 only)"),kTunnelProxy=Symbol("tunnel proxy"),proxyAuthorization="proxy-authorization";function defaultProtocolPort(protocol){return protocol==="https:"?443:80}function defaultFactory(origin,opts){return new Pool(origin,opts)}var noop=()=>{};function defaultAgentFactory(origin,opts){return opts.connections===1?new Client(origin,opts):new Pool(origin,opts)}function shouldProxyTunnel(requestProtocol,proxyTunnel){return proxyTunnel===!0||requestProtocol!=="http:"}var Http1ProxyWrapper=class extends DispatcherBase{#client;#proxyServername;constructor(proxyUrl,{headers={},connect,factory,proxyServername}){if(!proxyUrl)throw new InvalidArgumentError("Proxy URL is mandatory");super(),this[kProxyHeaders]=headers,this.#proxyServername=proxyServername,factory?this.#client=factory(proxyUrl,{connect}):this.#client=new Client(proxyUrl,{connect})}[kDispatch](opts,handler){let onResponseStart=handler.onResponseStart;handler.onResponseStart=function(controller,statusCode,data,statusMessage){if(statusCode===407){typeof handler.onResponseError=="function"&&handler.onResponseError(controller,new InvalidArgumentError("Proxy Authentication Required (407)"));return}onResponseStart&&onResponseStart.call(this,controller,statusCode,data,statusMessage)};let{origin,path="/",headers={}}=opts;if(opts.path=origin+path,!("host"in headers)&&!("Host"in headers)){let{host}=new URL(origin);headers.host=host}return opts.headers={...this[kProxyHeaders],...headers},this.#proxyServername!=null&&(opts.servername=this.#proxyServername),this.#client[kDispatch](opts,handler)}[kClose](){return this.#client.close()}[kDestroy](err){return this.#client.destroy(err)}},ProxyAgent=class extends DispatcherBase{constructor(opts){if(!opts||typeof opts=="object"&&!(opts instanceof URL)&&!opts.uri)throw new InvalidArgumentError("Proxy uri is mandatory");let{clientFactory=defaultFactory}=opts;if(typeof clientFactory!="function")throw new InvalidArgumentError("Proxy opts.clientFactory must be a function.");let{proxyTunnel,connectTimeout}=opts;super();let url=this.#getUrl(opts),{href,origin,port,protocol,username,password,hostname:proxyHostname}=url;if(this[kProxy]={uri:href,protocol},this[kRequestTls]=opts.requestTls,this[kProxyTls]=opts.proxyTls,this[kProxyHeaders]=opts.headers||{},this[kTunnelProxy]=proxyTunnel,opts.auth&&opts.token)throw new InvalidArgumentError("opts.auth cannot be used in combination with opts.token");opts.auth?this[kProxyHeaders]["proxy-authorization"]=`Basic ${opts.auth}`:opts.token?this[kProxyHeaders]["proxy-authorization"]=opts.token:username&&password?this[kProxyHeaders]["proxy-authorization"]=`Basic ${Buffer.from(`${decodeURIComponent(username)}:${decodeURIComponent(password)}`).toString("base64")}`:username&&(this[kProxyHeaders]["proxy-authorization"]=`Basic ${Buffer.from(`${decodeURIComponent(username)}:`).toString("base64")}`);let connect=buildConnector({timeout:connectTimeout,...opts.proxyTls}),connectHTTP1=buildConnector({timeout:connectTimeout,...opts.proxyTls,allowH2:!1});this[kConnectEndpoint]=buildConnector({timeout:connectTimeout,...opts.requestTls}),this[kConnectEndpointHTTP1]=buildConnector({timeout:connectTimeout,...opts.requestTls,allowH2:!1});let agentFactory=opts.factory||defaultAgentFactory,factory=(origin2,options)=>{let{protocol:protocol2}=new URL(origin2);if(this[kProxy].protocol==="socks5:"||this[kProxy].protocol==="socks:")return new Socks5ProxyAgent(this[kProxy].uri,{headers:this[kProxyHeaders],connect,factory:agentFactory,username:opts.username||username,password:opts.password||password,proxyTls:opts.proxyTls,requestTls:opts.requestTls});if(!shouldProxyTunnel(protocol2,this[kTunnelProxy])){let forwardConnect=this[kProxy].protocol==="https:"?(opts2,cb)=>connectHTTP1(opts2,(err,socket)=>{err&&err.code==="ERR_TLS_CERT_ALTNAME_INVALID"?cb(new SecureProxyConnectionError(err)):cb(err,socket)}):connectHTTP1;return new Http1ProxyWrapper(this[kProxy].uri,{headers:this[kProxyHeaders],connect:forwardConnect,factory:agentFactory,proxyServername:this[kProxy].protocol==="https:"?this[kProxyTls]?.servername||proxyHostname:void 0})}return agentFactory(origin2,options)};protocol==="socks5:"||protocol==="socks:"?this[kClient]=null:this[kClient]=clientFactory(url,{connect}),this[kAgent]=new Agent({...opts,factory,connect:async(opts2,callback)=>{if(!this[kClient]){callback(new InvalidArgumentError("Cannot establish tunnel connection without a proxy client"));return}let requestedPath=opts2.host;opts2.port||(requestedPath+=`:${defaultProtocolPort(opts2.protocol)}`);try{let connectParams={origin,port,path:requestedPath,signal:opts2.signal,headers:{...this[kProxyHeaders],host:opts2.host,...opts2.connections==null||opts2.connections>0?{"proxy-connection":"keep-alive"}:{}},servername:this[kProxyTls]?.servername||proxyHostname},{socket,statusCode}=await this[kClient].connect(connectParams);if(statusCode!==200){socket.on("error",noop).destroy(),callback(new RequestAbortedError(`Proxy response (${statusCode}) !== 200 when HTTP Tunneling`));return}if(channels.proxyConnected.hasSubscribers&&channels.proxyConnected.publish({socket,connectParams}),opts2.protocol!=="https:"){callback(null,socket);return}let servername;this[kRequestTls]?servername=this[kRequestTls].servername:servername=opts2.servername,(opts2.allowH2===!1?this[kConnectEndpointHTTP1]:this[kConnectEndpoint])({...opts2,servername,httpSocket:socket},callback)}catch(err){err.code==="ERR_TLS_CERT_ALTNAME_INVALID"?callback(new SecureProxyConnectionError(err)):err.code==="UND_ERR_SOCKET"?callback(new ProxyConnectionError(err)):callback(err)}}})}dispatch(opts,handler){let headers=buildHeaders(opts.headers);if(throwIfProxyAuthIsSent(headers),headers&&!("host"in headers)&&!("Host"in headers)){let{host}=new URL(opts.origin);headers.host=host}return this[kAgent].dispatch({...opts,headers},handler)}#getUrl(opts){return typeof opts=="string"?new URL(opts):opts instanceof URL?opts:new URL(opts.uri)}[kClose](){let promises=[this[kAgent].close()];return this[kClient]&&promises.push(this[kClient].close()),Promise.all(promises)}[kDestroy](){let promises=[this[kAgent].destroy()];return this[kClient]&&promises.push(this[kClient].destroy()),Promise.all(promises)}};function buildHeaders(headers){if(Array.isArray(headers)){let headersPair={};for(let i=0;i<headers.length;i+=2)isProxyAuthorizationHeader(headers[i])&&throwProxyAuthError(),headersPair[headers[i]]=headers[i+1];return headersPair}return headers}function throwIfProxyAuthIsSent(headers){for(let key in headers)isProxyAuthorizationHeader(key)&&throwProxyAuthError()}function isProxyAuthorizationHeader(key){return key.length===proxyAuthorization.length&&key.toLowerCase()===proxyAuthorization}function throwProxyAuthError(){throw new InvalidArgumentError("Proxy-Authorization should be sent in ProxyAgent constructor")}module.exports=ProxyAgent}});var require_env_http_proxy_agent=__commonJS({"node_modules/undici/lib/dispatcher/env-http-proxy-agent.js"(exports,module){"use strict";var DispatcherBase=require_dispatcher_base(),{kClose,kDestroy,kClosed,kDestroyed,kDispatch,kNoProxyAgent,kHttpProxyAgent,kHttpsProxyAgent}=require_symbols(),ProxyAgent=require_proxy_agent(),Agent=require_agent(),DEFAULT_PORTS={"http:":80,"https:":443},EnvHttpProxyAgent=class extends DispatcherBase{#noProxyValue=null;#noProxyEntries=null;#opts=null;constructor(opts={}){super(),this.#opts=opts;let{httpProxy,httpsProxy,noProxy,...agentOpts}=opts;this[kNoProxyAgent]=new Agent(agentOpts);let HTTP_PROXY=httpProxy??process.env.http_proxy??process.env.HTTP_PROXY;HTTP_PROXY?this[kHttpProxyAgent]=new ProxyAgent({...agentOpts,uri:HTTP_PROXY}):this[kHttpProxyAgent]=this[kNoProxyAgent];let HTTPS_PROXY=httpsProxy??process.env.https_proxy??process.env.HTTPS_PROXY;HTTPS_PROXY?this[kHttpsProxyAgent]=new ProxyAgent({...agentOpts,uri:HTTPS_PROXY}):this[kHttpsProxyAgent]=this[kHttpProxyAgent],this.#parseNoProxy()}[kDispatch](opts,handler){let url=new URL(opts.origin);return this.#getProxyAgentForUrl(url).dispatch(opts,handler)}[kClose](){return Promise.all([this[kNoProxyAgent].close(),!this[kHttpProxyAgent][kClosed]&&this[kHttpProxyAgent].close(),!this[kHttpsProxyAgent][kClosed]&&this[kHttpsProxyAgent].close()])}[kDestroy](err){return Promise.all([this[kNoProxyAgent].destroy(err),!this[kHttpProxyAgent][kDestroyed]&&this[kHttpProxyAgent].destroy(err),!this[kHttpsProxyAgent][kDestroyed]&&this[kHttpsProxyAgent].destroy(err)])}#getProxyAgentForUrl(url){let{protocol,host:hostname,port}=url;return hostname=hostname.replace(/:\d*$/,"").replace(/^\[(.+)\]$/,"$1").toLowerCase(),port=Number.parseInt(port,10)||DEFAULT_PORTS[protocol]||0,this.#shouldProxy(hostname,port)?protocol==="https:"?this[kHttpsProxyAgent]:this[kHttpProxyAgent]:this[kNoProxyAgent]}#shouldProxy(hostname,port){if(this.#noProxyChanged&&this.#parseNoProxy(),this.#noProxyEntries.length===0)return!0;if(this.#noProxyValue==="*")return!1;for(let i=0;i<this.#noProxyEntries.length;i++){let entry=this.#noProxyEntries[i];if(!(entry.port&&entry.port!==port)&&(hostname===entry.hostname||hostname.slice(-(entry.hostname.length+1))===`.${entry.hostname}`))return!1}return!0}#parseNoProxy(){let noProxyValue=this.#opts.noProxy??this.#noProxyEnv,noProxySplit=noProxyValue.split(/[,\s]/),noProxyEntries=[];for(let i=0;i<noProxySplit.length;i++){let entry=noProxySplit[i];if(!entry)continue;let hostname,port,ipv6WithPort=entry.match(/^\[(.+)\]:(\d+)$/);if(ipv6WithPort)hostname=ipv6WithPort[1],port=Number.parseInt(ipv6WithPort[2],10);else{let unbracketed=entry.replace(/^\[(.+)\]$/,"$1"),parsed=(unbracketed.match(/:/g)||[]).length===1&&unbracketed.match(/^(.+):(\d+)$/);hostname=parsed?parsed[1]:unbracketed,port=parsed?Number.parseInt(parsed[2],10):0}noProxyEntries.push({hostname:hostname.replace(/^\*?\./,"").toLowerCase(),port})}this.#noProxyValue=noProxyValue,this.#noProxyEntries=noProxyEntries}get#noProxyChanged(){return this.#opts.noProxy!==void 0?!1:this.#noProxyValue!==this.#noProxyEnv}get#noProxyEnv(){return process.env.no_proxy??process.env.NO_PROXY??""}};module.exports=EnvHttpProxyAgent}});var require_retry_handler=__commonJS({"node_modules/undici/lib/handler/retry-handler.js"(exports,module){"use strict";var assert=__require("node:assert"),{kRetryHandlerDefaultRetry}=require_symbols(),{RequestRetryError}=require_errors(),{isDisturbed,parseRangeHeader,wrapRequestBody}=require_util();function calculateRetryAfterHeader(retryAfter){let retryTime=new Date(retryAfter).getTime();return isNaN(retryTime)?null:retryTime-Date.now()}function validatePartialResponseContentLength(headers,range,statusCode,retryCount){let contentLength=headers["content-length"];if(contentLength==null||!Number.isFinite(range.start)||!Number.isFinite(range.end))return;let length=Number(contentLength),expectedLength=range.end-range.start+1;if(!Number.isFinite(length)||length!==expectedLength)throw new RequestRetryError("Content-Length mismatch",statusCode,{headers,data:{count:retryCount}})}var RetryController=class{constructor(){this.target=null}pause(){this.target?.pause()}resume(){this.target?.resume()}abort(reason){this.target?.abort(reason)}get paused(){return this.target?.paused??!1}get aborted(){return this.target?.aborted??!1}get reason(){return this.target?.reason??null}get rawHeaders(){return this.target?.rawHeaders??null}get rawTrailers(){return this.target?.rawTrailers??null}},RetryHandler=class _RetryHandler{constructor(opts,{dispatch,handler}){let{retryOptions,...dispatchOpts}=opts,{retry:retryFn,maxRetries,maxTimeout,minTimeout,timeoutFactor,methods,errorCodes,retryAfter,statusCodes,throwOnError}=retryOptions??{};this.error=null,this.dispatch=dispatch,this.handler=handler,this.opts={...dispatchOpts,body:wrapRequestBody(opts.body)},this.retryOpts={throwOnError:throwOnError??!0,retry:retryFn??_RetryHandler[kRetryHandlerDefaultRetry],retryAfter:retryAfter??!0,maxTimeout:maxTimeout??30*1e3,minTimeout:minTimeout??500,timeoutFactor:timeoutFactor??2,maxRetries:maxRetries??5,methods:methods??["GET","HEAD","OPTIONS","PUT","DELETE","TRACE","QUERY"],statusCodes:statusCodes??[500,502,503,504,429],errorCodes:errorCodes??["ECONNRESET","ECONNREFUSED","ENOTFOUND","ENETDOWN","ENETUNREACH","EHOSTDOWN","EHOSTUNREACH","EPIPE","UND_ERR_SOCKET"]},this.retryCount=0,this.retryCountCheckpoint=0,this.headersSent=!1,this.start=0,this.end=null,this.etag=null,this.statusCode=null,this.headers=null,this.controllerProxy=new RetryController}onResponseStartWithRetry(controller,statusCode,headers,statusMessage,err){if(this.retryOpts.throwOnError){this.retryOpts.statusCodes.includes(statusCode)===!1?(this.headersSent=!0,this.handler.onResponseStart?.(this.controllerProxy,statusCode,headers,statusMessage)):this.error=err;return}if(isDisturbed(this.opts.body)){this.headersSent=!0,this.handler.onResponseStart?.(this.controllerProxy,statusCode,headers,statusMessage);return}function shouldRetry(passedErr){if(passedErr){this.headersSent=!0,this.handler.onResponseStart?.(this.controllerProxy,statusCode,headers,statusMessage),controller.resume();return}this.error=err,controller.resume()}controller.pause(),this.retryOpts.retry(err,{state:{counter:this.retryCount},opts:{retryOptions:this.retryOpts,...this.opts}},shouldRetry.bind(this))}onRequestStart(controller,context){this.controllerProxy.target=controller,this.headersSent||this.handler.onRequestStart?.(this.controllerProxy,context)}onRequestUpgrade(_controller,statusCode,headers,socket){this.handler.onRequestUpgrade?.(this.controllerProxy,statusCode,headers,socket)}static[kRetryHandlerDefaultRetry](err,{state,opts},cb){let{statusCode,code,headers}=err,{method,retryOptions}=opts,{maxRetries,minTimeout,maxTimeout,timeoutFactor,statusCodes,errorCodes,methods}=retryOptions,{counter}=state;if(code&&code!=="UND_ERR_REQ_RETRY"&&!errorCodes.includes(code)){cb(err);return}if(Array.isArray(methods)&&!methods.includes(method)){cb(err);return}if(statusCode!=null&&Array.isArray(statusCodes)&&!statusCodes.includes(statusCode)){cb(err);return}if(counter>maxRetries){cb(err);return}let retryAfterHeader=headers?.["retry-after"];retryAfterHeader&&(retryAfterHeader=Number(retryAfterHeader),retryAfterHeader=Number.isNaN(retryAfterHeader)?calculateRetryAfterHeader(headers["retry-after"]):retryAfterHeader*1e3);let retryTimeout=retryAfterHeader===0?0:retryAfterHeader>0?Math.min(retryAfterHeader,maxTimeout):Math.min(minTimeout*timeoutFactor**(counter-1),maxTimeout);setTimeout(()=>cb(null),retryTimeout)}onResponseStart(controller,statusCode,headers,statusMessage){if(statusCode<200){this.handler.onResponseStart?.(this.controllerProxy,statusCode,headers,statusMessage);return}if(this.error=null,this.retryCount+=1,this.statusCode=statusCode,this.headers=headers,statusCode>=300){let err=new RequestRetryError("Request failed",statusCode,{headers,data:{count:this.retryCount}});this.onResponseStartWithRetry(controller,statusCode,headers,statusMessage,err);return}if(this.headersSent){if(statusCode!==206&&(this.start>0||statusCode!==200))throw new RequestRetryError("server does not support the range header and the payload was partially consumed",statusCode,{headers,data:{count:this.retryCount}});let contentRange=parseRangeHeader(headers["content-range"]);if(!contentRange)throw new RequestRetryError("Content-Range mismatch",statusCode,{headers,data:{count:this.retryCount}});if(this.etag!=null&&this.etag!==headers.etag)throw new RequestRetryError("ETag mismatch",statusCode,{headers,data:{count:this.retryCount}});validatePartialResponseContentLength(headers,contentRange,statusCode,this.retryCount);let{start,size,end=size?size-1:null}=contentRange;assert(this.start===start,"content-range mismatch"),assert(this.end==null||this.end===end,"content-range mismatch");return}if(this.end==null){if(statusCode===206){let range=parseRangeHeader(headers["content-range"]);if(range==null||range.end==null){this.headersSent=!0,this.handler.onResponseStart?.(this.controllerProxy,statusCode,headers,statusMessage);return}validatePartialResponseContentLength(headers,range,statusCode,this.retryCount);let{start,size,end=size?size-1:null}=range;assert(start!=null&&Number.isFinite(start),"content-range mismatch"),assert(end!=null&&Number.isFinite(end),"invalid content-length"),this.start=start,this.end=end}if(this.end==null&&this.opts.method!=="HEAD"){let contentLength=headers["content-length"];this.end=contentLength!=null?Number(contentLength)-1:null}assert(Number.isFinite(this.start)),assert(this.end==null||Number.isFinite(this.end),"invalid content-length"),this.resume=!0,this.etag=headers.etag!=null?headers.etag:null,this.etag!=null&&this.etag[0]==="W"&&this.etag[1]==="/"&&(this.etag=null),this.headersSent=!0,this.handler.onResponseStart?.(this.controllerProxy,statusCode,headers,statusMessage)}else throw new RequestRetryError("Request failed",statusCode,{headers,data:{count:this.retryCount}})}onResponseData(_controller,chunk){this.error||(this.start+=chunk.length,this.handler.onResponseData?.(this.controllerProxy,chunk))}onResponseEnd(_controller,trailers){if(this.error&&this.retryOpts.throwOnError)throw this.error;if(!this.error){if(this.end!=null&&Number.isFinite(this.end)&&this.start!==this.end+1)throw new RequestRetryError("Content-Range mismatch",this.statusCode,{headers:this.headers,data:{count:this.retryCount}});return this.retryCount=0,this.handler.onResponseEnd?.(this.controllerProxy,trailers)}this.retry()}retry(){if(this.start!==0){let headers={range:`bytes=${this.start}-${this.end??""}`};this.etag!=null&&(headers["if-match"]=this.etag),this.opts={...this.opts,headers:{...this.opts.headers,...headers}}}try{this.retryCountCheckpoint=this.retryCount,this.dispatch(this.opts,this)}catch(err){this.handler.onResponseError?.(this.controllerProxy,err)}}onResponseError(controller,err){if(controller?.aborted||isDisturbed(this.opts.body)){this.handler.onResponseError?.(this.controllerProxy,err);return}function shouldRetry(returnedErr){if(!returnedErr){this.retry();return}this.handler?.onResponseError?.(this.controllerProxy,returnedErr)}this.retryCount-this.retryCountCheckpoint>0?this.retryCount=this.retryCountCheckpoint+(this.retryCount-this.retryCountCheckpoint):this.retryCount+=1,this.retryOpts.retry(err,{state:{counter:this.retryCount},opts:{retryOptions:this.retryOpts,...this.opts}},shouldRetry.bind(this))}};module.exports=RetryHandler}});var require_retry_agent=__commonJS({"node_modules/undici/lib/dispatcher/retry-agent.js"(exports,module){"use strict";var Dispatcher=require_dispatcher(),RetryHandler=require_retry_handler(),RetryAgent=class extends Dispatcher{#agent=null;#options=null;constructor(agent,options={}){super(options),this.#agent=agent,this.#options=options}dispatch(opts,handler){let retry=new RetryHandler({...opts,retryOptions:this.#options},{dispatch:this.#agent.dispatch.bind(this.#agent),handler});return this.#agent.dispatch(opts,retry)}close(){return this.#agent.close()}destroy(){return this.#agent.destroy()}};module.exports=RetryAgent}});var require_h2c_client=__commonJS({"node_modules/undici/lib/dispatcher/h2c-client.js"(exports,module){"use strict";var{InvalidArgumentError}=require_errors(),Client=require_client(),H2CClient=class extends Client{constructor(origin,clientOpts){if(typeof origin=="string"&&(origin=new URL(origin)),origin.protocol!=="http:")throw new InvalidArgumentError("h2c-client: Only h2c protocol is supported");let{maxConcurrentStreams,pipelining,...opts}=clientOpts??{},defaultMaxConcurrentStreams=maxConcurrentStreams??100,defaultPipelining=100;if(maxConcurrentStreams!=null&&(!Number.isInteger(maxConcurrentStreams)||maxConcurrentStreams<1))throw new InvalidArgumentError("maxConcurrentStreams must be a positive integer, greater than 0");if(pipelining!=null&&Number.isInteger(pipelining)&&pipelining>0&&(defaultPipelining=pipelining),defaultPipelining>defaultMaxConcurrentStreams)throw new InvalidArgumentError("h2c-client: pipelining cannot be greater than maxConcurrentStreams");super(origin,{...opts,maxConcurrentStreams:defaultMaxConcurrentStreams,pipelining:defaultPipelining,allowH2:!0,useH2c:!0})}};module.exports=H2CClient}});var require_readable=__commonJS({"node_modules/undici/lib/api/readable.js"(exports,module){"use strict";var assert=__require("node:assert"),{addAbortListener}=__require("node:events"),{Readable}=__require("node:stream"),{RequestAbortedError,NotSupportedError,InvalidArgumentError,AbortError}=require_errors(),util=require_util(),{ReadableStreamFrom}=require_util(),kConsume=Symbol("kConsume"),kReading=Symbol("kReading"),kBody=Symbol("kBody"),kAbort=Symbol("kAbort"),kContentType=Symbol("kContentType"),kContentLength=Symbol("kContentLength"),kUsed=Symbol("kUsed"),kBytesRead=Symbol("kBytesRead"),noop=()=>{},BodyReadable=class extends Readable{constructor({resume,abort,contentType="",contentLength,highWaterMark=64*1024}){super({autoDestroy:!0,read:resume,highWaterMark}),this._readableState.dataEmitted=!1,this[kAbort]=abort,this[kConsume]=null,this[kBytesRead]=0,this[kBody]=null,this[kUsed]=!1,this[kContentType]=contentType,this[kContentLength]=Number.isFinite(contentLength)?contentLength:null,this[kReading]=!1}_destroy(err,callback){!err&&!this._readableState.endEmitted&&(err=new RequestAbortedError),err&&this[kAbort](),this[kUsed]?callback(err):setImmediate(callback,err)}on(event,listener){return(event==="data"||event==="readable")&&(this[kReading]=!0,this[kUsed]=!0),super.on(event,listener)}addListener(event,listener){return this.on(event,listener)}off(event,listener){let ret=super.off(event,listener);return(event==="data"||event==="readable")&&(this[kReading]=this.listenerCount("data")>0||this.listenerCount("readable")>0),ret}removeListener(event,listener){return this.off(event,listener)}push(chunk){return chunk&&(this[kBytesRead]+=chunk.length,this[kConsume])?(consumePush(this[kConsume],chunk),this[kReading]?super.push(chunk):!0):super.push(chunk)}text(){return consume(this,"text")}json(){return consume(this,"json")}blob(){return consume(this,"blob")}bytes(){return consume(this,"bytes")}arrayBuffer(){return consume(this,"arrayBuffer")}async formData(){throw new NotSupportedError}get bodyUsed(){return util.isDisturbed(this)}get body(){return this[kBody]||(this[kBody]=ReadableStreamFrom(this),this[kConsume]&&(this[kBody].getReader(),assert(this[kBody].locked))),this[kBody]}dump(opts){let signal=opts?.signal;if(signal!=null&&(typeof signal!="object"||!("aborted"in signal)))return Promise.reject(new InvalidArgumentError("signal must be an AbortSignal"));let limit=opts?.limit&&Number.isFinite(opts.limit)?opts.limit:128*1024;return signal?.aborted?Promise.reject(signal.reason??new AbortError):this._readableState.closeEmitted?Promise.resolve(null):new Promise((resolve,reject)=>{if((this[kContentLength]&&this[kContentLength]>limit||this[kBytesRead]>limit)&&this.destroy(new AbortError),signal){let abortListener=addAbortListener(signal,()=>{this.destroy(signal.reason??new AbortError)});this.on("close",function(){abortListener[Symbol.dispose](),signal.aborted?reject(signal.reason??new AbortError):resolve(null)})}else this.on("close",resolve);this.on("error",noop).on("data",()=>{this[kBytesRead]>limit&&this.destroy()}).resume()})}setEncoding(encoding){return Buffer.isEncoding(encoding)&&super.setEncoding(encoding),this}};function isLocked(bodyReadable){return bodyReadable[kBody]?.locked===!0||bodyReadable[kConsume]!==null}function isUnusable(bodyReadable){return util.isDisturbed(bodyReadable)||isLocked(bodyReadable)}function consume(stream,type){return assert(!stream[kConsume]),new Promise((resolve,reject)=>{if(isUnusable(stream)){let rState=stream._readableState;rState.destroyed&&rState.closeEmitted===!1?stream.on("error",reject).on("close",()=>{reject(new TypeError("unusable"))}):reject(rState.errored??new TypeError("unusable"))}else queueMicrotask(()=>{stream[kConsume]={type,stream,resolve,reject,length:0,body:[]},stream.on("error",function(err){consumeFinish(this[kConsume],err)}).on("close",function(){this[kConsume].body!==null&&consumeFinish(this[kConsume],new RequestAbortedError)}),consumeStart(stream[kConsume])})})}function consumeStart(consume2){if(consume2.body===null)return;let{_readableState:state}=consume2.stream;if(state.bufferIndex){let start=state.bufferIndex,end=state.buffer.length;for(let n=start;n<end;n++)consumePush(consume2,state.buffer[n])}else for(let chunk of state.buffer)consumePush(consume2,chunk);let decoder=state.decoder;if(decoder!=null&&decoder.lastNeed>0&&consumePush(consume2,Buffer.from(decoder.lastChar.subarray(0,decoder.lastTotal-decoder.lastNeed))),state.endEmitted){consumeEnd(consume2,state.encoding);return}for(consume2.stream.on("end",function(){consumeEnd(this[kConsume],this._readableState.encoding)}),consume2.stream.resume();consume2.stream.read()!=null;);}function chunksDecode(chunks,length,encoding){if(chunks.length===0||length===0)return"";let buffer=chunks.length===1?chunks[0]:Buffer.concat(chunks,length),bufferLength=buffer.length,start=bufferLength>2&&buffer[0]===239&&buffer[1]===187&&buffer[2]===191?3:0;return!encoding||encoding==="utf8"||encoding==="utf-8"?buffer.utf8Slice(start,bufferLength):buffer.subarray(start,bufferLength).toString(encoding)}function chunksConcat(chunks,length){if(chunks.length===0||length===0)return new Uint8Array(0);if(chunks.length===1)return new Uint8Array(chunks[0]);let buffer=new Uint8Array(Buffer.allocUnsafeSlow(length).buffer),offset=0;for(let i=0;i<chunks.length;++i){let chunk=chunks[i];buffer.set(chunk,offset),offset+=chunk.length}return buffer}function consumeEnd(consume2,encoding){let{type,body,resolve,stream,length}=consume2;try{type==="text"?resolve(chunksDecode(body,length,encoding)):type==="json"?resolve(JSON.parse(chunksDecode(body,length,encoding))):type==="arrayBuffer"?resolve(chunksConcat(body,length).buffer):type==="blob"?resolve(new Blob(body,{type:stream[kContentType]})):type==="bytes"&&resolve(chunksConcat(body,length)),consumeFinish(consume2)}catch(err){stream.destroy(err)}}function consumePush(consume2,chunk){consume2.body!==null&&(typeof chunk=="string"&&(chunk=Buffer.from(chunk,consume2.stream._readableState.encoding)),consume2.length+=chunk.length,consume2.body.push(chunk))}function consumeFinish(consume2,err){consume2.body!==null&&(err?consume2.reject(err):consume2.resolve(),consume2.type=null,consume2.stream=null,consume2.resolve=null,consume2.reject=null,consume2.length=0,consume2.body=null)}module.exports={Readable:BodyReadable,chunksDecode}}});var require_api_request=__commonJS({"node_modules/undici/lib/api/api-request.js"(exports,module){"use strict";var assert=__require("node:assert"),{AsyncResource}=__require("node:async_hooks"),{Readable}=require_readable(),{InvalidArgumentError,RequestAbortedError}=require_errors(),util=require_util();function noop(){}var RequestHandler=class extends AsyncResource{constructor(opts,callback){if(!opts||typeof opts!="object")throw new InvalidArgumentError("invalid opts");let{signal,method,opaque,body,onInfo,responseHeaders,highWaterMark}=opts;try{if(typeof callback!="function")throw new InvalidArgumentError("invalid callback");if(highWaterMark!=null&&(!Number.isFinite(highWaterMark)||highWaterMark<0))throw new InvalidArgumentError("invalid highWaterMark");if(signal&&typeof signal.on!="function"&&typeof signal.addEventListener!="function")throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget");if(method==="CONNECT")throw new InvalidArgumentError("invalid method");if(onInfo&&typeof onInfo!="function")throw new InvalidArgumentError("invalid onInfo callback");super("UNDICI_REQUEST")}catch(err){throw util.isStream(body)&&util.destroy(body.on("error",noop),err),err}this.method=method,this.responseHeaders=responseHeaders||null,this.opaque=opaque||null,this.callback=callback,this.res=null,this.abort=null,this.body=body,this.trailers={},this.context=null,this.controller=null,this.onInfo=onInfo||null,this.highWaterMark=highWaterMark,this.reason=null,this.removeAbortListener=null,signal?.aborted?this.reason=signal.reason??new RequestAbortedError:signal&&(this.removeAbortListener=util.addAbortListener(signal,()=>{if(this.reason=signal.reason??new RequestAbortedError,this.res){let res=this.res;this.res=null,util.destroy(res.on("error",noop),this.reason)}else this.abort&&this.abort(this.reason)}))}onRequestStart(controller,context){if(this.reason){controller.abort(this.reason);return}assert(this.callback),this.controller=controller,this.abort=reason=>controller.abort(reason),this.context=context}onResponseStart(controller,statusCode,headers,statusText){let{callback,opaque,context,responseHeaders,highWaterMark}=this,rawHeaders=controller?.rawHeaders,responseHeaderData=responseHeaders==="raw"?util.parseRawHeaders(rawHeaders):headers;if(statusCode<200){this.onInfo&&this.onInfo({statusCode,headers:responseHeaderData});return}let parsedHeaders=headers,contentType=parsedHeaders?.["content-type"],contentLength=parsedHeaders?.["content-length"],res=new Readable({resume:()=>controller.resume(),abort:reason=>controller.abort(reason),contentType,contentLength:this.method!=="HEAD"&&contentLength?Number(contentLength):null,highWaterMark});if(this.removeAbortListener&&(res.on("close",this.removeAbortListener),this.removeAbortListener=null),this.callback=null,this.res=res,callback!==null)try{this.runInAsyncScope(callback,null,null,{statusCode,statusText,headers:responseHeaderData,trailers:this.trailers,opaque,body:res,context})}catch(err){this.res=null,util.destroy(res.on("error",noop),err),queueMicrotask(()=>{throw err})}}onResponseData(controller,chunk){this.res&&this.res.push(chunk)===!1&&controller.pause()}onResponseEnd(_controller,trailers){if(trailers&&typeof trailers=="object")for(let key of Object.keys(trailers))key==="__proto__"?Object.defineProperty(this.trailers,key,{value:trailers[key],enumerable:!0,configurable:!0,writable:!0}):this.trailers[key]=trailers[key];this.res?.push(null)}onResponseError(_controller,err){let{res,callback,body,opaque}=this;callback&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(callback,null,err,{opaque})})),res&&(this.res=null,queueMicrotask(()=>{util.destroy(res.on("error",noop),err)})),body&&(this.body=null,util.isStream(body)&&(body.on("error",noop),util.destroy(body,err))),this.removeAbortListener&&(this.removeAbortListener(),this.removeAbortListener=null)}};function request(opts,callback){if(callback===void 0)return new Promise((resolve,reject)=>{request.call(this,opts,(err,data)=>err?reject(err):resolve(data))});try{let handler=new RequestHandler(opts,callback);this.dispatch(opts,handler)}catch(err){if(typeof callback!="function")throw err;let opaque=opts?.opaque;queueMicrotask(()=>callback(err,{opaque}))}}module.exports=request;module.exports.RequestHandler=RequestHandler}});var require_abort_signal=__commonJS({"node_modules/undici/lib/api/abort-signal.js"(exports,module){"use strict";var{addAbortListener}=require_util(),{RequestAbortedError}=require_errors(),kListener=Symbol("kListener"),kSignal=Symbol("kSignal");function abort(self){self.abort?self.abort(self[kSignal]?.reason):self.reason=self[kSignal]?.reason??new RequestAbortedError,removeSignal(self)}function addSignal(self,signal){if(self.reason=null,self[kSignal]=null,self[kListener]=null,!!signal){if(signal.aborted){abort(self);return}self[kSignal]=signal,self[kListener]=()=>{abort(self)},addAbortListener(self[kSignal],self[kListener])}}function removeSignal(self){self[kSignal]&&("removeEventListener"in self[kSignal]?self[kSignal].removeEventListener("abort",self[kListener]):self[kSignal].removeListener("abort",self[kListener]),self[kSignal]=null,self[kListener]=null)}module.exports={addSignal,removeSignal}}});var require_api_stream=__commonJS({"node_modules/undici/lib/api/api-stream.js"(exports,module){"use strict";var assert=__require("node:assert"),{AsyncResource}=__require("node:async_hooks"),{InvalidArgumentError,InvalidReturnValueError}=require_errors(),util=require_util(),{addSignal,removeSignal}=require_abort_signal();function noop(){}function getWritableError(stream2){return stream2.errored??stream2.writableErrored??stream2._writableState?.errored}function createPrematureCloseError(){let err=new Error("Premature close");return err.code="ERR_STREAM_PREMATURE_CLOSE",err}function trackWritableLifecycle(stream2,callback){let done=!1,cleanup=()=>{stream2.removeListener("close",onClose),stream2.removeListener("error",onError),stream2.removeListener("finish",onFinish)},finish=(err,fromErrorEvent=!1)=>{done||(done=!0,cleanup(),callback(err,fromErrorEvent))},onClose=()=>{let err=getWritableError(stream2);finish(err??(stream2.writableFinished?void 0:createPrematureCloseError()))},onError=err=>finish(err,!0),onFinish=()=>finish();stream2.on("close",onClose),stream2.on("error",onError),stream2.on("finish",onFinish),stream2.closed?process.nextTick(onClose):stream2.writableFinished&&process.nextTick(onFinish)}var StreamHandler=class extends AsyncResource{constructor(opts,factory,callback){if(!opts||typeof opts!="object")throw new InvalidArgumentError("invalid opts");let{signal,method,opaque,body,onInfo,responseHeaders}=opts;try{if(typeof callback!="function")throw new InvalidArgumentError("invalid callback");if(typeof factory!="function")throw new InvalidArgumentError("invalid factory");if(signal&&typeof signal.on!="function"&&typeof signal.addEventListener!="function")throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget");if(method==="CONNECT")throw new InvalidArgumentError("invalid method");if(onInfo&&typeof onInfo!="function")throw new InvalidArgumentError("invalid onInfo callback");super("UNDICI_STREAM")}catch(err){throw util.isStream(body)&&util.destroy(body.on("error",noop),err),err}this.responseHeaders=responseHeaders||null,this.opaque=opaque||null,this.factory=factory,this.callback=callback,this.res=null,this.abort=null,this.context=null,this.controller=null,this.trailers=null,this.body=body,this.onInfo=onInfo||null,util.isStream(body)&&body.on("error",err=>{this.onResponseError(this.controller,err)}),addSignal(this,signal)}onRequestStart(controller,context){if(this.reason){controller.abort(this.reason);return}assert(this.callback),this.controller=controller,this.abort=reason=>controller.abort(reason),this.context=context}onResponseStart(controller,statusCode,headers,_statusMessage){let{factory,opaque,context,responseHeaders}=this,rawHeaders=controller?.rawHeaders,responseHeaderData=responseHeaders==="raw"?util.parseRawHeaders(rawHeaders):headers;if(statusCode<200){this.onInfo&&this.onInfo({statusCode,headers:responseHeaderData});return}if(this.factory=null,factory===null)return;let res=this.runInAsyncScope(factory,null,{statusCode,headers:responseHeaderData,opaque,context});if(!res||typeof res.write!="function"||typeof res.end!="function"||typeof res.on!="function")throw new InvalidReturnValueError("expected Writable");trackWritableLifecycle(res,(err,fromErrorEvent)=>{let{callback,res:res2,opaque:opaque2,trailers,abort}=this;this.res=null,(err||!res2?.readable)&&util.destroy(res2,fromErrorEvent?void 0:err),this.callback=null,this.runInAsyncScope(callback,null,err||null,{opaque:opaque2,trailers}),err&&abort(err)}),res.on("drain",()=>controller.resume()),this.res=res,(res.writableNeedDrain!==void 0?res.writableNeedDrain:res._writableState?.needDrain)===!0&&controller.pause()}onResponseData(controller,chunk){let{res}=this;res&&res.write(chunk)===!1&&controller.pause()}onResponseEnd(_controller,trailers){let{res}=this;removeSignal(this),res&&(trailers&&typeof trailers=="object"&&(this.trailers=trailers),res.end())}onResponseError(_controller,err){let{res,callback,opaque,body}=this;removeSignal(this),this.factory=null,res?(this.res=null,util.destroy(res,err)):callback&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(callback,null,err,{opaque})})),body&&(this.body=null,util.destroy(body,err))}};function stream(opts,factory,callback){if(callback===void 0)return new Promise((resolve,reject)=>{stream.call(this,opts,factory,(err,data)=>err?reject(err):resolve(data))});try{let handler=new StreamHandler(opts,factory,callback);this.dispatch(opts,handler)}catch(err){if(typeof callback!="function")throw err;let opaque=opts?.opaque;queueMicrotask(()=>callback(err,{opaque}))}}module.exports=stream}});var require_api_pipeline=__commonJS({"node_modules/undici/lib/api/api-pipeline.js"(exports,module){"use strict";var{Readable,Duplex,PassThrough}=__require("node:stream"),assert=__require("node:assert"),{AsyncResource}=__require("node:async_hooks"),{InvalidArgumentError,InvalidReturnValueError,RequestAbortedError}=require_errors(),util=require_util(),{kBodyUsed}=require_symbols(),{addSignal,removeSignal}=require_abort_signal();function noop(){}var kResume=Symbol("resume"),PipelineRequest=class extends Readable{constructor(){super({autoDestroy:!0}),this[kResume]=null,this[kBodyUsed]=!0}_read(){let{[kResume]:resume}=this;resume&&(this[kResume]=null,resume())}_destroy(err,callback){this._read(),callback(err)}},PipelineResponse=class extends Readable{constructor(resume){super({autoDestroy:!0}),this[kResume]=resume}_read(){this[kResume]()}_destroy(err,callback){!err&&!this._readableState.endEmitted&&(err=new RequestAbortedError),callback(err)}},PipelineHandler=class extends AsyncResource{constructor(opts,handler){if(!opts||typeof opts!="object")throw new InvalidArgumentError("invalid opts");if(typeof handler!="function")throw new InvalidArgumentError("invalid handler");let{signal,method,opaque,onInfo,responseHeaders}=opts;if(signal&&typeof signal.on!="function"&&typeof signal.addEventListener!="function")throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget");if(method==="CONNECT")throw new InvalidArgumentError("invalid method");if(onInfo&&typeof onInfo!="function")throw new InvalidArgumentError("invalid onInfo callback");super("UNDICI_PIPELINE"),this.opaque=opaque||null,this.responseHeaders=responseHeaders||null,this.handler=handler,this.abort=null,this.context=null,this.onInfo=onInfo||null,this.req=new PipelineRequest().on("error",noop),this.ret=new Duplex({readableObjectMode:opts.objectMode,autoDestroy:!0,read:()=>{let{body}=this;body?.resume&&body.resume()},write:(chunk,encoding,callback)=>{let{req}=this;req.push(chunk,encoding)||req._readableState.destroyed?callback():req[kResume]=callback},destroy:(err,callback)=>{let{body,req,res,ret,abort}=this;!err&&!ret._readableState.endEmitted&&(err=new RequestAbortedError),abort&&err&&abort(),util.destroy(body,err),util.destroy(req,err),util.destroy(res,err),removeSignal(this),callback(err)}}).on("prefinish",()=>{let{req}=this;req.push(null)}),this.res=null,addSignal(this,signal)}onRequestStart(controller,context){let{res}=this;if(this.reason){controller.abort(this.reason);return}assert(!res,"pipeline cannot be retried"),this.abort=reason=>controller.abort(reason),this.context=context}onResponseStart(controller,statusCode,headers,_statusMessage){let{opaque,handler,context}=this;if(statusCode<200){if(this.onInfo){let rawHeaders=controller?.rawHeaders,responseHeaders=this.responseHeaders==="raw"?util.parseRawHeaders(rawHeaders):headers;this.onInfo({statusCode,headers:responseHeaders})}return}this.res=new PipelineResponse(()=>controller.resume());let body;try{this.handler=null;let rawHeaders=controller?.rawHeaders,responseHeaders=this.responseHeaders==="raw"?util.parseRawHeaders(rawHeaders):headers;body=this.runInAsyncScope(handler,null,{statusCode,headers:responseHeaders,opaque,body:this.res,context})}catch(err){throw this.res.on("error",noop),err}if(!body||typeof body.on!="function")throw new InvalidReturnValueError("expected Readable");body.on("data",chunk=>{let{ret,body:body2}=this;!ret.push(chunk)&&body2.pause&&body2.pause()}).on("error",err=>{let{ret}=this;util.destroy(ret,err)}).on("end",()=>{let{ret}=this;ret.push(null)}).on("close",()=>{let{ret}=this;ret._readableState.ended||util.destroy(ret,new RequestAbortedError)}),this.body=body}onResponseData(controller,chunk){let{res}=this;res.push(chunk)===!1&&controller.pause()}onResponseEnd(_controller,_trailers){let{res}=this;res.push(null)}onResponseError(_controller,err){let{ret}=this;this.handler=null,util.destroy(ret,err)}};function pipeline(opts,handler){try{let pipelineHandler=new PipelineHandler(opts,handler);return this.dispatch({...opts,body:pipelineHandler.req},pipelineHandler),pipelineHandler.ret}catch(err){return new PassThrough().destroy(err)}}module.exports=pipeline}});var require_api_upgrade=__commonJS({"node_modules/undici/lib/api/api-upgrade.js"(exports,module){"use strict";var{InvalidArgumentError,SocketError}=require_errors(),{AsyncResource}=__require("node:async_hooks"),assert=__require("node:assert"),util=require_util(),{kHTTP2Stream}=require_symbols(),{addSignal,removeSignal}=require_abort_signal(),UpgradeHandler=class extends AsyncResource{constructor(opts,callback){if(!opts||typeof opts!="object")throw new InvalidArgumentError("invalid opts");if(typeof callback!="function")throw new InvalidArgumentError("invalid callback");let{signal,opaque,responseHeaders}=opts;if(signal&&typeof signal.on!="function"&&typeof signal.addEventListener!="function")throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget");super("UNDICI_UPGRADE"),this.responseHeaders=responseHeaders||null,this.opaque=opaque||null,this.callback=callback,this.abort=null,this.context=null,addSignal(this,signal)}onRequestStart(controller,context){if(this.reason){controller.abort(this.reason);return}assert(this.callback),this.abort=reason=>controller.abort(reason),this.context=context}onResponseStart(){throw new SocketError("bad upgrade",null)}onRequestUpgrade(controller,statusCode,headers,socket){let expectedStatusCode=socket[kHTTP2Stream]===!0?200:101;if(statusCode!==expectedStatusCode){let socketInfo=socket[kHTTP2Stream]===!0?null:util.getSocketInfo(socket);controller.abort(new SocketError("bad upgrade",socketInfo));return}let{callback,opaque,context}=this;removeSignal(this),this.callback=null;let rawHeaders=controller?.rawHeaders,responseHeaders=this.responseHeaders==="raw"?util.parseRawHeaders(rawHeaders):headers;this.runInAsyncScope(callback,null,null,{headers:responseHeaders,socket,opaque,context})}onResponseError(_controller,err){let{callback,opaque}=this;removeSignal(this),callback&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(callback,null,err,{opaque})}))}};function upgrade(opts,callback){if(callback===void 0)return new Promise((resolve,reject)=>{upgrade.call(this,opts,(err,data)=>err?reject(err):resolve(data))});try{let upgradeHandler=new UpgradeHandler(opts,callback),upgradeOpts={...opts,method:opts.method||"GET",upgrade:opts.protocol||"Websocket"};this.dispatch(upgradeOpts,upgradeHandler)}catch(err){if(typeof callback!="function")throw err;let opaque=opts?.opaque;queueMicrotask(()=>callback(err,{opaque}))}}module.exports=upgrade}});var require_api_connect=__commonJS({"node_modules/undici/lib/api/api-connect.js"(exports,module){"use strict";var assert=__require("node:assert"),{AsyncResource}=__require("node:async_hooks"),{InvalidArgumentError,SocketError}=require_errors(),util=require_util(),{addSignal,removeSignal}=require_abort_signal(),ConnectHandler=class extends AsyncResource{constructor(opts,callback){if(!opts||typeof opts!="object")throw new InvalidArgumentError("invalid opts");if(typeof callback!="function")throw new InvalidArgumentError("invalid callback");let{signal,opaque,responseHeaders}=opts;if(signal&&typeof signal.on!="function"&&typeof signal.addEventListener!="function")throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget");super("UNDICI_CONNECT"),this.opaque=opaque||null,this.responseHeaders=responseHeaders||null,this.callback=callback,this.abort=null,addSignal(this,signal)}onRequestStart(controller,context){if(this.reason){controller.abort(this.reason);return}assert(this.callback),this.abort=reason=>controller.abort(reason),this.context=context}onResponseStart(){throw new SocketError("bad connect",null)}onRequestUpgrade(controller,statusCode,headers,socket){let{callback,opaque,context}=this;removeSignal(this),this.callback=null;let responseHeaders=headers,rawHeaders=controller?.rawHeaders;responseHeaders!=null&&(responseHeaders=this.responseHeaders==="raw"?util.parseRawHeaders(rawHeaders):headers),this.runInAsyncScope(callback,null,null,{statusCode,headers:responseHeaders,socket,opaque,context})}onResponseError(_controller,err){let{callback,opaque}=this;removeSignal(this),callback&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(callback,null,err,{opaque})}))}};function connect(opts,callback){if(callback===void 0)return new Promise((resolve,reject)=>{connect.call(this,opts,(err,data)=>err?reject(err):resolve(data))});try{let connectHandler=new ConnectHandler(opts,callback),connectOptions={...opts,method:"CONNECT"};this.dispatch(connectOptions,connectHandler)}catch(err){if(typeof callback!="function")throw err;let opaque=opts?.opaque;queueMicrotask(()=>callback(err,{opaque}))}}module.exports=connect}});var require_api=__commonJS({"node_modules/undici/lib/api/index.js"(exports,module){"use strict";module.exports.request=require_api_request();module.exports.stream=require_api_stream();module.exports.pipeline=require_api_pipeline();module.exports.upgrade=require_api_upgrade();module.exports.connect=require_api_connect()}});var require_mock_errors=__commonJS({"node_modules/undici/lib/mock/mock-errors.js"(exports,module){"use strict";var{UndiciError}=require_errors(),kMockNotMatchedError=Symbol.for("undici.error.UND_MOCK_ERR_MOCK_NOT_MATCHED"),MockNotMatchedError=class extends UndiciError{constructor(message){super(message),this.name="MockNotMatchedError",this.message=message||"The request does not match any registered mock dispatches",this.code="UND_MOCK_ERR_MOCK_NOT_MATCHED"}static[Symbol.hasInstance](instance){return instance&&instance[kMockNotMatchedError]===!0}get[kMockNotMatchedError](){return!0}};module.exports={MockNotMatchedError}}});var require_mock_symbols=__commonJS({"node_modules/undici/lib/mock/mock-symbols.js"(exports,module){"use strict";module.exports={kAgent:Symbol("agent"),kOptions:Symbol("options"),kFactory:Symbol("factory"),kDispatches:Symbol("dispatches"),kDispatchKey:Symbol("dispatch key"),kDefaultHeaders:Symbol("default headers"),kDefaultTrailers:Symbol("default trailers"),kContentLength:Symbol("content length"),kMockAgent:Symbol("mock agent"),kMockAgentSet:Symbol("mock agent set"),kMockAgentGet:Symbol("mock agent get"),kMockDispatch:Symbol("mock dispatch"),kClose:Symbol("close"),kOriginalClose:Symbol("original agent close"),kOriginalDispatch:Symbol("original dispatch"),kOrigin:Symbol("origin"),kIsMockActive:Symbol("is mock active"),kNetConnect:Symbol("net connect"),kGetNetConnect:Symbol("get net connect"),kConnected:Symbol("connected"),kIgnoreTrailingSlash:Symbol("ignore trailing slash"),kMockAgentMockCallHistoryInstance:Symbol("mock agent mock call history name"),kMockAgentRegisterCallHistory:Symbol("mock agent register mock call history"),kMockAgentAddCallHistoryLog:Symbol("mock agent add call history log"),kMockAgentIsCallHistoryEnabled:Symbol("mock agent is call history enabled"),kMockAgentAcceptsNonStandardSearchParameters:Symbol("mock agent accepts non standard search parameters"),kMockCallHistoryAddLog:Symbol("mock call history add log"),kTotalDispatchCount:Symbol("total dispatch count")}}});var require_mock_utils=__commonJS({"node_modules/undici/lib/mock/mock-utils.js"(exports,module){"use strict";var{MockNotMatchedError}=require_mock_errors(),{kDispatches,kMockAgent,kOriginalDispatch,kOrigin,kGetNetConnect,kTotalDispatchCount}=require_mock_symbols(),{serializePathWithQuery,parseHeaders}=require_util(),{STATUS_CODES}=__require("node:http"),{types:{isPromise}}=__require("node:util"),{InvalidArgumentError}=require_errors(),requestAborted=Symbol("request aborted");function matchValue(match,value){return typeof match=="string"?match===value:match instanceof RegExp?match.test(value):typeof match=="function"?match(value)===!0:!1}function lowerCaseEntries(headers){return Object.fromEntries(Object.entries(headers).map(([headerName,headerValue])=>[headerName.toLocaleLowerCase(),headerValue]))}function getHeaderByName(headers,key){if(Array.isArray(headers)){for(let i=0;i<headers.length;i+=2)if(headers[i].toLocaleLowerCase()===key.toLocaleLowerCase())return headers[i+1];return}else return typeof headers.get=="function"?headers.get(key):lowerCaseEntries(headers)[key.toLocaleLowerCase()]}function buildHeadersFromArray(headers){let clone=headers.slice(),entries=[];for(let index=0;index<clone.length;index+=2)entries.push([clone[index],clone[index+1]]);return Object.fromEntries(entries)}function matchHeaders(mockDispatch2,headers){if(typeof mockDispatch2.headers=="function")return Array.isArray(headers)&&(headers=buildHeadersFromArray(headers)),mockDispatch2.headers(headers?lowerCaseEntries(headers):{});if(typeof mockDispatch2.headers>"u")return!0;if(typeof headers!="object"||typeof mockDispatch2.headers!="object")return!1;for(let[matchHeaderName,matchHeaderValue]of Object.entries(mockDispatch2.headers)){let headerValue=getHeaderByName(headers,matchHeaderName);if(!matchValue(matchHeaderValue,headerValue))return!1}return!0}function normalizeSearchParams(query){if(typeof query!="string")return query;let originalQp=new URLSearchParams(query),normalizedQp=new URLSearchParams;for(let[key,value]of originalQp.entries()){if(key=key.replace("[]",""),/^(['"]).*\1$/.test(value)){normalizedQp.append(key,value);continue}if(value.includes(",")){let values=value.split(",");for(let v of values)normalizedQp.append(key,v);continue}normalizedQp.append(key,value)}return normalizedQp}function safeUrl(path){if(typeof path!="string")return path;let pathSegments=path.split("?",3);if(pathSegments.length!==2)return path;let qp=new URLSearchParams(pathSegments.pop());return qp.sort(),[...pathSegments,qp.toString()].join("?")}function matchKey(mockDispatch2,{path,method,body,headers}){let pathMatch=matchValue(mockDispatch2.path,path),methodMatch=matchValue(mockDispatch2.method,method),bodyMatch=typeof mockDispatch2.body<"u"?matchValue(mockDispatch2.body,body):!0,headersMatch=matchHeaders(mockDispatch2,headers);return pathMatch&&methodMatch&&bodyMatch&&headersMatch}function getResponseData(data){return Buffer.isBuffer(data)||data instanceof Uint8Array||data instanceof ArrayBuffer?data:ArrayBuffer.isView(data)?new Uint8Array(data.buffer,data.byteOffset,data.byteLength):typeof data=="object"?JSON.stringify(data):data?data.toString():""}function getMockDispatch(mockDispatches,key){let basePath=key.query?serializePathWithQuery(key.path,key.query):key.path,resolvedPath=typeof basePath=="string"?safeUrl(basePath):basePath,resolvedPathWithoutTrailingSlash=removeTrailingSlash(resolvedPath),matchedMockDispatches=mockDispatches.filter(({consumed})=>!consumed).filter(({path,ignoreTrailingSlash})=>ignoreTrailingSlash?matchValue(removeTrailingSlash(safeUrl(path)),resolvedPathWithoutTrailingSlash):matchValue(safeUrl(path),resolvedPath));if(matchedMockDispatches.length===0)throw new MockNotMatchedError(`Mock dispatch not matched for path '${resolvedPath}'`);if(matchedMockDispatches=matchedMockDispatches.filter(({method})=>matchValue(method,key.method)),matchedMockDispatches.length===0)throw new MockNotMatchedError(`Mock dispatch not matched for method '${key.method}' on path '${resolvedPath}'`);if(matchedMockDispatches=matchedMockDispatches.filter(({body})=>typeof body<"u"?matchValue(body,key.body):!0),matchedMockDispatches.length===0)throw new MockNotMatchedError(`Mock dispatch not matched for body '${key.body}' on path '${resolvedPath}'`);if(matchedMockDispatches=matchedMockDispatches.filter(mockDispatch2=>matchHeaders(mockDispatch2,key.headers)),matchedMockDispatches.length===0){let headers=typeof key.headers=="object"?JSON.stringify(key.headers):key.headers;throw new MockNotMatchedError(`Mock dispatch not matched for headers '${headers}' on path '${resolvedPath}'`)}return matchedMockDispatches[0]}function addMockDispatch(mockDispatches,key,data,opts){let baseData={timesInvoked:0,times:1,persist:!1,consumed:!1,...opts},replyData=typeof data=="function"?{callback:data}:{...data},newMockDispatch={...baseData,...key,pending:!0,data:{error:null,...replyData}};return mockDispatches.push(newMockDispatch),mockDispatches[kTotalDispatchCount]=(mockDispatches[kTotalDispatchCount]||0)+1,newMockDispatch}function deleteMockDispatch(mockDispatches,key){let index=mockDispatches.findIndex(dispatch=>dispatch.consumed?matchKey(dispatch,key):!1);index!==-1&&mockDispatches.splice(index,1)}function removeTrailingSlash(path){if(typeof path!="string")return path;for(;path.endsWith("/");)path=path.slice(0,-1);return path.length===0&&(path="/"),path}function buildKey(opts){let{path,method,body,headers,query}=opts;return{path,method,body,headers,query}}function generateKeyValues(data){let keys=Object.keys(data),result=[];for(let i=0;i<keys.length;++i){let key=keys[i],value=data[key],name=Buffer.from(`${key}`);if(Array.isArray(value))for(let j=0;j<value.length;++j)result.push(name,Buffer.from(`${value[j]}`));else result.push(name,Buffer.from(`${value}`))}return result}function getStatusText(statusCode){return STATUS_CODES[statusCode]||"unknown"}async function getResponse(body){let buffers=[];for await(let data of body)buffers.push(data);return Buffer.concat(buffers).toString("utf8")}function mockDispatch(opts,handler){let key=buildKey(opts),mockDispatch2=getMockDispatch(this[kDispatches],key),mockDispatches=this[kDispatches];mockDispatch2.timesInvoked++;let{timesInvoked,times}=mockDispatch2;mockDispatch2.consumed=!mockDispatch2.persist&×Invoked>=times,mockDispatch2.pending=timesInvoked<times;let hasBodyHooks=typeof handler.onBodySent=="function"||typeof handler.onRequestSent=="function";if(mockDispatch2.data.callback&&(!hasBodyHooks||opts.body==null)){let{callback,...responseDefaults}=mockDispatch2.data,callbackResult=callback(opts);if(isPromise(callbackResult))return callbackResult.then(resolvedData=>{if(resolvedData==null||typeof resolvedData!="object"){handler.onResponseError(null,new InvalidArgumentError("reply options callback must return an object"));return}mockDispatch2.data={...responseDefaults,...resolvedData},dispatchMockReply(mockDispatches,mockDispatch2,key,opts,handler)},error=>{handler.onResponseError(null,error)}),!0;if(callbackResult==null||typeof callbackResult!="object")throw new InvalidArgumentError("reply options callback must return an object");mockDispatch2.data={...responseDefaults,...callbackResult}}return dispatchMockReply(mockDispatches,mockDispatch2,key,opts,handler)}function dispatchMockReply(mockDispatches,mockDispatch2,key,opts,handler){let{data:response,delay}=mockDispatch2;if(response.error!==null)return deleteMockDispatch(mockDispatches,key),handler.onResponseError(null,response.error),!0;let aborted=!1,timer=null,controller={paused:!1,rawHeaders:null,rawTrailers:null,pause(){this.paused=!0},resume(){this.paused=!1},abort:reason=>{aborted||(aborted=!0,timer!==null&&(clearTimeout(timer),timer=null),handler.onResponseError?.(controller,reason))}},replyOpts=opts,dispatches=mockDispatches;if(handler.onRequestStart?.(controller,null),aborted)return!0;let requestBody=dispatchRequestBody(opts.body,handler,controller,()=>aborted);if(isPromise(requestBody))return requestBody.then(body=>{body!==requestAborted&&(body!==opts.body&&(replyOpts={...opts,body}),sendReply())},error=>controller.abort(error)),!0;if(requestBody===requestAborted)return!0;requestBody!==opts.body&&(replyOpts={...opts,body:requestBody}),sendReply();function sendReply(){if(response.callback){let{callback,...responseDefaults}=response,callbackResult;try{callbackResult=callback(replyOpts)}catch(err){deleteMockDispatch(mockDispatches,key),handler.onResponseError(null,err);return}if(isPromise(callbackResult)){callbackResult.then(resolvedData=>{if(resolvedData==null||typeof resolvedData!="object"){handler.onResponseError(null,new InvalidArgumentError("reply options callback must return an object"));return}mockDispatch2.data={...responseDefaults,...resolvedData},handleReply(dispatches,mockDispatch2.data)},err=>{handler.onResponseError(null,err)});return}if(callbackResult==null||typeof callbackResult!="object")throw new InvalidArgumentError("reply options callback must return an object");mockDispatch2.data={...responseDefaults,...callbackResult},handleReply(dispatches,mockDispatch2.data);return}typeof delay=="number"&&delay>0?timer=setTimeout(()=>{timer=null,handleReply(dispatches)},delay):handleReply(dispatches)}function handleReply(mockDispatches2,_response=response){if(aborted)return;let{statusCode,data,headers,trailers}=_response,optsHeaders=Array.isArray(opts.headers)?buildHeadersFromArray(opts.headers):opts.headers,body=typeof data=="function"?data({...replyOpts,headers:optsHeaders}):data;if(isPromise(body))return body.then(newData=>handleReply(mockDispatches2,{..._response,data:newData}));if(aborted)return;let responseData=getResponseData(body),responseHeaders=generateKeyValues(headers??{}),responseTrailers=generateKeyValues(trailers??{});controller.rawHeaders=responseHeaders,controller.rawTrailers=responseTrailers,handler.onResponseStart?.(controller,statusCode,parseHeaders(responseHeaders),getStatusText(statusCode)),handler.onResponseData?.(controller,Buffer.from(responseData)),handler.onResponseEnd?.(controller,parseHeaders(responseTrailers)),deleteMockDispatch(mockDispatches2,key)}return!0}function dispatchRequestBody(body,handler,controller,isAborted){if(typeof handler.onBodySent!="function"&&typeof handler.onRequestSent!="function")return body;if(body==null)return callOnRequestSent(handler,controller,isAborted)?body:requestAborted;if(body&&typeof body[Symbol.asyncIterator]=="function")return dispatchAsyncIterableBody(body,handler,controller,isAborted);if(isIterableBody(body)){let chunks=[];for(let chunk of body)if(isAborted()||(chunks.push(chunk),!callOnBodySent(handler,controller,chunk)||isAborted()))return requestAborted;return callOnRequestSent(handler,controller,isAborted)?chunks:requestAborted}return isAborted()||!callOnBodySent(handler,controller,body)?requestAborted:callOnRequestSent(handler,controller,isAborted)?body:requestAborted}async function dispatchAsyncIterableBody(body,handler,controller,isAborted){let chunks=[];for await(let chunk of body)if(isAborted()||(chunks.push(chunk),!callOnBodySent(handler,controller,chunk)||isAborted()))return requestAborted;return callOnRequestSent(handler,controller,isAborted)?{async*[Symbol.asyncIterator](){yield*chunks}}:requestAborted}function callOnBodySent(handler,controller,chunk){try{return handler.onBodySent?.(chunk),!0}catch(error){return controller.abort(error),!1}}function callOnRequestSent(handler,controller,isAborted){try{return handler.onRequestSent?.(),!isAborted()}catch(error){return controller.abort(error),!1}}function isIterableBody(body){return typeof body!="string"&&!Buffer.isBuffer(body)&&!ArrayBuffer.isView(body)&&typeof body[Symbol.iterator]=="function"}function buildMockDispatch(){let agent=this[kMockAgent],origin=this[kOrigin],originalDispatch=this[kOriginalDispatch];return function(opts,handler){if(agent.isMockActive)try{mockDispatch.call(this,opts,handler)}catch(error){if(error.code==="UND_MOCK_ERR_MOCK_NOT_MATCHED"){let netConnect=agent[kGetNetConnect](),totalInterceptsCount=this[kDispatches][kTotalDispatchCount]||this[kDispatches].length,interceptsMessage=`, ${this[kDispatches].filter(({consumed})=>!consumed).length} interceptor(s) remaining out of ${totalInterceptsCount} defined`;if(netConnect===!1)throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect disabled)${interceptsMessage}`);if(checkNetConnect(netConnect,origin))originalDispatch.call(this,"__mockAgentBodyForDispatch"in opts?{...opts,body:opts.__mockAgentBodyForDispatch}:opts,handler);else throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect is not enabled for this origin)${interceptsMessage}`)}else throw error}else originalDispatch.call(this,opts,handler)}}function checkNetConnect(netConnect,origin){let url=new URL(origin);return netConnect===!0?!0:!!(Array.isArray(netConnect)&&netConnect.some(matcher=>matchValue(matcher,url.host)))}function normalizeOrigin(origin){return typeof origin!="string"&&!(origin instanceof URL)?origin:origin instanceof URL?origin.origin:origin.toLowerCase()}function buildAndValidateMockOptions(opts){let{agent,...mockOptions}=opts;if("enableCallHistory"in mockOptions&&typeof mockOptions.enableCallHistory!="boolean")throw new InvalidArgumentError("options.enableCallHistory must to be a boolean");if("acceptNonStandardSearchParameters"in mockOptions&&typeof mockOptions.acceptNonStandardSearchParameters!="boolean")throw new InvalidArgumentError("options.acceptNonStandardSearchParameters must to be a boolean");if("ignoreTrailingSlash"in mockOptions&&typeof mockOptions.ignoreTrailingSlash!="boolean")throw new InvalidArgumentError("options.ignoreTrailingSlash must to be a boolean");return mockOptions}module.exports={getResponseData,getMockDispatch,addMockDispatch,deleteMockDispatch,buildKey,generateKeyValues,matchValue,getResponse,getStatusText,mockDispatch,buildMockDispatch,checkNetConnect,buildAndValidateMockOptions,getHeaderByName,buildHeadersFromArray,normalizeSearchParams,normalizeOrigin}}});var require_mock_interceptor=__commonJS({"node_modules/undici/lib/mock/mock-interceptor.js"(exports,module){"use strict";var{getResponseData,buildKey,addMockDispatch}=require_mock_utils(),{kDispatches,kDispatchKey,kDefaultHeaders,kDefaultTrailers,kContentLength,kMockDispatch,kIgnoreTrailingSlash}=require_mock_symbols(),{InvalidArgumentError}=require_errors(),{serializePathWithQuery}=require_util(),{types:{isPromise}}=__require("node:util"),MockScope=class{constructor(mockDispatch){this[kMockDispatch]=mockDispatch}delay(waitInMs){if(typeof waitInMs!="number"||!Number.isInteger(waitInMs)||waitInMs<=0)throw new InvalidArgumentError("waitInMs must be a valid integer > 0");return this[kMockDispatch].delay=waitInMs,this}persist(){return this[kMockDispatch].persist=!0,this}times(repeatTimes){if(typeof repeatTimes!="number"||!Number.isInteger(repeatTimes)||repeatTimes<=0)throw new InvalidArgumentError("repeatTimes must be a valid integer > 0");return this[kMockDispatch].times=repeatTimes,this}},MockInterceptor=class{constructor(opts,mockDispatches){if(typeof opts!="object")throw new InvalidArgumentError("opts must be an object");if(typeof opts.path>"u")throw new InvalidArgumentError("opts.path must be defined");if(typeof opts.method>"u"&&(opts.method="GET"),typeof opts.path=="string")if(opts.query)opts.path=serializePathWithQuery(opts.path,opts.query);else{let parsedURL=new URL(opts.path,"data://");opts.path=parsedURL.pathname+parsedURL.search}typeof opts.method=="string"&&(opts.method=opts.method.toUpperCase()),this[kDispatchKey]=buildKey(opts),this[kDispatches]=mockDispatches,this[kIgnoreTrailingSlash]=opts.ignoreTrailingSlash??!1,this[kDefaultHeaders]={},this[kDefaultTrailers]={},this[kContentLength]=!1}createMockScopeDispatchData({statusCode,data,responseOptions}){let responseData=getResponseData(data),contentLength=this[kContentLength]?{"content-length":responseData.length}:{},headers={...this[kDefaultHeaders],...contentLength,...responseOptions.headers},trailers={...this[kDefaultTrailers],...responseOptions.trailers};return{statusCode,data,headers,trailers}}validateReplyParameters(replyParameters){if(typeof replyParameters.statusCode>"u")throw new InvalidArgumentError("statusCode must be defined");if(typeof replyParameters.responseOptions!="object"||replyParameters.responseOptions===null)throw new InvalidArgumentError("responseOptions must be an object")}reply(replyOptionsCallbackOrStatusCode){if(typeof replyOptionsCallbackOrStatusCode=="function"){let resolveReplyCallbackData=resolvedData=>{if(typeof resolvedData!="object"||resolvedData===null)throw new InvalidArgumentError("reply options callback must return an object");let replyParameters2={data:"",responseOptions:{},...resolvedData};return this.validateReplyParameters(replyParameters2),{...this.createMockScopeDispatchData(replyParameters2)}},wrappedDefaultsCallback=opts=>{let resolvedData=replyOptionsCallbackOrStatusCode(opts);return isPromise(resolvedData)?resolvedData.then(resolveReplyCallbackData):resolveReplyCallbackData(resolvedData)},newMockDispatch2=addMockDispatch(this[kDispatches],this[kDispatchKey],wrappedDefaultsCallback,{ignoreTrailingSlash:this[kIgnoreTrailingSlash]});return new MockScope(newMockDispatch2)}let replyParameters={statusCode:replyOptionsCallbackOrStatusCode,data:arguments[1]===void 0?"":arguments[1],responseOptions:arguments[2]===void 0?{}:arguments[2]};this.validateReplyParameters(replyParameters);let dispatchData=this.createMockScopeDispatchData(replyParameters),newMockDispatch=addMockDispatch(this[kDispatches],this[kDispatchKey],dispatchData,{ignoreTrailingSlash:this[kIgnoreTrailingSlash]});return new MockScope(newMockDispatch)}replyWithError(error){if(typeof error>"u")throw new InvalidArgumentError("error must be defined");let newMockDispatch=addMockDispatch(this[kDispatches],this[kDispatchKey],{error},{ignoreTrailingSlash:this[kIgnoreTrailingSlash]});return new MockScope(newMockDispatch)}defaultReplyHeaders(headers){if(typeof headers>"u")throw new InvalidArgumentError("headers must be defined");return this[kDefaultHeaders]=headers,this}defaultReplyTrailers(trailers){if(typeof trailers>"u")throw new InvalidArgumentError("trailers must be defined");return this[kDefaultTrailers]=trailers,this}replyContentLength(){return this[kContentLength]=!0,this}};module.exports.MockInterceptor=MockInterceptor;module.exports.MockScope=MockScope}});var require_mock_client=__commonJS({"node_modules/undici/lib/mock/mock-client.js"(exports,module){"use strict";var{promisify}=__require("node:util"),Client=require_client(),{buildMockDispatch}=require_mock_utils(),{kDispatches,kMockAgent,kClose,kOriginalClose,kOrigin,kOriginalDispatch,kConnected,kIgnoreTrailingSlash}=require_mock_symbols(),{MockInterceptor}=require_mock_interceptor(),Symbols=require_symbols(),{InvalidArgumentError}=require_errors(),MockClient=class extends Client{constructor(origin,opts){if(!opts||!opts.agent||typeof opts.agent.dispatch!="function")throw new InvalidArgumentError("Argument opts.agent must implement Agent");super(origin,opts),this[kMockAgent]=opts.agent,this[kOrigin]=origin,this[kIgnoreTrailingSlash]=opts.ignoreTrailingSlash??!1,this[kDispatches]=[],this[kConnected]=1,this[kOriginalDispatch]=this.dispatch,this[kOriginalClose]=this.close.bind(this),this.dispatch=buildMockDispatch.call(this),this.close=this[kClose]}get[Symbols.kConnected](){return this[kConnected]}intercept(opts){return new MockInterceptor(opts&&{ignoreTrailingSlash:this[kIgnoreTrailingSlash],...opts},this[kDispatches])}cleanMocks(){this[kDispatches]=[]}async[kClose](){await promisify(this[kOriginalClose])(),this[kConnected]=0,this[kMockAgent][Symbols.kClients].delete(this[kOrigin])}};module.exports=MockClient}});var require_mock_call_history=__commonJS({"node_modules/undici/lib/mock/mock-call-history.js"(exports,module){"use strict";var{kMockCallHistoryAddLog}=require_mock_symbols(),{InvalidArgumentError}=require_errors();function handleFilterCallsWithOptions(criteria,options,handler,store,allLogs){switch(options.operator){case"OR":return store.push(...handler(criteria,allLogs)),store;case"AND":return handler(criteria,store);default:throw new InvalidArgumentError("options.operator must to be a case insensitive string equal to 'OR' or 'AND'")}}function buildAndValidateFilterCallsOptions(options={}){let finalOptions={};if("operator"in options){if(typeof options.operator!="string"||options.operator.toUpperCase()!=="OR"&&options.operator.toUpperCase()!=="AND")throw new InvalidArgumentError("options.operator must to be a case insensitive string equal to 'OR' or 'AND'");return{...finalOptions,operator:options.operator.toUpperCase()}}return finalOptions}function makeFilterCalls(parameterName){return(parameterValue,logs=this.logs)=>{if(typeof parameterValue=="string"||parameterValue==null)return logs.filter(log=>log[parameterName]===parameterValue);if(parameterValue instanceof RegExp)return logs.filter(log=>parameterValue.test(log[parameterName]));throw new InvalidArgumentError(`${parameterName} parameter should be one of string, regexp, undefined or null`)}}function computeUrlWithMaybeSearchParameters(requestInit){try{let url=new URL(requestInit.path,requestInit.origin);return url.search.length!==0||(url.search=new URLSearchParams(requestInit.query).toString()),url}catch(error){throw new InvalidArgumentError("An error occurred when computing MockCallHistoryLog.url",{cause:error})}}var MockCallHistoryLog=class{constructor(requestInit={}){this.body=requestInit.body,this.headers=requestInit.headers,this.method=requestInit.method;let url=computeUrlWithMaybeSearchParameters(requestInit);this.fullUrl=url.toString(),this.origin=url.origin,this.path=url.pathname,this.searchParams=Object.fromEntries(url.searchParams),this.protocol=url.protocol,this.host=url.host,this.port=url.port,this.hash=url.hash}toMap(){return new Map([["protocol",this.protocol],["host",this.host],["port",this.port],["origin",this.origin],["path",this.path],["hash",this.hash],["searchParams",this.searchParams],["fullUrl",this.fullUrl],["method",this.method],["body",this.body],["headers",this.headers]])}toString(){let options={betweenKeyValueSeparator:"->",betweenPairSeparator:"|"},result="";return this.toMap().forEach((value,key)=>{(typeof value=="string"||value===void 0||value===null)&&(result=`${result}${key}${options.betweenKeyValueSeparator}${value}${options.betweenPairSeparator}`),(typeof value=="object"&&value!==null||Array.isArray(value))&&(result=`${result}${key}${options.betweenKeyValueSeparator}${JSON.stringify(value)}${options.betweenPairSeparator}`)}),result.slice(0,-1)}},MockCallHistory=class{logs=[];calls(){return this.logs}firstCall(){return this.logs.at(0)}lastCall(){return this.logs.at(-1)}nthCall(number){if(typeof number!="number")throw new InvalidArgumentError("nthCall must be called with a number");if(!Number.isInteger(number))throw new InvalidArgumentError("nthCall must be called with an integer");if(Math.sign(number)!==1)throw new InvalidArgumentError("nthCall must be called with a positive value. use firstCall or lastCall instead");return this.logs.at(number-1)}filterCalls(criteria,options){if(this.logs.length===0)return this.logs;if(typeof criteria=="function")return this.logs.filter(criteria);if(criteria instanceof RegExp)return this.logs.filter(log=>criteria.test(log.toString()));if(typeof criteria=="object"&&criteria!==null){if(Object.keys(criteria).length===0)return this.logs;let finalOptions={operator:"OR",...buildAndValidateFilterCallsOptions(options)},maybeDuplicatedLogsFiltered=finalOptions.operator==="AND"?this.logs:[];return"protocol"in criteria&&(maybeDuplicatedLogsFiltered=handleFilterCallsWithOptions(criteria.protocol,finalOptions,this.filterCallsByProtocol,maybeDuplicatedLogsFiltered,this.logs)),"host"in criteria&&(maybeDuplicatedLogsFiltered=handleFilterCallsWithOptions(criteria.host,finalOptions,this.filterCallsByHost,maybeDuplicatedLogsFiltered,this.logs)),"port"in criteria&&(maybeDuplicatedLogsFiltered=handleFilterCallsWithOptions(criteria.port,finalOptions,this.filterCallsByPort,maybeDuplicatedLogsFiltered,this.logs)),"origin"in criteria&&(maybeDuplicatedLogsFiltered=handleFilterCallsWithOptions(criteria.origin,finalOptions,this.filterCallsByOrigin,maybeDuplicatedLogsFiltered,this.logs)),"path"in criteria&&(maybeDuplicatedLogsFiltered=handleFilterCallsWithOptions(criteria.path,finalOptions,this.filterCallsByPath,maybeDuplicatedLogsFiltered,this.logs)),"hash"in criteria&&(maybeDuplicatedLogsFiltered=handleFilterCallsWithOptions(criteria.hash,finalOptions,this.filterCallsByHash,maybeDuplicatedLogsFiltered,this.logs)),"fullUrl"in criteria&&(maybeDuplicatedLogsFiltered=handleFilterCallsWithOptions(criteria.fullUrl,finalOptions,this.filterCallsByFullUrl,maybeDuplicatedLogsFiltered,this.logs)),"method"in criteria&&(maybeDuplicatedLogsFiltered=handleFilterCallsWithOptions(criteria.method,finalOptions,this.filterCallsByMethod,maybeDuplicatedLogsFiltered,this.logs)),[...new Set(maybeDuplicatedLogsFiltered)]}throw new InvalidArgumentError("criteria parameter should be one of function, regexp, or object")}filterCallsByProtocol=makeFilterCalls.call(this,"protocol");filterCallsByHost=makeFilterCalls.call(this,"host");filterCallsByPort=makeFilterCalls.call(this,"port");filterCallsByOrigin=makeFilterCalls.call(this,"origin");filterCallsByPath=makeFilterCalls.call(this,"path");filterCallsByHash=makeFilterCalls.call(this,"hash");filterCallsByFullUrl=makeFilterCalls.call(this,"fullUrl");filterCallsByMethod=makeFilterCalls.call(this,"method");clear(){this.logs=[]}[kMockCallHistoryAddLog](requestInit){let log=new MockCallHistoryLog(requestInit);return this.logs.push(log),log}*[Symbol.iterator](){for(let log of this.calls())yield log}};module.exports.MockCallHistory=MockCallHistory;module.exports.MockCallHistoryLog=MockCallHistoryLog}});var require_mock_pool=__commonJS({"node_modules/undici/lib/mock/mock-pool.js"(exports,module){"use strict";var{promisify}=__require("node:util"),Pool=require_pool(),{buildMockDispatch}=require_mock_utils(),{kDispatches,kMockAgent,kClose,kOriginalClose,kOrigin,kOriginalDispatch,kConnected,kIgnoreTrailingSlash}=require_mock_symbols(),{MockInterceptor}=require_mock_interceptor(),Symbols=require_symbols(),{InvalidArgumentError}=require_errors(),MockPool=class extends Pool{constructor(origin,opts){if(!opts||!opts.agent||typeof opts.agent.dispatch!="function")throw new InvalidArgumentError("Argument opts.agent must implement Agent");super(origin,opts),this[kMockAgent]=opts.agent,this[kOrigin]=origin,this[kIgnoreTrailingSlash]=opts.ignoreTrailingSlash??!1,this[kDispatches]=[],this[kConnected]=1,this[kOriginalDispatch]=this.dispatch,this[kOriginalClose]=this.close.bind(this),this.dispatch=buildMockDispatch.call(this),this.close=this[kClose]}get[Symbols.kConnected](){return this[kConnected]}intercept(opts){return new MockInterceptor(opts&&{ignoreTrailingSlash:this[kIgnoreTrailingSlash],...opts},this[kDispatches])}cleanMocks(){this[kDispatches]=[]}async[kClose](){await promisify(this[kOriginalClose])(),this[kConnected]=0,this[kMockAgent][Symbols.kClients].delete(this[kOrigin])}};module.exports=MockPool}});var require_pending_interceptors_formatter=__commonJS({"node_modules/undici/lib/mock/pending-interceptors-formatter.js"(exports,module){"use strict";var{Transform}=__require("node:stream"),{Console}=__require("node:console"),PERSISTENT=process.versions.icu?"\u2705":"Y ",NOT_PERSISTENT=process.versions.icu?"\u274C":"N ";module.exports=class{constructor({disableColors}={}){this.transform=new Transform({transform(chunk,_enc,cb){cb(null,chunk)}}),this.logger=new Console({stdout:this.transform,inspectOptions:{colors:!disableColors&&!process.env.CI}})}format(pendingInterceptors){let withPrettyHeaders=pendingInterceptors.map(({method,path,data:{statusCode},persist,times,timesInvoked,origin})=>({Method:method,Origin:origin,Path:path,"Status code":statusCode,Persistent:persist?PERSISTENT:NOT_PERSISTENT,Invocations:timesInvoked,Remaining:persist?1/0:times-timesInvoked}));return this.logger.table(withPrettyHeaders),this.transform.read().toString()}}}});var require_mock_agent=__commonJS({"node_modules/undici/lib/mock/mock-agent.js"(exports,module){"use strict";var{kClients}=require_symbols(),Agent=require_agent(),{kAgent,kMockAgentSet,kMockAgentGet,kDispatches,kIsMockActive,kNetConnect,kGetNetConnect,kOptions,kFactory,kMockAgentRegisterCallHistory,kMockAgentIsCallHistoryEnabled,kMockAgentAddCallHistoryLog,kMockAgentMockCallHistoryInstance,kMockAgentAcceptsNonStandardSearchParameters,kMockCallHistoryAddLog,kIgnoreTrailingSlash}=require_mock_symbols(),MockClient=require_mock_client(),MockPool=require_mock_pool(),{matchValue,normalizeSearchParams,buildAndValidateMockOptions,normalizeOrigin}=require_mock_utils(),{InvalidArgumentError,UndiciError}=require_errors(),Dispatcher=require_dispatcher(),PendingInterceptorsFormatter=require_pending_interceptors_formatter(),{MockCallHistory}=require_mock_call_history(),MockAgent=class extends Dispatcher{constructor(opts={}){super(opts);let mockOptions=buildAndValidateMockOptions(opts);if(this[kNetConnect]=!0,this[kIsMockActive]=!0,this[kMockAgentIsCallHistoryEnabled]=mockOptions.enableCallHistory??!1,this[kMockAgentAcceptsNonStandardSearchParameters]=mockOptions.acceptNonStandardSearchParameters??!1,this[kIgnoreTrailingSlash]=mockOptions.ignoreTrailingSlash??!1,opts?.agent&&typeof opts.agent.dispatch!="function")throw new InvalidArgumentError("Argument opts.agent must implement Agent");let agent=opts?.agent?opts.agent:new Agent(opts);this[kAgent]=agent,this[kClients]=agent[kClients],this[kOptions]=mockOptions,this[kMockAgentIsCallHistoryEnabled]&&this[kMockAgentRegisterCallHistory]()}get(origin){let normalizedOrigin=normalizeOrigin(origin),originKey=this[kIgnoreTrailingSlash]?normalizedOrigin.replace(/\/$/,""):normalizedOrigin,dispatcher=this[kMockAgentGet](originKey);return dispatcher||(dispatcher=this[kFactory](originKey),this[kMockAgentSet](originKey,dispatcher)),dispatcher}dispatch(opts,handler){opts.origin=normalizeOrigin(opts.origin),this.get(opts.origin),this[kMockAgentAddCallHistoryLog](opts);let acceptNonStandardSearchParameters=this[kMockAgentAcceptsNonStandardSearchParameters],dispatchOpts={...opts};if(acceptNonStandardSearchParameters&&dispatchOpts.path){let[path,searchParams]=dispatchOpts.path.split("?"),normalizedSearchParams=normalizeSearchParams(searchParams,acceptNonStandardSearchParameters);dispatchOpts.path=`${path}?${normalizedSearchParams}`}return this[kAgent].dispatch(dispatchOpts,handler)}async close(){this.clearCallHistory(),await this[kAgent].close(),this[kClients].clear()}deactivate(){this[kIsMockActive]=!1}activate(){this[kIsMockActive]=!0}enableNetConnect(matcher){if(typeof matcher=="string"||typeof matcher=="function"||matcher instanceof RegExp)Array.isArray(this[kNetConnect])?this[kNetConnect].push(matcher):this[kNetConnect]=[matcher];else if(typeof matcher>"u")this[kNetConnect]=!0;else throw new InvalidArgumentError("Unsupported matcher. Must be one of String|Function|RegExp.")}disableNetConnect(){this[kNetConnect]=!1}enableCallHistory(){return this[kMockAgentIsCallHistoryEnabled]=!0,this}disableCallHistory(){return this[kMockAgentIsCallHistoryEnabled]=!1,this}getCallHistory(){return this[kMockAgentMockCallHistoryInstance]}clearCallHistory(){this[kMockAgentMockCallHistoryInstance]!==void 0&&this[kMockAgentMockCallHistoryInstance].clear()}get isMockActive(){return this[kIsMockActive]}[kMockAgentRegisterCallHistory](){this[kMockAgentMockCallHistoryInstance]===void 0&&(this[kMockAgentMockCallHistoryInstance]=new MockCallHistory)}[kMockAgentAddCallHistoryLog](opts){this[kMockAgentIsCallHistoryEnabled]&&(this[kMockAgentRegisterCallHistory](),this[kMockAgentMockCallHistoryInstance][kMockCallHistoryAddLog](opts))}[kMockAgentSet](origin,dispatcher){this[kClients].set(origin,dispatcher)}[kFactory](origin){let mockOptions=Object.assign({agent:this},this[kOptions]);return this[kOptions]&&this[kOptions].connections===1?new MockClient(origin,mockOptions):new MockPool(origin,mockOptions)}[kMockAgentGet](origin){let dispatcher=this[kClients].get(origin);if(dispatcher)return dispatcher;if(typeof origin!="string"){let dispatcher2=this[kFactory]("http://localhost:9999");return this[kMockAgentSet](origin,dispatcher2),dispatcher2}for(let[keyMatcher,nonExplicitDispatcher]of Array.from(this[kClients]))if(nonExplicitDispatcher&&typeof keyMatcher!="string"&&matchValue(keyMatcher,origin)){let dispatcher2=this[kFactory](origin);return this[kMockAgentSet](origin,dispatcher2),dispatcher2[kDispatches]=nonExplicitDispatcher[kDispatches],dispatcher2}}[kGetNetConnect](){return this[kNetConnect]}pendingInterceptors(){let mockAgentClients=this[kClients];return Array.from(mockAgentClients.entries()).flatMap(([origin,dispatcher])=>dispatcher[kDispatches].map(dispatch=>({...dispatch,origin}))).filter(({pending})=>pending)}assertNoPendingInterceptors({pendingInterceptorsFormatter=new PendingInterceptorsFormatter}={}){let pending=this.pendingInterceptors();if(pending.length!==0)throw new UndiciError(pending.length===1?`1 interceptor is pending:
|
|
42
|
+
|
|
43
|
+
${pendingInterceptorsFormatter.format(pending)}`.trim():`${pending.length} interceptors are pending:
|
|
44
|
+
|
|
45
|
+
${pendingInterceptorsFormatter.format(pending)}`.trim())}};module.exports=MockAgent}});var require_snapshot_utils=__commonJS({"node_modules/undici/lib/mock/snapshot-utils.js"(exports,module){"use strict";var{InvalidArgumentError}=require_errors(),{runtimeFeatures}=require_runtime_features();function createHeaderFilters(matchOptions={}){let{ignoreHeaders=[],excludeHeaders=[],matchHeaders=[],caseSensitive=!1}=matchOptions;return{ignore:new Set(ignoreHeaders.map(header=>caseSensitive?header:header.toLowerCase())),exclude:new Set(excludeHeaders.map(header=>caseSensitive?header:header.toLowerCase())),match:new Set(matchHeaders.map(header=>caseSensitive?header:header.toLowerCase()))}}var crypto=runtimeFeatures.has("crypto")?__require("node:crypto"):null,hashId=crypto?.hash?value=>crypto.hash("sha256",value,"base64url"):value=>Buffer.from(value).toString("base64url");function isUndiciHeaders(headers){return Array.isArray(headers)&&(headers.length&1)===0}function isUrlExcludedFactory(excludePatterns=[]){return excludePatterns.length===0?()=>!1:function(url){let urlLowerCased;for(let pattern of excludePatterns)if(typeof pattern=="string"){if(urlLowerCased||(urlLowerCased=url.toLowerCase()),urlLowerCased.includes(pattern.toLowerCase()))return!0}else if(pattern instanceof RegExp&&pattern.test(url))return!0;return!1}}function normalizeHeaders(headers){let normalizedHeaders={};if(!headers)return normalizedHeaders;if(isUndiciHeaders(headers)){for(let i=0;i<headers.length;i+=2){let key=headers[i],value=headers[i+1];if(key&&value!==void 0){let keyStr=Buffer.isBuffer(key)?key.toString():key,valueStr=Buffer.isBuffer(value)?value.toString():value;normalizedHeaders[keyStr.toLowerCase()]=valueStr}}return normalizedHeaders}if(headers&&typeof headers=="object")for(let[key,value]of Object.entries(headers))key&&typeof key=="string"&&(normalizedHeaders[key.toLowerCase()]=Array.isArray(value)?value.join(", "):String(value));return normalizedHeaders}var validSnapshotModes=["record","playback","update"];function validateSnapshotMode(mode){if(!validSnapshotModes.includes(mode))throw new InvalidArgumentError(`Invalid snapshot mode: ${mode}. Must be one of: ${validSnapshotModes.join(", ")}`)}module.exports={createHeaderFilters,hashId,isUndiciHeaders,normalizeHeaders,isUrlExcludedFactory,validateSnapshotMode}}});var require_snapshot_recorder=__commonJS({"node_modules/undici/lib/mock/snapshot-recorder.js"(exports,module){"use strict";var{writeFile,readFile,mkdir}=__require("node:fs/promises"),{dirname,resolve}=__require("node:path"),{setTimeout:setTimeout2,clearTimeout:clearTimeout2}=__require("node:timers"),{InvalidArgumentError,UndiciError}=require_errors(),{hashId,isUrlExcludedFactory,normalizeHeaders,createHeaderFilters}=require_snapshot_utils();function normalizeUrlForMatching(url,matchQuery,normalizeQuery){if(matchQuery===!1)return`${url.origin}${url.pathname}`;if(normalizeQuery){let normalized=String(normalizeQuery(url.searchParams)??"");return normalized?`${url.origin}${url.pathname}?${normalized}`:`${url.origin}${url.pathname}`}return url.toString()}function normalizeBodyForMatching(body,matchBody,normalizeBody){return matchBody===!1?"":normalizeBody?String(normalizeBody(body)??""):body?String(body):""}function formatRequestKey(opts,headerFilters,matchOptions={}){let url=new URL(opts.path,opts.origin),normalized=opts._normalizedHeaders||normalizeHeaders(opts.headers);return opts._normalizedHeaders||(opts._normalizedHeaders=normalized),{method:opts.method||"GET",url:normalizeUrlForMatching(url,matchOptions.matchQuery,matchOptions.normalizeQuery),headers:filterHeadersForMatching(normalized,headerFilters,matchOptions),body:normalizeBodyForMatching(opts.body,matchOptions.matchBody,matchOptions.normalizeBody)}}function filterHeadersForMatching(headers,headerFilters,matchOptions={}){if(!headers||typeof headers!="object")return{};let{caseSensitive=!1}=matchOptions,filtered={},{ignore,exclude,match}=headerFilters;for(let[key,value]of Object.entries(headers)){let headerKey=caseSensitive?key:key.toLowerCase();exclude.has(headerKey)||ignore.has(headerKey)||match.size!==0&&!match.has(headerKey)||(filtered[headerKey]=value)}return filtered}function filterHeadersForStorage(headers,headerFilters,matchOptions={}){if(!headers||typeof headers!="object")return{};let{caseSensitive=!1}=matchOptions,filtered={},{exclude:excludeSet}=headerFilters;for(let[key,value]of Object.entries(headers)){let headerKey=caseSensitive?key:key.toLowerCase();excludeSet.has(headerKey)||(filtered[headerKey]=value)}return filtered}function createRequestHash(formattedRequest){let parts=[formattedRequest.method,formattedRequest.url];if(formattedRequest.headers&&typeof formattedRequest.headers=="object"){let headerKeys=Object.keys(formattedRequest.headers).sort();for(let key of headerKeys){let values=Array.isArray(formattedRequest.headers[key])?formattedRequest.headers[key]:[formattedRequest.headers[key]];parts.push(key);for(let value of values.sort())parts.push(String(value))}}parts.push(formattedRequest.body);let content=parts.join("|");return hashId(content)}var SnapshotRecorder=class{#flushTimeout;#isUrlExcluded;#snapshots=new Map;#snapshotPath;#maxSnapshots=1/0;#autoFlush=!1;#headerFilters;constructor(options={}){this.#snapshotPath=options.snapshotPath,this.#maxSnapshots=options.maxSnapshots||1/0,this.#autoFlush=options.autoFlush||!1,this.flushInterval=options.flushInterval||3e4,this._flushTimer=null,this.matchOptions={matchHeaders:options.matchHeaders||[],ignoreHeaders:options.ignoreHeaders||[],excludeHeaders:options.excludeHeaders||[],matchBody:options.matchBody!==!1,normalizeBody:options.normalizeBody||void 0,matchQuery:options.matchQuery!==!1,normalizeQuery:options.normalizeQuery||void 0,caseSensitive:options.caseSensitive||!1},this.#headerFilters=createHeaderFilters(this.matchOptions),this.shouldRecord=options.shouldRecord||(()=>!0),this.shouldPlayback=options.shouldPlayback||(()=>!0),this.#isUrlExcluded=isUrlExcludedFactory(options.excludeUrls),this.#autoFlush&&this.#snapshotPath&&this.#startAutoFlush()}async record(requestOpts,response){if(!this.shouldRecord(requestOpts)||this.isUrlExcluded(requestOpts))return;let request=formatRequestKey(requestOpts,this.#headerFilters,this.matchOptions),hash=createRequestHash(request),normalizedHeaders=normalizeHeaders(response.headers),responseData={statusCode:response.statusCode,headers:filterHeadersForStorage(normalizedHeaders,this.#headerFilters,this.matchOptions),body:Buffer.isBuffer(response.body)?response.body.toString("base64"):Buffer.from(String(response.body||"")).toString("base64"),trailers:response.trailers};if(this.#snapshots.size>=this.#maxSnapshots&&!this.#snapshots.has(hash)){let oldestKey=this.#snapshots.keys().next().value;this.#snapshots.delete(oldestKey)}let existingSnapshot=this.#snapshots.get(hash);existingSnapshot&&existingSnapshot.responses?(existingSnapshot.responses.push(responseData),existingSnapshot.timestamp=new Date().toISOString()):this.#snapshots.set(hash,{request,responses:[responseData],callCount:0,timestamp:new Date().toISOString()}),this.#autoFlush&&this.#snapshotPath&&this.#scheduleFlush()}isUrlExcluded(requestOpts){let url=new URL(requestOpts.path,requestOpts.origin).toString();return this.#isUrlExcluded(url)}findSnapshot(requestOpts){if(!this.shouldPlayback(requestOpts)||this.isUrlExcluded(requestOpts))return;let request=formatRequestKey(requestOpts,this.#headerFilters,this.matchOptions),hash=createRequestHash(request),snapshot=this.#snapshots.get(hash);if(!snapshot)return;let currentCallCount=snapshot.callCount||0,responseIndex=Math.min(currentCallCount,snapshot.responses.length-1);return snapshot.callCount=currentCallCount+1,{...snapshot,response:snapshot.responses[responseIndex]}}async loadSnapshots(filePath){let path=filePath||this.#snapshotPath;if(!path)throw new InvalidArgumentError("Snapshot path is required");try{let data=await readFile(resolve(path),"utf8"),parsed=JSON.parse(data);if(Array.isArray(parsed)){this.#snapshots.clear();for(let{hash,snapshot}of parsed)this.#snapshots.set(hash,snapshot)}else this.#snapshots=new Map(Object.entries(parsed))}catch(error){if(error.code==="ENOENT")this.#snapshots.clear();else throw new UndiciError(`Failed to load snapshots from ${path}`,{cause:error})}}async saveSnapshots(filePath){let path=filePath||this.#snapshotPath;if(!path)throw new InvalidArgumentError("Snapshot path is required");let resolvedPath=resolve(path);await mkdir(dirname(resolvedPath),{recursive:!0});let data=Array.from(this.#snapshots.entries()).map(([hash,snapshot])=>({hash,snapshot}));await writeFile(resolvedPath,JSON.stringify(data,null,2),{flush:!0})}clear(){this.#snapshots.clear()}getSnapshots(){return Array.from(this.#snapshots.values())}size(){return this.#snapshots.size}resetCallCounts(){for(let snapshot of this.#snapshots.values())snapshot.callCount=0}deleteSnapshot(requestOpts){let request=formatRequestKey(requestOpts,this.#headerFilters,this.matchOptions),hash=createRequestHash(request);return this.#snapshots.delete(hash)}getSnapshotInfo(requestOpts){let request=formatRequestKey(requestOpts,this.#headerFilters,this.matchOptions),hash=createRequestHash(request),snapshot=this.#snapshots.get(hash);return snapshot?{hash,request:snapshot.request,responseCount:snapshot.responses?snapshot.responses.length:snapshot.response?1:0,callCount:snapshot.callCount||0,timestamp:snapshot.timestamp}:null}replaceSnapshots(snapshotData){if(this.#snapshots.clear(),Array.isArray(snapshotData))for(let{hash,snapshot}of snapshotData)this.#snapshots.set(hash,snapshot);else snapshotData&&typeof snapshotData=="object"&&(this.#snapshots=new Map(Object.entries(snapshotData)))}#startAutoFlush(){return this.#scheduleFlush()}#stopAutoFlush(){this.#flushTimeout&&(clearTimeout2(this.#flushTimeout),this.saveSnapshots().catch(()=>{}),this.#flushTimeout=null)}#scheduleFlush(){this.#flushTimeout=setTimeout2(()=>{this.saveSnapshots().catch(()=>{}),this.#autoFlush?this.#flushTimeout?.refresh():this.#flushTimeout=null},1e3)}destroy(){this.#stopAutoFlush(),this.#flushTimeout&&(clearTimeout2(this.#flushTimeout),this.#flushTimeout=null)}async close(){this.#snapshotPath&&this.#snapshots.size!==0&&await this.saveSnapshots(),this.destroy()}};module.exports={SnapshotRecorder,formatRequestKey,createRequestHash,filterHeadersForMatching,filterHeadersForStorage,createHeaderFilters}}});var require_snapshot_agent=__commonJS({"node_modules/undici/lib/mock/snapshot-agent.js"(exports,module){"use strict";var Agent=require_agent(),MockAgent=require_mock_agent(),{SnapshotRecorder}=require_snapshot_recorder(),{InvalidArgumentError,UndiciError}=require_errors(),util=require_util(),{validateSnapshotMode}=require_snapshot_utils(),kSnapshotRecorder=Symbol("kSnapshotRecorder"),kSnapshotMode=Symbol("kSnapshotMode"),kSnapshotPath=Symbol("kSnapshotPath"),kSnapshotLoaded=Symbol("kSnapshotLoaded"),kRealAgent=Symbol("kRealAgent"),warningEmitted=!1,SnapshotAgent=class extends MockAgent{constructor(opts={}){warningEmitted||(process.emitWarning("SnapshotAgent is experimental and subject to change","ExperimentalWarning"),warningEmitted=!0);let{mode="record",snapshotPath=null,...mockAgentOpts}=opts;if(super(mockAgentOpts),validateSnapshotMode(mode),(mode==="playback"||mode==="update")&&!snapshotPath)throw new InvalidArgumentError(`snapshotPath is required when mode is '${mode}'`);this[kSnapshotMode]=mode,this[kSnapshotPath]=snapshotPath,this[kSnapshotRecorder]=new SnapshotRecorder({snapshotPath:this[kSnapshotPath],mode:this[kSnapshotMode],maxSnapshots:opts.maxSnapshots,autoFlush:opts.autoFlush,flushInterval:opts.flushInterval,matchHeaders:opts.matchHeaders,ignoreHeaders:opts.ignoreHeaders,excludeHeaders:opts.excludeHeaders,matchBody:opts.matchBody,normalizeBody:opts.normalizeBody,matchQuery:opts.matchQuery,normalizeQuery:opts.normalizeQuery,caseSensitive:opts.caseSensitive,shouldRecord:opts.shouldRecord,shouldPlayback:opts.shouldPlayback,excludeUrls:opts.excludeUrls}),this[kSnapshotLoaded]=!1,(this[kSnapshotMode]==="record"||this[kSnapshotMode]==="update"||this[kSnapshotMode]==="playback"&&opts.excludeUrls&&opts.excludeUrls.length>0)&&(this[kRealAgent]=new Agent(opts)),(this[kSnapshotMode]==="playback"||this[kSnapshotMode]==="update")&&this[kSnapshotPath]&&this.loadSnapshots().catch(()=>{})}dispatch(opts,handler){let mode=this[kSnapshotMode];if(this[kSnapshotRecorder].isUrlExcluded(opts))return this[kRealAgent].dispatch(opts,handler);if(mode==="playback"||mode==="update"){if(!this[kSnapshotLoaded])return this.#asyncDispatch(opts,handler);let snapshot=this[kSnapshotRecorder].findSnapshot(opts);if(snapshot)return this.#replaySnapshot(snapshot,handler);if(mode==="update")return this.#recordAndReplay(opts,handler);{let error=new UndiciError(`No snapshot found for ${opts.method||"GET"} ${opts.path}`);if(handler.onResponseError){handler.onResponseError(null,error);return}throw error}}else if(mode==="record")return this.#recordAndReplay(opts,handler)}async#asyncDispatch(opts,handler){return await this.loadSnapshots(),this.dispatch(opts,handler)}#recordAndReplay(opts,handler){let responseData={statusCode:null,headers:{},trailers:{},body:[]},self=this,recordingHandler={onRequestStart(controller,context){return handler.onRequestStart(controller,{...context,history:this.history})},onRequestUpgrade(controller,statusCode,headers,socket){return handler.onRequestUpgrade(controller,statusCode,headers,socket)},onResponseStart(controller,statusCode,headers,statusMessage){return responseData.statusCode=statusCode,responseData.headers=headers,handler.onResponseStart(controller,statusCode,headers,statusMessage)},onResponseData(controller,chunk){return responseData.body.push(chunk),handler.onResponseData(controller,chunk)},onResponseEnd(controller,trailers){responseData.trailers=trailers;let responseBody=Buffer.concat(responseData.body);self[kSnapshotRecorder].record(opts,{statusCode:responseData.statusCode,headers:responseData.headers,body:responseBody,trailers:responseData.trailers}).then(()=>handler.onResponseEnd(controller,trailers)).catch(error=>handler.onResponseError(controller,error))},onResponseError(controller,error){return handler.onResponseError(controller,error)}};return this[kRealAgent].dispatch(opts,recordingHandler)}#replaySnapshot(snapshot,handler){try{let{response}=snapshot,rawHeaders=response.headers?util.toRawHeaders(response.headers):[],rawTrailers=response.trailers?util.toRawHeaders(response.trailers):[],controller={rawHeaders,rawTrailers,pause(){},resume(){},abort(reason){this.aborted=!0,this.reason=reason},aborted:!1,paused:!1};handler.onRequestStart(controller),handler.onResponseStart(controller,response.statusCode,response.headers,response.statusMessage);let body=Buffer.from(response.body,"base64");handler.onResponseData(controller,body),handler.onResponseEnd(controller,response.trailers)}catch(error){handler.onResponseError?.(null,error)}}async loadSnapshots(filePath){await this[kSnapshotRecorder].loadSnapshots(filePath||this[kSnapshotPath]),this[kSnapshotLoaded]=!0,this[kSnapshotMode]==="playback"&&this.#setupMockInterceptors()}async saveSnapshots(filePath){return this[kSnapshotRecorder].saveSnapshots(filePath||this[kSnapshotPath])}#setupMockInterceptors(){for(let snapshot of this[kSnapshotRecorder].getSnapshots()){let{request,responses,response}=snapshot,url=new URL(request.url),mockPool=this.get(url.origin),responseData=responses?responses[0]:response;responseData&&mockPool.intercept({path:url.pathname+url.search,method:request.method,headers:request.headers,body:request.body}).reply(responseData.statusCode,responseData.body,{headers:responseData.headers,trailers:responseData.trailers}).persist()}}getRecorder(){return this[kSnapshotRecorder]}getMode(){return this[kSnapshotMode]}clearSnapshots(){this[kSnapshotRecorder].clear()}resetCallCounts(){this[kSnapshotRecorder].resetCallCounts()}deleteSnapshot(requestOpts){return this[kSnapshotRecorder].deleteSnapshot(requestOpts)}getSnapshotInfo(requestOpts){return this[kSnapshotRecorder].getSnapshotInfo(requestOpts)}replaceSnapshots(snapshotData){this[kSnapshotRecorder].replaceSnapshots(snapshotData)}async close(){this[kSnapshotMode]==="playback"?this[kSnapshotRecorder].destroy():await this[kSnapshotRecorder].close(),await this[kRealAgent]?.close(),await super.close()}};module.exports=SnapshotAgent}});var require_global2=__commonJS({"node_modules/undici/lib/global.js"(exports,module){"use strict";var globalDispatcher=Symbol.for("undici.globalDispatcher.2"),legacyGlobalDispatcher=Symbol.for("undici.globalDispatcher.1"),{InvalidArgumentError}=require_errors(),Agent=require_agent(),Dispatcher1Wrapper=require_dispatcher1_wrapper(),fallbackDispatcher;getGlobalDispatcher()===void 0&&setGlobalDispatcher(new Agent);function setGlobalDispatcher(agent){if(!agent||typeof agent.dispatch!="function")throw new InvalidArgumentError("Argument agent must implement Agent");try{Object.defineProperty(globalThis,globalDispatcher,{value:agent,writable:!0,enumerable:!1,configurable:!1})}catch(err){if(err instanceof TypeError){fallbackDispatcher=agent;return}throw err}try{let legacyAgent=agent instanceof Dispatcher1Wrapper?agent:new Dispatcher1Wrapper(agent);Object.defineProperty(globalThis,legacyGlobalDispatcher,{value:legacyAgent,writable:!0,enumerable:!1,configurable:!1})}catch(err){if(!(err instanceof TypeError))throw err}}function getGlobalDispatcher(){return globalThis[globalDispatcher]??fallbackDispatcher}var installedExports=["fetch","Headers","Response","Request","FormData","WebSocket","CloseEvent","ErrorEvent","MessageEvent","EventSource"];module.exports={setGlobalDispatcher,getGlobalDispatcher,installedExports}}});var require_decorator_handler=__commonJS({"node_modules/undici/lib/handler/decorator-handler.js"(exports,module){"use strict";var assert=__require("node:assert");module.exports=class{#handler;#onCompleteCalled=!1;#onErrorCalled=!1;#onResponseStartCalled=!1;constructor(handler){if(typeof handler!="object"||handler===null)throw new TypeError("handler must be an object");this.#handler=handler}onRequestStart(...args){this.#handler.onRequestStart?.(...args)}onRequestUpgrade(...args){return assert(!this.#onCompleteCalled),assert(!this.#onErrorCalled),this.#handler.onRequestUpgrade?.(...args)}onResponseStart(...args){return assert(!this.#onCompleteCalled),assert(!this.#onErrorCalled),assert(!this.#onResponseStartCalled),this.#onResponseStartCalled=!0,this.#handler.onResponseStart?.(...args)}onResponseData(...args){return assert(!this.#onCompleteCalled),assert(!this.#onErrorCalled),this.#handler.onResponseData?.(...args)}onResponseEnd(...args){return assert(!this.#onCompleteCalled),assert(!this.#onErrorCalled),this.#onCompleteCalled=!0,this.#handler.onResponseEnd?.(...args)}onResponseError(...args){return this.#onErrorCalled=!0,this.#handler.onResponseError?.(...args)}onBodySent(){}}}});var require_redirect_handler=__commonJS({"node_modules/undici/lib/handler/redirect-handler.js"(exports,module){"use strict";var util=require_util(),assert=__require("node:assert"),{InvalidArgumentError}=require_errors(),redirectableStatusCodes=[300,301,302,303,307,308],noop=()=>{},RedirectHandler=class _RedirectHandler{static buildDispatch(dispatcher,maxRedirections){if(maxRedirections!=null&&(!Number.isInteger(maxRedirections)||maxRedirections<0))throw new InvalidArgumentError("maxRedirections must be a positive number");let dispatch=dispatcher.dispatch.bind(dispatcher);return(opts,originalHandler)=>dispatch(opts,new _RedirectHandler(dispatch,maxRedirections,opts,originalHandler))}constructor(dispatch,maxRedirections,opts,handler){if(maxRedirections!=null&&(!Number.isInteger(maxRedirections)||maxRedirections<0))throw new InvalidArgumentError("maxRedirections must be a positive number");if(opts.throwOnMaxRedirect!=null&&typeof opts.throwOnMaxRedirect!="boolean")throw new InvalidArgumentError("throwOnMaxRedirect must be a boolean");this.dispatch=dispatch,this.location=null;let{maxRedirections:_,stripHeadersOnRedirect,stripHeadersOnCrossOriginRedirect,...cleanOpts}=opts;this.opts=cleanOpts,this.opts.body=util.wrapRequestBody(this.opts.body),this.stripHeadersOnRedirect=normalizeStripHeaders(stripHeadersOnRedirect,"stripHeadersOnRedirect"),this.stripHeadersOnCrossOriginRedirect=normalizeStripHeaders(stripHeadersOnCrossOriginRedirect,"stripHeadersOnCrossOriginRedirect"),this.maxRedirections=maxRedirections,this.handler=handler,this.history=[]}onRequestStart(controller,context){this.handler.onRequestStart?.(controller,{...context,history:this.history})}onRequestUpgrade(controller,statusCode,headers,socket){this.handler.onRequestUpgrade?.(controller,statusCode,headers,socket)}onResponseStart(controller,statusCode,headers,statusMessage){if(this.opts.throwOnMaxRedirect&&this.history.length>=this.maxRedirections)throw new Error("max redirects");let removeContentHeaders=statusCode===303;if((statusCode===301||statusCode===302)&&this.opts.method==="POST"&&(this.opts.method="GET",util.isStream(this.opts.body)&&util.destroy(this.opts.body.on("error",noop)),this.opts.body=null,removeContentHeaders=!0),statusCode===303&&this.opts.method!=="HEAD"&&(this.opts.method="GET",util.isStream(this.opts.body)&&util.destroy(this.opts.body.on("error",noop)),this.opts.body=null),this.location=this.history.length>=this.maxRedirections||util.isDisturbed(this.opts.body)||redirectableStatusCodes.indexOf(statusCode)===-1?null:headers.location,this.opts.origin&&this.history.push(new URL(this.opts.path,this.opts.origin)),!this.location){this.handler.onResponseStart?.(controller,statusCode,headers,statusMessage);return}let{origin,pathname,search}=util.parseURL(new URL(this.location,this.opts.origin&&new URL(this.opts.path,this.opts.origin))),path=search?`${pathname}${search}`:pathname,redirectUrlString=`${origin}${path}`;for(let historyUrl of this.history)if(historyUrl.toString()===redirectUrlString)throw new InvalidArgumentError(`Redirect loop detected. Cannot redirect to ${origin}. This typically happens when using a Client or Pool with cross-origin redirects. Use an Agent for cross-origin redirects.`);this.opts.headers=cleanRequestHeaders(this.opts.headers,removeContentHeaders,this.opts.origin!==origin,this.stripHeadersOnRedirect,this.stripHeadersOnCrossOriginRedirect),this.opts.path=path,this.opts.origin=origin,this.opts.query=null}onResponseData(controller,chunk){this.location||this.handler.onResponseData?.(controller,chunk)}onResponseEnd(controller,trailers){this.location?this.dispatch(this.opts,this):this.handler.onResponseEnd(controller,trailers)}onResponseError(controller,error){this.handler.onResponseError?.(controller,error)}};function shouldRemoveHeader(header,removeContent,unknownOrigin,stripHeaders,stripHeadersOnCrossOrigin){let name=util.headerNameToString(header);return name==="host"||stripHeaders?.has(name)||unknownOrigin&&stripHeadersOnCrossOrigin?.has(name)||removeContent&&name.startsWith("content-")?!0:unknownOrigin?name==="authorization"||name==="cookie"||name==="proxy-authorization":!1}function normalizeStripHeaders(headers,optionName){if(headers==null)return null;if(!Array.isArray(headers))throw new InvalidArgumentError(`${optionName} must be an array`);let normalized=new Set;for(let header of headers){if(typeof header!="string")throw new InvalidArgumentError(`${optionName} must contain header names`);normalized.add(util.headerNameToString(header))}return normalized}function cleanRequestHeaders(headers,removeContent,unknownOrigin,stripHeaders,stripHeadersOnCrossOrigin){let ret=[];if(Array.isArray(headers))for(let i=0;i<headers.length;i+=2)shouldRemoveHeader(headers[i],removeContent,unknownOrigin,stripHeaders,stripHeadersOnCrossOrigin)||ret.push(headers[i],headers[i+1]);else if(headers&&typeof headers=="object"){let entries=util.hasSafeIterator(headers)?headers:Object.entries(headers);for(let[key,value]of entries)shouldRemoveHeader(key,removeContent,unknownOrigin,stripHeaders,stripHeadersOnCrossOrigin)||ret.push(key,value)}else assert(headers==null,"headers must be an object or an array");return ret}module.exports=RedirectHandler}});var require_redirect=__commonJS({"node_modules/undici/lib/interceptor/redirect.js"(exports,module){"use strict";var RedirectHandler=require_redirect_handler();function createRedirectInterceptor({maxRedirections:defaultMaxRedirections,throwOnMaxRedirect:defaultThrowOnMaxRedirect,stripHeadersOnRedirect:defaultStripHeadersOnRedirect,stripHeadersOnCrossOriginRedirect:defaultStripHeadersOnCrossOriginRedirect}={}){return dispatch=>function(opts,handler){let{maxRedirections=defaultMaxRedirections,throwOnMaxRedirect=defaultThrowOnMaxRedirect,stripHeadersOnRedirect=defaultStripHeadersOnRedirect,stripHeadersOnCrossOriginRedirect=defaultStripHeadersOnCrossOriginRedirect,...rest}=opts;if(maxRedirections==null||maxRedirections===0)return dispatch(opts,handler);let dispatchOpts={...rest,throwOnMaxRedirect,stripHeadersOnRedirect,stripHeadersOnCrossOriginRedirect},redirectHandler=new RedirectHandler(dispatch,maxRedirections,dispatchOpts,handler);return dispatch(dispatchOpts,redirectHandler)}}module.exports=createRedirectInterceptor}});var require_response_error=__commonJS({"node_modules/undici/lib/interceptor/response-error.js"(exports,module){"use strict";var DecoratorHandler=require_decorator_handler(),{ResponseError}=require_errors(),ResponseErrorHandler=class extends DecoratorHandler{#statusCode;#contentType;#decoder;#headers;#body;constructor(_opts,{handler}){super(handler)}#checkContentType(contentType){return(this.#contentType??"").indexOf(contentType)===0}onRequestStart(controller,context){return this.#statusCode=0,this.#contentType=null,this.#decoder=null,this.#headers=null,this.#body="",super.onRequestStart(controller,context)}onResponseStart(controller,statusCode,headers,statusMessage){if(this.#statusCode=statusCode,this.#headers=headers,this.#contentType=headers["content-type"],this.#statusCode<400)return super.onResponseStart(controller,statusCode,headers,statusMessage);(this.#checkContentType("application/json")||this.#checkContentType("text/plain"))&&(this.#decoder=new TextDecoder("utf-8"))}onResponseData(controller,chunk){if(this.#statusCode<400)return super.onResponseData(controller,chunk);this.#body+=this.#decoder?.decode(chunk,{stream:!0})??""}onResponseEnd(controller,trailers){if(this.#statusCode>=400){if(this.#body+=this.#decoder?.decode(void 0,{stream:!1})??"",this.#checkContentType("application/json"))try{this.#body=JSON.parse(this.#body)}catch{}let err,stackTraceLimit=Error.stackTraceLimit;Error.stackTraceLimit=0;try{err=new ResponseError("Response Error",this.#statusCode,{body:this.#body,headers:this.#headers})}finally{Error.stackTraceLimit=stackTraceLimit}super.onResponseError(controller,err)}else super.onResponseEnd(controller,trailers)}onResponseError(controller,err){super.onResponseError(controller,err)}};module.exports=()=>dispatch=>function(opts,handler){return dispatch(opts,new ResponseErrorHandler(opts,{handler}))}}});var require_retry=__commonJS({"node_modules/undici/lib/interceptor/retry.js"(exports,module){"use strict";var RetryHandler=require_retry_handler();module.exports=globalOpts=>dispatch=>function(opts,handler){return dispatch(opts,new RetryHandler({...opts,retryOptions:{...globalOpts,...opts.retryOptions}},{handler,dispatch}))}}});var require_dump=__commonJS({"node_modules/undici/lib/interceptor/dump.js"(exports,module){"use strict";var{InvalidArgumentError,RequestAbortedError}=require_errors(),DecoratorHandler=require_decorator_handler(),DumpHandler=class extends DecoratorHandler{#maxSize=1024*1024;#dumped=!1;#size=0;#controller=null;aborted=!1;reason=!1;constructor({maxSize,signal},handler){if(maxSize!=null&&(!Number.isFinite(maxSize)||maxSize<1))throw new InvalidArgumentError("maxSize must be a number greater than 0");super(handler),this.#maxSize=maxSize??this.#maxSize}#abort(reason){this.aborted=!0,this.reason=reason}onRequestStart(controller,context){return controller.abort=this.#abort.bind(this),this.#controller=controller,super.onRequestStart(controller,context)}onResponseStart(controller,statusCode,headers,statusMessage){let contentLength=headers["content-length"];if(contentLength!=null&&contentLength>this.#maxSize)throw new RequestAbortedError(`Response size (${contentLength}) larger than maxSize (${this.#maxSize})`);return this.aborted===!0?!0:super.onResponseStart(controller,statusCode,headers,statusMessage)}onResponseError(controller,err){this.#dumped||(err=this.#controller?.reason??err,super.onResponseError(controller,err))}onResponseData(controller,chunk){return this.#size=this.#size+chunk.length,this.#size>=this.#maxSize&&(this.#dumped=!0,this.aborted===!0?super.onResponseError(controller,this.reason):super.onResponseEnd(controller,{})),!0}onResponseEnd(controller,trailers){if(!this.#dumped){if(this.#controller.aborted===!0){super.onResponseError(controller,this.reason);return}super.onResponseEnd(controller,trailers)}}};function createDumpInterceptor({maxSize:defaultMaxSize}={maxSize:1024*1024}){return dispatch=>function(opts,handler){let{dumpMaxSize=defaultMaxSize}=opts,dumpHandler=new DumpHandler({maxSize:dumpMaxSize,signal:opts.signal},handler);return dispatch(opts,dumpHandler)}}module.exports=createDumpInterceptor}});var require_dns=__commonJS({"node_modules/undici/lib/interceptor/dns.js"(exports,module){"use strict";var{isIP}=__require("node:net"),{lookup}=__require("node:dns"),DecoratorHandler=require_decorator_handler(),{InvalidArgumentError,InformationalError}=require_errors(),maxInt=Math.pow(2,31)-1;function hasSafeIterator(headers){let prototype=Object.getPrototypeOf(headers);return Object.hasOwn(headers,Symbol.iterator)||prototype!=null&&prototype!==Object.prototype&&typeof headers[Symbol.iterator]=="function"}function isHostHeader(key){return typeof key=="string"&&key.toLowerCase()==="host"}function normalizeHeaders(headers){if(headers==null)return null;if(Array.isArray(headers)){if(headers.length===0||!Array.isArray(headers[0]))return headers;let normalized=[];for(let header of headers)Array.isArray(header)&&header.length===2?normalized.push(header[0],header[1]):normalized.push(header);return normalized}if(typeof headers=="object"&&hasSafeIterator(headers)){let normalized=[];for(let header of headers)Array.isArray(header)&&header.length===2?normalized.push(header[0],header[1]):normalized.push(header);return normalized}return headers}function hasHostHeader(headers){if(headers==null)return!1;if(Array.isArray(headers)){if(headers.length===0)return!1;for(let i=0;i<headers.length;i+=2)if(isHostHeader(headers[i]))return!0;return!1}if(typeof headers=="object"){for(let key in headers)if(isHostHeader(key))return!0}return!1}function withHostHeader(host,headers){let normalizedHeaders=normalizeHeaders(headers);return hasHostHeader(normalizedHeaders)?normalizedHeaders:Array.isArray(normalizedHeaders)?["host",host,...normalizedHeaders]:normalizedHeaders&&typeof normalizedHeaders=="object"?{host,...normalizedHeaders}:{host}}var DNSStorage=class{#maxItems=0;#records=new Map;constructor(opts){this.#maxItems=opts.maxItems}get size(){return this.#records.size}get(hostname){return this.#records.get(hostname)??null}set(hostname,records){this.#records.set(hostname,records)}delete(hostname){this.#records.delete(hostname)}full(){return this.size>=this.#maxItems}},DNSInstance=class{#maxTTL=0;#maxItems=0;dualStack=!0;affinity=null;lookup=null;pick=null;storage=null;constructor(opts){this.#maxTTL=opts.maxTTL,this.#maxItems=opts.maxItems,this.dualStack=opts.dualStack,this.affinity=opts.affinity,this.lookup=opts.lookup??this.#defaultLookup,this.pick=opts.pick??this.#defaultPick,this.storage=opts.storage??new DNSStorage(opts)}runLookup(origin,opts,cb){let ips=this.storage.get(origin.hostname);if(ips==null&&this.storage.full()){cb(null,origin);return}let newOpts={affinity:this.affinity,dualStack:this.dualStack,lookup:this.lookup,pick:this.pick,...opts.dns,maxTTL:this.#maxTTL,maxItems:this.#maxItems};if(ips==null)this.lookup(origin,newOpts,(err,addresses)=>{if(err||addresses==null||addresses.length===0){cb(err??new InformationalError("No DNS entries found"));return}this.setRecords(origin,addresses);let records=this.storage.get(origin.hostname),ip=this.pick(origin,records,newOpts.affinity),port;typeof ip.port=="number"?port=`:${ip.port}`:origin.port!==""?port=`:${origin.port}`:port="",cb(null,new URL(`${origin.protocol}//${ip.family===6?`[${ip.address}]`:ip.address}${port}`))});else{let ip=this.pick(origin,ips,newOpts.affinity);if(ip==null){this.storage.delete(origin.hostname),this.runLookup(origin,opts,cb);return}let port;typeof ip.port=="number"?port=`:${ip.port}`:origin.port!==""?port=`:${origin.port}`:port="",cb(null,new URL(`${origin.protocol}//${ip.family===6?`[${ip.address}]`:ip.address}${port}`))}}#defaultLookup(origin,opts,cb){lookup(origin.hostname,{all:!0,family:this.dualStack===!1?this.affinity:0,order:"ipv4first"},(err,addresses)=>{if(err)return cb(err);let results=new Map;for(let addr of addresses)results.set(`${addr.address}:${addr.family}`,addr);cb(null,results.values())})}#defaultPick(origin,hostnameRecords,affinity){let ip=null,{records,offset}=hostnameRecords,family;if(this.dualStack?(affinity==null&&(offset==null||offset===maxInt?(hostnameRecords.offset=0,affinity=4):(hostnameRecords.offset++,affinity=(hostnameRecords.offset&1)===1?6:4)),records[affinity]!=null&&records[affinity].ips.length>0?family=records[affinity]:family=records[affinity===4?6:4]):family=records[affinity],family==null||family.ips.length===0)return ip;family.offset==null||family.offset===maxInt?family.offset=0:family.offset++;let position=family.offset%family.ips.length;return ip=family.ips[position]??null,ip==null?ip:Date.now()-ip.timestamp>ip.ttl?(family.ips.splice(position,1),this.pick(origin,hostnameRecords,affinity)):ip}pickFamily(origin,ipFamily){let records=this.storage.get(origin.hostname)?.records;if(!records)return null;let family=records[ipFamily];if(!family)return null;family.offset==null||family.offset===maxInt?family.offset=0:family.offset++;let position=family.offset%family.ips.length,ip=family.ips[position]??null;return ip==null||Date.now()-ip.timestamp>ip.ttl&&family.ips.splice(position,1),ip}setRecords(origin,addresses){let timestamp=Date.now(),records={records:{4:null,6:null}},minTTL=this.#maxTTL;for(let record of addresses){record.timestamp=timestamp,typeof record.ttl=="number"?(record.ttl=Math.min(record.ttl,this.#maxTTL),minTTL=Math.min(minTTL,record.ttl)):record.ttl=this.#maxTTL;let familyRecords=records.records[record.family]??{ips:[]};familyRecords.ips.push(record),records.records[record.family]=familyRecords}this.storage.set(origin.hostname,records,{ttl:minTTL})}deleteRecords(origin){this.storage.delete(origin.hostname)}getHandler(meta,opts){return new DNSDispatchHandler(this,meta,opts)}},DNSDispatchHandler=class extends DecoratorHandler{#state=null;#opts=null;#dispatch=null;#origin=null;#controller=null;#newOrigin=null;#firstTry=!0;constructor(state,{origin,handler,dispatch,newOrigin},opts){super(handler),this.#origin=origin,this.#newOrigin=newOrigin,this.#opts={...opts},this.#state=state,this.#dispatch=dispatch}onResponseError(controller,err){switch(err.code){case"ETIMEDOUT":case"ECONNREFUSED":{if(this.#state.dualStack){if(!this.#firstTry){super.onResponseError(controller,err);return}this.#firstTry=!1;let otherFamily=this.#newOrigin.hostname[0]==="["?4:6,ip=this.#state.pickFamily(this.#origin,otherFamily);if(ip==null){super.onResponseError(controller,err);return}let port;typeof ip.port=="number"?port=`:${ip.port}`:this.#origin.port!==""?port=`:${this.#origin.port}`:port="";let dispatchOpts={...this.#opts,origin:`${this.#origin.protocol}//${ip.family===6?`[${ip.address}]`:ip.address}${port}`,headers:withHostHeader(this.#origin.host,this.#opts.headers)};this.#dispatch(dispatchOpts,this);return}super.onResponseError(controller,err);break}case"ENOTFOUND":this.#state.deleteRecords(this.#origin),super.onResponseError(controller,err);break;default:super.onResponseError(controller,err);break}}};module.exports=interceptorOpts=>{if(interceptorOpts?.maxTTL!=null&&(typeof interceptorOpts?.maxTTL!="number"||interceptorOpts?.maxTTL<0))throw new InvalidArgumentError("Invalid maxTTL. Must be a positive number");if(interceptorOpts?.maxItems!=null&&(typeof interceptorOpts?.maxItems!="number"||interceptorOpts?.maxItems<1))throw new InvalidArgumentError("Invalid maxItems. Must be a positive number and greater than zero");if(interceptorOpts?.affinity!=null&&interceptorOpts?.affinity!==4&&interceptorOpts?.affinity!==6)throw new InvalidArgumentError("Invalid affinity. Must be either 4 or 6");if(interceptorOpts?.dualStack!=null&&typeof interceptorOpts?.dualStack!="boolean")throw new InvalidArgumentError("Invalid dualStack. Must be a boolean");if(interceptorOpts?.lookup!=null&&typeof interceptorOpts?.lookup!="function")throw new InvalidArgumentError("Invalid lookup. Must be a function");if(interceptorOpts?.pick!=null&&typeof interceptorOpts?.pick!="function")throw new InvalidArgumentError("Invalid pick. Must be a function");if(interceptorOpts?.storage!=null&&(typeof interceptorOpts?.storage?.get!="function"||typeof interceptorOpts?.storage?.set!="function"||typeof interceptorOpts?.storage?.full!="function"||typeof interceptorOpts?.storage?.delete!="function"))throw new InvalidArgumentError("Invalid storage. Must be a object with methods: { get, set, full, delete }");let dualStack=interceptorOpts?.dualStack??!0,affinity;dualStack?affinity=interceptorOpts?.affinity??null:affinity=interceptorOpts?.affinity??4;let opts={maxTTL:interceptorOpts?.maxTTL??1e4,lookup:interceptorOpts?.lookup??null,pick:interceptorOpts?.pick??null,dualStack,affinity,maxItems:interceptorOpts?.maxItems??1/0,storage:interceptorOpts?.storage},instance=new DNSInstance(opts);return dispatch=>function(origDispatchOpts,handler){if(origDispatchOpts.origin==null)return dispatch(origDispatchOpts,handler);let origin=origDispatchOpts.origin.constructor===URL?origDispatchOpts.origin:new URL(origDispatchOpts.origin);return isIP(origin.hostname)!==0?dispatch(origDispatchOpts,handler):(instance.runLookup(origin,origDispatchOpts,(err,newOrigin)=>{if(err)return handler.onResponseError(null,err);let dispatchOpts={...origDispatchOpts,servername:origin.hostname,origin:newOrigin.origin,headers:withHostHeader(origin.host,origDispatchOpts.headers)};dispatch(dispatchOpts,instance.getHandler({origin,dispatch,handler,newOrigin},origDispatchOpts))}),!0)}}}});var require_cache=__commonJS({"node_modules/undici/lib/util/cache.js"(exports,module){"use strict";var{safeHTTPMethods,pathHasQueryOrFragment,hasSafeIterator,isValidHTTPToken}=require_util(),{serializePathWithQuery}=require_util(),MAX_DELTA_SECONDS=2147483647,RESTRICTIVE_DIRECTIVE_NAMES=["no-store","private","no-cache"],kInvalidCacheControlDirectives=Symbol("invalid cache-control directives");function trimOWS(value){return value.replace(/^[\t ]+|[\t ]+$/g,"")}function arrayIncludes(array,value){for(let i=0;i<array.length;i++)if(array[i]===value)return!0;return!1}function trimOWSStart(value){return value.replace(/^[\t ]+/,"")}function trimOWSEnd(value){return value.replace(/[\t ]+$/,"")}function findUnescapedQuote(value,start){let escaped=!1;for(let i=start;i<value.length;i++)if(escaped)escaped=!1;else if(value[i]==="\\")escaped=!0;else if(value[i]==='"')return i;return-1}function splitCacheControlHeaderValue(value){let directives=[],start=0,quoteStart=-1,inQuote=!1,escaped=!1;for(let i=0;i<value.length;i++)inQuote?escaped?escaped=!1:value[i]==="\\"?escaped=!0:value[i]==='"'&&(inQuote=!1,quoteStart=-1):value[i]==='"'?(inQuote=!0,quoteStart=i):value[i]===","&&(directives.push({value:value.substring(start,i),fromMalformedQuote:!1}),start=i+1);if(!inQuote)return directives.push({value:value.substring(start),fromMalformedQuote:!1}),directives;let tail=value.substring(start),quoteOffset=quoteStart-start,tailStart=0;for(let i=0;i<tail.length;i++)tail[i]===","&&(directives.push({value:tail.substring(tailStart,i),fromMalformedQuote:tailStart>quoteOffset}),tailStart=i+1);return directives.push({value:tail.substring(tailStart),fromMalformedQuote:tailStart>quoteOffset}),directives}function markInvalidCacheControlDirective(directives,key){let invalidDirectives=directives[kInvalidCacheControlDirectives];invalidDirectives===void 0&&(invalidDirectives=new Set,Object.defineProperty(directives,kInvalidCacheControlDirectives,{value:invalidDirectives})),invalidDirectives.add(key)}function hasInvalidCacheControlDirective(directives,key){return directives[kInvalidCacheControlDirectives]?.has(key)===!0}function getMalformedRestrictiveDirectiveName(key){for(let directiveName of RESTRICTIVE_DIRECTIVE_NAMES)if(key.startsWith(directiveName)&&key.length>directiveName.length&&!isValidHTTPToken(key[directiveName.length]))return directiveName;let tokenOnlyKey="",hasInvalidTokenChar=!1;for(let i=0;i<key.length;i++)isValidHTTPToken(key[i])?tokenOnlyKey+=key[i]:hasInvalidTokenChar=!0;if(hasInvalidTokenChar&&arrayIncludes(RESTRICTIVE_DIRECTIVE_NAMES,tokenOnlyKey))return tokenOnlyKey}function makeCacheKey(opts){let origin=opts.origin?opts.origin.toString():"",fullPath=opts.path||"/";return opts.query&&!pathHasQueryOrFragment(fullPath)&&(fullPath=serializePathWithQuery(fullPath,opts.query)),{origin,method:opts.method,path:fullPath,headers:opts.headers}}function appendHeader(headers,key,val){let headerName=key.toLowerCase(),current=headers[headerName],values=Array.isArray(val)?val:[val];current===void 0?headers[headerName]=Array.isArray(val)?val.slice():val:Array.isArray(current)?current.push(...values):headers[headerName]=[current,...values]}function normalizeHeaders(opts){let headers;if(opts.headers==null)headers={};else if(typeof opts.headers=="object")if(headers={},hasSafeIterator(opts.headers))if(Array.isArray(opts.headers)){let first=opts.headers[0];if(Array.isArray(first))for(let x of opts.headers){if(!Array.isArray(x))throw new Error("opts.headers is not a valid header map");let[key,val]=x;if(typeof key!="string"||typeof val!="string")throw new Error("opts.headers is not a valid header map");appendHeader(headers,key,val)}else{let len=opts.headers.length;if(len%2!==0)throw new Error("opts.headers is not a valid header map");for(let i=0;i<len;i+=2){let key=opts.headers[i],val=opts.headers[i+1];if(typeof key!="string"||typeof val!="string"&&!Array.isArray(val))throw new Error("opts.headers is not a valid header map");if(typeof val=="string")appendHeader(headers,key,val);else{let mapped=[];for(let j=0;j<val.length;j++){let v=val[j];mapped.push(typeof v=="string"?v:v.toString("latin1"))}appendHeader(headers,key,mapped)}}}}else for(let x of opts.headers){if(!Array.isArray(x))throw new Error("opts.headers is not a valid header map");let[key,val]=x;if(typeof key!="string"||typeof val!="string")throw new Error("opts.headers is not a valid header map");appendHeader(headers,key,val)}else for(let key of Object.keys(opts.headers))appendHeader(headers,key,opts.headers[key]);else throw new Error("opts.headers is not an object");return headers}function assertCacheKey(key){if(typeof key!="object")throw new TypeError(`expected key to be object, got ${typeof key}`);for(let property of["origin","method","path"])if(typeof key[property]!="string")throw new TypeError(`expected key.${property} to be string, got ${typeof key[property]}`);if(key.headers!==void 0&&typeof key.headers!="object")throw new TypeError(`expected headers to be object, got ${typeof key}`)}function assertCacheValue(value){if(typeof value!="object")throw new TypeError(`expected value to be object, got ${typeof value}`);for(let property of["statusCode","cachedAt","staleAt","deleteAt"])if(typeof value[property]!="number")throw new TypeError(`expected value.${property} to be number, got ${typeof value[property]}`);if(typeof value.statusMessage!="string")throw new TypeError(`expected value.statusMessage to be string, got ${typeof value.statusMessage}`);if(value.headers!=null&&typeof value.headers!="object")throw new TypeError(`expected value.rawHeaders to be object, got ${typeof value.headers}`);if(value.vary!==void 0&&typeof value.vary!="object")throw new TypeError(`expected value.vary to be object, got ${typeof value.vary}`);if(value.etag!==void 0&&typeof value.etag!="string")throw new TypeError(`expected value.etag to be string, got ${typeof value.etag}`)}function parseCacheControlHeader(header){let output={},invalidNumericDirectives=new Set,invalidNoArgumentDirectives=new Set,directives=splitCacheControlHeaderValue(Array.isArray(header)?header.join(","):header);for(let i=0;i<directives.length;i++){let directiveRecord=directives[i],directive=directiveRecord.value.toLowerCase(),fromMalformedQuote=directiveRecord.fromMalformedQuote,keyValueDelimiter=directive.indexOf("="),key,value,keyHasTrailingWhitespace=!1,valueHasLeadingWhitespace=!1;if(keyValueDelimiter!==-1){let rawKey=directive.substring(0,keyValueDelimiter),rawValue=directive.substring(keyValueDelimiter+1);keyHasTrailingWhitespace=trimOWSEnd(rawKey)!==rawKey,valueHasLeadingWhitespace=trimOWSStart(rawValue)!==rawValue,key=trimOWS(rawKey),value=trimOWSStart(rawValue)}else key=trimOWS(directive);let malformedRestrictiveDirectiveName=getMalformedRestrictiveDirectiveName(key);if(malformedRestrictiveDirectiveName!==void 0){output[malformedRestrictiveDirectiveName]=!0;continue}switch(key){case"min-fresh":case"max-stale":case"max-age":case"s-maxage":case"stale-while-revalidate":case"stale-if-error":{if(fromMalformedQuote||invalidNumericDirectives.has(key))continue;if(value===void 0||keyHasTrailingWhitespace||valueHasLeadingWhitespace){delete output[key],invalidNumericDirectives.add(key),markInvalidCacheControlDirective(output,key);continue}if(value.length>=2&&value[0]==='"'&&value[value.length-1]==='"'&&(value=value.substring(1,value.length-1)),!/^[0-9]+$/.test(value)){delete output[key],invalidNumericDirectives.add(key),markInvalidCacheControlDirective(output,key);continue}let parsedValue=Math.min(parseInt(value,10),MAX_DELTA_SECONDS);key==="min-fresh"?(!(key in output)||output[key]<parsedValue)&&(output[key]=parsedValue):(!(key in output)||output[key]>parsedValue)&&(output[key]=parsedValue);break}case"private":case"no-cache":{if(fromMalformedQuote){output[key]=!0;break}if(value!==void 0&&value.length===0){output[key]=!0;break}if(value){if(value[0]==='"'){value=trimOWSEnd(value);let fieldList="",lastQuotedPart=i,foundEndingQuote=!1,closingQuote=findUnescapedQuote(value,1);if(closingQuote!==-1)fieldList=value.substring(1,closingQuote),foundEndingQuote=!0;else{let fieldListParts=[value.substring(1)];for(let j=i+1;j<directives.length;j++){let nextPart=trimOWS(directives[j].value),closingQuote2=findUnescapedQuote(nextPart,0);if(lastQuotedPart=j,closingQuote2!==-1){fieldListParts.push(nextPart.substring(0,closingQuote2)),foundEndingQuote=!0;break}fieldListParts.push(nextPart)}fieldList=fieldListParts.join(",")}if(!foundEndingQuote){output[key]=!0;break}i=lastQuotedPart;let headers=fieldList.split(","),validFieldNames=!0;for(let j=0;j<headers.length;j++)headers[j]=trimOWS(headers[j]),isValidHTTPToken(headers[j])||(validFieldNames=!1);validFieldNames?output[key]!==!0&&(key in output?output[key]=output[key].concat(headers):output[key]=headers):output[key]=!0}else{let fieldName=trimOWS(value);isValidHTTPToken(fieldName)?output[key]!==!0&&(key in output?output[key]=output[key].concat(fieldName):output[key]=[fieldName]):output[key]=!0}break}}case"public":case"must-revalidate":case"proxy-revalidate":case"immutable":case"no-transform":case"must-understand":case"only-if-cached":if(fromMalformedQuote||invalidNoArgumentDirectives.has(key))continue;if(value!==void 0){delete output[key],invalidNoArgumentDirectives.add(key);continue}output[key]=!0;break;case"no-store":output[key]=!0;break;default:continue}}return output}function splitVaryHeader(varyHeader){let values=Array.isArray(varyHeader)?varyHeader:[varyHeader],output=[];for(let i=0;i<values.length;i++){let parts=values[i].split(",");for(let j=0;j<parts.length;j++)output.push(parts[j])}return output}function hasVaryStar(varyHeader){let values=splitVaryHeader(varyHeader);for(let i=0;i<values.length;i++)if(trimOWS(values[i]).indexOf("*")!==-1)return!0;return!1}function parseVaryHeader(varyHeader,headers){if(hasVaryStar(varyHeader))return headers;let output={},varyingHeaders=splitVaryHeader(varyHeader);for(let header of varyingHeaders){let trimmedHeader=trimOWS(header).toLowerCase();if(trimmedHeader.length===0)continue;if(!isValidHTTPToken(trimmedHeader))return;let headerValue=headers[trimmedHeader];output[trimmedHeader]=Array.isArray(headerValue)?headerValue.slice():headerValue??null}return output}function isInvalidOrWildcardVaryHeader(varyHeader){return hasVaryStar(varyHeader)||parseVaryHeader(varyHeader,{})===void 0}function isEtagUsable(etag){return etag.length<=2?!1:etag[0]==='"'&&etag[etag.length-1]==='"'?!(etag[1]==='"'||etag.startsWith('"W/')):etag.startsWith('W/"')&&etag[etag.length-1]==='"'?etag.length!==4:!1}function assertCacheStore(store,name="CacheStore"){if(typeof store!="object"||store===null)throw new TypeError(`expected type of ${name} to be a CacheStore, got ${store===null?"null":typeof store}`);for(let fn of["get","createWriteStream","delete"])if(typeof store[fn]!="function")throw new TypeError(`${name} needs to have a \`${fn}()\` function`)}function assertCacheMethods(methods,name="CacheMethods"){if(!Array.isArray(methods))throw new TypeError(`expected type of ${name} needs to be an array, got ${methods===null?"null":typeof methods}`);if(methods.length===0)throw new TypeError(`${name} needs to have at least one method`);for(let method of methods)if(!arrayIncludes(safeHTTPMethods,method))throw new TypeError(`element of ${name}-array needs to be one of following values: ${safeHTTPMethods.join(", ")}, got ${method}`)}function makeDeduplicationKey(cacheKey,excludeHeaders){let headers={};if(cacheKey.headers){let sortedHeaders=Object.keys(cacheKey.headers).sort();for(let header of sortedHeaders)excludeHeaders?.has(header.toLowerCase())||(headers[header]=cacheKey.headers[header])}return JSON.stringify([cacheKey.origin,cacheKey.method,cacheKey.path,headers])}module.exports={makeCacheKey,normalizeHeaders,assertCacheKey,assertCacheValue,parseCacheControlHeader,hasInvalidCacheControlDirective,parseVaryHeader,hasVaryStar,isInvalidOrWildcardVaryHeader,isEtagUsable,assertCacheMethods,assertCacheStore,makeDeduplicationKey}}});var require_date=__commonJS({"node_modules/undici/lib/util/date.js"(exports,module){"use strict";function parseHttpDate(date){switch(date[3]){case",":return parseImfDate(date);case" ":return parseAscTimeDate(date);default:return parseRfc850Date(date)}}function makeDate(year,monthIdx,day,hour,minute,second,weekday){let result=new Date(Date.UTC(year,monthIdx,day,hour,minute,second));return year>=0&&year<=99&&result.setUTCFullYear(year),result.getUTCFullYear()===year&&result.getUTCMonth()===monthIdx&&result.getUTCDate()===day&&result.getUTCHours()===hour&&result.getUTCMinutes()===minute&&result.getUTCSeconds()===second&&result.getUTCDay()===weekday?result:void 0}function parseImfDate(date){if(date.length!==29||date[4]!==" "||date[7]!==" "||date[11]!==" "||date[16]!==" "||date[19]!==":"||date[22]!==":"||date[25]!==" "||date[26]!=="G"||date[27]!=="M"||date[28]!=="T")return;let weekday=-1;if(date[0]==="S"&&date[1]==="u"&&date[2]==="n")weekday=0;else if(date[0]==="M"&&date[1]==="o"&&date[2]==="n")weekday=1;else if(date[0]==="T"&&date[1]==="u"&&date[2]==="e")weekday=2;else if(date[0]==="W"&&date[1]==="e"&&date[2]==="d")weekday=3;else if(date[0]==="T"&&date[1]==="h"&&date[2]==="u")weekday=4;else if(date[0]==="F"&&date[1]==="r"&&date[2]==="i")weekday=5;else if(date[0]==="S"&&date[1]==="a"&&date[2]==="t")weekday=6;else return;let day=0;if(date[5]==="0"){let code=date.charCodeAt(6);if(code<49||code>57)return;day=code-48}else{let code1=date.charCodeAt(5);if(code1<49||code1>51)return;let code2=date.charCodeAt(6);if(code2<48||code2>57)return;day=(code1-48)*10+(code2-48)}let monthIdx=-1;if(date[8]==="J"&&date[9]==="a"&&date[10]==="n")monthIdx=0;else if(date[8]==="F"&&date[9]==="e"&&date[10]==="b")monthIdx=1;else if(date[8]==="M"&&date[9]==="a")if(date[10]==="r")monthIdx=2;else if(date[10]==="y")monthIdx=4;else return;else if(date[8]==="J")if(date[9]==="a"&&date[10]==="n")monthIdx=0;else if(date[9]==="u")if(date[10]==="n")monthIdx=5;else if(date[10]==="l")monthIdx=6;else return;else return;else if(date[8]==="A")if(date[9]==="p"&&date[10]==="r")monthIdx=3;else if(date[9]==="u"&&date[10]==="g")monthIdx=7;else return;else if(date[8]==="S"&&date[9]==="e"&&date[10]==="p")monthIdx=8;else if(date[8]==="O"&&date[9]==="c"&&date[10]==="t")monthIdx=9;else if(date[8]==="N"&&date[9]==="o"&&date[10]==="v")monthIdx=10;else if(date[8]==="D"&&date[9]==="e"&&date[10]==="c")monthIdx=11;else return;let yearDigit1=date.charCodeAt(12);if(yearDigit1<48||yearDigit1>57)return;let yearDigit2=date.charCodeAt(13);if(yearDigit2<48||yearDigit2>57)return;let yearDigit3=date.charCodeAt(14);if(yearDigit3<48||yearDigit3>57)return;let yearDigit4=date.charCodeAt(15);if(yearDigit4<48||yearDigit4>57)return;let year=(yearDigit1-48)*1e3+(yearDigit2-48)*100+(yearDigit3-48)*10+(yearDigit4-48),hour=0;if(date[17]==="0"){let code=date.charCodeAt(18);if(code<48||code>57)return;hour=code-48}else{let code1=date.charCodeAt(17);if(code1<48||code1>50)return;let code2=date.charCodeAt(18);if(code2<48||code2>57||code1===50&&code2>51)return;hour=(code1-48)*10+(code2-48)}let minute=0;if(date[20]==="0"){let code=date.charCodeAt(21);if(code<48||code>57)return;minute=code-48}else{let code1=date.charCodeAt(20);if(code1<48||code1>53)return;let code2=date.charCodeAt(21);if(code2<48||code2>57)return;minute=(code1-48)*10+(code2-48)}let second=0;if(date[23]==="0"){let code=date.charCodeAt(24);if(code<48||code>57)return;second=code-48}else{let code1=date.charCodeAt(23);if(code1<48||code1>53)return;let code2=date.charCodeAt(24);if(code2<48||code2>57)return;second=(code1-48)*10+(code2-48)}return makeDate(year,monthIdx,day,hour,minute,second,weekday)}function parseAscTimeDate(date){if(date.length!==24||date[7]!==" "||date[10]!==" "||date[19]!==" ")return;let weekday=-1;if(date[0]==="S"&&date[1]==="u"&&date[2]==="n")weekday=0;else if(date[0]==="M"&&date[1]==="o"&&date[2]==="n")weekday=1;else if(date[0]==="T"&&date[1]==="u"&&date[2]==="e")weekday=2;else if(date[0]==="W"&&date[1]==="e"&&date[2]==="d")weekday=3;else if(date[0]==="T"&&date[1]==="h"&&date[2]==="u")weekday=4;else if(date[0]==="F"&&date[1]==="r"&&date[2]==="i")weekday=5;else if(date[0]==="S"&&date[1]==="a"&&date[2]==="t")weekday=6;else return;let monthIdx=-1;if(date[4]==="J"&&date[5]==="a"&&date[6]==="n")monthIdx=0;else if(date[4]==="F"&&date[5]==="e"&&date[6]==="b")monthIdx=1;else if(date[4]==="M"&&date[5]==="a")if(date[6]==="r")monthIdx=2;else if(date[6]==="y")monthIdx=4;else return;else if(date[4]==="J")if(date[5]==="a"&&date[6]==="n")monthIdx=0;else if(date[5]==="u")if(date[6]==="n")monthIdx=5;else if(date[6]==="l")monthIdx=6;else return;else return;else if(date[4]==="A")if(date[5]==="p"&&date[6]==="r")monthIdx=3;else if(date[5]==="u"&&date[6]==="g")monthIdx=7;else return;else if(date[4]==="S"&&date[5]==="e"&&date[6]==="p")monthIdx=8;else if(date[4]==="O"&&date[5]==="c"&&date[6]==="t")monthIdx=9;else if(date[4]==="N"&&date[5]==="o"&&date[6]==="v")monthIdx=10;else if(date[4]==="D"&&date[5]==="e"&&date[6]==="c")monthIdx=11;else return;let day=0;if(date[8]===" "){let code=date.charCodeAt(9);if(code<49||code>57)return;day=code-48}else{let code1=date.charCodeAt(8);if(code1<49||code1>51)return;let code2=date.charCodeAt(9);if(code2<48||code2>57)return;day=(code1-48)*10+(code2-48)}let hour=0;if(date[11]==="0"){let code=date.charCodeAt(12);if(code<48||code>57)return;hour=code-48}else{let code1=date.charCodeAt(11);if(code1<48||code1>50)return;let code2=date.charCodeAt(12);if(code2<48||code2>57||code1===50&&code2>51)return;hour=(code1-48)*10+(code2-48)}let minute=0;if(date[14]==="0"){let code=date.charCodeAt(15);if(code<48||code>57)return;minute=code-48}else{let code1=date.charCodeAt(14);if(code1<48||code1>53)return;let code2=date.charCodeAt(15);if(code2<48||code2>57)return;minute=(code1-48)*10+(code2-48)}let second=0;if(date[17]==="0"){let code=date.charCodeAt(18);if(code<48||code>57)return;second=code-48}else{let code1=date.charCodeAt(17);if(code1<48||code1>53)return;let code2=date.charCodeAt(18);if(code2<48||code2>57)return;second=(code1-48)*10+(code2-48)}let yearDigit1=date.charCodeAt(20);if(yearDigit1<48||yearDigit1>57)return;let yearDigit2=date.charCodeAt(21);if(yearDigit2<48||yearDigit2>57)return;let yearDigit3=date.charCodeAt(22);if(yearDigit3<48||yearDigit3>57)return;let yearDigit4=date.charCodeAt(23);if(yearDigit4<48||yearDigit4>57)return;let year=(yearDigit1-48)*1e3+(yearDigit2-48)*100+(yearDigit3-48)*10+(yearDigit4-48);return makeDate(year,monthIdx,day,hour,minute,second,weekday)}function parseRfc850Date(date){let commaIndex=-1,weekday=-1;if(date[0]==="S")date[1]==="u"&&date[2]==="n"&&date[3]==="d"&&date[4]==="a"&&date[5]==="y"?(weekday=0,commaIndex=6):date[1]==="a"&&date[2]==="t"&&date[3]==="u"&&date[4]==="r"&&date[5]==="d"&&date[6]==="a"&&date[7]==="y"&&(weekday=6,commaIndex=8);else if(date[0]==="M"&&date[1]==="o"&&date[2]==="n"&&date[3]==="d"&&date[4]==="a"&&date[5]==="y")weekday=1,commaIndex=6;else if(date[0]==="T")date[1]==="u"&&date[2]==="e"&&date[3]==="s"&&date[4]==="d"&&date[5]==="a"&&date[6]==="y"?(weekday=2,commaIndex=7):date[1]==="h"&&date[2]==="u"&&date[3]==="r"&&date[4]==="s"&&date[5]==="d"&&date[6]==="a"&&date[7]==="y"&&(weekday=4,commaIndex=8);else if(date[0]==="W"&&date[1]==="e"&&date[2]==="d"&&date[3]==="n"&&date[4]==="e"&&date[5]==="s"&&date[6]==="d"&&date[7]==="a"&&date[8]==="y")weekday=3,commaIndex=9;else if(date[0]==="F"&&date[1]==="r"&&date[2]==="i"&&date[3]==="d"&&date[4]==="a"&&date[5]==="y")weekday=5,commaIndex=6;else return;if(date[commaIndex]!==","||date.length-commaIndex-1!==23||date[commaIndex+1]!==" "||date[commaIndex+4]!=="-"||date[commaIndex+8]!=="-"||date[commaIndex+11]!==" "||date[commaIndex+14]!==":"||date[commaIndex+17]!==":"||date[commaIndex+20]!==" "||date[commaIndex+21]!=="G"||date[commaIndex+22]!=="M"||date[commaIndex+23]!=="T")return;let day=0;if(date[commaIndex+2]==="0"){let code=date.charCodeAt(commaIndex+3);if(code<49||code>57)return;day=code-48}else{let code1=date.charCodeAt(commaIndex+2);if(code1<49||code1>51)return;let code2=date.charCodeAt(commaIndex+3);if(code2<48||code2>57)return;day=(code1-48)*10+(code2-48)}let monthIdx=-1;if(date[commaIndex+5]==="J"&&date[commaIndex+6]==="a"&&date[commaIndex+7]==="n")monthIdx=0;else if(date[commaIndex+5]==="F"&&date[commaIndex+6]==="e"&&date[commaIndex+7]==="b")monthIdx=1;else if(date[commaIndex+5]==="M"&&date[commaIndex+6]==="a"&&date[commaIndex+7]==="r")monthIdx=2;else if(date[commaIndex+5]==="A"&&date[commaIndex+6]==="p"&&date[commaIndex+7]==="r")monthIdx=3;else if(date[commaIndex+5]==="M"&&date[commaIndex+6]==="a"&&date[commaIndex+7]==="y")monthIdx=4;else if(date[commaIndex+5]==="J"&&date[commaIndex+6]==="u"&&date[commaIndex+7]==="n")monthIdx=5;else if(date[commaIndex+5]==="J"&&date[commaIndex+6]==="u"&&date[commaIndex+7]==="l")monthIdx=6;else if(date[commaIndex+5]==="A"&&date[commaIndex+6]==="u"&&date[commaIndex+7]==="g")monthIdx=7;else if(date[commaIndex+5]==="S"&&date[commaIndex+6]==="e"&&date[commaIndex+7]==="p")monthIdx=8;else if(date[commaIndex+5]==="O"&&date[commaIndex+6]==="c"&&date[commaIndex+7]==="t")monthIdx=9;else if(date[commaIndex+5]==="N"&&date[commaIndex+6]==="o"&&date[commaIndex+7]==="v")monthIdx=10;else if(date[commaIndex+5]==="D"&&date[commaIndex+6]==="e"&&date[commaIndex+7]==="c")monthIdx=11;else return;let yearDigit1=date.charCodeAt(commaIndex+9);if(yearDigit1<48||yearDigit1>57)return;let yearDigit2=date.charCodeAt(commaIndex+10);if(yearDigit2<48||yearDigit2>57)return;let year=(yearDigit1-48)*10+(yearDigit2-48);year+=year<70?2e3:1900;let hour=0;if(date[commaIndex+12]==="0"){let code=date.charCodeAt(commaIndex+13);if(code<48||code>57)return;hour=code-48}else{let code1=date.charCodeAt(commaIndex+12);if(code1<48||code1>50)return;let code2=date.charCodeAt(commaIndex+13);if(code2<48||code2>57||code1===50&&code2>51)return;hour=(code1-48)*10+(code2-48)}let minute=0;if(date[commaIndex+15]==="0"){let code=date.charCodeAt(commaIndex+16);if(code<48||code>57)return;minute=code-48}else{let code1=date.charCodeAt(commaIndex+15);if(code1<48||code1>53)return;let code2=date.charCodeAt(commaIndex+16);if(code2<48||code2>57)return;minute=(code1-48)*10+(code2-48)}let second=0;if(date[commaIndex+18]==="0"){let code=date.charCodeAt(commaIndex+19);if(code<48||code>57)return;second=code-48}else{let code1=date.charCodeAt(commaIndex+18);if(code1<48||code1>53)return;let code2=date.charCodeAt(commaIndex+19);if(code2<48||code2>57)return;second=(code1-48)*10+(code2-48)}return makeDate(year,monthIdx,day,hour,minute,second,weekday)}module.exports={parseHttpDate}}});var require_cache_handler=__commonJS({"node_modules/undici/lib/handler/cache-handler.js"(exports,module){"use strict";var util=require_util(),{parseCacheControlHeader,hasInvalidCacheControlDirective,parseVaryHeader,hasVaryStar,isInvalidOrWildcardVaryHeader,isEtagUsable}=require_cache(),{parseHttpDate}=require_date();function noop(){}var HEURISTICALLY_CACHEABLE_STATUS_CODES=[200,203,204,206,300,301,308,404,405,410,414,501],NOT_UNDERSTOOD_STATUS_CODES=[206],MAX_RESPONSE_AGE=2147483647e3,REVALIDATION_ONLY_RETENTION=864e5;function trimOWS(value){return value.replace(/^[\t ]+|[\t ]+$/g,"")}function arrayIncludes(array,value){for(let i=0;i<array.length;i++)if(array[i]===value)return!0;return!1}function appendConnectionHeaderTokens(headersToRemove,connectionHeader){let values=Array.isArray(connectionHeader)?connectionHeader:[connectionHeader];for(let i=0;i<values.length;i++){let tokens=values[i].split(",");for(let j=0;j<tokens.length;j++)headersToRemove.push(trimOWS(tokens[j]).toLowerCase())}}function getSameOriginPath(cacheKey,location){if(typeof location!="string")return;let originUrl,requestUrl,locationUrl;try{originUrl=new URL(cacheKey.origin),requestUrl=new URL(cacheKey.path,originUrl),locationUrl=new URL(location,requestUrl)}catch{return}if(locationUrl.origin===originUrl.origin)return locationUrl.pathname+locationUrl.search}function deleteCachedUri(store,cacheKey,path){deleteCachedValue(store,{...cacheKey,path});for(let i=0;i<util.safeHTTPMethods.length;i++){let method=util.safeHTTPMethods[i];method!==cacheKey.method&&deleteCachedValue(store,{...cacheKey,method,path})}}function deleteLocationTargets(store,cacheKey,headerValue){if(headerValue===void 0)return;let values=Array.isArray(headerValue)?headerValue:[headerValue];for(let i=0;i<values.length;i++){let path=getSameOriginPath(cacheKey,values[i]);path!==void 0&&deleteCachedUri(store,cacheKey,path)}}function invalidateUnsafeRequest(store,cacheKey,resHeaders){deleteCachedUri(store,cacheKey,cacheKey.path),deleteLocationTargets(store,cacheKey,resHeaders.location),deleteLocationTargets(store,cacheKey,resHeaders["content-location"])}var CacheHandler=class{#cacheKey;#cacheType;#cacheByDefault;#store;#handler;#writeStream;constructor({store,type,cacheByDefault},cacheKey,handler){this.#store=store,this.#cacheType=type,this.#cacheByDefault=cacheByDefault,this.#cacheKey=cacheKey,this.#handler=handler}onRequestStart(controller,context){this.#writeStream?.destroy(),this.#writeStream=void 0,this.#handler.onRequestStart?.(controller,context)}onRequestUpgrade(controller,statusCode,headers,socket){this.#handler.onRequestUpgrade?.(controller,statusCode,headers,socket)}onResponseStart(controller,statusCode,resHeaders,statusMessage){let downstreamOnHeaders=()=>this.#handler.onResponseStart?.(controller,statusCode,resHeaders,statusMessage),handler=this;if(!arrayIncludes(util.safeHTTPMethods,this.#cacheKey.method)&&statusCode>=200&&statusCode<=399)return invalidateUnsafeRequest(this.#store,this.#cacheKey,resHeaders),downstreamOnHeaders();let cacheControlHeader=resHeaders["cache-control"],heuristicallyCacheable=resHeaders["last-modified"]&&arrayIncludes(HEURISTICALLY_CACHEABLE_STATUS_CODES,statusCode);if(!cacheControlHeader&&!resHeaders.expires&&!heuristicallyCacheable&&!this.#cacheByDefault)return statusCode===304&&resHeaders.vary&&isInvalidOrWildcardVaryHeader(resHeaders.vary)&&deleteCachedValue(this.#store,this.#cacheKey),downstreamOnHeaders();let cacheControlDirectives=cacheControlHeader?parseCacheControlHeader(cacheControlHeader):{};if(!canCacheResponse(this.#cacheType,statusCode,resHeaders,cacheControlDirectives,this.#cacheKey.headers))return statusCode===304&&(cacheControlHeader||revalidationResponseDisallowsCachedReuse(this.#cacheType,resHeaders,cacheControlDirectives))&&deleteCachedValue(this.#store,this.#cacheKey),downstreamOnHeaders();let now=Date.now(),resAge=Object.hasOwn(resHeaders,"age")?getAge(resHeaders.age):void 0;if(resAge!==void 0&&resAge>=MAX_RESPONSE_AGE)return deleteCachedValueIfNotModified(statusCode,this.#store,this.#cacheKey),downstreamOnHeaders();let resDate=Object.hasOwn(resHeaders,"date")?getDate(resHeaders.date):void 0;if(resDate===null)return deleteCachedValueIfNotModified(statusCode,this.#store,this.#cacheKey),downstreamOnHeaders();let apparentAge=resDate?Math.max(0,now-resDate.getTime()):0,currentAge=Math.max(apparentAge,resAge??0),hasValidator=typeof resHeaders.etag=="string"&&isEtagUsable(resHeaders.etag)||typeof resHeaders["last-modified"]=="string",staleAt=determineStaleAt(this.#cacheType,now,resAge,resHeaders,resDate,cacheControlDirectives,hasValidator)??this.#cacheByDefault,revalidationOnly=staleAt===0&&hasValidator;if(staleAt===void 0||currentAge>=staleAt&&!revalidationOnly)return(cacheControlHeader||staleAt!==void 0)&&deleteCachedValueIfNotModified(statusCode,this.#store,this.#cacheKey),downstreamOnHeaders();let baseTime=now-currentAge,absoluteStaleAt=staleAt+baseTime;if(now>=absoluteStaleAt&&!revalidationOnly)return deleteCachedValueIfNotModified(statusCode,this.#store,this.#cacheKey),downstreamOnHeaders();let varyDirectives;if(this.#cacheKey.headers&&resHeaders.vary&&(varyDirectives=parseVaryHeader(resHeaders.vary,this.#cacheKey.headers),!varyDirectives))return downstreamOnHeaders();let cachedAt=baseTime,deleteAt=determineDeleteAt(baseTime,now,cacheControlDirectives,absoluteStaleAt),strippedHeaders=stripNecessaryHeaders(resHeaders,cacheControlDirectives),value={statusCode,statusMessage,headers:strippedHeaders,vary:varyDirectives,cacheControlDirectives,cachedAt,staleAt:absoluteStaleAt,deleteAt};if(statusCode===304){let handle304=cachedValue=>{if(!cachedValue)return downstreamOnHeaders();if(value.statusCode=cachedValue.statusCode,value.statusMessage=cachedValue.statusMessage,value.etag=cachedValue.etag,value.vary=varyDirectives??cachedValue.vary,value.headers={...cachedValue.headers,...strippedHeaders},downstreamOnHeaders(),this.#writeStream=this.#store.createWriteStream(this.#cacheKey,value),!(!this.#writeStream||!cachedValue?.body))if(typeof cachedValue.body.values=="function"){let bodyIterator=cachedValue.body.values(),streamCachedBody=()=>{for(let chunk of bodyIterator){let full=this.#writeStream.write(chunk)===!1;if(this.#handler.onResponseData?.(controller,chunk),full)break}};this.#writeStream.on("error",function(){handler.#writeStream=void 0,handler.#store.delete(handler.#cacheKey)}).on("drain",()=>{streamCachedBody()}).on("close",function(){handler.#writeStream===this&&(handler.#writeStream=void 0)}),streamCachedBody()}else typeof cachedValue.body.on=="function"&&(cachedValue.body.on("data",chunk=>{this.#writeStream.write(chunk),this.#handler.onResponseData?.(controller,chunk)}).on("end",()=>{this.#writeStream.end()}).on("error",()=>{this.#writeStream=void 0,this.#store.delete(this.#cacheKey)}),this.#writeStream.on("error",function(){handler.#writeStream=void 0,handler.#store.delete(handler.#cacheKey)}).on("close",function(){handler.#writeStream===this&&(handler.#writeStream=void 0)}))},result=this.#store.get(this.#cacheKey);result&&typeof result.then=="function"?result.then(handle304):handle304(result)}else{if(typeof resHeaders.etag=="string"&&isEtagUsable(resHeaders.etag)&&(value.etag=resHeaders.etag),this.#writeStream=this.#store.createWriteStream(this.#cacheKey,value),!this.#writeStream)return downstreamOnHeaders();this.#writeStream.on("drain",()=>controller.resume()).on("error",function(){handler.#writeStream=void 0,handler.#store.delete(handler.#cacheKey)}).on("close",function(){handler.#writeStream===this&&(handler.#writeStream=void 0),controller.resume()}),downstreamOnHeaders()}}onResponseData(controller,chunk){this.#writeStream?.write(chunk)===!1&&controller.pause(),this.#handler.onResponseData?.(controller,chunk)}onResponseEnd(controller,trailers){this.#writeStream?.end(),this.#handler.onResponseEnd?.(controller,trailers)}onResponseError(controller,err){this.#writeStream?.destroy(err),this.#writeStream=void 0,this.#handler.onResponseError?.(controller,err)}};function deleteCachedValue(store,cacheKey){try{store.delete(cacheKey)?.catch?.(noop)}catch{}}function deleteCachedValueIfNotModified(statusCode,store,cacheKey){statusCode===304&&deleteCachedValue(store,cacheKey)}function revalidationResponseDisallowsCachedReuse(cacheType,resHeaders,cacheControlDirectives){return cacheControlDirectives["no-store"]===!0||cacheType==="shared"&&cacheControlDirectives.private===!0||(resHeaders.vary?isInvalidOrWildcardVaryHeader(resHeaders.vary):!1)}function canCacheResponse(cacheType,statusCode,resHeaders,cacheControlDirectives,reqHeaders){return!(statusCode<200||arrayIncludes(NOT_UNDERSTOOD_STATUS_CODES,statusCode)||!arrayIncludes(HEURISTICALLY_CACHEABLE_STATUS_CODES,statusCode)&&!resHeaders.expires&&!cacheControlDirectives.public&&cacheControlDirectives["max-age"]===void 0&&!(cacheControlDirectives.private&&cacheType==="private")&&!(cacheControlDirectives["s-maxage"]!==void 0&&cacheType==="shared")||cacheControlDirectives["no-store"]||cacheType==="shared"&&cacheControlDirectives.private===!0||resHeaders.vary&&hasVaryStar(resHeaders.vary)||reqHeaders!=null&&Object.hasOwn(reqHeaders,"authorization")&&(!cacheControlDirectives.public&&!cacheControlDirectives["s-maxage"]&&!cacheControlDirectives["must-revalidate"]||typeof reqHeaders.authorization!="string"||Array.isArray(cacheControlDirectives["no-cache"])&&arrayIncludes(cacheControlDirectives["no-cache"],"authorization")||Array.isArray(cacheControlDirectives.private)&&arrayIncludes(cacheControlDirectives.private,"authorization")))}function getDate(dateHeader){let dateValue=dateHeader;if(Array.isArray(dateValue)){if(dateValue.length!==1)return null;dateValue=dateValue[0]}return typeof dateValue!="string"?null:parseHttpDate(dateValue)}function getAge(ageHeader){let ageValue=ageHeader;if(Array.isArray(ageValue)){if(ageValue.length!==1)return MAX_RESPONSE_AGE;ageValue=ageValue[0]}if(typeof ageValue!="string"||!/^[\t ]*[0-9]+[\t ]*$/.test(ageValue))return MAX_RESPONSE_AGE;let age=BigInt(ageValue.replace(/^[\t ]+|[\t ]+$/g,""));return age>=BigInt(MAX_RESPONSE_AGE/1e3)?MAX_RESPONSE_AGE:Number(age)*1e3}function determineStaleAt(cacheType,now,age,resHeaders,responseDate,cacheControlDirectives,hasValidator){if(cacheType==="shared"){if(hasInvalidCacheControlDirective(cacheControlDirectives,"s-maxage"))return 0;let sMaxAge=cacheControlDirectives["s-maxage"];if(sMaxAge!==void 0)return sMaxAge>0?sMaxAge*1e3:0}if(hasInvalidCacheControlDirective(cacheControlDirectives,"max-age"))return 0;let maxAge=cacheControlDirectives["max-age"];if(maxAge!==void 0)return maxAge>0?maxAge*1e3:0;if(Object.hasOwn(resHeaders,"expires")){if(typeof resHeaders.expires!="string")return 0;let expiresDate=parseHttpDate(resHeaders.expires);if(!expiresDate||now>=expiresDate.getTime())return 0;if(responseDate){if(responseDate>=expiresDate)return 0;let freshnessLifetime=expiresDate.getTime()-responseDate.getTime();return age!==void 0&&age>=freshnessLifetime?0:freshnessLifetime}return expiresDate.getTime()-now}if(typeof resHeaders["last-modified"]=="string"){let lastModified=parseHttpDate(resHeaders["last-modified"]);if(lastModified)return lastModified.getTime()>=now?void 0:(now-lastModified.getTime())*.1}if(cacheControlDirectives.immutable)return 31536e6;if(cacheControlDirectives["no-cache"]===!0&&hasValidator)return 0}function determineDeleteAt(baseTime,cachedAt,cacheControlDirectives,staleAt){let staleWhileRevalidate=-1/0,staleIfError=-1/0,immutable=-1/0;if(cacheControlDirectives["stale-while-revalidate"]&&(staleWhileRevalidate=staleAt+cacheControlDirectives["stale-while-revalidate"]*1e3),cacheControlDirectives["stale-if-error"]&&(staleIfError=staleAt+cacheControlDirectives["stale-if-error"]*1e3),cacheControlDirectives.immutable&&staleWhileRevalidate===-1/0&&staleIfError===-1/0&&(immutable=cachedAt+31536e6),staleWhileRevalidate===-1/0&&staleIfError===-1/0&&immutable===-1/0){let freshnessLifetime=staleAt-baseTime;if(freshnessLifetime<=0)return cachedAt+REVALIDATION_ONLY_RETENTION;let datePrecisionPadding=Math.min(Math.max(cachedAt-baseTime,0),1e3);return staleAt+freshnessLifetime+datePrecisionPadding}return Math.max(staleAt,staleWhileRevalidate,staleIfError,immutable)}function stripNecessaryHeaders(resHeaders,cacheControlDirectives){let headersToRemove=["connection","proxy-authenticate","proxy-authentication-info","proxy-authorization","proxy-connection","te","transfer-encoding","upgrade","age"];resHeaders.connection&&appendConnectionHeaderTokens(headersToRemove,resHeaders.connection),Array.isArray(cacheControlDirectives["no-cache"])&&headersToRemove.push(...cacheControlDirectives["no-cache"]),Array.isArray(cacheControlDirectives.private)&&headersToRemove.push(...cacheControlDirectives.private);let strippedHeaders;for(let headerName of headersToRemove)Object.hasOwn(resHeaders,headerName)&&(strippedHeaders??={...resHeaders},delete strippedHeaders[headerName]);return strippedHeaders??resHeaders}module.exports=CacheHandler}});var require_memory_cache_store=__commonJS({"node_modules/undici/lib/cache/memory-cache-store.js"(exports,module){"use strict";var{Writable}=__require("node:stream"),{EventEmitter}=__require("node:events"),{assertCacheKey,assertCacheValue}=require_cache(),MemoryCacheStore=class extends EventEmitter{#maxCount=1024;#maxSize=104857600;#maxEntrySize=5242880;#size=0;#count=0;#entries=new Map;#hasEmittedMaxSizeEvent=!1;constructor(opts){if(super(),opts){if(typeof opts!="object")throw new TypeError("MemoryCacheStore options must be an object");if(opts.maxCount!==void 0){if(typeof opts.maxCount!="number"||!Number.isInteger(opts.maxCount)||opts.maxCount<0)throw new TypeError("MemoryCacheStore options.maxCount must be a non-negative integer");this.#maxCount=opts.maxCount}if(opts.maxSize!==void 0){if(typeof opts.maxSize!="number"||!Number.isInteger(opts.maxSize)||opts.maxSize<0)throw new TypeError("MemoryCacheStore options.maxSize must be a non-negative integer");this.#maxSize=opts.maxSize}if(opts.maxEntrySize!==void 0){if(typeof opts.maxEntrySize!="number"||!Number.isInteger(opts.maxEntrySize)||opts.maxEntrySize<0)throw new TypeError("MemoryCacheStore options.maxEntrySize must be a non-negative integer");this.#maxEntrySize=opts.maxEntrySize}}}get size(){return this.#size}isFull(){return this.#size>=this.#maxSize||this.#count>=this.#maxCount}get(key){assertCacheKey(key);let topLevelKey=`${key.origin}:${key.path}`,now=Date.now(),entries=this.#entries.get(topLevelKey),entry=entries?findEntry(key,entries,now):null;return entry==null?void 0:{statusMessage:entry.statusMessage,statusCode:entry.statusCode,headers:entry.headers,body:entry.body,vary:entry.vary?entry.vary:void 0,etag:entry.etag,cacheControlDirectives:entry.cacheControlDirectives,cachedAt:entry.cachedAt,staleAt:entry.staleAt,deleteAt:entry.deleteAt}}createWriteStream(key,val){assertCacheKey(key),assertCacheValue(val);let topLevelKey=`${key.origin}:${key.path}`,store=this,entry={...key,...val,body:[],size:0};return new Writable({write(chunk,encoding,callback){typeof chunk=="string"&&(chunk=Buffer.from(chunk,encoding)),entry.size+=chunk.byteLength,entry.size>store.#maxEntrySize?this.destroy():entry.body.push(chunk),callback(null)},final(callback){let entries=store.#entries.get(topLevelKey);entries||(entries=[],store.#entries.set(topLevelKey,entries));let previousEntry=findEntry(key,entries,Date.now());if(previousEntry){let index=entries.indexOf(previousEntry);entries.splice(index,1,entry),store.#size-=previousEntry.size}else entries.push(entry),store.#count+=1;if(store.#size+=entry.size,store.#size>store.#maxSize||store.#count>store.#maxCount){store.#hasEmittedMaxSizeEvent||(store.emit("maxSizeExceeded",{size:store.#size,maxSize:store.#maxSize,count:store.#count,maxCount:store.#maxCount}),store.#hasEmittedMaxSizeEvent=!0);for(let[key2,entries2]of store.#entries){for(let entry2 of entries2.splice(0,entries2.length/2))store.#size-=entry2.size,store.#count-=1;entries2.length===0&&store.#entries.delete(key2)}store.#size<store.#maxSize&&store.#count<store.#maxCount&&(store.#hasEmittedMaxSizeEvent=!1)}callback(null)}})}delete(key){if(typeof key!="object")throw new TypeError(`expected key to be object, got ${typeof key}`);let topLevelKey=`${key.origin}:${key.path}`;for(let entry of this.#entries.get(topLevelKey)??[])this.#size-=entry.size,this.#count-=1;this.#entries.delete(topLevelKey)}};function findEntry(key,entries,now){for(let i=0;i<entries.length;i++){let entry=entries[i];if(entry.deleteAt>now&&entry.method===key.method&&varyMatches(key,entry))return entry}}function varyMatches(key,entry){if(entry.vary==null)return!0;for(let headerName in entry.vary)if(Object.hasOwn(entry.vary,headerName)&&!headerValueEquals(key.headers?.[headerName],entry.vary[headerName]))return!1;return!0}function headerValueEquals(lhs,rhs){if(lhs==null&&rhs==null)return!0;if(lhs==null&&rhs!=null||lhs!=null&&rhs==null)return!1;if(Array.isArray(lhs)&&Array.isArray(rhs)){if(lhs.length!==rhs.length)return!1;for(let i=0;i<lhs.length;i++)if(lhs[i]!==rhs[i])return!1;return!0}return lhs===rhs}module.exports=MemoryCacheStore}});var require_cache_revalidation_handler=__commonJS({"node_modules/undici/lib/handler/cache-revalidation-handler.js"(exports,module){"use strict";var assert=__require("node:assert"),CacheRevalidationHandler=class{#successful=!1;#callback;#handler;#context;#allowErrorStatusCodes;constructor(callback,handler,allowErrorStatusCodes){if(typeof callback!="function")throw new TypeError("callback must be a function");this.#callback=callback,this.#handler=handler,this.#allowErrorStatusCodes=allowErrorStatusCodes}onRequestStart(_,context){this.#successful=!1,this.#context=context}onRequestUpgrade(controller,statusCode,headers,socket){this.#handler.onRequestUpgrade?.(controller,statusCode,headers,socket)}onResponseStart(controller,statusCode,headers,statusMessage){if(assert(this.#callback!=null),this.#successful=statusCode===304||this.#allowErrorStatusCodes&&statusCode>=500&&statusCode<=504,this.#callback(this.#successful,this.#context,statusCode,headers),this.#callback=null,this.#successful)return!0;this.#handler.onRequestStart?.(controller,this.#context),this.#handler.onResponseStart?.(controller,statusCode,headers,statusMessage)}onResponseData(controller,chunk){if(!this.#successful)return this.#handler.onResponseData?.(controller,chunk)}onResponseEnd(controller,trailers){this.#successful||this.#handler.onResponseEnd?.(controller,trailers)}onResponseError(controller,err){if(!this.#successful){if(this.#callback){if(this.#allowErrorStatusCodes){this.#successful=!0,this.#callback(!0,this.#context),this.#callback=null;return}this.#callback(!1),this.#callback=null}if(typeof this.#handler.onResponseError=="function")this.#handler.onResponseError(controller,err);else throw err}}};module.exports=CacheRevalidationHandler}});var require_cache2=__commonJS({"node_modules/undici/lib/interceptor/cache.js"(exports,module){"use strict";var assert=__require("node:assert"),{Readable}=__require("node:stream"),util=require_util(),CacheHandler=require_cache_handler(),MemoryCacheStore=require_memory_cache_store(),CacheRevalidationHandler=require_cache_revalidation_handler(),{assertCacheStore,assertCacheMethods,makeCacheKey,normalizeHeaders,parseCacheControlHeader,isInvalidOrWildcardVaryHeader}=require_cache(),{AbortError}=require_errors(),{parseHttpDate}=require_date();function assertCacheOrigins(origins,name){if(origins!==void 0){if(!Array.isArray(origins))throw new TypeError(`expected ${name} to be an array or undefined, got ${typeof origins}`);for(let i=0;i<origins.length;i++){let origin=origins[i];if(typeof origin!="string"&&!(origin instanceof RegExp))throw new TypeError(`expected ${name}[${i}] to be a string or RegExp, got ${typeof origin}`)}}}var nop=()=>{};function trimOWS(value){return value.replace(/^[\t ]+|[\t ]+$/g,"")}function arrayIncludes(array,value){for(let i=0;i<array.length;i++)if(array[i]===value)return!0;return!1}function hasPragmaNoCache(headers){let pragma=headers?.pragma;if(!pragma)return!1;let values=Array.isArray(pragma)?pragma:[pragma];for(let i=0;i<values.length;i++){let value=values[i];if(typeof value!="string")continue;let directives=value.split(",");for(let j=0;j<directives.length;j++)if(trimOWS(directives[j]).toLowerCase()==="no-cache")return!0}return!1}function needsRevalidation(result,cacheControlDirectives,{headers={}}){return!!(cacheControlDirectives?.["no-cache"]||result.cacheControlDirectives?.["no-cache"]&&!Array.isArray(result.cacheControlDirectives["no-cache"])||headers["if-modified-since"]||headers["if-none-match"])}function staleResponseRequiresRevalidation(result,cacheType){return result.cacheControlDirectives?.["must-revalidate"]===!0||cacheType==="shared"&&(result.cacheControlDirectives?.["proxy-revalidate"]===!0||result.cacheControlDirectives?.["s-maxage"]!==void 0)}function revalidationResponseDisallowsCachedReuse(cacheType,headers){if(headers.vary&&isInvalidOrWildcardVaryHeader(headers.vary))return!0;let cacheControl=headers["cache-control"];if(!cacheControl)return!1;let cacheControlDirectives=parseCacheControlHeader(cacheControl);return cacheControlDirectives["no-store"]===!0||cacheType==="shared"&&cacheControlDirectives.private===!0}function revalidationResponseUpdatesCacheControl(headers){return headers["cache-control"]!==void 0}function deleteCachedValue(store,cacheKey){try{store.delete(cacheKey)?.catch?.(nop)}catch{}}function getUsableLastModified(headers){let lastModified=headers?.["last-modified"];if(typeof lastModified=="string"&&parseHttpDate(lastModified))return lastModified}function makeRevalidationHeaders(opts,result){let headers={...opts.headers,"if-modified-since":getUsableLastModified(result.headers)??new Date(result.cachedAt).toUTCString()};if(result.etag&&(headers["if-none-match"]=result.etag),result.vary)for(let key in result.vary)result.vary[key]!=null&&(headers[key]=result.vary[key]);return headers}function isStale(result,cacheControlDirectives,cacheType){let now=Date.now();if(now>result.staleAt){if(!staleResponseRequiresRevalidation(result,cacheType)&&cacheControlDirectives?.["max-stale"]){let gracePeriod=result.staleAt+cacheControlDirectives["max-stale"]*1e3;return now>gracePeriod}return!0}if(cacheControlDirectives?.["min-fresh"]){let timeLeftTillStale=result.staleAt-now,threshold=cacheControlDirectives["min-fresh"]*1e3;return timeLeftTillStale<=threshold}return!1}function withinStaleWhileRevalidateWindow(result,cacheType){let staleWhileRevalidate=result.cacheControlDirectives?.["stale-while-revalidate"];if(!staleWhileRevalidate||staleResponseRequiresRevalidation(result,cacheType))return!1;let now=Date.now(),staleWhileRevalidateExpiry=result.staleAt+staleWhileRevalidate*1e3;return now<=staleWhileRevalidateExpiry}function handleUncachedResponse(dispatch,globalOpts,cacheKey,handler,opts,reqCacheControl){if(reqCacheControl?.["only-if-cached"]){let aborted=!1,controller={paused:!1,rawHeaders:[],rawTrailers:[],pause(){this.paused=!0},resume(){this.paused=!1},abort:reason=>{aborted=!0,handler.onResponseError?.(controller,reason??new AbortError)}};try{if(handler.onRequestStart?.(controller,null),aborted||(handler.onResponseStart?.(controller,504,{},"Gateway Timeout"),aborted))return;handler.onResponseEnd?.(controller,{})}catch(err){typeof handler.onResponseError=="function"&&handler.onResponseError(controller,err)}return!0}return dispatch(opts,new CacheHandler(globalOpts,cacheKey,handler))}function sendCachedValue(handler,opts,result,age,context,isStale2){let stream=util.isStream(result.body)?result.body:Readable.from(result.body??[]);assert(!stream.destroyed,"stream should not be destroyed"),assert(!stream.readableDidRead,"stream should not be readableDidRead");let controller={rawHeaders:[],rawTrailers:[],resume(){stream.resume()},pause(){stream.pause()},get paused(){return stream.isPaused()},get aborted(){return stream.destroyed},get reason(){return stream.errored},abort(reason){stream.destroy(reason??new AbortError)}};if(stream.on("error",function(err){if(!this.readableEnded)if(typeof handler.onResponseError=="function")handler.onResponseError(controller,err);else throw err}).on("close",function(){this.errored||handler.onResponseEnd?.(controller,{})}),handler.onRequestStart?.(controller,context),stream.destroyed)return;let headers={...result.headers,age:String(age)};isStale2&&(headers.warning='110 - "response is stale"'),controller.rawHeaders=util.toRawHeaders(headers),handler.onResponseStart?.(controller,result.statusCode,headers,result.statusMessage),opts.method==="HEAD"?stream.destroy():stream.on("data",function(chunk){handler.onResponseData?.(controller,chunk)})}function handleResult(dispatch,globalOpts,cacheKey,handler,opts,reqCacheControl,result){if(!result)return handleUncachedResponse(dispatch,globalOpts,cacheKey,handler,opts,reqCacheControl);let now=Date.now();if(now>result.deleteAt)return dispatch(opts,new CacheHandler(globalOpts,cacheKey,handler));let age=Math.round((now-result.cachedAt)/1e3),requestMaxAgeExpired=reqCacheControl?.["max-age"]!==void 0&&age>=reqCacheControl["max-age"],stale=requestMaxAgeExpired||isStale(result,reqCacheControl,globalOpts.type),revalidate=requestMaxAgeExpired||needsRevalidation(result,reqCacheControl,opts);if(stale||revalidate){if(util.isStream(opts.body)&&util.bodyLength(opts.body)!==0)return dispatch(opts,new CacheHandler(globalOpts,cacheKey,handler));if(!revalidate&&withinStaleWhileRevalidateWindow(result,globalOpts.type))return sendCachedValue(handler,opts,result,age,null,!0),queueMicrotask(()=>{let headers2=makeRevalidationHeaders(opts,result);dispatch({...opts,headers:headers2},new CacheHandler(globalOpts,cacheKey,{onRequestStart(){},onRequestUpgrade(){},onResponseStart(){},onResponseData(){},onResponseEnd(){},onResponseError(){}}))}),!0;let withinStaleIfErrorThreshold=!1;if(!staleResponseRequiresRevalidation(result,globalOpts.type)){let staleIfErrorExpiry=result.cacheControlDirectives["stale-if-error"]??reqCacheControl?.["stale-if-error"];staleIfErrorExpiry&&(withinStaleIfErrorThreshold=now<result.staleAt+staleIfErrorExpiry*1e3)}let headers=makeRevalidationHeaders(opts,result);return dispatch({...opts,headers},new CacheRevalidationHandler((success,context,statusCode,headers2)=>{if(success){if(statusCode===304){if(revalidationResponseDisallowsCachedReuse(globalOpts.type,headers2))return util.isStream(result.body)&&result.body.on("error",nop).destroy(),deleteCachedValue(globalOpts.store,cacheKey),dispatch(opts,new CacheHandler(globalOpts,cacheKey,handler));revalidationResponseUpdatesCacheControl(headers2)&&deleteCachedValue(globalOpts.store,cacheKey)}sendCachedValue(handler,opts,result,age,context,stale)}else util.isStream(result.body)&&result.body.on("error",nop).destroy()},new CacheHandler(globalOpts,cacheKey,handler),withinStaleIfErrorThreshold))}util.isStream(opts.body)&&opts.body.on("error",nop).destroy(),sendCachedValue(handler,opts,result,age,null,!1)}module.exports=(opts={})=>{let{store=new MemoryCacheStore,methods=["GET"],cacheByDefault=void 0,type="shared",origins=void 0}=opts;if(typeof opts!="object"||opts===null)throw new TypeError(`expected type of opts to be an Object, got ${opts===null?"null":typeof opts}`);if(assertCacheStore(store,"opts.store"),assertCacheMethods(methods,"opts.methods"),assertCacheOrigins(origins,"opts.origins"),typeof cacheByDefault<"u"&&typeof cacheByDefault!="number")throw new TypeError(`expected opts.cacheByDefault to be number or undefined, got ${typeof cacheByDefault}`);if(typeof type<"u"&&type!=="shared"&&type!=="private")throw new TypeError(`expected opts.type to be shared, private, or undefined, got ${typeof type}`);let globalOpts={store,methods,cacheByDefault,type},safeMethodsToNotCache=[];for(let i=0;i<util.safeHTTPMethods.length;i++){let method=util.safeHTTPMethods[i];arrayIncludes(methods,method)||safeMethodsToNotCache.push(method)}return dispatch=>(opts2,handler)=>{if(arrayIncludes(safeMethodsToNotCache,opts2.method))return dispatch(opts2,handler);if(origins!==void 0){if(!opts2.origin)return dispatch(opts2,handler);let requestOrigin=opts2.origin.toString().toLowerCase(),isAllowed=!1;for(let i=0;i<origins.length;i++){let allowed=origins[i];if(typeof allowed=="string"){if(allowed.toLowerCase()===requestOrigin){isAllowed=!0;break}}else if(allowed.test(requestOrigin)){isAllowed=!0;break}}if(!isAllowed)return dispatch(opts2,handler)}opts2={...opts2,headers:normalizeHeaders(opts2)};let reqCacheControl=opts2.headers?.["cache-control"]?parseCacheControlHeader(opts2.headers["cache-control"]):hasPragmaNoCache(opts2.headers)?{"no-cache":!0}:void 0;if(reqCacheControl?.["no-store"])return dispatch(opts2,handler);let cacheKey=makeCacheKey(opts2),result=store.get(cacheKey);return result&&typeof result.then=="function"?result.then(result2=>handleResult(dispatch,globalOpts,cacheKey,handler,opts2,reqCacheControl,result2)):handleResult(dispatch,globalOpts,cacheKey,handler,opts2,reqCacheControl,result)}}}});var require_decompress=__commonJS({"node_modules/undici/lib/interceptor/decompress.js"(exports,module){"use strict";var{createInflate,createGunzip,createBrotliDecompress,createZstdDecompress}=__require("node:zlib"),{pipeline}=__require("node:stream"),DecoratorHandler=require_decorator_handler(),supportedEncodings={gzip:createGunzip,"x-gzip":createGunzip,br:createBrotliDecompress,deflate:createInflate,compress:createInflate,"x-compress":createInflate,zstd:createZstdDecompress},defaultSkipStatusCodes=[204,304],warningEmitted=!1,DecompressHandler=class extends DecoratorHandler{#decompressors=[];#trailers;#skipStatusCodes;#skipErrorResponses;constructor(handler,{skipStatusCodes=defaultSkipStatusCodes,skipErrorResponses=!0}={}){super(handler),this.#skipStatusCodes=skipStatusCodes,this.#skipErrorResponses=skipErrorResponses}#shouldSkipDecompression(contentEncoding,statusCode){return!!(!contentEncoding||statusCode<200||this.#skipStatusCodes.includes(statusCode)||this.#skipErrorResponses&&statusCode>=400)}#createDecompressionChain(encodings){let parts=encodings.split(","),maxContentEncodings=5;if(parts.length>maxContentEncodings)throw new Error(`too many content-encodings in response: ${parts.length}, maximum allowed is ${maxContentEncodings}`);let decompressors=[];for(let i=parts.length-1;i>=0;i--){let encoding=parts[i].trim();if(encoding){if(!supportedEncodings[encoding])return decompressors.length=0,decompressors;decompressors.push(supportedEncodings[encoding]())}}return decompressors}#setupDecompressorEvents(decompressor,controller){decompressor.on("readable",()=>{let chunk;for(;(chunk=decompressor.read())!==null&&super.onResponseData(controller,chunk)!==!1;);}),decompressor.on("error",error=>{super.onResponseError(controller,error)})}#setupSingleDecompressor(controller){let decompressor=this.#decompressors[0];this.#setupDecompressorEvents(decompressor,controller),decompressor.on("end",()=>{super.onResponseEnd(controller,this.#trailers)})}#setupMultipleDecompressors(controller){let lastDecompressor=this.#decompressors[this.#decompressors.length-1];this.#setupDecompressorEvents(lastDecompressor,controller),pipeline(this.#decompressors,err=>{if(err){super.onResponseError(controller,err);return}super.onResponseEnd(controller,this.#trailers)})}#cleanupDecompressors(){this.#decompressors.length=0}onResponseStart(controller,statusCode,headers,statusMessage){let contentEncoding=headers["content-encoding"];if(this.#shouldSkipDecompression(contentEncoding,statusCode))return super.onResponseStart(controller,statusCode,headers,statusMessage);let decompressors=this.#createDecompressionChain(contentEncoding.toLowerCase());if(decompressors.length===0)return this.#cleanupDecompressors(),super.onResponseStart(controller,statusCode,headers,statusMessage);this.#decompressors=decompressors;let{"content-encoding":_,"content-length":__,...newHeaders}=headers;if(controller?.rawHeaders){let rawHeaders=controller.rawHeaders;if(Array.isArray(rawHeaders)){let filteredHeaders=[];for(let i=0;i<rawHeaders.length;i+=2){let headerName=rawHeaders[i],lowerName=(Buffer.isBuffer(headerName)?headerName.toString("latin1"):`${headerName}`).toLowerCase();lowerName==="content-encoding"||lowerName==="content-length"||filteredHeaders.push(rawHeaders[i],rawHeaders[i+1])}controller.rawHeaders=filteredHeaders}else if(typeof rawHeaders=="object")for(let name of Object.keys(rawHeaders)){let lowerName=name.toLowerCase();(lowerName==="content-encoding"||lowerName==="content-length")&&delete rawHeaders[name]}}return this.#decompressors.length===1?this.#setupSingleDecompressor(controller):this.#setupMultipleDecompressors(controller),super.onResponseStart(controller,statusCode,newHeaders,statusMessage)}onResponseData(controller,chunk){if(this.#decompressors.length>0){this.#decompressors[0].write(chunk);return}super.onResponseData(controller,chunk)}onResponseEnd(controller,trailers){if(this.#decompressors.length>0){this.#trailers=trailers,this.#decompressors[0].end(),this.#cleanupDecompressors();return}super.onResponseEnd(controller,trailers)}onResponseError(controller,err){if(this.#decompressors.length>0){for(let decompressor of this.#decompressors)decompressor.destroy(err);this.#cleanupDecompressors()}super.onResponseError(controller,err)}};function createDecompressInterceptor(options={}){return warningEmitted||(process.emitWarning("DecompressInterceptor is experimental and subject to change","ExperimentalWarning"),warningEmitted=!0),dispatch=>(opts,handler)=>{if(opts.method==="HEAD")return dispatch(opts,handler);let decompressHandler=new DecompressHandler(handler,options);return dispatch(opts,decompressHandler)}}module.exports=createDecompressInterceptor}});var require_deduplication_handler=__commonJS({"node_modules/undici/lib/handler/deduplication-handler.js"(exports,module){"use strict";var{RequestAbortedError}=require_errors(),DEFAULT_MAX_BUFFER_SIZE=5*1024*1024,DeduplicationHandler=class{#primaryHandler;#waitingHandlers=[];#maxBufferSize=DEFAULT_MAX_BUFFER_SIZE;#statusCode=0;#headers={};#statusMessage="";#aborted=!1;#responseStarted=!1;#responseDataStarted=!1;#completed=!1;#controller=null;#onComplete=null;constructor(primaryHandler,onComplete,maxBufferSize=DEFAULT_MAX_BUFFER_SIZE){this.#primaryHandler=primaryHandler,this.#onComplete=onComplete,this.#maxBufferSize=maxBufferSize}addWaitingHandler(handler){if(this.#completed||this.#responseDataStarted)return!1;let waitingHandler=this.#createWaitingHandler(handler),waitingController=waitingHandler.controller;try{if(handler.onRequestStart?.(waitingController,null),waitingController.aborted)return waitingHandler.done=!0,!0;this.#responseStarted&&handler.onResponseStart?.(waitingController,this.#statusCode,this.#headers,this.#statusMessage)}catch{return waitingHandler.done=!0,!0}return waitingController.aborted||this.#waitingHandlers.push(waitingHandler),!0}onRequestStart(controller,context){this.#controller=controller,this.#primaryHandler.onRequestStart?.(controller,context)}onRequestUpgrade(controller,statusCode,headers,socket){this.#primaryHandler.onRequestUpgrade?.(controller,statusCode,headers,socket)}onResponseStart(controller,statusCode,headers,statusMessage){this.#responseStarted=!0,this.#statusCode=statusCode,this.#headers=headers,this.#statusMessage=statusMessage,this.#primaryHandler.onResponseStart?.(controller,statusCode,headers,statusMessage);for(let waitingHandler of this.#waitingHandlers){let{handler,controller:waitingController}=waitingHandler;if(waitingHandler.done||waitingController.aborted){waitingHandler.done=!0;continue}try{handler.onResponseStart?.(waitingController,statusCode,headers,statusMessage)}catch{}waitingController.aborted&&(waitingHandler.done=!0)}this.#pruneDoneWaitingHandlers()}onResponseData(controller,chunk){if(!(this.#aborted||this.#completed)){this.#responseDataStarted=!0,this.#primaryHandler.onResponseData?.(controller,chunk);for(let waitingHandler of this.#waitingHandlers){let{handler,controller:waitingController}=waitingHandler;if(waitingHandler.done||waitingController.aborted){waitingHandler.done=!0;continue}if(waitingController.paused){this.#bufferWaitingChunk(waitingHandler,chunk);continue}try{handler.onResponseData?.(waitingController,chunk)}catch{}waitingController.aborted&&(waitingHandler.done=!0,waitingHandler.bufferedChunks=[],waitingHandler.bufferedBytes=0)}this.#pruneDoneWaitingHandlers()}}onResponseEnd(controller,trailers){if(!(this.#aborted||this.#completed)){this.#completed=!0,this.#primaryHandler.onResponseEnd?.(controller,trailers);for(let waitingHandler of this.#waitingHandlers){if(waitingHandler.done||waitingHandler.controller.aborted){waitingHandler.done=!0;continue}if(this.#flushWaitingHandler(waitingHandler),waitingHandler.done||waitingHandler.controller.aborted){waitingHandler.done=!0;continue}if(waitingHandler.controller.paused&&waitingHandler.bufferedChunks.length>0){waitingHandler.pendingTrailers=trailers;continue}try{waitingHandler.handler.onResponseEnd?.(waitingHandler.controller,trailers)}catch{}waitingHandler.done=!0}this.#pruneDoneWaitingHandlers(),this.#onComplete?.()}}onResponseError(controller,err){if(!this.#completed){this.#aborted=!0,this.#completed=!0,this.#primaryHandler.onResponseError?.(controller,err);for(let waitingHandler of this.#waitingHandlers)this.#errorWaitingHandler(waitingHandler,err);this.#waitingHandlers=[],this.#onComplete?.()}}#createWaitingHandler(handler){let waitingHandler={handler,controller:null,bufferedChunks:[],bufferedBytes:0,pendingTrailers:null,done:!1},state={aborted:!1,paused:!1,reason:null};return waitingHandler.controller={resume:()=>{if(!state.aborted){if(state.paused=!1,this.#flushWaitingHandler(waitingHandler),this.#completed&&waitingHandler.pendingTrailers&&waitingHandler.bufferedChunks.length===0&&!state.paused&&!state.aborted){try{waitingHandler.handler.onResponseEnd?.(waitingHandler.controller,waitingHandler.pendingTrailers)}catch{}waitingHandler.pendingTrailers=null,waitingHandler.done=!0}this.#pruneDoneWaitingHandlers()}},pause:()=>{state.aborted||(state.paused=!0)},get paused(){return state.paused},get aborted(){return state.aborted},get reason(){return state.reason},abort:reason=>{state.aborted=!0,state.reason=reason??null,waitingHandler.done=!0,waitingHandler.pendingTrailers=null,waitingHandler.bufferedChunks=[],waitingHandler.bufferedBytes=0}},waitingHandler}#bufferWaitingChunk(waitingHandler,chunk){if(waitingHandler.done||waitingHandler.controller.aborted){waitingHandler.done=!0,waitingHandler.bufferedChunks=[],waitingHandler.bufferedBytes=0;return}let bufferedChunk=Buffer.from(chunk);if(waitingHandler.bufferedChunks.push(bufferedChunk),waitingHandler.bufferedBytes+=bufferedChunk.length,waitingHandler.bufferedBytes>this.#maxBufferSize){let err=new RequestAbortedError(`Deduplicated waiting handler exceeded maxBufferSize (${this.#maxBufferSize} bytes) while paused`);this.#errorWaitingHandler(waitingHandler,err)}}#flushWaitingHandler(waitingHandler){let{handler,controller}=waitingHandler;for(;!waitingHandler.done&&!controller.aborted&&!controller.paused&&waitingHandler.bufferedChunks.length>0;){let bufferedChunk=waitingHandler.bufferedChunks.shift();waitingHandler.bufferedBytes-=bufferedChunk.length;try{handler.onResponseData?.(controller,bufferedChunk)}catch{}if(controller.aborted){waitingHandler.done=!0,waitingHandler.pendingTrailers=null,waitingHandler.bufferedChunks=[],waitingHandler.bufferedBytes=0;break}}}#errorWaitingHandler(waitingHandler,err){if(!waitingHandler.done){waitingHandler.done=!0,waitingHandler.pendingTrailers=null,waitingHandler.bufferedChunks=[],waitingHandler.bufferedBytes=0;try{waitingHandler.controller.abort(err),waitingHandler.handler.onResponseError?.(waitingHandler.controller,err)}catch{}}}#pruneDoneWaitingHandlers(){this.#waitingHandlers=this.#waitingHandlers.filter(waitingHandler=>waitingHandler.done===!1)}};module.exports=DeduplicationHandler}});var require_deduplicate=__commonJS({"node_modules/undici/lib/interceptor/deduplicate.js"(exports,module){"use strict";var diagnosticsChannel=__require("node:diagnostics_channel"),util=require_util(),DeduplicationHandler=require_deduplication_handler(),{normalizeHeaders,makeCacheKey,makeDeduplicationKey}=require_cache(),pendingRequestsChannel=diagnosticsChannel.channel("undici:request:pending-requests");module.exports=(opts={})=>{let{methods=["GET"],skipHeaderNames=[],excludeHeaderNames=[],maxBufferSize=5*1024*1024}=opts;if(typeof opts!="object"||opts===null)throw new TypeError(`expected type of opts to be an Object, got ${opts===null?"null":typeof opts}`);if(!Array.isArray(methods))throw new TypeError(`expected opts.methods to be an array, got ${typeof methods}`);for(let method of methods)if(!util.safeHTTPMethods.includes(method))throw new TypeError(`expected opts.methods to only contain safe HTTP methods, got ${method}`);if(!Array.isArray(skipHeaderNames))throw new TypeError(`expected opts.skipHeaderNames to be an array, got ${typeof skipHeaderNames}`);if(!Array.isArray(excludeHeaderNames))throw new TypeError(`expected opts.excludeHeaderNames to be an array, got ${typeof excludeHeaderNames}`);if(!Number.isFinite(maxBufferSize)||maxBufferSize<=0)throw new TypeError(`expected opts.maxBufferSize to be a positive finite number, got ${maxBufferSize}`);let skipHeaderNamesSet=new Set(skipHeaderNames.map(name=>name.toLowerCase())),excludeHeaderNamesSet=new Set(excludeHeaderNames.map(name=>name.toLowerCase())),pendingRequests=new Map;return dispatch=>(opts2,handler)=>{if(opts2.upgrade||methods.includes(opts2.method)===!1)return dispatch(opts2,handler);if(opts2={...opts2,headers:normalizeHeaders(opts2)},skipHeaderNamesSet.size>0){for(let headerName of Object.keys(opts2.headers))if(skipHeaderNamesSet.has(headerName.toLowerCase()))return dispatch(opts2,handler)}let cacheKey=makeCacheKey(opts2),dedupeKey=makeDeduplicationKey(cacheKey,excludeHeaderNamesSet),pendingHandler=pendingRequests.get(dedupeKey);if(pendingHandler)return pendingHandler.addWaitingHandler(handler)?!0:dispatch(opts2,handler);let deduplicationHandler=new DeduplicationHandler(handler,()=>{pendingRequests.delete(dedupeKey),pendingRequestsChannel.hasSubscribers&&pendingRequestsChannel.publish({size:pendingRequests.size,key:dedupeKey,type:"removed"})},maxBufferSize);return pendingRequests.set(dedupeKey,deduplicationHandler),pendingRequestsChannel.hasSubscribers&&pendingRequestsChannel.publish({size:pendingRequests.size,key:dedupeKey,type:"added"}),dispatch(opts2,deduplicationHandler)}}}});var require_sqlite_cache_store=__commonJS({"node_modules/undici/lib/cache/sqlite-cache-store.js"(exports,module){"use strict";var{Writable}=__require("node:stream"),{assertCacheKey,assertCacheValue}=require_cache(),DatabaseSync,VERSION=3,MAX_ENTRY_SIZE=2*1e3*1e3*1e3;module.exports=class{#maxEntrySize=MAX_ENTRY_SIZE;#maxCount=1/0;#db;#getValuesQuery;#updateValueQuery;#insertValueQuery;#deleteExpiredValuesQuery;#deleteByUrlQuery;#countEntriesQuery;#deleteOldValuesQuery;constructor(opts){if(opts){if(typeof opts!="object")throw new TypeError("SqliteCacheStore options must be an object");if(opts.maxEntrySize!==void 0){if(typeof opts.maxEntrySize!="number"||!Number.isInteger(opts.maxEntrySize)||opts.maxEntrySize<0)throw new TypeError("SqliteCacheStore options.maxEntrySize must be a non-negative integer");if(opts.maxEntrySize>MAX_ENTRY_SIZE)throw new TypeError("SqliteCacheStore options.maxEntrySize must be less than 2gb");this.#maxEntrySize=opts.maxEntrySize}if(opts.maxCount!==void 0){if(typeof opts.maxCount!="number"||!Number.isInteger(opts.maxCount)||opts.maxCount<0)throw new TypeError("SqliteCacheStore options.maxCount must be a non-negative integer");this.#maxCount=opts.maxCount}}DatabaseSync||(DatabaseSync=__require("node:sqlite").DatabaseSync),this.#db=new DatabaseSync(opts?.location??":memory:"),this.#db.exec(`
|
|
46
|
+
PRAGMA journal_mode = WAL;
|
|
47
|
+
PRAGMA synchronous = NORMAL;
|
|
48
|
+
PRAGMA temp_store = memory;
|
|
49
|
+
PRAGMA optimize;
|
|
50
|
+
|
|
51
|
+
CREATE TABLE IF NOT EXISTS cacheInterceptorV${VERSION} (
|
|
52
|
+
-- Data specific to us
|
|
53
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
54
|
+
url TEXT NOT NULL,
|
|
55
|
+
method TEXT NOT NULL,
|
|
56
|
+
|
|
57
|
+
-- Data returned to the interceptor
|
|
58
|
+
body BUF NULL,
|
|
59
|
+
deleteAt INTEGER NOT NULL,
|
|
60
|
+
statusCode INTEGER NOT NULL,
|
|
61
|
+
statusMessage TEXT NOT NULL,
|
|
62
|
+
headers TEXT NULL,
|
|
63
|
+
cacheControlDirectives TEXT NULL,
|
|
64
|
+
etag TEXT NULL,
|
|
65
|
+
vary TEXT NULL,
|
|
66
|
+
cachedAt INTEGER NOT NULL,
|
|
67
|
+
staleAt INTEGER NOT NULL
|
|
68
|
+
);
|
|
69
|
+
|
|
70
|
+
CREATE INDEX IF NOT EXISTS idx_cacheInterceptorV${VERSION}_getValuesQuery ON cacheInterceptorV${VERSION}(url, method, deleteAt);
|
|
71
|
+
CREATE INDEX IF NOT EXISTS idx_cacheInterceptorV${VERSION}_deleteByUrlQuery ON cacheInterceptorV${VERSION}(deleteAt);
|
|
72
|
+
`),this.#getValuesQuery=this.#db.prepare(`
|
|
73
|
+
SELECT
|
|
74
|
+
id,
|
|
75
|
+
body,
|
|
76
|
+
deleteAt,
|
|
77
|
+
statusCode,
|
|
78
|
+
statusMessage,
|
|
79
|
+
headers,
|
|
80
|
+
etag,
|
|
81
|
+
cacheControlDirectives,
|
|
82
|
+
vary,
|
|
83
|
+
cachedAt,
|
|
84
|
+
staleAt
|
|
85
|
+
FROM cacheInterceptorV${VERSION}
|
|
86
|
+
WHERE
|
|
87
|
+
url = ?
|
|
88
|
+
AND method = ?
|
|
89
|
+
ORDER BY
|
|
90
|
+
deleteAt ASC
|
|
91
|
+
`),this.#updateValueQuery=this.#db.prepare(`
|
|
92
|
+
UPDATE cacheInterceptorV${VERSION} SET
|
|
93
|
+
body = ?,
|
|
94
|
+
deleteAt = ?,
|
|
95
|
+
statusCode = ?,
|
|
96
|
+
statusMessage = ?,
|
|
97
|
+
headers = ?,
|
|
98
|
+
etag = ?,
|
|
99
|
+
cacheControlDirectives = ?,
|
|
100
|
+
vary = ?,
|
|
101
|
+
cachedAt = ?,
|
|
102
|
+
staleAt = ?
|
|
103
|
+
WHERE
|
|
104
|
+
id = ?
|
|
105
|
+
`),this.#insertValueQuery=this.#db.prepare(`
|
|
106
|
+
INSERT INTO cacheInterceptorV${VERSION} (
|
|
107
|
+
url,
|
|
108
|
+
method,
|
|
109
|
+
body,
|
|
110
|
+
deleteAt,
|
|
111
|
+
statusCode,
|
|
112
|
+
statusMessage,
|
|
113
|
+
headers,
|
|
114
|
+
etag,
|
|
115
|
+
cacheControlDirectives,
|
|
116
|
+
vary,
|
|
117
|
+
cachedAt,
|
|
118
|
+
staleAt
|
|
119
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
120
|
+
`),this.#deleteByUrlQuery=this.#db.prepare(`DELETE FROM cacheInterceptorV${VERSION} WHERE url = ?`),this.#countEntriesQuery=this.#db.prepare(`SELECT COUNT(*) AS total FROM cacheInterceptorV${VERSION}`),this.#deleteExpiredValuesQuery=this.#db.prepare(`DELETE FROM cacheInterceptorV${VERSION} WHERE deleteAt <= ?`),this.#deleteOldValuesQuery=this.#maxCount===1/0?null:this.#db.prepare(`
|
|
121
|
+
DELETE FROM cacheInterceptorV${VERSION}
|
|
122
|
+
WHERE id IN (
|
|
123
|
+
SELECT
|
|
124
|
+
id
|
|
125
|
+
FROM cacheInterceptorV${VERSION}
|
|
126
|
+
ORDER BY cachedAt ASC
|
|
127
|
+
LIMIT ?
|
|
128
|
+
)
|
|
129
|
+
`)}close(){this.#db.close()}get(key){assertCacheKey(key);let value=this.#findValue(key);return value?{body:value.body?Buffer.from(value.body.buffer,value.body.byteOffset,value.body.byteLength):void 0,statusCode:value.statusCode,statusMessage:value.statusMessage,headers:value.headers?JSON.parse(value.headers):void 0,etag:value.etag?value.etag:void 0,vary:value.vary?JSON.parse(value.vary):void 0,cacheControlDirectives:value.cacheControlDirectives?JSON.parse(value.cacheControlDirectives):void 0,cachedAt:value.cachedAt,staleAt:value.staleAt,deleteAt:value.deleteAt}:void 0}set(key,value){assertCacheKey(key);let url=this.#makeValueUrl(key),body=Array.isArray(value.body)?Buffer.concat(value.body):value.body,size=body?.byteLength;if(size&&size>this.#maxEntrySize)return;let existingValue=this.#findValue(key,!0);existingValue?this.#updateValueQuery.run(body,value.deleteAt,value.statusCode,value.statusMessage,value.headers?JSON.stringify(value.headers):null,value.etag?value.etag:null,value.cacheControlDirectives?JSON.stringify(value.cacheControlDirectives):null,value.vary?JSON.stringify(value.vary):null,value.cachedAt,value.staleAt,existingValue.id):(this.#insertValueQuery.run(url,key.method,body,value.deleteAt,value.statusCode,value.statusMessage,value.headers?JSON.stringify(value.headers):null,value.etag?value.etag:null,value.cacheControlDirectives?JSON.stringify(value.cacheControlDirectives):null,value.vary?JSON.stringify(value.vary):null,value.cachedAt,value.staleAt),this.#prune())}createWriteStream(key,value){assertCacheKey(key),assertCacheValue(value);let size=0,body=[],store=this;return new Writable({decodeStrings:!0,write(chunk,encoding,callback){size+=chunk.byteLength,size<=store.#maxEntrySize?body.push(chunk):this.destroy(),callback()},final(callback){store.set(key,{...value,body}),callback()}})}delete(key){if(typeof key!="object")throw new TypeError(`expected key to be object, got ${typeof key}`);this.#deleteByUrlQuery.run(this.#makeValueUrl(key))}#prune(){if(Number.isFinite(this.#maxCount)&&this.size<=this.#maxCount)return 0;{let removed=this.#deleteExpiredValuesQuery.run(Date.now()).changes;if(removed)return removed}{let removed=this.#deleteOldValuesQuery?.run(Math.max(Math.floor(this.#maxCount*.1),1)).changes;if(removed)return removed}return 0}get size(){let{total}=this.#countEntriesQuery.get();return total}#makeValueUrl(key){return`${key.origin}/${key.path}`}#findValue(key,canBeExpired=!1){let url=this.#makeValueUrl(key),{headers,method}=key,values=this.#getValuesQuery.all(url,method);if(values.length===0)return;let now=Date.now();for(let value of values){if(now>=value.deleteAt&&!canBeExpired)continue;let matches=!0;if(value.vary){let vary=JSON.parse(value.vary);for(let header in vary)if(!headerValueEquals(headers[header],vary[header])){matches=!1;break}}if(matches)return value}}};function headerValueEquals(lhs,rhs){if(lhs==null&&rhs==null)return!0;if(lhs==null&&rhs!=null||lhs!=null&&rhs==null)return!1;if(Array.isArray(lhs)&&Array.isArray(rhs)){if(lhs.length!==rhs.length)return!1;for(let i=0;i<lhs.length;i++)if(lhs[i]!==rhs[i])return!1;return!0}return lhs===rhs}}});var require_headers=__commonJS({"node_modules/undici/lib/web/fetch/headers.js"(exports,module){"use strict";var{kConstruct}=require_symbols(),{kEnumerableProperty}=require_util(),{iteratorMixin,isValidHeaderName,isValidHeaderValue}=require_util2(),{webidl}=require_webidl(),assert=__require("node:assert"),util=__require("node:util");function isHTTPWhiteSpaceCharCode(code){return code===10||code===13||code===9||code===32}function headerValueNormalize(potentialValue){let i=0,j=potentialValue.length;for(;j>i&&isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(j-1));)--j;for(;j>i&&isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(i));)++i;return i===0&&j===potentialValue.length?potentialValue:potentialValue.substring(i,j)}function fill(headers,object){if(Array.isArray(object))for(let i=0;i<object.length;++i){let header=object[i];if(header.length!==2)throw webidl.errors.exception({header:"Headers constructor",message:`expected name/value pair to be length 2, found ${header.length}.`});appendHeader(headers,header[0],header[1])}else if(typeof object=="object"&&object!==null){let keys=Object.keys(object);for(let i=0;i<keys.length;++i)appendHeader(headers,keys[i],object[keys[i]])}else throw webidl.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence<sequence<ByteString>>","record<ByteString, ByteString>"]})}function appendHeader(headers,name,value){if(value=headerValueNormalize(value),isValidHeaderName(name)){if(!isValidHeaderValue(value))throw webidl.errors.invalidArgument({prefix:"Headers.append",value,type:"header value"})}else throw webidl.errors.invalidArgument({prefix:"Headers.append",value:name,type:"header name"});if(getHeadersGuard(headers)==="immutable")throw new TypeError("immutable");return getHeadersList(headers).append(name,value,!1)}function headersListSortAndCombine(target){let headersList=getHeadersList(target);if(!headersList)return[];if(headersList.sortedMap)return headersList.sortedMap;let headers=[],names=headersList.toSortedArray(),cookies=headersList.cookies;if(cookies===null||cookies.length===1)return headersList.sortedMap=names;for(let i=0;i<names.length;++i){let{0:name,1:value}=names[i];if(name==="set-cookie")for(let j=0;j<cookies.length;++j)headers.push([name,cookies[j]]);else headers.push([name,value])}return headersList.sortedMap=headers}function compareHeaderName(a,b){return a[0]<b[0]?-1:1}var HeadersList=class _HeadersList{cookies=null;sortedMap;headersMap;constructor(init){init instanceof _HeadersList?(this.headersMap=new Map(init.headersMap),this.sortedMap=init.sortedMap,this.cookies=init.cookies===null?null:[...init.cookies]):(this.headersMap=new Map(init),this.sortedMap=null)}contains(name,isLowerCase){return this.headersMap.has(isLowerCase?name:name.toLowerCase())}clear(){this.headersMap.clear(),this.sortedMap=null,this.cookies=null}append(name,value,isLowerCase){this.sortedMap=null;let lowercaseName=isLowerCase?name:name.toLowerCase(),exists=this.headersMap.get(lowercaseName);if(exists){let delimiter=lowercaseName==="cookie"?"; ":", ";this.headersMap.set(lowercaseName,{name:exists.name,value:`${exists.value}${delimiter}${value}`})}else this.headersMap.set(lowercaseName,{name,value});lowercaseName==="set-cookie"&&(this.cookies??=[]).push(value)}set(name,value,isLowerCase){this.sortedMap=null;let lowercaseName=isLowerCase?name:name.toLowerCase();lowercaseName==="set-cookie"&&(this.cookies=[value]),this.headersMap.set(lowercaseName,{name,value})}delete(name,isLowerCase){this.sortedMap=null,isLowerCase||(name=name.toLowerCase()),name==="set-cookie"&&(this.cookies=null),this.headersMap.delete(name)}get(name,isLowerCase){return this.headersMap.get(isLowerCase?name:name.toLowerCase())?.value??null}*[Symbol.iterator](){for(let{0:name,1:{value}}of this.headersMap)yield[name,value]}get entries(){let headers={};if(this.headersMap.size!==0)for(let{name,value}of this.headersMap.values())headers[name]=value;return headers}rawValues(){return this.headersMap.values()}get entriesList(){let headers=[];if(this.headersMap.size!==0)for(let{0:lowerName,1:{name,value}}of this.headersMap)if(lowerName==="set-cookie")for(let cookie of this.cookies)headers.push([name,cookie]);else headers.push([name,value]);return headers}toSortedArray(){let size=this.headersMap.size,array=new Array(size);if(size<=32){if(size===0)return array;let iterator=this.headersMap[Symbol.iterator](),firstValue=iterator.next().value;array[0]=[firstValue[0],firstValue[1].value],assert(firstValue[1].value!==null);for(let i=1,j=0,right=0,left=0,pivot=0,x,value;i<size;++i){for(value=iterator.next().value,x=array[i]=[value[0],value[1].value],assert(x[1]!==null),left=0,right=i;left<right;)pivot=left+(right-left>>1),array[pivot][0]<=x[0]?left=pivot+1:right=pivot;if(i!==pivot){for(j=i;j>left;)array[j]=array[--j];array[left]=x}}if(!iterator.next().done)throw new TypeError("Unreachable");return array}else{let i=0;for(let{0:name,1:{value}}of this.headersMap)array[i++]=[name,value],assert(value!==null);return array.sort(compareHeaderName)}}},Headers=class _Headers{#guard;#headersList;constructor(init=void 0){webidl.util.markAsUncloneable(this),init!==kConstruct&&(this.#headersList=new HeadersList,this.#guard="none",init!==void 0&&(init=webidl.converters.HeadersInit(init,"Headers constructor","init"),fill(this,init)))}append(name,value){webidl.brandCheck(this,_Headers),webidl.argumentLengthCheck(arguments,2,"Headers.append");let prefix="Headers.append";return name=webidl.converters.ByteString(name,prefix,"name"),value=webidl.converters.ByteString(value,prefix,"value"),appendHeader(this,name,value)}delete(name){if(webidl.brandCheck(this,_Headers),webidl.argumentLengthCheck(arguments,1,"Headers.delete"),name=webidl.converters.ByteString(name,"Headers.delete","name"),!isValidHeaderName(name))throw webidl.errors.invalidArgument({prefix:"Headers.delete",value:name,type:"header name"});if(this.#guard==="immutable")throw new TypeError("immutable");this.#headersList.contains(name,!1)&&this.#headersList.delete(name,!1)}get(name){webidl.brandCheck(this,_Headers),webidl.argumentLengthCheck(arguments,1,"Headers.get");let prefix="Headers.get";if(name=webidl.converters.ByteString(name,prefix,"name"),!isValidHeaderName(name))throw webidl.errors.invalidArgument({prefix,value:name,type:"header name"});return this.#headersList.get(name,!1)}has(name){webidl.brandCheck(this,_Headers),webidl.argumentLengthCheck(arguments,1,"Headers.has");let prefix="Headers.has";if(name=webidl.converters.ByteString(name,prefix,"name"),!isValidHeaderName(name))throw webidl.errors.invalidArgument({prefix,value:name,type:"header name"});return this.#headersList.contains(name,!1)}set(name,value){webidl.brandCheck(this,_Headers),webidl.argumentLengthCheck(arguments,2,"Headers.set");let prefix="Headers.set";if(name=webidl.converters.ByteString(name,prefix,"name"),value=webidl.converters.ByteString(value,prefix,"value"),value=headerValueNormalize(value),isValidHeaderName(name)){if(!isValidHeaderValue(value))throw webidl.errors.invalidArgument({prefix,value,type:"header value"})}else throw webidl.errors.invalidArgument({prefix,value:name,type:"header name"});if(this.#guard==="immutable")throw new TypeError("immutable");this.#headersList.set(name,value,!1)}getSetCookie(){webidl.brandCheck(this,_Headers);let list=this.#headersList.cookies;return list?[...list]:[]}[util.inspect.custom](depth,options){return options.depth??=depth,`Headers ${util.formatWithOptions(options,this.#headersList.entries)}`}static getHeadersGuard(o){return o.#guard}static setHeadersGuard(o,guard){o.#guard=guard}static getHeadersList(o){return o.#headersList}static setHeadersList(target,list){target.#headersList=list}},{getHeadersGuard,setHeadersGuard,getHeadersList,setHeadersList}=Headers;Reflect.deleteProperty(Headers,"getHeadersGuard");Reflect.deleteProperty(Headers,"setHeadersGuard");Reflect.deleteProperty(Headers,"getHeadersList");Reflect.deleteProperty(Headers,"setHeadersList");iteratorMixin("Headers",Headers,headersListSortAndCombine,0,1);Object.defineProperties(Headers.prototype,{append:kEnumerableProperty,delete:kEnumerableProperty,get:kEnumerableProperty,has:kEnumerableProperty,set:kEnumerableProperty,getSetCookie:kEnumerableProperty,[Symbol.toStringTag]:{value:"Headers",configurable:!0},[util.inspect.custom]:{enumerable:!1}});webidl.converters.HeadersInit=function(V,prefix,argument){if(webidl.util.Type(V)===webidl.util.Types.OBJECT){let iterator=Reflect.get(V,Symbol.iterator);if(!util.types.isProxy(V)&&iterator===Headers.prototype.entries)try{return getHeadersList(V).entriesList}catch{}return typeof iterator=="function"?webidl.converters["sequence<sequence<ByteString>>"](V,prefix,argument,iterator.bind(V)):webidl.converters["record<ByteString, ByteString>"](V,prefix,argument)}throw webidl.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence<sequence<ByteString>>","record<ByteString, ByteString>"]})};module.exports={fill,compareHeaderName,Headers,HeadersList,getHeadersGuard,setHeadersGuard,setHeadersList,getHeadersList}}});var require_response=__commonJS({"node_modules/undici/lib/web/fetch/response.js"(exports,module){"use strict";var{Headers,HeadersList,fill,getHeadersGuard,setHeadersGuard,setHeadersList}=require_headers(),{extractBody,cloneBody,mixinBody,streamRegistry,bodyUnusable}=require_body(),util=require_util(),nodeUtil=__require("node:util"),{kEnumerableProperty}=util,{isValidReasonPhrase,isCancelled,isAborted,isErrorLike,environmentSettingsObject:relevantRealm}=require_util2(),{redirectStatusSet,nullBodyStatus}=require_constants3(),{webidl}=require_webidl(),{URLSerializer}=require_data_url(),{kConstruct}=require_symbols(),assert=__require("node:assert"),{isomorphicEncode,serializeJavascriptValueToJSONString}=require_infra(),textEncoder=new TextEncoder("utf-8"),Response=class _Response{#headers;#state;static error(){return fromInnerResponse(makeNetworkError(),"immutable")}static json(data,init=void 0){webidl.argumentLengthCheck(arguments,1,"Response.json"),init=webidl.converters.ResponseInit(init);let bytes=textEncoder.encode(serializeJavascriptValueToJSONString(data)),body=extractBody(bytes),responseObject=fromInnerResponse(makeResponse({}),"response");return initializeResponse(responseObject,init,{body:body[0],type:"application/json"}),responseObject}static redirect(url,status=302){webidl.argumentLengthCheck(arguments,1,"Response.redirect"),url=webidl.converters.USVString(url),status=webidl.converters["unsigned short"](status);let parsedURL;try{parsedURL=new URL(url,relevantRealm.settingsObject.baseUrl)}catch(err){throw new TypeError(`Failed to parse URL from ${url}`,{cause:err})}if(!redirectStatusSet.has(status))throw new RangeError(`Invalid status code ${status}`);let responseObject=fromInnerResponse(makeResponse({}),"immutable");responseObject.#state.status=status;let value=isomorphicEncode(URLSerializer(parsedURL));return responseObject.#state.headersList.append("location",value,!0),responseObject}constructor(body=null,init=void 0){if(webidl.util.markAsUncloneable(this),body===kConstruct)return;body!==null&&(body=webidl.converters.BodyInit(body,"Response","body")),init=webidl.converters.ResponseInit(init),this.#state=makeResponse({}),this.#headers=new Headers(kConstruct),setHeadersGuard(this.#headers,"response"),setHeadersList(this.#headers,this.#state.headersList);let bodyWithType=null;if(body!=null){let[extractedBody,type]=extractBody(body);bodyWithType={body:extractedBody,type}}initializeResponse(this,init,bodyWithType)}get type(){return webidl.brandCheck(this,_Response),this.#state.type}get url(){webidl.brandCheck(this,_Response);let urlList=this.#state.urlList,url=urlList[urlList.length-1]??null;return url===null?"":URLSerializer(url,!0)}get redirected(){return webidl.brandCheck(this,_Response),this.#state.urlList.length>1}get status(){return webidl.brandCheck(this,_Response),this.#state.status}get ok(){return webidl.brandCheck(this,_Response),this.#state.status>=200&&this.#state.status<=299}get statusText(){return webidl.brandCheck(this,_Response),this.#state.statusText}get headers(){return webidl.brandCheck(this,_Response),this.#headers}get body(){return webidl.brandCheck(this,_Response),this.#state.body?this.#state.body.stream:null}get bodyUsed(){return webidl.brandCheck(this,_Response),!!this.#state.body&&util.isDisturbed(this.#state.body.stream)}clone(){if(webidl.brandCheck(this,_Response),bodyUnusable(this.#state))throw webidl.errors.exception({header:"Response.clone",message:"Body has already been consumed."});let clonedResponse=cloneResponse(this.#state);return this.#state.urlList.length!==0&&this.#state.body?.stream&&streamRegistry.register(this,new WeakRef(this.#state.body.stream)),fromInnerResponse(clonedResponse,getHeadersGuard(this.#headers))}[nodeUtil.inspect.custom](depth,options){options.depth===null&&(options.depth=2),options.colors??=!0;let properties={status:this.status,statusText:this.statusText,headers:this.headers,body:this.body,bodyUsed:this.bodyUsed,ok:this.ok,redirected:this.redirected,type:this.type,url:this.url};return`Response ${nodeUtil.formatWithOptions(options,properties)}`}static getResponseHeaders(response){return response.#headers}static setResponseHeaders(response,newHeaders){response.#headers=newHeaders}static getResponseState(response){return response.#state}static setResponseState(response,newState){response.#state=newState}},{getResponseHeaders,setResponseHeaders,getResponseState,setResponseState}=Response;Reflect.deleteProperty(Response,"getResponseHeaders");Reflect.deleteProperty(Response,"setResponseHeaders");Reflect.deleteProperty(Response,"getResponseState");Reflect.deleteProperty(Response,"setResponseState");mixinBody(Response,getResponseState);Object.defineProperties(Response.prototype,{type:kEnumerableProperty,url:kEnumerableProperty,status:kEnumerableProperty,ok:kEnumerableProperty,redirected:kEnumerableProperty,statusText:kEnumerableProperty,headers:kEnumerableProperty,clone:kEnumerableProperty,body:kEnumerableProperty,bodyUsed:kEnumerableProperty,[Symbol.toStringTag]:{value:"Response",configurable:!0}});Object.defineProperties(Response,{json:kEnumerableProperty,redirect:kEnumerableProperty,error:kEnumerableProperty});function cloneResponse(response){if(response.internalResponse)return filterResponse(cloneResponse(response.internalResponse),response.type);let newResponse=makeResponse({...response,body:null});return response.body!=null&&(newResponse.body=cloneBody(response.body)),newResponse}function makeResponse(init){return{aborted:!1,rangeRequested:!1,timingAllowPassed:!1,requestIncludesCredentials:!1,type:"default",status:200,timingInfo:null,cacheState:"",statusText:"",...init,headersList:init?.headersList?new HeadersList(init?.headersList):new HeadersList,urlList:init?.urlList?[...init.urlList]:[]}}function makeNetworkError(reason){let isError=isErrorLike(reason);return makeResponse({type:"error",status:0,error:isError?reason:new Error(reason&&String(reason)),aborted:reason&&reason.name==="AbortError"})}function isNetworkError(response){return response.type==="error"&&response.status===0}function makeFilteredResponse(response,state){return state={internalResponse:response,...state},new Proxy(response,{get(target,p){return p in state?state[p]:target[p]},set(target,p,value){return assert(!(p in state)),target[p]=value,!0}})}function filterResponse(response,type){if(type==="basic")return makeFilteredResponse(response,{type:"basic",headersList:response.headersList});if(type==="cors")return makeFilteredResponse(response,{type:"cors",headersList:response.headersList});if(type==="opaque")return makeFilteredResponse(response,{type:"opaque",urlList:[],status:0,statusText:"",body:null});if(type==="opaqueredirect")return makeFilteredResponse(response,{type:"opaqueredirect",status:0,statusText:"",headersList:[],body:null});assert(!1)}function makeAppropriateNetworkError(fetchParams,err=null){return assert(isCancelled(fetchParams)),isAborted(fetchParams)?makeNetworkError(Object.assign(new DOMException("The operation was aborted.","AbortError"),{cause:err})):makeNetworkError(Object.assign(new DOMException("Request was cancelled."),{cause:err}))}function initializeResponse(response,init,body){if(init.status!==null&&(init.status<200||init.status>599))throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.');if("statusText"in init&&init.statusText!=null&&!isValidReasonPhrase(String(init.statusText)))throw new TypeError("Invalid statusText");if("status"in init&&init.status!=null&&(getResponseState(response).status=init.status),"statusText"in init&&init.statusText!=null&&(getResponseState(response).statusText=init.statusText),"headers"in init&&init.headers!=null&&fill(getResponseHeaders(response),init.headers),body){if(nullBodyStatus.includes(response.status))throw webidl.errors.exception({header:"Response constructor",message:`Invalid response status code ${response.status}`});getResponseState(response).body=body.body,body.type!=null&&!getResponseState(response).headersList.contains("content-type",!0)&&getResponseState(response).headersList.append("content-type",body.type,!0)}}function fromInnerResponse(innerResponse,guard){let response=new Response(kConstruct);setResponseState(response,innerResponse);let headers=new Headers(kConstruct);return setResponseHeaders(response,headers),setHeadersList(headers,innerResponse.headersList),setHeadersGuard(headers,guard),innerResponse.urlList.length!==0&&innerResponse.body?.stream&&streamRegistry.register(response,new WeakRef(innerResponse.body.stream)),response}webidl.converters.XMLHttpRequestBodyInit=function(V,prefix,name){return typeof V=="string"?webidl.converters.USVString(V,prefix,name):webidl.is.Blob(V)||webidl.is.BufferSource(V)||webidl.is.FormData(V)||webidl.is.URLSearchParams(V)?V:webidl.converters.DOMString(V,prefix,name)};webidl.converters.BodyInit=function(V,prefix,argument){return webidl.is.ReadableStream(V)||V?.[Symbol.asyncIterator]?V:webidl.converters.XMLHttpRequestBodyInit(V,prefix,argument)};webidl.converters.ResponseInit=webidl.dictionaryConverter([{key:"status",converter:webidl.converters["unsigned short"],defaultValue:()=>200},{key:"statusText",converter:webidl.converters.ByteString,defaultValue:()=>""},{key:"headers",converter:webidl.converters.HeadersInit}]);webidl.is.Response=webidl.util.MakeTypeAssertion(Response);module.exports={isNetworkError,makeNetworkError,makeResponse,makeAppropriateNetworkError,filterResponse,Response,cloneResponse,fromInnerResponse,getResponseState}}});var require_request2=__commonJS({"node_modules/undici/lib/web/fetch/request.js"(exports,module){"use strict";var{extractBody,mixinBody,cloneBody,bodyUnusable}=require_body(),{Headers,fill:fillHeaders,HeadersList,setHeadersGuard,getHeadersGuard,setHeadersList,getHeadersList}=require_headers(),util=require_util(),nodeUtil=__require("node:util"),{isValidHTTPToken,sameOrigin,environmentSettingsObject}=require_util2(),{forbiddenMethodsSet,corsSafeListedMethodsSet,referrerPolicy,requestRedirect,requestMode,requestCredentials,requestCache,requestDuplex}=require_constants3(),{kEnumerableProperty,normalizedMethodRecordsBase,normalizedMethodRecords}=util,{webidl}=require_webidl(),{URLSerializer}=require_data_url(),{kConstruct}=require_symbols(),assert=__require("node:assert"),{getMaxListeners,setMaxListeners,defaultMaxListeners}=__require("node:events"),kAbortController=Symbol("abortController"),requestFinalizer=new FinalizationRegistry(({signal,abort})=>{signal.removeEventListener("abort",abort)}),dependentControllerMap=new WeakMap,abortSignalHasEventHandlerLeakWarning;try{abortSignalHasEventHandlerLeakWarning=getMaxListeners(new AbortController().signal)>0}catch{abortSignalHasEventHandlerLeakWarning=!1}function buildAbort(acRef){return abort;function abort(){let ac=acRef.deref();if(ac!==void 0){requestFinalizer.unregister(abort),this.removeEventListener("abort",abort),ac.abort(this.reason);let controllerList=dependentControllerMap.get(ac.signal);if(controllerList!==void 0){if(controllerList.size!==0){for(let ref of controllerList){let ctrl=ref.deref();ctrl!==void 0&&ctrl.abort(this.reason)}controllerList.clear()}dependentControllerMap.delete(ac.signal)}}}}var patchMethodWarning=!1,Request=class _Request{#signal;#dispatcher;#headers;#state;#abortCleanup=null;constructor(input,init=void 0){if(webidl.util.markAsUncloneable(this),input===kConstruct)return;webidl.argumentLengthCheck(arguments,1,"Request constructor"),input=webidl.converters.RequestInfo(input),init=webidl.converters.RequestInit(init);let request=null,fallbackMode=null,baseUrl=environmentSettingsObject.settingsObject.baseUrl,signal=null;if(typeof input=="string"){this.#dispatcher=init.dispatcher;let parsedURL;try{parsedURL=new URL(input,baseUrl)}catch(err){throw new TypeError("Failed to parse URL from "+input,{cause:err})}if(parsedURL.username||parsedURL.password)throw new TypeError("Request cannot be constructed from a URL that includes credentials: "+input);request=makeRequest({urlList:[parsedURL]}),fallbackMode="cors"}else assert(webidl.is.Request(input)),request=input.#state,signal=input.#signal,this.#dispatcher=init.dispatcher||input.#dispatcher;let origin=environmentSettingsObject.settingsObject.origin,window="client";if(request.window?.constructor?.name==="EnvironmentSettingsObject"&&sameOrigin(request.window,origin)&&(window=request.window),init.window!=null)throw new TypeError(`'window' option '${window}' must be null`);"window"in init&&(window="no-window"),request=makeRequest({method:request.method,headersList:request.headersList,unsafeRequest:request.unsafeRequest,client:environmentSettingsObject.settingsObject,window,priority:request.priority,origin:request.origin,referrer:request.referrer,referrerPolicy:request.referrerPolicy,mode:request.mode,credentials:request.credentials,cache:request.cache,redirect:request.redirect,integrity:request.integrity,keepalive:request.keepalive,reloadNavigation:request.reloadNavigation,historyNavigation:request.historyNavigation,urlList:[...request.urlList]});let initHasKey=Object.keys(init).length!==0;if(initHasKey&&(request.mode==="navigate"&&(request.mode="same-origin"),request.reloadNavigation=!1,request.historyNavigation=!1,request.origin="client",request.referrer="client",request.referrerPolicy="",request.url=request.urlList[request.urlList.length-1],request.urlList=[request.url]),init.referrer!==void 0){let referrer=init.referrer;if(referrer==="")request.referrer="no-referrer";else{let parsedReferrer;try{parsedReferrer=new URL(referrer,baseUrl)}catch(err){throw new TypeError(`Referrer "${referrer}" is not a valid URL.`,{cause:err})}parsedReferrer.protocol==="about:"&&parsedReferrer.hostname==="client"||origin&&!sameOrigin(parsedReferrer,environmentSettingsObject.settingsObject.baseUrl)?request.referrer="client":request.referrer=parsedReferrer}}init.referrerPolicy!==void 0&&(request.referrerPolicy=init.referrerPolicy);let mode;if(init.mode!==void 0?mode=init.mode:mode=fallbackMode,mode==="navigate")throw webidl.errors.exception({header:"Request constructor",message:"invalid request mode navigate."});if(mode!=null&&(request.mode=mode),init.credentials!==void 0&&(request.credentials=init.credentials),init.cache!==void 0&&(request.cache=init.cache),request.cache==="only-if-cached"&&request.mode!=="same-origin")throw new TypeError("'only-if-cached' can be set only with 'same-origin' mode");if(init.redirect!==void 0&&(request.redirect=init.redirect),init.integrity!=null&&(request.integrity=String(init.integrity)),init.keepalive!==void 0&&(request.keepalive=!!init.keepalive),init.method!==void 0){let method=init.method,mayBeNormalized=normalizedMethodRecords[method];if(mayBeNormalized!==void 0)request.method=mayBeNormalized;else{if(!isValidHTTPToken(method))throw new TypeError(`'${method}' is not a valid HTTP method.`);let upperCase=method.toUpperCase();if(forbiddenMethodsSet.has(upperCase))throw new TypeError(`'${method}' HTTP method is unsupported.`);method=normalizedMethodRecordsBase[upperCase]??method,request.method=method}!patchMethodWarning&&request.method==="patch"&&(process.emitWarning("Using `patch` is highly likely to result in a `405 Method Not Allowed`. `PATCH` is much more likely to succeed.",{code:"UNDICI-FETCH-patch"}),patchMethodWarning=!0)}init.signal!==void 0&&(signal=init.signal),this.#state=request;let ac=new AbortController;if(this.#signal=ac.signal,signal!=null)if(signal.aborted)ac.abort(signal.reason);else{this[kAbortController]=ac;let acRef=new WeakRef(ac),abort=buildAbort(acRef);abortSignalHasEventHandlerLeakWarning&&getMaxListeners(signal)===defaultMaxListeners&&setMaxListeners(1500,signal);let removeAbortListener=util.addAbortListener(signal,abort);requestFinalizer.register(ac,{signal,abort},abort),this.#abortCleanup=()=>{requestFinalizer.unregister(abort),removeAbortListener(),this.#abortCleanup=null}}if(this.#headers=new Headers(kConstruct),setHeadersList(this.#headers,request.headersList),setHeadersGuard(this.#headers,"request"),mode==="no-cors"){if(!corsSafeListedMethodsSet.has(request.method))throw new TypeError(`'${request.method} is unsupported in no-cors mode.`);setHeadersGuard(this.#headers,"request-no-cors")}if(initHasKey){let headersList=getHeadersList(this.#headers),headers=init.headers!==void 0?init.headers:new HeadersList(headersList);if(headersList.clear(),headers instanceof HeadersList){for(let{name,value}of headers.rawValues())headersList.append(name,value,!1);headersList.cookies=headers.cookies}else fillHeaders(this.#headers,headers)}let inputBody=webidl.is.Request(input)?input.#state.body:null;if((init.body!=null||inputBody!=null)&&(request.method==="GET"||request.method==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body.");let initBody=null;if(init.body!=null){let[extractedBody,contentType]=extractBody(init.body,request.keepalive);initBody=extractedBody,contentType&&!getHeadersList(this.#headers).contains("content-type",!0)&&this.#headers.append("content-type",contentType,!0)}let inputOrInitBody=initBody??inputBody;if(inputOrInitBody!=null&&inputOrInitBody.source==null){if(initBody!=null&&init.duplex==null)throw new TypeError("RequestInit: duplex option is required when sending a body.");if(request.mode!=="same-origin"&&request.mode!=="cors")throw new TypeError('If request is made from ReadableStream, mode should be "same-origin" or "cors"');request.useCORSPreflightFlag=!0}let finalBody=inputOrInitBody;if(initBody==null&&inputBody!=null){if(bodyUnusable(input.#state))throw new TypeError("Cannot construct a Request with a Request object that has already been used.");let identityTransform=new TransformStream;inputBody.stream.pipeThrough(identityTransform),finalBody={source:inputBody.source,length:inputBody.length,stream:identityTransform.readable}}this.#state.body=finalBody}get method(){return webidl.brandCheck(this,_Request),this.#state.method}get url(){return webidl.brandCheck(this,_Request),URLSerializer(this.#state.url)}get headers(){return webidl.brandCheck(this,_Request),this.#headers}get destination(){return webidl.brandCheck(this,_Request),this.#state.destination}get referrer(){return webidl.brandCheck(this,_Request),this.#state.referrer==="no-referrer"?"":this.#state.referrer==="client"?"about:client":this.#state.referrer.toString()}get referrerPolicy(){return webidl.brandCheck(this,_Request),this.#state.referrerPolicy}get mode(){return webidl.brandCheck(this,_Request),this.#state.mode}get credentials(){return webidl.brandCheck(this,_Request),this.#state.credentials}get cache(){return webidl.brandCheck(this,_Request),this.#state.cache}get redirect(){return webidl.brandCheck(this,_Request),this.#state.redirect}get integrity(){return webidl.brandCheck(this,_Request),this.#state.integrity}get keepalive(){return webidl.brandCheck(this,_Request),this.#state.keepalive}get isReloadNavigation(){return webidl.brandCheck(this,_Request),this.#state.reloadNavigation}get isHistoryNavigation(){return webidl.brandCheck(this,_Request),this.#state.historyNavigation}get signal(){return webidl.brandCheck(this,_Request),this.#signal}get body(){return webidl.brandCheck(this,_Request),this.#state.body?this.#state.body.stream:null}get bodyUsed(){return webidl.brandCheck(this,_Request),!!this.#state.body&&util.isDisturbed(this.#state.body.stream)}get duplex(){return webidl.brandCheck(this,_Request),"half"}clone(){if(webidl.brandCheck(this,_Request),bodyUnusable(this.#state))throw new TypeError("unusable");let clonedRequest=cloneRequest(this.#state),ac=new AbortController;if(this.signal.aborted)ac.abort(this.signal.reason);else{let list=dependentControllerMap.get(this.signal);list===void 0&&(list=new Set,dependentControllerMap.set(this.signal,list));let acRef=new WeakRef(ac);list.add(acRef),util.addAbortListener(ac.signal,buildAbort(acRef))}return fromInnerRequest(clonedRequest,this.#dispatcher,ac.signal,getHeadersGuard(this.#headers))}[nodeUtil.inspect.custom](depth,options){options.depth===null&&(options.depth=2),options.colors??=!0;let properties={method:this.method,url:this.url,headers:this.headers,destination:this.destination,referrer:this.referrer,referrerPolicy:this.referrerPolicy,mode:this.mode,credentials:this.credentials,cache:this.cache,redirect:this.redirect,integrity:this.integrity,keepalive:this.keepalive,isReloadNavigation:this.isReloadNavigation,isHistoryNavigation:this.isHistoryNavigation,signal:this.signal};return`Request ${nodeUtil.formatWithOptions(options,properties)}`}static setRequestSignal(request,newSignal){return request.#signal=newSignal,request}static getRequestDispatcher(request){return request.#dispatcher}static setRequestDispatcher(request,newDispatcher){request.#dispatcher=newDispatcher}static setRequestHeaders(request,newHeaders){request.#headers=newHeaders}static getRequestState(request){return request.#state}static setRequestState(request,newState){request.#state=newState}static removeRequestAbortListener(request){request.#abortCleanup?.()}},{setRequestSignal,getRequestDispatcher,setRequestDispatcher,setRequestHeaders,getRequestState,setRequestState,removeRequestAbortListener}=Request;Reflect.deleteProperty(Request,"setRequestSignal");Reflect.deleteProperty(Request,"getRequestDispatcher");Reflect.deleteProperty(Request,"setRequestDispatcher");Reflect.deleteProperty(Request,"setRequestHeaders");Reflect.deleteProperty(Request,"getRequestState");Reflect.deleteProperty(Request,"setRequestState");Reflect.deleteProperty(Request,"removeRequestAbortListener");mixinBody(Request,getRequestState);function makeRequest(init){return{method:init.method??"GET",localURLsOnly:init.localURLsOnly??!1,unsafeRequest:init.unsafeRequest??!1,body:init.body??null,client:init.client??null,reservedClient:init.reservedClient??null,replacesClientId:init.replacesClientId??"",window:init.window??"client",keepalive:init.keepalive??!1,serviceWorkers:init.serviceWorkers??"all",initiator:init.initiator??"",destination:init.destination??"",priority:init.priority??null,origin:init.origin??"client",policyContainer:init.policyContainer??"client",referrer:init.referrer??"client",referrerPolicy:init.referrerPolicy??"",mode:init.mode??"no-cors",useCORSPreflightFlag:init.useCORSPreflightFlag??!1,credentials:init.credentials??"same-origin",useCredentials:init.useCredentials??!1,cache:init.cache??"default",redirect:init.redirect??"follow",integrity:init.integrity??"",cryptoGraphicsNonceMetadata:init.cryptoGraphicsNonceMetadata??"",parserMetadata:init.parserMetadata??"",reloadNavigation:init.reloadNavigation??!1,historyNavigation:init.historyNavigation??!1,userActivation:init.userActivation??!1,taintedOrigin:init.taintedOrigin??!1,redirectCount:init.redirectCount??0,responseTainting:init.responseTainting??"basic",preventNoCacheCacheControlHeaderModification:init.preventNoCacheCacheControlHeaderModification??!1,done:init.done??!1,timingAllowFailed:init.timingAllowFailed??!1,useURLCredentials:init.useURLCredentials??void 0,traversableForUserPrompts:init.traversableForUserPrompts??"client",urlList:init.urlList,url:init.urlList[0],headersList:init.headersList?new HeadersList(init.headersList):new HeadersList}}function cloneRequest(request){let newRequest=makeRequest({...request,body:null});return request.body!=null&&(newRequest.body=cloneBody(request.body)),newRequest}function fromInnerRequest(innerRequest,dispatcher,signal,guard){let request=new Request(kConstruct);setRequestState(request,innerRequest),setRequestDispatcher(request,dispatcher),setRequestSignal(request,signal);let headers=new Headers(kConstruct);return setRequestHeaders(request,headers),setHeadersList(headers,innerRequest.headersList),setHeadersGuard(headers,guard),request}Object.defineProperties(Request.prototype,{method:kEnumerableProperty,url:kEnumerableProperty,headers:kEnumerableProperty,redirect:kEnumerableProperty,clone:kEnumerableProperty,signal:kEnumerableProperty,duplex:kEnumerableProperty,destination:kEnumerableProperty,body:kEnumerableProperty,bodyUsed:kEnumerableProperty,isHistoryNavigation:kEnumerableProperty,isReloadNavigation:kEnumerableProperty,keepalive:kEnumerableProperty,integrity:kEnumerableProperty,cache:kEnumerableProperty,credentials:kEnumerableProperty,attribute:kEnumerableProperty,referrerPolicy:kEnumerableProperty,referrer:kEnumerableProperty,mode:kEnumerableProperty,[Symbol.toStringTag]:{value:"Request",configurable:!0}});webidl.is.Request=webidl.util.MakeTypeAssertion(Request);webidl.converters.RequestInfo=function(V){return typeof V=="string"?webidl.converters.USVString(V):webidl.is.Request(V)?V:webidl.converters.USVString(V)};webidl.converters.RequestInit=webidl.dictionaryConverter([{key:"method",converter:webidl.converters.ByteString},{key:"headers",converter:webidl.converters.HeadersInit},{key:"body",converter:webidl.nullableConverter(webidl.converters.BodyInit)},{key:"referrer",converter:webidl.converters.USVString},{key:"referrerPolicy",converter:webidl.converters.DOMString,allowedValues:referrerPolicy},{key:"mode",converter:webidl.converters.DOMString,allowedValues:requestMode},{key:"credentials",converter:webidl.converters.DOMString,allowedValues:requestCredentials},{key:"cache",converter:webidl.converters.DOMString,allowedValues:requestCache},{key:"redirect",converter:webidl.converters.DOMString,allowedValues:requestRedirect},{key:"integrity",converter:webidl.converters.DOMString},{key:"keepalive",converter:webidl.converters.boolean},{key:"signal",converter:webidl.nullableConverter(signal=>webidl.converters.AbortSignal(signal,"RequestInit","signal"))},{key:"window",converter:webidl.converters.any},{key:"duplex",converter:webidl.converters.DOMString,allowedValues:requestDuplex},{key:"dispatcher",converter:webidl.converters.any},{key:"priority",converter:webidl.converters.DOMString,allowedValues:["high","low","auto"],defaultValue:()=>"auto"}]);module.exports={Request,makeRequest,fromInnerRequest,cloneRequest,getRequestDispatcher,getRequestState,removeRequestAbortListener}}});var require_subresource_integrity=__commonJS({"node_modules/undici/lib/web/subresource-integrity/subresource-integrity.js"(exports,module){"use strict";var assert=__require("node:assert"),{runtimeFeatures}=require_runtime_features(),validSRIHashAlgorithmTokenSet=new Map([["sha256",0],["sha384",1],["sha512",2]]),crypto;if(runtimeFeatures.has("crypto")){crypto=__require("node:crypto");let cryptoHashes=crypto.getHashes();cryptoHashes.length===0&&validSRIHashAlgorithmTokenSet.clear();for(let algorithm of validSRIHashAlgorithmTokenSet.keys())cryptoHashes.includes(algorithm)===!1&&validSRIHashAlgorithmTokenSet.delete(algorithm)}else validSRIHashAlgorithmTokenSet.clear();var getSRIHashAlgorithmIndex=Map.prototype.get.bind(validSRIHashAlgorithmTokenSet),isValidSRIHashAlgorithm=Map.prototype.has.bind(validSRIHashAlgorithmTokenSet),bytesMatch=runtimeFeatures.has("crypto")===!1||validSRIHashAlgorithmTokenSet.size===0?()=>!0:(bytes,metadataList)=>{let parsedMetadata=parseMetadata(metadataList);if(parsedMetadata.length===0)return!0;let metadata=getStrongestMetadata(parsedMetadata);for(let item of metadata){let algorithm=item.alg,expectedValue=item.val,actualValue=applyAlgorithmToBytes(algorithm,bytes);if(caseSensitiveMatch(actualValue,expectedValue))return!0}return!1};function getStrongestMetadata(metadataList){let result=[],strongest=null;for(let item of metadataList){if(assert(isValidSRIHashAlgorithm(item.alg),"Invalid SRI hash algorithm token"),result.length===0){result.push(item),strongest=item;continue}let currentAlgorithm=strongest.alg,currentAlgorithmIndex=getSRIHashAlgorithmIndex(currentAlgorithm),newAlgorithm=item.alg,newAlgorithmIndex=getSRIHashAlgorithmIndex(newAlgorithm);newAlgorithmIndex<currentAlgorithmIndex||(newAlgorithmIndex>currentAlgorithmIndex?(strongest=item,result[0]=item,result.length=1):result.push(item))}return result}function parseMetadata(metadata){let result=[];for(let item of metadata.split(" ")){let algorithmExpression=item.split("?",1)[0],base64Value="",algorithmAndValue=[algorithmExpression.slice(0,6),algorithmExpression.slice(7)],algorithm=algorithmAndValue[0];if(!isValidSRIHashAlgorithm(algorithm))continue;algorithmAndValue[1]&&(base64Value=algorithmAndValue[1]);let metadata2={alg:algorithm,val:base64Value};result.push(metadata2)}return result}var applyAlgorithmToBytes=(algorithm,bytes)=>crypto.hash(algorithm,bytes,"base64");function caseSensitiveMatch(actualValue,expectedValue){let actualValueLength=actualValue.length;actualValueLength!==0&&actualValue[actualValueLength-1]==="="&&(actualValueLength-=1),actualValueLength!==0&&actualValue[actualValueLength-1]==="="&&(actualValueLength-=1);let expectedValueLength=expectedValue.length;if(expectedValueLength!==0&&expectedValue[expectedValueLength-1]==="="&&(expectedValueLength-=1),expectedValueLength!==0&&expectedValue[expectedValueLength-1]==="="&&(expectedValueLength-=1),actualValueLength!==expectedValueLength)return!1;for(let i=0;i<actualValueLength;++i)if(!(actualValue[i]===expectedValue[i]||actualValue[i]==="+"&&expectedValue[i]==="-"||actualValue[i]==="/"&&expectedValue[i]==="_"))return!1;return!0}module.exports={applyAlgorithmToBytes,bytesMatch,caseSensitiveMatch,isValidSRIHashAlgorithm,getStrongestMetadata,parseMetadata}}});var require_fetch=__commonJS({"node_modules/undici/lib/web/fetch/index.js"(exports,module){"use strict";var{makeNetworkError,makeAppropriateNetworkError,filterResponse,makeResponse,fromInnerResponse,getResponseState}=require_response(),{HeadersList}=require_headers(),{Request,cloneRequest,getRequestDispatcher,getRequestState,removeRequestAbortListener}=require_request2(),zlib=__require("node:zlib"),{makePolicyContainer,clonePolicyContainer,requestBadPort,TAOCheck,appendRequestOriginHeader,responseLocationURL,requestCurrentURL,setRequestReferrerPolicyOnRedirect,tryUpgradeRequestToAPotentiallyTrustworthyURL,createOpaqueTimingInfo,appendFetchMetadata,corsCheck,crossOriginResourcePolicyCheck,determineRequestsReferrer,coarsenedSharedCurrentTime,sameOrigin,isCancelled,isAborted,isErrorLike,fullyReadBody,readableStreamClose,urlIsLocal,urlIsHttpHttpsScheme,urlHasHttpsScheme,clampAndCoarsenConnectionTimingInfo,simpleRangeHeaderValue,buildContentRange,createInflate,extractMimeType,hasAuthenticationEntry,includesCredentials,isTraversableNavigable}=require_util2(),assert=__require("node:assert"),{safelyExtractBody,extractBody}=require_body(),{redirectStatusSet,nullBodyStatus,safeMethodsSet,requestBodyHeader,subresourceSet}=require_constants3(),EE=__require("node:events"),{Readable,pipeline,finished,isErrored,isReadable}=__require("node:stream"),{addAbortListener,bufferToLowerCasedHeaderName}=require_util(),{dataURLProcessor,serializeAMimeType,minimizeSupportedMimeType}=require_data_url(),{getGlobalDispatcher}=require_global2(),{webidl}=require_webidl(),{STATUS_CODES}=__require("node:http"),{bytesMatch}=require_subresource_integrity(),{isomorphicEncode}=require_infra(),GET_OR_HEAD=["GET","HEAD"],defaultUserAgent=typeof __UNDICI_IS_NODE__<"u"||typeof esbuildDetection<"u"?"node":"undici",resolveObjectURL;function appendHeadersListFromResponseHeaders(headersList,headers,rawHeaders){if(Array.isArray(rawHeaders)){for(let i=0;i<rawHeaders.length;i+=2){let nameStr=bufferToLowerCasedHeaderName(rawHeaders[i]),value=rawHeaders[i+1];if(Array.isArray(value)&&!Buffer.isBuffer(value))for(let val of value)headersList.append(nameStr,val.toString("latin1"),!0);else headersList.append(nameStr,value.toString("latin1"),!0)}return}for(let[name,value]of Object.entries(headers??{}))if(Array.isArray(value))for(let entry of value)headersList.append(name,`${entry}`,!0);else headersList.append(name,`${value}`,!0)}var Fetch=class extends EE{constructor(dispatcher){super(),this.dispatcher=dispatcher,this.connection=null,this.dump=!1,this.state="ongoing"}terminate(reason){this.state==="ongoing"&&(this.state="terminated",this.connection?.destroy(reason),this.emit("terminated",reason))}abort(error){this.state==="ongoing"&&(this.state="aborted",error||(error=new DOMException("The operation was aborted.","AbortError")),this.serializedAbortReason=error,this.connection?.destroy(error),this.emit("terminated",error))}};function handleFetchDone(response){finalizeAndReportTiming(response,"fetch")}function fetch(input,init=void 0){webidl.argumentLengthCheck(arguments,1,"globalThis.fetch");let p=Promise.withResolvers(),requestObject;try{requestObject=new Request(input,init)}catch(e){return p.reject(e),p.promise}let request=getRequestState(requestObject);if(requestObject.signal.aborted)return abortFetch(p,request,null,requestObject.signal.reason,null),p.promise;request.client.globalObject?.constructor?.name==="ServiceWorkerGlobalScope"&&(request.serviceWorkers="none");let responseObject=null,locallyAborted=!1,controller=null,removeAbortListener=addAbortListener(requestObject.signal,()=>{locallyAborted=!0,assert(controller!=null),controller.abort(requestObject.signal.reason);let realResponse=responseObject?.deref();abortFetch(p,request,realResponse,requestObject.signal.reason,controller.controller)}),cleanupAbortListeners=()=>{removeAbortListener(),removeRequestAbortListener(requestObject)};return controller=fetching({request,processResponseEndOfBody:response=>{handleFetchDone(response),cleanupAbortListeners()},processResponse:response=>{if(!locallyAborted){if(response.aborted){abortFetch(p,request,responseObject,controller.serializedAbortReason,controller.controller),cleanupAbortListeners();return}if(response.type==="error"){p.reject(new TypeError("fetch failed",{cause:response.error})),cleanupAbortListeners();return}responseObject=new WeakRef(fromInnerResponse(response,"immutable")),p.resolve(responseObject.deref()),p=null}},dispatcher:getRequestDispatcher(requestObject),requestObject}),p.promise}function finalizeAndReportTiming(response,initiatorType="other"){if(response.type==="error"&&response.aborted||!response.urlList?.length)return;let originalURL=response.urlList[0],timingInfo=response.timingInfo,cacheState=response.cacheState;urlIsHttpHttpsScheme(originalURL)&&timingInfo!==null&&(response.timingAllowPassed||(timingInfo=createOpaqueTimingInfo({startTime:timingInfo.startTime}),cacheState=""),timingInfo.endTime=coarsenedSharedCurrentTime(),response.timingInfo=timingInfo,markResourceTiming(timingInfo,originalURL.href,initiatorType,globalThis,cacheState,"",response.status))}var markResourceTiming=performance.markResourceTiming;function abortFetch(p,request,responseObject,error,controller){if(p&&p.reject(error),request.body?.stream!=null&&isReadable(request.body.stream)&&request.body.stream.cancel(error).catch(err=>{if(err.code!=="ERR_INVALID_STATE")throw err}),responseObject==null)return;let response=getResponseState(responseObject);response.body?.stream!=null&&isReadable(response.body.stream)&&controller.error(error)}function fetching({request,processRequestBodyChunkLength,processRequestEndOfBody,processResponse,processResponseEndOfBody,processResponseConsumeBody,useParallelQueue=!1,dispatcher=getGlobalDispatcher(),requestObject=null}){assert(dispatcher);let taskDestination=null,crossOriginIsolatedCapability=!1;request.client!=null&&(taskDestination=request.client.globalObject,crossOriginIsolatedCapability=request.client.crossOriginIsolatedCapability);let currentTime=coarsenedSharedCurrentTime(crossOriginIsolatedCapability),timingInfo=createOpaqueTimingInfo({startTime:currentTime}),fetchParams={controller:new Fetch(dispatcher),request,timingInfo,processRequestBodyChunkLength,processRequestEndOfBody,processResponse,processResponseConsumeBody,processResponseEndOfBody,taskDestination,crossOriginIsolatedCapability,requestObject};return assert(!request.body||request.body.stream),request.window==="client"&&(request.window=request.client?.globalObject?.constructor?.name==="Window"?request.client:"no-window"),request.origin==="client"&&(request.origin=request.client.origin),request.policyContainer==="client"&&(request.client!=null?request.policyContainer=clonePolicyContainer(request.client.policyContainer):request.policyContainer=makePolicyContainer()),request.headersList.contains("accept",!0)||request.headersList.append("accept","*/*",!0),request.headersList.contains("accept-language",!0)||request.headersList.append("accept-language","*",!0),request.priority,subresourceSet.has(request.destination),mainFetch(fetchParams,!1),fetchParams.controller}async function mainFetch(fetchParams,recursive){try{let request=fetchParams.request,response=null;if(request.localURLsOnly&&!urlIsLocal(requestCurrentURL(request))&&(response=makeNetworkError("local URLs only")),tryUpgradeRequestToAPotentiallyTrustworthyURL(request),requestBadPort(request)==="blocked"&&(response=makeNetworkError("bad port")),request.referrerPolicy===""&&(request.referrerPolicy=request.policyContainer.referrerPolicy),request.referrer!=="no-referrer"&&(request.referrer=determineRequestsReferrer(request)),response===null){let currentURL=requestCurrentURL(request);sameOrigin(currentURL,request.url)&&request.responseTainting==="basic"||currentURL.protocol==="data:"||request.mode==="navigate"||request.mode==="websocket"?(request.responseTainting="basic",response=await schemeFetch(fetchParams)):request.mode==="same-origin"?response=makeNetworkError('request mode cannot be "same-origin"'):request.mode==="no-cors"?request.redirect!=="follow"?response=makeNetworkError('redirect mode cannot be "follow" for "no-cors" request'):(request.responseTainting="opaque",response=await schemeFetch(fetchParams)):urlIsHttpHttpsScheme(requestCurrentURL(request))?(request.responseTainting="cors",response=await httpFetch(fetchParams)):response=makeNetworkError("URL scheme must be a HTTP(S) scheme")}if(recursive)return response;response.status!==0&&!response.internalResponse&&(request.responseTainting,request.responseTainting==="basic"?response=filterResponse(response,"basic"):request.responseTainting==="cors"?response=filterResponse(response,"cors"):request.responseTainting==="opaque"?response=filterResponse(response,"opaque"):assert(!1));let internalResponse=response.status===0?response:response.internalResponse;if(internalResponse.urlList.length===0&&internalResponse.urlList.push(...request.urlList),request.timingAllowFailed||(response.timingAllowPassed=!0),response.type==="opaque"&&internalResponse.status===206&&internalResponse.rangeRequested&&!request.headers.contains("range",!0)&&(response=internalResponse=makeNetworkError()),response.status!==0&&(request.method==="HEAD"||request.method==="CONNECT"||nullBodyStatus.includes(internalResponse.status))&&(internalResponse.body=null,fetchParams.controller.dump=!0),request.integrity){let processBodyError=reason=>fetchFinale(fetchParams,makeNetworkError(reason));if(request.responseTainting==="opaque"||response.body==null){processBodyError(response.error);return}let processBody=bytes=>{if(!bytesMatch(bytes,request.integrity)){processBodyError("integrity mismatch");return}response.body=safelyExtractBody(bytes)[0],fetchFinale(fetchParams,response)};fullyReadBody(response.body,processBody,processBodyError)}else fetchFinale(fetchParams,response)}catch(err){fetchParams.controller.terminate(err)}}function schemeFetch(fetchParams){if(isCancelled(fetchParams)&&fetchParams.request.redirectCount===0)return Promise.resolve(makeAppropriateNetworkError(fetchParams));let{request}=fetchParams,{protocol:scheme}=requestCurrentURL(request);switch(scheme){case"about:":return Promise.resolve(makeNetworkError("about scheme is not supported"));case"blob:":{resolveObjectURL||(resolveObjectURL=__require("node:buffer").resolveObjectURL);let blobURLEntry=requestCurrentURL(request);if(blobURLEntry.search.length!==0)return Promise.resolve(makeNetworkError("NetworkError when attempting to fetch resource."));let blob=resolveObjectURL(blobURLEntry.toString());if(request.method!=="GET"||!webidl.is.Blob(blob))return Promise.resolve(makeNetworkError("invalid method"));let response=makeResponse(),fullLength=blob.size,serializedFullLength=isomorphicEncode(`${fullLength}`),type=blob.type;if(request.headersList.contains("range",!0)){response.rangeRequested=!0;let rangeHeader=request.headersList.get("range",!0),rangeValue=simpleRangeHeaderValue(rangeHeader,!0);if(rangeValue==="failure")return Promise.resolve(makeNetworkError("failed to fetch the data URL"));let{rangeStartValue:rangeStart,rangeEndValue:rangeEnd}=rangeValue;if(rangeStart===null)rangeStart=fullLength-rangeEnd,rangeEnd=rangeStart+rangeEnd-1;else{if(rangeStart>=fullLength)return Promise.resolve(makeNetworkError("Range start is greater than the blob's size."));(rangeEnd===null||rangeEnd>=fullLength)&&(rangeEnd=fullLength-1)}let slicedBlob=blob.slice(rangeStart,rangeEnd+1,type),slicedBodyWithType=extractBody(slicedBlob);response.body=slicedBodyWithType[0];let serializedSlicedLength=isomorphicEncode(`${slicedBlob.size}`),contentRange=buildContentRange(rangeStart,rangeEnd,fullLength);response.status=206,response.statusText="Partial Content",response.headersList.set("content-length",serializedSlicedLength,!0),response.headersList.set("content-type",type,!0),response.headersList.set("content-range",contentRange,!0)}else{let bodyWithType=extractBody(blob);response.statusText="OK",response.body=bodyWithType[0],response.headersList.set("content-length",serializedFullLength,!0),response.headersList.set("content-type",type,!0)}return Promise.resolve(response)}case"data:":{let currentURL=requestCurrentURL(request),dataURLStruct=dataURLProcessor(currentURL);if(dataURLStruct==="failure")return Promise.resolve(makeNetworkError("failed to fetch the data URL"));let mimeType=serializeAMimeType(dataURLStruct.mimeType);return Promise.resolve(makeResponse({statusText:"OK",headersList:[["content-type",{name:"Content-Type",value:mimeType}]],body:safelyExtractBody(dataURLStruct.body)[0]}))}case"file:":return Promise.resolve(makeNetworkError("not implemented... yet..."));case"http:":case"https:":return httpFetch(fetchParams).catch(err=>makeNetworkError(err));default:return Promise.resolve(makeNetworkError("unknown scheme"))}}function finalizeResponse(fetchParams,response){fetchParams.request.done=!0,fetchParams.processResponseDone!=null&&queueMicrotask(()=>fetchParams.processResponseDone(response))}function fetchFinale(fetchParams,response){let timingInfo=fetchParams.timingInfo,processResponseEndOfBody=()=>{let unsafeEndTime=Date.now();fetchParams.request.destination==="document"&&(fetchParams.controller.fullTimingInfo=timingInfo),fetchParams.controller.reportTimingSteps=()=>{if(!urlIsHttpHttpsScheme(fetchParams.request.url))return;timingInfo.endTime=unsafeEndTime;let cacheState=response.cacheState,bodyInfo=response.bodyInfo;response.timingAllowPassed||(timingInfo=createOpaqueTimingInfo(timingInfo),cacheState="");let responseStatus=0;if(fetchParams.request.mode!=="navigate"||!response.hasCrossOriginRedirects){responseStatus=response.status;let mimeType=extractMimeType(response.headersList);mimeType!=="failure"&&(bodyInfo.contentType=minimizeSupportedMimeType(mimeType))}fetchParams.request.initiatorType!=null&&markResourceTiming(timingInfo,fetchParams.request.url.href,fetchParams.request.initiatorType,globalThis,cacheState,bodyInfo,responseStatus)};let processResponseEndOfBodyTask=()=>{fetchParams.request.done=!0,fetchParams.processResponseEndOfBody!=null&&queueMicrotask(()=>fetchParams.processResponseEndOfBody(response)),fetchParams.request.initiatorType!=null&&fetchParams.controller.reportTimingSteps()};queueMicrotask(()=>processResponseEndOfBodyTask())};fetchParams.processResponse!=null&&queueMicrotask(()=>{fetchParams.processResponse(response),fetchParams.processResponse=null});let internalResponse=response.type==="error"?response:response.internalResponse??response;internalResponse.body==null?processResponseEndOfBody():finished(internalResponse.body.stream,()=>{processResponseEndOfBody()})}async function httpFetch(fetchParams){let request=fetchParams.request,response=null,actualResponse=null,timingInfo=fetchParams.timingInfo;if(request.serviceWorkers,response===null){if(request.redirect==="follow"&&(request.serviceWorkers="none"),actualResponse=response=await httpNetworkOrCacheFetch(fetchParams),request.responseTainting==="cors"&&corsCheck(request,response)==="failure")return makeNetworkError("cors failure");TAOCheck(request,response)==="failure"&&(request.timingAllowFailed=!0)}return(request.responseTainting==="opaque"||response.type==="opaque")&&crossOriginResourcePolicyCheck(request.origin,request.client,request.destination,actualResponse)==="blocked"?makeNetworkError("blocked"):(redirectStatusSet.has(actualResponse.status)&&(request.redirect!=="manual"&&fetchParams.controller.connection.destroy(void 0,!1),request.redirect==="error"?response=makeNetworkError("unexpected redirect"):request.redirect==="manual"?response=actualResponse:request.redirect==="follow"?response=await httpRedirectFetch(fetchParams,response):assert(!1)),response.timingInfo=timingInfo,response)}function httpRedirectFetch(fetchParams,response){let request=fetchParams.request,actualResponse=response.internalResponse?response.internalResponse:response,locationURL;try{if(locationURL=responseLocationURL(actualResponse,requestCurrentURL(request).hash),locationURL==null)return response}catch(err){return Promise.resolve(makeNetworkError(err))}if(!urlIsHttpHttpsScheme(locationURL))return Promise.resolve(makeNetworkError("URL scheme must be a HTTP(S) scheme"));if(request.redirectCount===20)return Promise.resolve(makeNetworkError("redirect count exceeded"));if(request.redirectCount+=1,request.mode==="cors"&&(locationURL.username||locationURL.password)&&!sameOrigin(request,locationURL))return Promise.resolve(makeNetworkError('cross origin not allowed for request mode "cors"'));if(request.responseTainting==="cors"&&(locationURL.username||locationURL.password))return Promise.resolve(makeNetworkError('URL cannot contain credentials for request mode "cors"'));if(actualResponse.status!==303&&request.body!=null&&request.body.source==null)return Promise.resolve(makeNetworkError());if([301,302].includes(actualResponse.status)&&request.method==="POST"||actualResponse.status===303&&!GET_OR_HEAD.includes(request.method)){request.method="GET",request.body=null;for(let headerName of requestBodyHeader)request.headersList.delete(headerName)}sameOrigin(requestCurrentURL(request),locationURL)||(request.headersList.delete("authorization",!0),request.headersList.delete("proxy-authorization",!0),request.headersList.delete("cookie",!0),request.headersList.delete("host",!0)),request.body!=null&&(assert(request.body.source!=null),request.body=safelyExtractBody(request.body.source)[0]);let timingInfo=fetchParams.timingInfo;return timingInfo.redirectEndTime=timingInfo.postRedirectStartTime=coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability),timingInfo.redirectStartTime===0&&(timingInfo.redirectStartTime=timingInfo.startTime),request.urlList.push(locationURL),setRequestReferrerPolicyOnRedirect(request,actualResponse),mainFetch(fetchParams,!0)}async function httpNetworkOrCacheFetch(fetchParams,isAuthenticationFetch=!1,isNewConnectionFetch=!1){let request=fetchParams.request,httpFetchParams=null,httpRequest=null,response=null,httpCache=null,revalidatingFlag=!1;request.window==="no-window"&&request.redirect==="error"?(httpFetchParams=fetchParams,httpRequest=request):(request.body?.source!=null?httpRequest=cloneRequest(request):(httpRequest=cloneRequest({...request,body:null}),httpRequest.body=request.body),httpFetchParams={...fetchParams},httpFetchParams.request=httpRequest);let includeCredentials=request.credentials==="include"||request.credentials==="same-origin"&&request.responseTainting==="basic",contentLength=httpRequest.body?httpRequest.body.length:null,contentLengthHeaderValue=null;if(httpRequest.body==null&&["POST","PUT"].includes(httpRequest.method)&&(contentLengthHeaderValue="0"),contentLength!=null&&(contentLengthHeaderValue=isomorphicEncode(`${contentLength}`)),contentLengthHeaderValue!=null&&!httpRequest.headersList.contains("content-length",!0)&&httpRequest.headersList.append("content-length",contentLengthHeaderValue,!0),contentLength!=null&&httpRequest.keepalive,webidl.is.URL(httpRequest.referrer)&&httpRequest.headersList.append("referer",isomorphicEncode(httpRequest.referrer.href),!0),appendRequestOriginHeader(httpRequest),appendFetchMetadata(httpRequest),httpRequest.headersList.contains("user-agent",!0)||httpRequest.headersList.append("user-agent",defaultUserAgent,!0),httpRequest.cache==="default"&&(httpRequest.headersList.contains("if-modified-since",!0)||httpRequest.headersList.contains("if-none-match",!0)||httpRequest.headersList.contains("if-unmodified-since",!0)||httpRequest.headersList.contains("if-match",!0)||httpRequest.headersList.contains("if-range",!0))&&(httpRequest.cache="no-store"),httpRequest.cache==="no-cache"&&!httpRequest.preventNoCacheCacheControlHeaderModification&&!httpRequest.headersList.contains("cache-control",!0)&&httpRequest.headersList.append("cache-control","max-age=0",!0),(httpRequest.cache==="no-store"||httpRequest.cache==="reload")&&(httpRequest.headersList.contains("pragma",!0)||httpRequest.headersList.append("pragma","no-cache",!0),httpRequest.headersList.contains("cache-control",!0)||httpRequest.headersList.append("cache-control","no-cache",!0)),httpRequest.headersList.contains("range",!0)&&httpRequest.headersList.append("accept-encoding","identity",!0),httpRequest.headersList.contains("accept-encoding",!0)||(urlHasHttpsScheme(requestCurrentURL(httpRequest))?httpRequest.headersList.append("accept-encoding","br, gzip, deflate, zstd",!0):httpRequest.headersList.append("accept-encoding","gzip, deflate",!0)),httpRequest.headersList.delete("host",!0),includeCredentials&&!httpRequest.headersList.contains("authorization",!0)){let authorizationValue=null;if(!(hasAuthenticationEntry(httpRequest)&&(httpRequest.useURLCredentials===void 0||!includesCredentials(requestCurrentURL(httpRequest))))){if(includesCredentials(requestCurrentURL(httpRequest))&&isAuthenticationFetch){let{username,password}=requestCurrentURL(httpRequest);authorizationValue=`Basic ${Buffer.from(`${username}:${password}`).toString("base64")}`}}authorizationValue!==null&&httpRequest.headersList.append("Authorization",authorizationValue,!1)}if(httpCache==null&&(httpRequest.cache="no-store"),httpRequest.cache!=="no-store"&&httpRequest.cache,response==null){if(httpRequest.cache==="only-if-cached")return makeNetworkError("only if cached");let forwardResponse=await httpNetworkFetch(httpFetchParams,includeCredentials,isNewConnectionFetch);!safeMethodsSet.has(httpRequest.method)&&forwardResponse.status>=200&&forwardResponse.status<=399,revalidatingFlag&&forwardResponse.status,response==null&&(response=forwardResponse)}if(response.urlList=[...httpRequest.urlList],httpRequest.headersList.contains("range",!0)&&(response.rangeRequested=!0),response.requestIncludesCredentials=includeCredentials,response.status===401&&httpRequest.responseTainting!=="cors"&&includeCredentials&&(request.useURLCredentials!==void 0||isTraversableNavigable(request.traversableForUserPrompts))){if(request.body!=null){if(request.body.source==null)return response;request.body=safelyExtractBody(request.body.source)[0]}if(request.useURLCredentials===void 0||isAuthenticationFetch)return isCancelled(fetchParams)?makeAppropriateNetworkError(fetchParams):response;fetchParams.controller.connection.destroy(),response=await httpNetworkOrCacheFetch(fetchParams,!0)}if(response.status===407)return request.window==="no-window"?makeNetworkError():isCancelled(fetchParams)?makeAppropriateNetworkError(fetchParams):makeNetworkError("proxy authentication required");if(response.status===421&&!isNewConnectionFetch&&(request.body==null||request.body.source!=null)){if(isCancelled(fetchParams))return makeAppropriateNetworkError(fetchParams);fetchParams.controller.connection.destroy(),response=await httpNetworkOrCacheFetch(fetchParams,isAuthenticationFetch,!0)}return response}async function httpNetworkFetch(fetchParams,includeCredentials=!1,forceNewConnection=!1){assert(!fetchParams.controller.connection||fetchParams.controller.connection.destroyed),fetchParams.controller.connection={abort:null,destroyed:!1,destroy(err,abort=!0){this.destroyed||(this.destroyed=!0,abort&&this.abort?.(err??new DOMException("The operation was aborted.","AbortError")))}};let request=fetchParams.request,response=null,timingInfo=fetchParams.timingInfo;null==null&&(request.cache="no-store");let newConnection=forceNewConnection?"yes":"no";request.mode;let requestBody=null;if(request.body==null&&fetchParams.processRequestEndOfBody)queueMicrotask(()=>fetchParams.processRequestEndOfBody());else if(request.body!=null){let processBodyChunk=async function*(bytes){isCancelled(fetchParams)||(yield bytes,fetchParams.processRequestBodyChunkLength?.(bytes.byteLength))},processEndOfBody=()=>{isCancelled(fetchParams)||fetchParams.processRequestEndOfBody&&fetchParams.processRequestEndOfBody()},processBodyError=e=>{isCancelled(fetchParams)||(e.name==="AbortError"?fetchParams.controller.abort():fetchParams.controller.terminate(e))};requestBody=(async function*(){try{for await(let bytes of request.body.stream)yield*processBodyChunk(bytes);processEndOfBody()}catch(err){processBodyError(err)}})()}try{let{body,status,statusText,headersList,socket}=await dispatch({body:requestBody});if(socket)response=makeResponse({status,statusText,headersList,socket});else{let iterator=body[Symbol.asyncIterator]();fetchParams.controller.next=()=>iterator.next(),response=makeResponse({status,statusText,headersList})}}catch(err){return err.name==="AbortError"?(fetchParams.controller.connection.destroy(),makeAppropriateNetworkError(fetchParams,err)):makeNetworkError(err)}let pullAlgorithm=()=>fetchParams.controller.resume(),cancelAlgorithm=reason=>{isCancelled(fetchParams)||fetchParams.controller.abort(reason)},stream=new ReadableStream({start(controller){fetchParams.controller.controller=controller},pull:pullAlgorithm,cancel:cancelAlgorithm,type:"bytes"});response.body={stream,source:null,length:null},fetchParams.controller.resume||fetchParams.controller.on("terminated",onAborted),fetchParams.controller.resume=async()=>{for(;;){let bytes,isFailure;try{let{done,value}=await fetchParams.controller.next();if(isAborted(fetchParams))break;bytes=done?void 0:value}catch(err){fetchParams.controller.ended&&!timingInfo.encodedBodySize?bytes=void 0:(bytes=err,isFailure=!0)}if(bytes===void 0){readableStreamClose(fetchParams.controller.controller),finalizeResponse(fetchParams,response);return}if(timingInfo.decodedBodySize+=bytes?.byteLength??0,isFailure){fetchParams.controller.terminate(bytes);return}let buffer=new Uint8Array(bytes);if(buffer.byteLength&&fetchParams.controller.controller.enqueue(buffer),isErrored(stream)){fetchParams.controller.terminate();return}if(fetchParams.controller.controller.desiredSize<=0)return}};function onAborted(reason){isAborted(fetchParams)?(response.aborted=!0,isReadable(stream)&&fetchParams.controller.controller.error(fetchParams.controller.serializedAbortReason)):isReadable(stream)&&fetchParams.controller.controller.error(new TypeError("terminated",{cause:isErrorLike(reason)?reason:void 0})),fetchParams.controller.connection.destroy()}return response;function dispatch({body}){let url=requestCurrentURL(request),agent=fetchParams.controller.dispatcher,path=url.pathname+url.search,hasTrailingQuestionMark=url.search.length===0&&url.href[url.href.length-url.hash.length-1]==="?";return dispatchWithProtocolPreference(body);function dispatchWithProtocolPreference(body2,allowH2){return new Promise((resolve,reject)=>agent.dispatch({path:hasTrailingQuestionMark?`${path}?`:path,origin:url.origin,method:request.method,body:agent.isMockActive?request.body&&(request.body.source||request.body.stream):body2,__mockAgentBodyForDispatch:body2,headers:request.headersList.entries,maxRedirections:0,upgrade:request.mode==="websocket"?"websocket":void 0,...allowH2===!1?{allowH2}:null},{body:null,abort:null,onRequestStart(controller){let{connection}=fetchParams.controller;timingInfo.finalConnectionTimingInfo=clampAndCoarsenConnectionTimingInfo(void 0,timingInfo.postRedirectStartTime,fetchParams.crossOriginIsolatedCapability);let abort=reason=>controller.abort(reason);connection.destroyed?abort(new DOMException("The operation was aborted.","AbortError")):(fetchParams.controller.on("terminated",abort),this.abort=connection.abort=abort),timingInfo.finalNetworkRequestStartTime=coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability)},onResponseStarted(){timingInfo.finalNetworkResponseStartTime=coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability)},onResponseStart(controller,status,headers,statusText){if(status<200)return;let rawHeaders=controller?.rawHeaders??[],headersList=new HeadersList;appendHeadersListFromResponseHeaders(headersList,headers,rawHeaders);let location=headersList.get("location",!0);this.body=new Readable({read:()=>controller.resume()});let willFollow=location&&request.redirect==="follow"&&redirectStatusSet.has(status),decoders=[];if(request.method!=="HEAD"&&request.method!=="CONNECT"&&!nullBodyStatus.includes(status)&&!willFollow){let contentEncoding=headersList.get("content-encoding",!0),codings=contentEncoding?contentEncoding.toLowerCase().split(","):[],maxContentEncodings=5;if(codings.length>maxContentEncodings){reject(new Error(`too many content-encodings in response: ${codings.length}, maximum allowed is ${maxContentEncodings}`));return}for(let i=codings.length-1;i>=0;--i){let coding=codings[i].trim();if(coding==="x-gzip"||coding==="gzip")decoders.push(zlib.createGunzip({flush:zlib.constants.Z_SYNC_FLUSH,finishFlush:zlib.constants.Z_SYNC_FLUSH}));else if(coding==="deflate")decoders.push(createInflate({flush:zlib.constants.Z_SYNC_FLUSH,finishFlush:zlib.constants.Z_SYNC_FLUSH}));else if(coding==="br")decoders.push(zlib.createBrotliDecompress({flush:zlib.constants.BROTLI_OPERATION_FLUSH,finishFlush:zlib.constants.BROTLI_OPERATION_FLUSH}));else if(coding==="zstd")decoders.push(zlib.createZstdDecompress({flush:zlib.constants.ZSTD_e_continue,finishFlush:zlib.constants.ZSTD_e_end}));else{decoders.length=0;break}}}let onError=err=>this.onResponseError(controller,err);resolve({status,statusText,headersList,body:decoders.length?pipeline(this.body,...decoders,err=>{err&&this.onResponseError(controller,err)}).on("error",onError):this.body.on("error",onError)})},onResponseData(controller,chunk){if(fetchParams.controller.dump)return;let bytes=chunk;timingInfo.encodedBodySize+=bytes.byteLength,this.body.push(bytes)===!1&&controller.pause()},onResponseEnd(){this.abort&&fetchParams.controller.off("terminated",this.abort),fetchParams.controller.ended=!0,this.body?.push(null)},onResponseError(_controller,error){if(this.abort&&fetchParams.controller.off("terminated",this.abort),request.mode==="websocket"&&allowH2!==!1&&error?.code==="UND_ERR_INFO"&&error?.message==="HTTP/2: Extended CONNECT protocol not supported by server"){resolve(dispatchWithProtocolPreference(body2,!1));return}this.body?.destroy(error),fetchParams.controller.terminate(error),reject(error)},onRequestUpgrade(controller,status,headers,socket){if(socket.session!=null&&status!==200||socket.session==null&&status!==101)return!1;let rawHeaders=controller?.rawHeaders??[],headersList=new HeadersList;return appendHeadersListFromResponseHeaders(headersList,headers,rawHeaders),resolve({status,statusText:STATUS_CODES[status],headersList,socket}),!0}}))}}}module.exports={fetch,Fetch,fetching,finalizeAndReportTiming}}});var require_util3=__commonJS({"node_modules/undici/lib/web/cache/util.js"(exports,module){"use strict";var assert=__require("node:assert"),{URLSerializer}=require_data_url(),{isValidHeaderName}=require_util2();function urlEquals(A,B,excludeFragment=!1){let serializedA=URLSerializer(A,excludeFragment),serializedB=URLSerializer(B,excludeFragment);return serializedA===serializedB}function getFieldValues(header){assert(header!==null);let values=[];for(let value of header.split(","))value=value.trim(),isValidHeaderName(value)&&values.push(value);return values}module.exports={urlEquals,getFieldValues}}});var require_cache3=__commonJS({"node_modules/undici/lib/web/cache/cache.js"(exports,module){"use strict";var assert=__require("node:assert"),{kConstruct}=require_symbols(),{urlEquals,getFieldValues}=require_util3(),{kEnumerableProperty,isDisturbed}=require_util(),{webidl}=require_webidl(),{cloneResponse,fromInnerResponse,getResponseState}=require_response(),{Request,fromInnerRequest,getRequestState}=require_request2(),{fetching}=require_fetch(),{urlIsHttpHttpsScheme,readAllBytes}=require_util2(),Cache=class _Cache{#relevantRequestResponseList;constructor(){arguments[0]!==kConstruct&&webidl.illegalConstructor(),webidl.util.markAsUncloneable(this),this.#relevantRequestResponseList=arguments[1]}async match(request,options={}){webidl.brandCheck(this,_Cache);let prefix="Cache.match";webidl.argumentLengthCheck(arguments,1,prefix),request=webidl.converters.RequestInfo(request),options=webidl.converters.CacheQueryOptions(options,prefix,"options");let p=this.#internalMatchAll(request,options,1);if(p.length!==0)return p[0]}async matchAll(request=void 0,options={}){webidl.brandCheck(this,_Cache);let prefix="Cache.matchAll";return request!==void 0&&(request=webidl.converters.RequestInfo(request)),options=webidl.converters.CacheQueryOptions(options,prefix,"options"),this.#internalMatchAll(request,options)}async add(request){webidl.brandCheck(this,_Cache),webidl.argumentLengthCheck(arguments,1,"Cache.add"),request=webidl.converters.RequestInfo(request);let requests=[request];return await this.addAll(requests)}async addAll(requests){webidl.brandCheck(this,_Cache);let prefix="Cache.addAll";webidl.argumentLengthCheck(arguments,1,prefix);let responsePromises=[],requestList=[];for(let request of requests){if(request===void 0)throw webidl.errors.conversionFailed({prefix,argument:"Argument 1",types:["undefined is not allowed"]});if(request=webidl.converters.RequestInfo(request),typeof request=="string")continue;let r=getRequestState(request);if(!urlIsHttpHttpsScheme(r.url)||r.method!=="GET")throw webidl.errors.exception({header:prefix,message:"Expected http/s scheme when method is not GET."})}let fetchControllers=[];for(let request of requests){let r=getRequestState(new Request(request));if(!urlIsHttpHttpsScheme(r.url))throw webidl.errors.exception({header:prefix,message:"Expected http/s scheme."});r.initiator="fetch",r.destination="subresource",requestList.push(r);let responsePromise=Promise.withResolvers();fetchControllers.push(fetching({request:r,processResponse(response){if(response.type==="error"||response.status===206||response.status<200||response.status>299)responsePromise.reject(webidl.errors.exception({header:"Cache.addAll",message:"Received an invalid status code or the request failed."}));else if(response.headersList.contains("vary")){let fieldValues=getFieldValues(response.headersList.get("vary"));for(let fieldValue of fieldValues)if(fieldValue==="*"){responsePromise.reject(webidl.errors.exception({header:"Cache.addAll",message:"invalid vary field value"}));for(let controller of fetchControllers)controller.abort();return}}},processResponseEndOfBody(response){if(response.aborted){responsePromise.reject(new DOMException("aborted","AbortError"));return}responsePromise.resolve(response)}})),responsePromises.push(responsePromise.promise)}let responses=await Promise.all(responsePromises),operations=[],index=0;for(let response of responses){let operation={type:"put",request:requestList[index],response};operations.push(operation),index++}let cacheJobPromise=Promise.withResolvers(),errorData=null;try{this.#batchCacheOperations(operations)}catch(e){errorData=e}return queueMicrotask(()=>{errorData===null?cacheJobPromise.resolve(void 0):cacheJobPromise.reject(errorData)}),cacheJobPromise.promise}async put(request,response){webidl.brandCheck(this,_Cache);let prefix="Cache.put";webidl.argumentLengthCheck(arguments,2,prefix),request=webidl.converters.RequestInfo(request),response=webidl.converters.Response(response,prefix,"response");let innerRequest=null;if(webidl.is.Request(request)?innerRequest=getRequestState(request):innerRequest=getRequestState(new Request(request)),!urlIsHttpHttpsScheme(innerRequest.url)||innerRequest.method!=="GET")throw webidl.errors.exception({header:prefix,message:"Expected an http/s scheme when method is not GET"});let innerResponse=getResponseState(response);if(innerResponse.status===206)throw webidl.errors.exception({header:prefix,message:"Got 206 status"});if(innerResponse.headersList.contains("vary")){let fieldValues=getFieldValues(innerResponse.headersList.get("vary"));for(let fieldValue of fieldValues)if(fieldValue==="*")throw webidl.errors.exception({header:prefix,message:"Got * vary field value"})}if(innerResponse.body&&(isDisturbed(innerResponse.body.stream)||innerResponse.body.stream.locked))throw webidl.errors.exception({header:prefix,message:"Response body is locked or disturbed"});let clonedResponse=cloneResponse(innerResponse),bodyReadPromise=Promise.withResolvers();if(innerResponse.body!=null){let reader=innerResponse.body.stream.getReader();readAllBytes(reader,bodyReadPromise.resolve,bodyReadPromise.reject)}else bodyReadPromise.resolve(void 0);let operations=[],operation={type:"put",request:innerRequest,response:clonedResponse};operations.push(operation);let bytes=await bodyReadPromise.promise;clonedResponse.body!=null&&(clonedResponse.body.source=bytes);let cacheJobPromise=Promise.withResolvers(),errorData=null;try{this.#batchCacheOperations(operations)}catch(e){errorData=e}return queueMicrotask(()=>{errorData===null?cacheJobPromise.resolve():cacheJobPromise.reject(errorData)}),cacheJobPromise.promise}async delete(request,options={}){webidl.brandCheck(this,_Cache);let prefix="Cache.delete";webidl.argumentLengthCheck(arguments,1,prefix),request=webidl.converters.RequestInfo(request),options=webidl.converters.CacheQueryOptions(options,prefix,"options");let r=null;if(webidl.is.Request(request)){if(r=getRequestState(request),r.method!=="GET"&&!options.ignoreMethod)return!1}else assert(typeof request=="string"),r=getRequestState(new Request(request));let operations=[],operation={type:"delete",request:r,options};operations.push(operation);let cacheJobPromise=Promise.withResolvers(),errorData=null,requestResponses;try{requestResponses=this.#batchCacheOperations(operations)}catch(e){errorData=e}return queueMicrotask(()=>{errorData===null?cacheJobPromise.resolve(!!requestResponses?.length):cacheJobPromise.reject(errorData)}),cacheJobPromise.promise}async keys(request=void 0,options={}){webidl.brandCheck(this,_Cache);let prefix="Cache.keys";request!==void 0&&(request=webidl.converters.RequestInfo(request)),options=webidl.converters.CacheQueryOptions(options,prefix,"options");let r=null;if(request!==void 0)if(webidl.is.Request(request)){if(r=getRequestState(request),r.method!=="GET"&&!options.ignoreMethod)return[]}else typeof request=="string"&&(r=getRequestState(new Request(request)));let promise=Promise.withResolvers(),requests=[];if(request===void 0)for(let requestResponse of this.#relevantRequestResponseList)requests.push(requestResponse[0]);else{let requestResponses=this.#queryCache(r,options);for(let requestResponse of requestResponses)requests.push(requestResponse[0])}return queueMicrotask(()=>{let requestList=[];for(let request2 of requests){let requestObject=fromInnerRequest(request2,void 0,new AbortController().signal,"immutable");requestList.push(requestObject)}promise.resolve(Object.freeze(requestList))}),promise.promise}#batchCacheOperations(operations){let cache=this.#relevantRequestResponseList,backupCache=[...cache],addedItems=[],resultList=[];try{for(let operation of operations){if(operation.type!=="delete"&&operation.type!=="put")throw webidl.errors.exception({header:"Cache.#batchCacheOperations",message:'operation type does not match "delete" or "put"'});if(operation.type==="delete"&&operation.response!=null)throw webidl.errors.exception({header:"Cache.#batchCacheOperations",message:"delete operation should not have an associated response"});if(this.#queryCache(operation.request,operation.options,addedItems).length)throw new DOMException("???","InvalidStateError");let requestResponses;if(operation.type==="delete"){if(requestResponses=this.#queryCache(operation.request,operation.options),requestResponses.length===0)return[];for(let requestResponse of requestResponses){let idx=cache.indexOf(requestResponse);assert(idx!==-1),cache.splice(idx,1)}}else if(operation.type==="put"){if(operation.response==null)throw webidl.errors.exception({header:"Cache.#batchCacheOperations",message:"put operation should have an associated response"});let r=operation.request;if(!urlIsHttpHttpsScheme(r.url))throw webidl.errors.exception({header:"Cache.#batchCacheOperations",message:"expected http or https scheme"});if(r.method!=="GET")throw webidl.errors.exception({header:"Cache.#batchCacheOperations",message:"not get method"});if(operation.options!=null)throw webidl.errors.exception({header:"Cache.#batchCacheOperations",message:"options must not be defined"});requestResponses=this.#queryCache(operation.request);for(let requestResponse of requestResponses){let idx=cache.indexOf(requestResponse);assert(idx!==-1),cache.splice(idx,1)}cache.push([operation.request,operation.response]),addedItems.push([operation.request,operation.response])}resultList.push([operation.request,operation.response])}return resultList}catch(e){throw this.#relevantRequestResponseList.length=0,this.#relevantRequestResponseList=backupCache,e}}#queryCache(requestQuery,options,targetStorage){let resultList=[],storage=targetStorage??this.#relevantRequestResponseList;for(let requestResponse of storage){let[cachedRequest,cachedResponse]=requestResponse;this.#requestMatchesCachedItem(requestQuery,cachedRequest,cachedResponse,options)&&resultList.push(requestResponse)}return resultList}#requestMatchesCachedItem(requestQuery,request,response=null,options){let queryURL=new URL(requestQuery.url),cachedURL=new URL(request.url);if(options?.ignoreSearch&&(cachedURL.search="",queryURL.search=""),!urlEquals(queryURL,cachedURL,!0))return!1;if(response==null||options?.ignoreVary||!response.headersList.contains("vary"))return!0;let fieldValues=getFieldValues(response.headersList.get("vary"));for(let fieldValue of fieldValues){if(fieldValue==="*")return!1;let requestValue=request.headersList.get(fieldValue),queryValue=requestQuery.headersList.get(fieldValue);if(requestValue!==queryValue)return!1}return!0}#internalMatchAll(request,options,maxResponses=1/0){let r=null;if(request!==void 0)if(webidl.is.Request(request)){if(r=getRequestState(request),r.method!=="GET"&&!options.ignoreMethod)return[]}else typeof request=="string"&&(r=getRequestState(new Request(request)));let responses=[];if(request===void 0)for(let requestResponse of this.#relevantRequestResponseList)responses.push(requestResponse[1]);else{let requestResponses=this.#queryCache(r,options);for(let requestResponse of requestResponses)responses.push(requestResponse[1])}let responseList=[];for(let response of responses){let responseObject=fromInnerResponse(cloneResponse(response),"immutable");if(responseList.push(responseObject),responseList.length>=maxResponses)break}return Object.freeze(responseList)}};Object.defineProperties(Cache.prototype,{[Symbol.toStringTag]:{value:"Cache",configurable:!0},match:kEnumerableProperty,matchAll:kEnumerableProperty,add:kEnumerableProperty,addAll:kEnumerableProperty,put:kEnumerableProperty,delete:kEnumerableProperty,keys:kEnumerableProperty});var cacheQueryOptionConverters=[{key:"ignoreSearch",converter:webidl.converters.boolean,defaultValue:()=>!1},{key:"ignoreMethod",converter:webidl.converters.boolean,defaultValue:()=>!1},{key:"ignoreVary",converter:webidl.converters.boolean,defaultValue:()=>!1}];webidl.converters.CacheQueryOptions=webidl.dictionaryConverter(cacheQueryOptionConverters);webidl.converters.MultiCacheQueryOptions=webidl.dictionaryConverter([...cacheQueryOptionConverters,{key:"cacheName",converter:webidl.converters.DOMString}]);webidl.converters.Response=webidl.interfaceConverter(webidl.is.Response,"Response");webidl.converters["sequence<RequestInfo>"]=webidl.sequenceConverter(webidl.converters.RequestInfo);module.exports={Cache}}});var require_cachestorage=__commonJS({"node_modules/undici/lib/web/cache/cachestorage.js"(exports,module){"use strict";var{Cache}=require_cache3(),{webidl}=require_webidl(),{kEnumerableProperty}=require_util(),{kConstruct}=require_symbols(),CacheStorage=class _CacheStorage{#caches=new Map;constructor(){arguments[0]!==kConstruct&&webidl.illegalConstructor(),webidl.util.markAsUncloneable(this)}async match(request,options={}){if(webidl.brandCheck(this,_CacheStorage),webidl.argumentLengthCheck(arguments,1,"CacheStorage.match"),request=webidl.converters.RequestInfo(request),options=webidl.converters.MultiCacheQueryOptions(options),options.cacheName!=null){if(this.#caches.has(options.cacheName)){let cacheList=this.#caches.get(options.cacheName);return await new Cache(kConstruct,cacheList).match(request,options)}}else for(let cacheList of this.#caches.values()){let response=await new Cache(kConstruct,cacheList).match(request,options);if(response!==void 0)return response}}async has(cacheName){webidl.brandCheck(this,_CacheStorage);let prefix="CacheStorage.has";return webidl.argumentLengthCheck(arguments,1,prefix),cacheName=webidl.converters.DOMString(cacheName,prefix,"cacheName"),this.#caches.has(cacheName)}async open(cacheName){webidl.brandCheck(this,_CacheStorage);let prefix="CacheStorage.open";if(webidl.argumentLengthCheck(arguments,1,prefix),cacheName=webidl.converters.DOMString(cacheName,prefix,"cacheName"),this.#caches.has(cacheName)){let cache2=this.#caches.get(cacheName);return new Cache(kConstruct,cache2)}let cache=[];return this.#caches.set(cacheName,cache),new Cache(kConstruct,cache)}async delete(cacheName){webidl.brandCheck(this,_CacheStorage);let prefix="CacheStorage.delete";return webidl.argumentLengthCheck(arguments,1,prefix),cacheName=webidl.converters.DOMString(cacheName,prefix,"cacheName"),this.#caches.delete(cacheName)}async keys(){return webidl.brandCheck(this,_CacheStorage),[...this.#caches.keys()]}};Object.defineProperties(CacheStorage.prototype,{[Symbol.toStringTag]:{value:"CacheStorage",configurable:!0},match:kEnumerableProperty,has:kEnumerableProperty,open:kEnumerableProperty,delete:kEnumerableProperty,keys:kEnumerableProperty});module.exports={CacheStorage}}});var require_constants4=__commonJS({"node_modules/undici/lib/web/cookies/constants.js"(exports,module){"use strict";module.exports={maxAttributeValueSize:1024,maxNameValuePairSize:4096}}});var require_util4=__commonJS({"node_modules/undici/lib/web/cookies/util.js"(exports,module){"use strict";function isCTLExcludingHtab(value){for(let i=0;i<value.length;++i){let code=value.charCodeAt(i);if(code>=0&&code<=8||code>=10&&code<=31||code===127)return!0}return!1}function validateCookieName(name){for(let i=0;i<name.length;++i){let code=name.charCodeAt(i);if(code<33||code>126||code===34||code===40||code===41||code===60||code===62||code===64||code===44||code===59||code===58||code===92||code===47||code===91||code===93||code===63||code===61||code===123||code===125)throw new Error("Invalid cookie name")}}function validateCookieValue(value){let len=value.length,i=0;if(value[0]==='"'){if(len===1||value[len-1]!=='"')throw new Error("Invalid cookie value");--len,++i}for(;i<len;){let code=value.charCodeAt(i++);if(code<33||code>126||code===34||code===44||code===59||code===92)throw new Error("Invalid cookie value")}}function validateCookiePath(path){for(let i=0;i<path.length;++i){let code=path.charCodeAt(i);if(code<32||code>126||code===59)throw new Error("Invalid cookie path")}}function isLetterOrDigit(code){return code>=48&&code<=57||code>=65&&code<=90||code>=97&&code<=122}function validateCookieDomain(domain){if(domain===" ")return;if(domain.length>255)throw new Error("Invalid cookie domain");let labelLength=0;for(let i=0;i<domain.length;++i){let code=domain.charCodeAt(i);if(code===46){if(labelLength===0)throw new Error("Invalid cookie domain");if(domain.charCodeAt(i-1)===45)throw new Error("Invalid cookie domain");labelLength=0;continue}if(labelLength===0&&!isLetterOrDigit(code))throw new Error("Invalid cookie domain");if(!isLetterOrDigit(code)&&code!==45)throw new Error("Invalid cookie domain");if(++labelLength>63)throw new Error("Invalid cookie domain")}if(labelLength===0||domain.charCodeAt(domain.length-1)===45)throw new Error("Invalid cookie domain")}var IMFDays=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],IMFMonths=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],IMFPaddedNumbers=Array(61).fill(0).map((_,i)=>i.toString().padStart(2,"0"));function toIMFDate(date){return typeof date=="number"&&(date=new Date(date)),`${IMFDays[date.getUTCDay()]}, ${IMFPaddedNumbers[date.getUTCDate()]} ${IMFMonths[date.getUTCMonth()]} ${date.getUTCFullYear()} ${IMFPaddedNumbers[date.getUTCHours()]}:${IMFPaddedNumbers[date.getUTCMinutes()]}:${IMFPaddedNumbers[date.getUTCSeconds()]} GMT`}function validateCookieMaxAge(maxAge){if(maxAge<0)throw new Error("Invalid cookie max-age")}function stringify(cookie){if(cookie.name.length===0)return null;validateCookieName(cookie.name),validateCookieValue(cookie.value);let out=[`${cookie.name}=${cookie.value}`];cookie.name.startsWith("__Secure-")&&(cookie.secure=!0),cookie.name.startsWith("__Host-")&&(cookie.secure=!0,cookie.domain=null,cookie.path="/"),cookie.secure&&out.push("Secure"),cookie.httpOnly&&out.push("HttpOnly"),typeof cookie.maxAge=="number"&&(validateCookieMaxAge(cookie.maxAge),out.push(`Max-Age=${cookie.maxAge}`)),cookie.domain&&(validateCookieDomain(cookie.domain),out.push(`Domain=${cookie.domain}`)),cookie.path&&(validateCookiePath(cookie.path),out.push(`Path=${cookie.path}`)),cookie.expires&&cookie.expires.toString()!=="Invalid Date"&&out.push(`Expires=${toIMFDate(cookie.expires)}`),cookie.sameSite&&out.push(`SameSite=${cookie.sameSite}`);for(let part of cookie.unparsed){if(!part.includes("="))throw new Error("Invalid unparsed");let[key,...value]=part.split("="),trimmedKey=key.trim(),joinedValue=value.join("=");validateCookieName(trimmedKey),validateCookieValue(joinedValue),out.push(`${trimmedKey}=${joinedValue}`)}return out.join("; ")}module.exports={isCTLExcludingHtab,validateCookieName,validateCookiePath,validateCookieValue,toIMFDate,stringify}}});var require_parse=__commonJS({"node_modules/undici/lib/web/cookies/parse.js"(exports,module){"use strict";var{collectASequenceOfCodePointsFast}=require_infra(),{maxNameValuePairSize,maxAttributeValueSize}=require_constants4(),{isCTLExcludingHtab}=require_util4(),assert=__require("node:assert");function parseSetCookie(header){if(isCTLExcludingHtab(header))return null;let nameValuePair="",unparsedAttributes="",name="",value="";if(header.includes(";")){let position={position:0};nameValuePair=collectASequenceOfCodePointsFast(";",header,position),unparsedAttributes=header.slice(position.position)}else nameValuePair=header;if(!nameValuePair.includes("="))value=nameValuePair;else{let position={position:0};name=collectASequenceOfCodePointsFast("=",nameValuePair,position),value=nameValuePair.slice(position.position+1)}return name=name.trim(),value=value.trim(),name.length+value.length>maxNameValuePairSize?null:{name,value,...parseUnparsedAttributes(unparsedAttributes)}}function parseUnparsedAttributes(unparsedAttributes,cookieAttributeList={}){if(unparsedAttributes.length===0)return cookieAttributeList;assert(unparsedAttributes[0]===";"),unparsedAttributes=unparsedAttributes.slice(1);let cookieAv="";unparsedAttributes.includes(";")?(cookieAv=collectASequenceOfCodePointsFast(";",unparsedAttributes,{position:0}),unparsedAttributes=unparsedAttributes.slice(cookieAv.length)):(cookieAv=unparsedAttributes,unparsedAttributes="");let attributeName="",attributeValue="";if(cookieAv.includes("=")){let position={position:0};attributeName=collectASequenceOfCodePointsFast("=",cookieAv,position),attributeValue=cookieAv.slice(position.position+1)}else attributeName=cookieAv;if(attributeName=attributeName.trim(),attributeValue=attributeValue.trim(),attributeValue.length>maxAttributeValueSize)return parseUnparsedAttributes(unparsedAttributes,cookieAttributeList);let attributeNameLowercase=attributeName.toLowerCase();if(attributeNameLowercase==="expires"){let expiryTime=new Date(attributeValue);Number.isNaN(expiryTime.getTime())||(cookieAttributeList.expires=expiryTime)}else if(attributeNameLowercase==="max-age"){let charCode=attributeValue.charCodeAt(0);if((charCode<48||charCode>57)&&attributeValue[0]!=="-"||!/^\d+$/.test(attributeValue))return parseUnparsedAttributes(unparsedAttributes,cookieAttributeList);let deltaSeconds=Number(attributeValue);cookieAttributeList.maxAge=deltaSeconds}else if(attributeNameLowercase==="domain"){let cookieDomain=attributeValue;cookieDomain[0]==="."&&(cookieDomain=cookieDomain.slice(1)),cookieDomain=cookieDomain.toLowerCase(),cookieAttributeList.domain=cookieDomain}else if(attributeNameLowercase==="path"){let cookiePath="";attributeValue.length===0||attributeValue[0]!=="/"?cookiePath="/":cookiePath=attributeValue,cookieAttributeList.path=cookiePath}else if(attributeNameLowercase==="secure")cookieAttributeList.secure=!0;else if(attributeNameLowercase==="httponly")cookieAttributeList.httpOnly=!0;else if(attributeNameLowercase==="samesite"){let attributeValueLowercase=attributeValue.toLowerCase();attributeValueLowercase==="none"?cookieAttributeList.sameSite="None":attributeValueLowercase==="strict"?cookieAttributeList.sameSite="Strict":attributeValueLowercase==="lax"&&(cookieAttributeList.sameSite="Lax")}else cookieAttributeList.unparsed??=[],cookieAttributeList.unparsed.push(`${attributeName}=${attributeValue}`);return parseUnparsedAttributes(unparsedAttributes,cookieAttributeList)}module.exports={parseSetCookie,parseUnparsedAttributes}}});var require_cookies=__commonJS({"node_modules/undici/lib/web/cookies/index.js"(exports,module){"use strict";var{parseSetCookie}=require_parse(),{stringify}=require_util4(),{webidl}=require_webidl(),{Headers}=require_headers(),brandChecks=webidl.brandCheckMultiple([Headers,globalThis.Headers].filter(Boolean));function getCookies(headers){webidl.argumentLengthCheck(arguments,1,"getCookies"),brandChecks(headers);let cookie=headers.get("cookie"),out={};if(!cookie)return out;for(let piece of cookie.split(";")){let[name,...value]=piece.split("=");out[name.trim()]=value.join("=")}return out}function deleteCookie(headers,name,attributes){brandChecks(headers);let prefix="deleteCookie";webidl.argumentLengthCheck(arguments,2,prefix),name=webidl.converters.DOMString(name,prefix,"name"),attributes=webidl.converters.DeleteCookieAttributes(attributes),setCookie(headers,{name,value:"",expires:new Date(0),...attributes})}function getSetCookies(headers){webidl.argumentLengthCheck(arguments,1,"getSetCookies"),brandChecks(headers);let cookies=headers.getSetCookie();return cookies?cookies.map(pair=>parseSetCookie(pair)):[]}function parseCookie(cookie){return cookie=webidl.converters.DOMString(cookie),parseSetCookie(cookie)}function setCookie(headers,cookie){webidl.argumentLengthCheck(arguments,2,"setCookie"),brandChecks(headers),cookie=webidl.converters.Cookie(cookie);let str=stringify(cookie);str&&headers.append("set-cookie",str,!0)}webidl.converters.DeleteCookieAttributes=webidl.dictionaryConverter([{converter:webidl.nullableConverter(webidl.converters.DOMString),key:"path",defaultValue:()=>null},{converter:webidl.nullableConverter(webidl.converters.DOMString),key:"domain",defaultValue:()=>null}]);webidl.converters.Cookie=webidl.dictionaryConverter([{converter:webidl.converters.DOMString,key:"name"},{converter:webidl.converters.DOMString,key:"value"},{converter:webidl.nullableConverter(value=>typeof value=="number"?webidl.converters["unsigned long long"](value):new Date(value)),key:"expires",defaultValue:()=>null},{converter:webidl.nullableConverter(webidl.converters["long long"]),key:"maxAge",defaultValue:()=>null},{converter:webidl.nullableConverter(webidl.converters.DOMString),key:"domain",defaultValue:()=>null},{converter:webidl.nullableConverter(webidl.converters.DOMString),key:"path",defaultValue:()=>null},{converter:webidl.nullableConverter(webidl.converters.boolean),key:"secure",defaultValue:()=>null},{converter:webidl.nullableConverter(webidl.converters.boolean),key:"httpOnly",defaultValue:()=>null},{converter:webidl.converters.USVString,key:"sameSite",allowedValues:["Strict","Lax","None"]},{converter:webidl.sequenceConverter(webidl.converters.DOMString),key:"unparsed",defaultValue:()=>[]}]);module.exports={getCookies,deleteCookie,getSetCookies,setCookie,parseCookie}}});var require_events=__commonJS({"node_modules/undici/lib/web/websocket/events.js"(exports,module){"use strict";var{webidl}=require_webidl(),{kEnumerableProperty}=require_util(),{kConstruct}=require_symbols(),MessageEvent=class _MessageEvent extends Event{#eventInit;constructor(type,eventInitDict={}){if(type===kConstruct){super(arguments[1],arguments[2]),webidl.util.markAsUncloneable(this);return}let prefix="MessageEvent constructor";webidl.argumentLengthCheck(arguments,1,prefix),type=webidl.converters.DOMString(type,prefix,"type"),eventInitDict=webidl.converters.MessageEventInit(eventInitDict,prefix,"eventInitDict"),super(type,eventInitDict),this.#eventInit=eventInitDict,webidl.util.markAsUncloneable(this)}get data(){return webidl.brandCheck(this,_MessageEvent),this.#eventInit.data}get origin(){return webidl.brandCheck(this,_MessageEvent),this.#eventInit.origin}get lastEventId(){return webidl.brandCheck(this,_MessageEvent),this.#eventInit.lastEventId}get source(){return webidl.brandCheck(this,_MessageEvent),this.#eventInit.source}get ports(){return webidl.brandCheck(this,_MessageEvent),Object.isFrozen(this.#eventInit.ports)||Object.freeze(this.#eventInit.ports),this.#eventInit.ports}initMessageEvent(type,bubbles=!1,cancelable=!1,data=null,origin="",lastEventId="",source=null,ports=[]){return webidl.brandCheck(this,_MessageEvent),webidl.argumentLengthCheck(arguments,1,"MessageEvent.initMessageEvent"),new _MessageEvent(type,{bubbles,cancelable,data,origin,lastEventId,source,ports})}static createFastMessageEvent(type,init){let messageEvent=new _MessageEvent(kConstruct,type,init);return messageEvent.#eventInit=init,messageEvent.#eventInit.data??=null,messageEvent.#eventInit.origin??="",messageEvent.#eventInit.lastEventId??="",messageEvent.#eventInit.source??=null,messageEvent.#eventInit.ports??=[],messageEvent}},{createFastMessageEvent}=MessageEvent;delete MessageEvent.createFastMessageEvent;var CloseEvent=class _CloseEvent extends Event{#eventInit;constructor(type,eventInitDict={}){let prefix="CloseEvent constructor";webidl.argumentLengthCheck(arguments,1,prefix),type=webidl.converters.DOMString(type,prefix,"type"),eventInitDict=webidl.converters.CloseEventInit(eventInitDict),super(type,eventInitDict),this.#eventInit=eventInitDict,webidl.util.markAsUncloneable(this)}get wasClean(){return webidl.brandCheck(this,_CloseEvent),this.#eventInit.wasClean}get code(){return webidl.brandCheck(this,_CloseEvent),this.#eventInit.code}get reason(){return webidl.brandCheck(this,_CloseEvent),this.#eventInit.reason}},ErrorEvent=class _ErrorEvent extends Event{#eventInit;constructor(type,eventInitDict){let prefix="ErrorEvent constructor";webidl.argumentLengthCheck(arguments,1,prefix),super(type,eventInitDict),webidl.util.markAsUncloneable(this),type=webidl.converters.DOMString(type,prefix,"type"),eventInitDict=webidl.converters.ErrorEventInit(eventInitDict??{}),this.#eventInit=eventInitDict}get message(){return webidl.brandCheck(this,_ErrorEvent),this.#eventInit.message}get filename(){return webidl.brandCheck(this,_ErrorEvent),this.#eventInit.filename}get lineno(){return webidl.brandCheck(this,_ErrorEvent),this.#eventInit.lineno}get colno(){return webidl.brandCheck(this,_ErrorEvent),this.#eventInit.colno}get error(){return webidl.brandCheck(this,_ErrorEvent),this.#eventInit.error}};Object.defineProperties(MessageEvent.prototype,{[Symbol.toStringTag]:{value:"MessageEvent",configurable:!0},data:kEnumerableProperty,origin:kEnumerableProperty,lastEventId:kEnumerableProperty,source:kEnumerableProperty,ports:kEnumerableProperty,initMessageEvent:kEnumerableProperty});Object.defineProperties(CloseEvent.prototype,{[Symbol.toStringTag]:{value:"CloseEvent",configurable:!0},reason:kEnumerableProperty,code:kEnumerableProperty,wasClean:kEnumerableProperty});Object.defineProperties(ErrorEvent.prototype,{[Symbol.toStringTag]:{value:"ErrorEvent",configurable:!0},message:kEnumerableProperty,filename:kEnumerableProperty,lineno:kEnumerableProperty,colno:kEnumerableProperty,error:kEnumerableProperty});webidl.converters.MessagePort=webidl.interfaceConverter(webidl.is.MessagePort,"MessagePort");webidl.converters["sequence<MessagePort>"]=webidl.sequenceConverter(webidl.converters.MessagePort);var eventInit=[{key:"bubbles",converter:webidl.converters.boolean,defaultValue:()=>!1},{key:"cancelable",converter:webidl.converters.boolean,defaultValue:()=>!1},{key:"composed",converter:webidl.converters.boolean,defaultValue:()=>!1}];webidl.converters.MessageEventInit=webidl.dictionaryConverter([...eventInit,{key:"data",converter:webidl.converters.any,defaultValue:()=>null},{key:"origin",converter:webidl.converters.USVString,defaultValue:()=>""},{key:"lastEventId",converter:webidl.converters.DOMString,defaultValue:()=>""},{key:"source",converter:webidl.nullableConverter(webidl.converters.MessagePort),defaultValue:()=>null},{key:"ports",converter:webidl.converters["sequence<MessagePort>"],defaultValue:()=>[]}]);webidl.converters.CloseEventInit=webidl.dictionaryConverter([...eventInit,{key:"wasClean",converter:webidl.converters.boolean,defaultValue:()=>!1},{key:"code",converter:webidl.converters["unsigned short"],defaultValue:()=>0},{key:"reason",converter:webidl.converters.USVString,defaultValue:()=>""}]);webidl.converters.ErrorEventInit=webidl.dictionaryConverter([...eventInit,{key:"message",converter:webidl.converters.DOMString,defaultValue:()=>""},{key:"filename",converter:webidl.converters.USVString,defaultValue:()=>""},{key:"lineno",converter:webidl.converters["unsigned long"],defaultValue:()=>0},{key:"colno",converter:webidl.converters["unsigned long"],defaultValue:()=>0},{key:"error",converter:webidl.converters.any}]);module.exports={MessageEvent,CloseEvent,ErrorEvent,createFastMessageEvent}}});var require_constants5=__commonJS({"node_modules/undici/lib/web/websocket/constants.js"(exports,module){"use strict";var uid="258EAFA5-E914-47DA-95CA-C5AB0DC85B11",staticPropertyDescriptors={enumerable:!0,writable:!1,configurable:!1},states={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},sentCloseFrameState={SENT:1,RECEIVED:2},opcodes={CONTINUATION:0,TEXT:1,BINARY:2,CLOSE:8,PING:9,PONG:10},maxUnsigned16Bit=65535,parserStates={INFO:0,PAYLOADLENGTH_16:2,PAYLOADLENGTH_64:3,READ_DATA:4},emptyBuffer=Buffer.allocUnsafe(0),sendHints={text:1,typedArray:2,arrayBuffer:3,blob:4};module.exports={uid,sentCloseFrameState,staticPropertyDescriptors,states,opcodes,maxUnsigned16Bit,parserStates,emptyBuffer,sendHints}}});var require_util5=__commonJS({"node_modules/undici/lib/web/websocket/util.js"(exports,module){"use strict";var{states,opcodes}=require_constants5(),{isUtf8}=__require("node:buffer"),{removeHTTPWhitespace}=require_data_url(),{collectASequenceOfCodePointsFast}=require_infra();function isConnecting(readyState){return readyState===states.CONNECTING}function isEstablished(readyState){return readyState===states.OPEN}function isClosing(readyState){return readyState===states.CLOSING}function isClosed(readyState){return readyState===states.CLOSED}function fireEvent(e,target,eventFactory=(type,init)=>new Event(type,init),eventInitDict={}){let event=eventFactory(e,eventInitDict);target.dispatchEvent(event)}function websocketMessageReceived(handler,type,data){handler.onMessage(type,data)}function toArrayBuffer(buffer){return buffer.byteLength===buffer.buffer.byteLength?buffer.buffer:new Uint8Array(buffer).buffer}function isValidSubprotocol(protocol){if(protocol.length===0)return!1;for(let i=0;i<protocol.length;++i){let code=protocol.charCodeAt(i);if(code<33||code>126||code===34||code===40||code===41||code===44||code===47||code===58||code===59||code===60||code===61||code===62||code===63||code===64||code===91||code===92||code===93||code===123||code===125)return!1}return!0}function isValidStatusCode(code){return code>=1e3&&code<1015?code!==1004&&code!==1005&&code!==1006:code>=3e3&&code<=4999}function isControlFrame(opcode){return opcode===opcodes.CLOSE||opcode===opcodes.PING||opcode===opcodes.PONG}function isContinuationFrame(opcode){return opcode===opcodes.CONTINUATION}function isTextBinaryFrame(opcode){return opcode===opcodes.TEXT||opcode===opcodes.BINARY}function isValidOpcode(opcode){return isTextBinaryFrame(opcode)||isContinuationFrame(opcode)||isControlFrame(opcode)}function parseExtensions(extensions){let position={position:0},extensionList=new Map;for(;position.position<extensions.length;){let pair=collectASequenceOfCodePointsFast(";",extensions,position),[name,value=""]=pair.split("=",2);extensionList.set(removeHTTPWhitespace(name,!0,!1),removeHTTPWhitespace(value,!1,!0)),position.position++}return extensionList}function isValidClientWindowBits(value){if(value.length===0)return!1;for(let i=0;i<value.length;i++){let byte=value.charCodeAt(i);if(byte<48||byte>57)return!1}let num=Number.parseInt(value,10);return num>=8&&num<=15}function getURLRecord(url,baseURL){let urlRecord;try{urlRecord=new URL(url,baseURL)}catch(e){throw new DOMException(e,"SyntaxError")}if(urlRecord.protocol==="http:"?urlRecord.protocol="ws:":urlRecord.protocol==="https:"&&(urlRecord.protocol="wss:"),urlRecord.protocol!=="ws:"&&urlRecord.protocol!=="wss:")throw new DOMException("expected a ws: or wss: url","SyntaxError");if(urlRecord.hash.length||urlRecord.href.endsWith("#"))throw new DOMException("hash","SyntaxError");return urlRecord}function validateCloseCodeAndReason(code,reason){if(code!==null&&code!==1e3&&(code<3e3||code>4999))throw new DOMException("invalid code","InvalidAccessError");if(reason!==null){let reasonBytesLength=Buffer.byteLength(reason);if(reasonBytesLength>123)throw new DOMException(`Reason must be less than 123 bytes; received ${reasonBytesLength}`,"SyntaxError")}}var utf8Decode=(()=>{if(typeof process.versions.icu=="string"){let fatalDecoder=new TextDecoder("utf-8",{fatal:!0});return fatalDecoder.decode.bind(fatalDecoder)}return function(buffer){if(isUtf8(buffer))return buffer.toString("utf-8");throw new TypeError("Invalid utf-8 received.")}})();module.exports={isConnecting,isEstablished,isClosing,isClosed,fireEvent,isValidSubprotocol,isValidStatusCode,websocketMessageReceived,utf8Decode,isControlFrame,isContinuationFrame,isTextBinaryFrame,isValidOpcode,parseExtensions,isValidClientWindowBits,toArrayBuffer,getURLRecord,validateCloseCodeAndReason}}});var require_frame=__commonJS({"node_modules/undici/lib/web/websocket/frame.js"(exports,module){"use strict";var{runtimeFeatures}=require_runtime_features(),{maxUnsigned16Bit,opcodes}=require_constants5(),BUFFER_SIZE=8*1024,buffer=null,bufIdx=BUFFER_SIZE,randomFillSync=runtimeFeatures.has("crypto")?__require("node:crypto").randomFillSync:null;function generateMask(){return bufIdx===BUFFER_SIZE&&(bufIdx=0,randomFillSync(buffer??=Buffer.allocUnsafeSlow(BUFFER_SIZE),0,BUFFER_SIZE)),[buffer[bufIdx++],buffer[bufIdx++],buffer[bufIdx++],buffer[bufIdx++]]}var WebsocketFrameSend=class{constructor(data){this.frameData=data}createFrame(opcode){let frameData=this.frameData,maskKey=generateMask(),bodyLength=frameData?.byteLength??0,payloadLength=bodyLength,offset=6;bodyLength>maxUnsigned16Bit?(offset+=8,payloadLength=127):bodyLength>125&&(offset+=2,payloadLength=126);let buffer2=Buffer.allocUnsafe(bodyLength+offset);buffer2[0]=buffer2[1]=0,buffer2[0]|=128,buffer2[0]=(buffer2[0]&240)+opcode;buffer2[offset-4]=maskKey[0],buffer2[offset-3]=maskKey[1],buffer2[offset-2]=maskKey[2],buffer2[offset-1]=maskKey[3],buffer2[1]=payloadLength,payloadLength===126?buffer2.writeUInt16BE(bodyLength,2):payloadLength===127&&(buffer2[2]=buffer2[3]=0,buffer2.writeUIntBE(bodyLength,4,6)),buffer2[1]|=128;for(let i=0;i<bodyLength;++i)buffer2[offset+i]=frameData[i]^maskKey[i&3];return buffer2}static createFastTextFrame(buffer2){let maskKey=generateMask(),bodyLength=buffer2.length;for(let i=0;i<bodyLength;++i)buffer2[i]^=maskKey[i&3];let payloadLength=bodyLength,offset=6;bodyLength>maxUnsigned16Bit?(offset+=8,payloadLength=127):bodyLength>125&&(offset+=2,payloadLength=126);let head=Buffer.allocUnsafeSlow(offset);return head[0]=128|opcodes.TEXT,head[1]=payloadLength|128,head[offset-4]=maskKey[0],head[offset-3]=maskKey[1],head[offset-2]=maskKey[2],head[offset-1]=maskKey[3],payloadLength===126?head.writeUInt16BE(bodyLength,2):payloadLength===127&&(head[2]=head[3]=0,head.writeUIntBE(bodyLength,4,6)),[head,buffer2]}};module.exports={WebsocketFrameSend,generateMask}}});var require_connection=__commonJS({"node_modules/undici/lib/web/websocket/connection.js"(exports,module){"use strict";var{uid,states,sentCloseFrameState,emptyBuffer,opcodes}=require_constants5(),{parseExtensions,isClosed,isClosing,isEstablished,isConnecting,validateCloseCodeAndReason}=require_util5(),{makeRequest}=require_request2(),{fetching}=require_fetch(),{Headers,getHeadersList}=require_headers(),{getDecodeSplit}=require_util2(),{WebsocketFrameSend}=require_frame(),assert=__require("node:assert"),{runtimeFeatures}=require_runtime_features(),crypto=runtimeFeatures.has("crypto")?__require("node:crypto"):null,warningEmitted=!1;function establishWebSocketConnection(url,protocols,client,handler,options){let requestURL=url;requestURL.protocol=url.protocol==="ws:"?"http:":"https:";let request=makeRequest({urlList:[requestURL],client,serviceWorkers:"none",referrer:"no-referrer",mode:"websocket",credentials:"include",cache:"no-store",redirect:"error",useURLCredentials:!0});if(options.headers){let headersList=getHeadersList(new Headers(options.headers));request.headersList=headersList}let keyValue=crypto.randomBytes(16).toString("base64");request.headersList.append("sec-websocket-key",keyValue,!0),request.headersList.append("sec-websocket-version","13",!0);for(let protocol of protocols)request.headersList.append("sec-websocket-protocol",protocol,!0);return request.headersList.append("sec-websocket-extensions","permessage-deflate; client_max_window_bits",!0),fetching({request,useParallelQueue:!0,dispatcher:options.dispatcher,processResponse(response){if(response.type==="error"||response.status!==101){if(response.socket?.session==null){failWebsocketConnection(handler,1002,"Received network error or non-101 status code.",response.error);return}if(response.status!==200){failWebsocketConnection(handler,1002,"Received network error or non-200 status code.",response.error);return}}if(warningEmitted===!1&&response.socket?.session!=null&&(process.emitWarning("WebSocket over HTTP2 is experimental, and subject to change.","ExperimentalWarning"),warningEmitted=!0),protocols.length!==0&&!response.headersList.get("Sec-WebSocket-Protocol")){failWebsocketConnection(handler,1002,"Server did not respond with sent protocols.");return}if(response.socket.session==null&&response.headersList.get("Upgrade")?.toLowerCase()!=="websocket"){failWebsocketConnection(handler,1002,'Server did not set Upgrade header to "websocket".');return}if(response.socket.session==null&&response.headersList.get("Connection")?.toLowerCase()!=="upgrade"){failWebsocketConnection(handler,1002,'Server did not set Connection header to "upgrade".');return}let secWSAccept=response.headersList.get("Sec-WebSocket-Accept"),digest=crypto.hash("sha1",keyValue+uid,"base64");if(secWSAccept!==digest){failWebsocketConnection(handler,1002,"Incorrect hash received in Sec-WebSocket-Accept header.");return}let secExtension=response.headersList.get("Sec-WebSocket-Extensions"),extensions;if(secExtension!==null&&(extensions=parseExtensions(secExtension),!extensions.has("permessage-deflate"))){failWebsocketConnection(handler,1002,"Sec-WebSocket-Extensions header does not match.");return}let secProtocol=response.headersList.get("Sec-WebSocket-Protocol");if(secProtocol!==null&&!getDecodeSplit("sec-websocket-protocol",request.headersList).includes(secProtocol)){failWebsocketConnection(handler,1002,"Protocol was not set in the opening handshake.");return}response.socket.on("data",handler.onSocketData),response.socket.on("close",handler.onSocketClose),response.socket.on("error",handler.onSocketError),handler.wasEverConnected=!0,handler.onConnectionEstablished(response,extensions)}})}function closeWebSocketConnection(object,code,reason,validate=!1){if(code??=null,reason??="",validate&&validateCloseCodeAndReason(code,reason),!(isClosed(object.readyState)||isClosing(object.readyState)))if(!isEstablished(object.readyState))failWebsocketConnection(object),object.readyState=states.CLOSING;else if(!object.closeState.has(sentCloseFrameState.SENT)&&!object.closeState.has(sentCloseFrameState.RECEIVED)){let frame=new WebsocketFrameSend;reason.length!==0&&code===null&&(code=1e3),assert(code===null||Number.isInteger(code)),code===null&&reason.length===0?frame.frameData=emptyBuffer:code!==null&&reason===null?(frame.frameData=Buffer.allocUnsafe(2),frame.frameData.writeUInt16BE(code,0)):code!==null&&reason!==null?(frame.frameData=Buffer.allocUnsafe(2+Buffer.byteLength(reason)),frame.frameData.writeUInt16BE(code,0),frame.frameData.write(reason,2,"utf-8")):frame.frameData=emptyBuffer,object.socket.write(frame.createFrame(opcodes.CLOSE)),object.closeState.add(sentCloseFrameState.SENT),object.readyState=states.CLOSING}else object.readyState=states.CLOSING}function failWebsocketConnection(handler,code,reason,cause){isEstablished(handler.readyState)&&closeWebSocketConnection(handler,code,reason,!1),handler.controller.abort(),isConnecting(handler.readyState)?handler.onSocketClose():handler.socket?.destroyed===!1&&handler.socket.destroy()}module.exports={establishWebSocketConnection,failWebsocketConnection,closeWebSocketConnection}}});var require_permessage_deflate=__commonJS({"node_modules/undici/lib/web/websocket/permessage-deflate.js"(exports,module){"use strict";var{createInflateRaw,Z_DEFAULT_WINDOWBITS}=__require("node:zlib"),{isValidClientWindowBits}=require_util5(),{MessageSizeExceededError}=require_errors(),tail=Buffer.from([0,0,255,255]),kBuffer=Symbol("kBuffer"),kLength=Symbol("kLength"),PerMessageDeflate=class{#inflate;#options={};#maxPayloadSize=0;constructor(extensions,options){this.#options.serverNoContextTakeover=extensions.has("server_no_context_takeover"),this.#options.serverMaxWindowBits=extensions.get("server_max_window_bits"),this.#maxPayloadSize=options.maxPayloadSize}decompress(chunk,fin,callback){if(!this.#inflate){let windowBits=Z_DEFAULT_WINDOWBITS;if(this.#options.serverMaxWindowBits){if(!isValidClientWindowBits(this.#options.serverMaxWindowBits)){callback(new Error("Invalid server_max_window_bits"));return}windowBits=Number.parseInt(this.#options.serverMaxWindowBits)}try{this.#inflate=createInflateRaw({windowBits})}catch(err){callback(err);return}this.#inflate[kBuffer]=[],this.#inflate[kLength]=0,this.#inflate.on("data",data=>{if(this.#inflate[kLength]+=data.length,this.#maxPayloadSize>0&&this.#inflate[kLength]>this.#maxPayloadSize){callback(new MessageSizeExceededError),this.#inflate.removeAllListeners(),this.#inflate=null;return}this.#inflate[kBuffer].push(data)}),this.#inflate.on("error",err=>{this.#inflate=null,callback(err)})}this.#inflate.write(chunk),fin&&this.#inflate.write(tail),this.#inflate.flush(()=>{if(!this.#inflate)return;let full=Buffer.concat(this.#inflate[kBuffer],this.#inflate[kLength]);this.#inflate[kBuffer].length=0,this.#inflate[kLength]=0,callback(null,full)})}};module.exports={PerMessageDeflate}}});var require_receiver=__commonJS({"node_modules/undici/lib/web/websocket/receiver.js"(exports,module){"use strict";var{Writable}=__require("node:stream"),assert=__require("node:assert"),{parserStates,opcodes,states,emptyBuffer,sentCloseFrameState}=require_constants5(),{isValidStatusCode,isValidOpcode,websocketMessageReceived,utf8Decode,isControlFrame,isTextBinaryFrame,isContinuationFrame}=require_util5(),{failWebsocketConnection}=require_connection(),{WebsocketFrameSend}=require_frame(),{PerMessageDeflate}=require_permessage_deflate(),{MessageSizeExceededError}=require_errors(),ByteParser=class extends Writable{#buffers=[];#fragmentsBytes=0;#byteOffset=0;#loop=!1;#state=parserStates.INFO;#info={};#fragments=[];#extensions;#handler;#maxFragments;#maxPayloadSize;constructor(handler,extensions,options={}){super(),this.#handler=handler,this.#extensions=extensions??new Map,this.#maxFragments=options.maxFragments??0,this.#maxPayloadSize=options.maxPayloadSize??0,this.#extensions.has("permessage-deflate")&&this.#extensions.set("permessage-deflate",new PerMessageDeflate(extensions,options))}_write(chunk,_,callback){this.#buffers.push(chunk),this.#byteOffset+=chunk.length,this.#loop=!0,this.run(callback)}#validatePayloadLength(){return this.#maxPayloadSize>0&&!isControlFrame(this.#info.opcode)&&this.#info.payloadLength+this.#fragmentsBytes>this.#maxPayloadSize?(failWebsocketConnection(this.#handler,1009,"Payload size exceeds maximum allowed size"),!1):!0}run(callback){for(;this.#loop;)if(this.#state===parserStates.INFO){if(this.#byteOffset<2)return callback();let buffer=this.consume(2),fin=(buffer[0]&128)!==0,opcode=buffer[0]&15,masked=(buffer[1]&128)===128,fragmented=!fin&&opcode!==opcodes.CONTINUATION,payloadLength=buffer[1]&127,rsv1=buffer[0]&64,rsv2=buffer[0]&32,rsv3=buffer[0]&16;if(!isValidOpcode(opcode))return failWebsocketConnection(this.#handler,1002,"Invalid opcode received"),callback();if(masked)return failWebsocketConnection(this.#handler,1002,"Frame cannot be masked"),callback();if(rsv1!==0&&!this.#extensions.has("permessage-deflate")){failWebsocketConnection(this.#handler,1002,"Expected RSV1 to be clear.");return}if(rsv2!==0||rsv3!==0){failWebsocketConnection(this.#handler,1002,"RSV1, RSV2, RSV3 must be clear");return}if(fragmented&&!isTextBinaryFrame(opcode)){failWebsocketConnection(this.#handler,1002,"Invalid frame type was fragmented.");return}if(isTextBinaryFrame(opcode)&&this.#fragments.length>0){failWebsocketConnection(this.#handler,1002,"Expected continuation frame");return}if(this.#info.fragmented&&fragmented){failWebsocketConnection(this.#handler,1002,"Fragmented frame exceeded 125 bytes.");return}if((payloadLength>125||fragmented)&&isControlFrame(opcode)){failWebsocketConnection(this.#handler,1002,"Control frame either too large or fragmented");return}if(isContinuationFrame(opcode)&&this.#fragments.length===0&&!this.#info.compressed){failWebsocketConnection(this.#handler,1002,"Unexpected continuation frame");return}if(payloadLength<=125){if(this.#info.payloadLength=payloadLength,this.#state=parserStates.READ_DATA,!this.#validatePayloadLength())return}else payloadLength===126?this.#state=parserStates.PAYLOADLENGTH_16:payloadLength===127&&(this.#state=parserStates.PAYLOADLENGTH_64);isTextBinaryFrame(opcode)&&(this.#info.binaryType=opcode,this.#info.compressed=rsv1!==0),this.#info.opcode=opcode,this.#info.masked=masked,this.#info.fin=fin,this.#info.fragmented=fragmented}else if(this.#state===parserStates.PAYLOADLENGTH_16){if(this.#byteOffset<2)return callback();let buffer=this.consume(2);if(this.#info.payloadLength=buffer.readUInt16BE(0),this.#state=parserStates.READ_DATA,!this.#validatePayloadLength())return}else if(this.#state===parserStates.PAYLOADLENGTH_64){if(this.#byteOffset<8)return callback();let buffer=this.consume(8),upper=buffer.readUInt32BE(0),lower=buffer.readUInt32BE(4);if(upper!==0||lower>2**31-1){failWebsocketConnection(this.#handler,1009,"Received payload length > 2^31 bytes.");return}if(this.#info.payloadLength=lower,this.#state=parserStates.READ_DATA,!this.#validatePayloadLength())return}else if(this.#state===parserStates.READ_DATA){if(this.#byteOffset<this.#info.payloadLength)return callback();let body=this.consume(this.#info.payloadLength);if(isControlFrame(this.#info.opcode))this.#loop=this.parseControlFrame(body),this.#state=parserStates.INFO;else if(this.#info.compressed){this.#extensions.get("permessage-deflate").decompress(body,this.#info.fin,(error,data)=>{if(error){let code=error instanceof MessageSizeExceededError?1009:1007;failWebsocketConnection(this.#handler,code,error.message);return}if(this.writeFragments(data)){if(this.#maxPayloadSize>0&&this.#fragmentsBytes>this.#maxPayloadSize){failWebsocketConnection(this.#handler,1009,new MessageSizeExceededError().message);return}if(!this.#info.fin){this.#state=parserStates.INFO,this.#loop=!0,this.run(callback);return}websocketMessageReceived(this.#handler,this.#info.binaryType,this.consumeFragments()),this.#loop=!0,this.#state=parserStates.INFO,this.run(callback)}},this.#fragmentsBytes),this.#loop=!1;break}else{if(!this.writeFragments(body))return;!this.#info.fragmented&&this.#info.fin&&websocketMessageReceived(this.#handler,this.#info.binaryType,this.consumeFragments()),this.#state=parserStates.INFO}}}consume(n){if(n>this.#byteOffset)throw new Error("Called consume() before buffers satiated.");if(n===0)return emptyBuffer;this.#byteOffset-=n;let first=this.#buffers[0];if(first.length>n)return this.#buffers[0]=first.subarray(n,first.length),first.subarray(0,n);if(first.length===n)return this.#buffers.shift();{let offset=0,buffer=Buffer.allocUnsafeSlow(n);for(;offset!==n;){let next=this.#buffers[0],length=next.length;if(length+offset===n){buffer.set(this.#buffers.shift(),offset);break}else if(length+offset>n){buffer.set(next.subarray(0,n-offset),offset),this.#buffers[0]=next.subarray(n-offset);break}else buffer.set(this.#buffers.shift(),offset),offset+=length}return buffer}}writeFragments(fragment){return this.#maxFragments>0&&this.#fragments.length===this.#maxFragments?(failWebsocketConnection(this.#handler,1008,"Too many message fragments"),!1):(this.#fragmentsBytes+=fragment.length,this.#fragments.push(fragment),!0)}consumeFragments(){let fragments=this.#fragments;if(fragments.length===1)return this.#fragmentsBytes=0,fragments.shift();let offset=0,output=Buffer.allocUnsafeSlow(this.#fragmentsBytes);for(let i=0;i<fragments.length;++i){let buffer=fragments[i];output.set(buffer,offset),offset+=buffer.length}return this.#fragments=[],this.#fragmentsBytes=0,output}parseCloseBody(data){assert(data.length!==1);let code;if(data.length>=2&&(code=data.readUInt16BE(0)),code!==void 0&&!isValidStatusCode(code))return{code:1002,reason:"Invalid status code",error:!0};let reason=data.subarray(2);reason[0]===239&&reason[1]===187&&reason[2]===191&&(reason=reason.subarray(3));try{reason=utf8Decode(reason)}catch{return{code:1007,reason:"Invalid UTF-8",error:!0}}return{code,reason,error:!1}}parseControlFrame(body){let{opcode,payloadLength}=this.#info;if(opcode===opcodes.CLOSE){if(payloadLength===1)return failWebsocketConnection(this.#handler,1002,"Received close frame with a 1-byte body."),!1;if(this.#info.closeInfo=this.parseCloseBody(body),this.#info.closeInfo.error){let{code,reason}=this.#info.closeInfo;return failWebsocketConnection(this.#handler,code,reason),!1}if(!this.#handler.closeState.has(sentCloseFrameState.SENT)&&!this.#handler.closeState.has(sentCloseFrameState.RECEIVED)){let body2=emptyBuffer;this.#info.closeInfo.code&&(body2=Buffer.allocUnsafe(2),body2.writeUInt16BE(this.#info.closeInfo.code,0));let closeFrame=new WebsocketFrameSend(body2);this.#handler.socket.write(closeFrame.createFrame(opcodes.CLOSE)),this.#handler.closeState.add(sentCloseFrameState.SENT)}return this.#handler.readyState=states.CLOSING,this.#handler.closeState.add(sentCloseFrameState.RECEIVED),!1}else if(opcode===opcodes.PING){if(!this.#handler.closeState.has(sentCloseFrameState.RECEIVED)){let frame=new WebsocketFrameSend(body);this.#handler.socket.write(frame.createFrame(opcodes.PONG)),this.#handler.onPing(body)}}else opcode===opcodes.PONG&&this.#handler.onPong(body);return!0}get closingInfo(){return this.#info.closeInfo}};module.exports={ByteParser}}});var require_sender=__commonJS({"node_modules/undici/lib/web/websocket/sender.js"(exports,module){"use strict";var{WebsocketFrameSend}=require_frame(),{opcodes,sendHints}=require_constants5(),FixedQueue=require_fixed_queue(),SendQueue=class{#queue=new FixedQueue;#running=!1;#socket;constructor(socket){this.#socket=socket}add(item,cb,hint){if(hint!==sendHints.blob){if(this.#running){let node2={promise:null,callback:cb,frame:createFrame(item,hint)};this.#queue.push(node2)}else if(hint===sendHints.text){let{0:head,1:body}=WebsocketFrameSend.createFastTextFrame(item);this.#socket.cork(),this.#socket.write(head),this.#socket.write(body,cb),this.#socket.uncork()}else this.#socket.write(createFrame(item,hint),cb);return}let node={promise:item.arrayBuffer().then(ab=>{node.promise=null,node.frame=createFrame(ab,hint)}),callback:cb,frame:null};this.#queue.push(node),this.#running||this.#run()}async#run(){this.#running=!0;let queue=this.#queue;for(;!queue.isEmpty();){let node=queue.shift();node.promise!==null&&await node.promise,this.#socket.write(node.frame,node.callback),node.callback=node.frame=null}this.#running=!1}};function createFrame(data,hint){return new WebsocketFrameSend(toBuffer(data,hint)).createFrame(hint===sendHints.text?opcodes.TEXT:opcodes.BINARY)}function toBuffer(data,hint){switch(hint){case sendHints.text:case sendHints.typedArray:return new Uint8Array(data.buffer,data.byteOffset,data.byteLength);case sendHints.arrayBuffer:case sendHints.blob:return new Uint8Array(data)}}module.exports={SendQueue}}});var require_websocket=__commonJS({"node_modules/undici/lib/web/websocket/websocket.js"(exports,module){"use strict";var{isArrayBuffer}=__require("node:util/types"),{webidl}=require_webidl(),{URLSerializer}=require_data_url(),{environmentSettingsObject}=require_util2(),{staticPropertyDescriptors,states,sentCloseFrameState,sendHints,opcodes}=require_constants5(),{isConnecting,isEstablished,isClosing,isClosed,isValidSubprotocol,fireEvent,utf8Decode,toArrayBuffer,getURLRecord}=require_util5(),{establishWebSocketConnection,closeWebSocketConnection,failWebsocketConnection}=require_connection(),{ByteParser}=require_receiver(),{kEnumerableProperty}=require_util(),{getGlobalDispatcher}=require_global2(),{ErrorEvent,CloseEvent,createFastMessageEvent}=require_events(),{SendQueue}=require_sender(),{WebsocketFrameSend}=require_frame(),{channels}=require_diagnostics(),kRef=Symbol.for("nodejs.ref"),kUnref=Symbol.for("nodejs.unref");function getSocketAddress(socket){return typeof socket?.address=="function"?socket.address():typeof socket?.session?.socket?.address=="function"?socket.session.socket.address():null}var WebSocket=class _WebSocket extends EventTarget{#events={open:null,error:null,close:null,message:null};#bufferedAmount=0;#protocol="";#extensions="";#refed=!0;#sendQueue;#handler={onConnectionEstablished:(response,extensions)=>this.#onConnectionEstablished(response,extensions),onMessage:(opcode,data)=>this.#onMessage(opcode,data),onParserError:err=>failWebsocketConnection(this.#handler,null,err.message),onParserDrain:()=>this.#onParserDrain(),onSocketData:chunk=>{this.#parser.write(chunk)||this.#handler.socket.pause()},onSocketError:err=>{this.#handler.readyState=states.CLOSING,channels.socketError.hasSubscribers&&channels.socketError.publish(err),this.#handler.socket.destroy()},onSocketClose:()=>this.#onSocketClose(),onPing:body=>{channels.ping.hasSubscribers&&channels.ping.publish({payload:body,websocket:this})},onPong:body=>{channels.pong.hasSubscribers&&channels.pong.publish({payload:body,websocket:this})},readyState:states.CONNECTING,socket:null,closeState:new Set,controller:null,wasEverConnected:!1};#url;#binaryType;#parser;constructor(url,protocols=[]){super(),webidl.util.markAsUncloneable(this);let prefix="WebSocket constructor";webidl.argumentLengthCheck(arguments,1,prefix);let options=webidl.converters["DOMString or sequence<DOMString> or WebSocketInit"](protocols,prefix,"options");url=webidl.converters.USVString(url),protocols=options.protocols;let baseURL=environmentSettingsObject.settingsObject.baseUrl,urlRecord=getURLRecord(url,baseURL);if(typeof protocols=="string"&&(protocols=[protocols]),protocols.length!==new Set(protocols.map(p=>p.toLowerCase())).size)throw new DOMException("Invalid Sec-WebSocket-Protocol value","SyntaxError");if(protocols.length>0&&!protocols.every(p=>isValidSubprotocol(p)))throw new DOMException("Invalid Sec-WebSocket-Protocol value","SyntaxError");this.#url=new URL(urlRecord.href);let client=environmentSettingsObject.settingsObject;this.#handler.controller=establishWebSocketConnection(urlRecord,protocols,client,this.#handler,options),this.#handler.readyState=_WebSocket.CONNECTING,this.#binaryType="blob"}[kRef](){webidl.brandCheck(this,_WebSocket),this.#refed=!0,this.#handler.socket?.ref?.()}[kUnref](){webidl.brandCheck(this,_WebSocket),this.#refed=!1,this.#handler.socket?.unref?.()}close(code=void 0,reason=void 0){webidl.brandCheck(this,_WebSocket),code!==void 0&&(code=webidl.converters["unsigned short"](code,"WebSocket.close","code",webidl.attributes.Clamp)),reason!==void 0&&(reason=webidl.converters.USVString(reason)),code??=null,reason??="",closeWebSocketConnection(this.#handler,code,reason,!0)}send(data){webidl.brandCheck(this,_WebSocket);let prefix="WebSocket.send";if(webidl.argumentLengthCheck(arguments,1,prefix),data=webidl.converters.WebSocketSendData(data,prefix,"data"),isConnecting(this.#handler.readyState))throw new DOMException("Sent before connected.","InvalidStateError");if(!(!isEstablished(this.#handler.readyState)||isClosing(this.#handler.readyState)))if(typeof data=="string"){let buffer=Buffer.from(data);this.#bufferedAmount+=buffer.byteLength,this.#sendQueue.add(buffer,()=>{this.#bufferedAmount-=buffer.byteLength},sendHints.text)}else isArrayBuffer(data)?(this.#bufferedAmount+=data.byteLength,this.#sendQueue.add(data,()=>{this.#bufferedAmount-=data.byteLength},sendHints.arrayBuffer)):ArrayBuffer.isView(data)?(this.#bufferedAmount+=data.byteLength,this.#sendQueue.add(data,()=>{this.#bufferedAmount-=data.byteLength},sendHints.typedArray)):webidl.is.Blob(data)&&(this.#bufferedAmount+=data.size,this.#sendQueue.add(data,()=>{this.#bufferedAmount-=data.size},sendHints.blob))}get readyState(){return webidl.brandCheck(this,_WebSocket),this.#handler.readyState}get bufferedAmount(){return webidl.brandCheck(this,_WebSocket),this.#bufferedAmount}get url(){return webidl.brandCheck(this,_WebSocket),URLSerializer(this.#url)}get extensions(){return webidl.brandCheck(this,_WebSocket),this.#extensions}get protocol(){return webidl.brandCheck(this,_WebSocket),this.#protocol}get onopen(){return webidl.brandCheck(this,_WebSocket),this.#events.open}set onopen(fn){webidl.brandCheck(this,_WebSocket),this.#events.open&&this.removeEventListener("open",this.#events.open);let listener=webidl.converters.EventHandlerNonNull(fn);listener!==null?(this.addEventListener("open",listener),this.#events.open=fn):this.#events.open=null}get onerror(){return webidl.brandCheck(this,_WebSocket),this.#events.error}set onerror(fn){webidl.brandCheck(this,_WebSocket),this.#events.error&&this.removeEventListener("error",this.#events.error);let listener=webidl.converters.EventHandlerNonNull(fn);listener!==null?(this.addEventListener("error",listener),this.#events.error=fn):this.#events.error=null}get onclose(){return webidl.brandCheck(this,_WebSocket),this.#events.close}set onclose(fn){webidl.brandCheck(this,_WebSocket),this.#events.close&&this.removeEventListener("close",this.#events.close);let listener=webidl.converters.EventHandlerNonNull(fn);listener!==null?(this.addEventListener("close",listener),this.#events.close=fn):this.#events.close=null}get onmessage(){return webidl.brandCheck(this,_WebSocket),this.#events.message}set onmessage(fn){webidl.brandCheck(this,_WebSocket),this.#events.message&&this.removeEventListener("message",this.#events.message);let listener=webidl.converters.EventHandlerNonNull(fn);listener!==null?(this.addEventListener("message",listener),this.#events.message=fn):this.#events.message=null}get binaryType(){return webidl.brandCheck(this,_WebSocket),this.#binaryType}set binaryType(type){webidl.brandCheck(this,_WebSocket),type!=="blob"&&type!=="arraybuffer"?this.#binaryType="blob":this.#binaryType=type}#onConnectionEstablished(response,parsedExtensions){this.#handler.socket=response.socket,this.#refed||this.#handler.socket.unref?.();let maxFragments=this.#handler.controller.dispatcher?.webSocketOptions?.maxFragments,maxPayloadSize=this.#handler.controller.dispatcher?.webSocketOptions?.maxPayloadSize,parser=new ByteParser(this.#handler,parsedExtensions,{maxFragments,maxPayloadSize});parser.on("drain",()=>this.#handler.onParserDrain()),parser.on("error",err=>this.#handler.onParserError(err)),this.#parser=parser,this.#sendQueue=new SendQueue(response.socket),this.#handler.readyState=states.OPEN;let extensions=response.headersList.get("sec-websocket-extensions");extensions!==null&&(this.#extensions=extensions);let protocol=response.headersList.get("sec-websocket-protocol");if(protocol!==null&&(this.#protocol=protocol),fireEvent("open",this),channels.open.hasSubscribers){let headers=response.headersList.entries;channels.open.publish({address:getSocketAddress(response.socket),protocol:this.#protocol,extensions:this.#extensions,websocket:this,handshakeResponse:{status:response.status,statusText:response.statusText,headers}})}}#onMessage(type,data){if(this.#handler.readyState!==states.OPEN)return;let dataForEvent;if(type===opcodes.TEXT)try{dataForEvent=utf8Decode(data)}catch{failWebsocketConnection(this.#handler,1007,"Received invalid UTF-8 in text frame.");return}else type===opcodes.BINARY&&(this.#binaryType==="blob"?dataForEvent=new Blob([data]):dataForEvent=toArrayBuffer(data));fireEvent("message",this,createFastMessageEvent,{origin:this.#url.origin,data:dataForEvent})}#onParserDrain(){this.#handler.socket.resume()}#onSocketClose(){let wasClean=this.#handler.closeState.has(sentCloseFrameState.SENT)&&this.#handler.closeState.has(sentCloseFrameState.RECEIVED),code=1005,reason="",result=this.#parser?.closingInfo;result&&!result.error&&(code=result.code??1005,reason=result.reason),this.#handler.readyState=states.CLOSED,this.#handler.closeState.has(sentCloseFrameState.RECEIVED)||(code=1006,fireEvent("error",this,(type,init)=>new ErrorEvent(type,init),{error:new TypeError(reason)})),fireEvent("close",this,(type,init)=>new CloseEvent(type,init),{wasClean,code,reason}),channels.close.hasSubscribers&&channels.close.publish({websocket:this,code,reason})}static ping(ws,buffer){if(Buffer.isBuffer(buffer)){if(buffer.length>125)throw new TypeError("A PING frame cannot have a body larger than 125 bytes.")}else if(buffer!==void 0)throw new TypeError("Expected buffer payload");let readyState=ws.#handler.readyState;if(isEstablished(readyState)&&!isClosing(readyState)&&!isClosed(readyState)){let frame=new WebsocketFrameSend(buffer);ws.#handler.socket.write(frame.createFrame(opcodes.PING))}}},{ping}=WebSocket;Reflect.deleteProperty(WebSocket,"ping");WebSocket.CONNECTING=WebSocket.prototype.CONNECTING=states.CONNECTING;WebSocket.OPEN=WebSocket.prototype.OPEN=states.OPEN;WebSocket.CLOSING=WebSocket.prototype.CLOSING=states.CLOSING;WebSocket.CLOSED=WebSocket.prototype.CLOSED=states.CLOSED;Object.defineProperties(WebSocket.prototype,{CONNECTING:staticPropertyDescriptors,OPEN:staticPropertyDescriptors,CLOSING:staticPropertyDescriptors,CLOSED:staticPropertyDescriptors,url:kEnumerableProperty,readyState:kEnumerableProperty,bufferedAmount:kEnumerableProperty,onopen:kEnumerableProperty,onerror:kEnumerableProperty,onclose:kEnumerableProperty,close:kEnumerableProperty,onmessage:kEnumerableProperty,binaryType:kEnumerableProperty,send:kEnumerableProperty,extensions:kEnumerableProperty,protocol:kEnumerableProperty,[Symbol.toStringTag]:{value:"WebSocket",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(WebSocket,{CONNECTING:staticPropertyDescriptors,OPEN:staticPropertyDescriptors,CLOSING:staticPropertyDescriptors,CLOSED:staticPropertyDescriptors});webidl.converters["sequence<DOMString>"]=webidl.sequenceConverter(webidl.converters.DOMString);webidl.converters["DOMString or sequence<DOMString>"]=function(V,prefix,argument){return webidl.util.Type(V)===webidl.util.Types.OBJECT&&Symbol.iterator in V?webidl.converters["sequence<DOMString>"](V):webidl.converters.DOMString(V,prefix,argument)};webidl.converters.WebSocketInit=webidl.dictionaryConverter([{key:"protocols",converter:webidl.converters["DOMString or sequence<DOMString>"],defaultValue:()=>[]},{key:"dispatcher",converter:webidl.converters.any,defaultValue:()=>getGlobalDispatcher()},{key:"headers",converter:webidl.nullableConverter(webidl.converters.HeadersInit)}]);webidl.converters["DOMString or sequence<DOMString> or WebSocketInit"]=function(V){return webidl.util.Type(V)===webidl.util.Types.OBJECT&&!(Symbol.iterator in V)?webidl.converters.WebSocketInit(V):{protocols:webidl.converters["DOMString or sequence<DOMString>"](V)}};webidl.converters.WebSocketSendData=function(V){return webidl.util.Type(V)===webidl.util.Types.OBJECT&&(webidl.is.Blob(V)||webidl.is.BufferSource(V))?V:webidl.converters.USVString(V)};module.exports={WebSocket,ping}}});var require_websocketerror=__commonJS({"node_modules/undici/lib/web/websocket/stream/websocketerror.js"(exports,module){"use strict";var{webidl}=require_webidl(),{validateCloseCodeAndReason}=require_util5(),{kConstruct}=require_symbols(),{kEnumerableProperty}=require_util();function createInheritableDOMException(){class Test extends DOMException{get reason(){return""}}return new Test().reason!==void 0?DOMException:new Proxy(DOMException,{construct(target,args,newTarget){let instance=Reflect.construct(target,args,target);return Object.setPrototypeOf(instance,newTarget.prototype),instance}})}var WebSocketError=class _WebSocketError extends createInheritableDOMException(){#closeCode;#reason;constructor(message="",init=void 0){if(message=webidl.converters.DOMString(message,"WebSocketError","message"),super(message,"WebSocketError"),init===kConstruct)return;init!==null&&(init=webidl.converters.WebSocketCloseInfo(init));let code=init.closeCode??null,reason=init.reason??"";validateCloseCodeAndReason(code,reason),reason.length!==0&&code===null&&(code=1e3),this.#closeCode=code,this.#reason=reason}get closeCode(){return this.#closeCode}get reason(){return this.#reason}static createUnvalidatedWebSocketError(message,code,reason){let error=new _WebSocketError(message,kConstruct);return error.#closeCode=code,error.#reason=reason,error}},{createUnvalidatedWebSocketError}=WebSocketError;delete WebSocketError.createUnvalidatedWebSocketError;Object.defineProperties(WebSocketError.prototype,{closeCode:kEnumerableProperty,reason:kEnumerableProperty,[Symbol.toStringTag]:{value:"WebSocketError",writable:!1,enumerable:!1,configurable:!0}});webidl.is.WebSocketError=webidl.util.MakeTypeAssertion(WebSocketError);module.exports={WebSocketError,createUnvalidatedWebSocketError}}});var require_websocketstream=__commonJS({"node_modules/undici/lib/web/websocket/stream/websocketstream.js"(exports,module){"use strict";var{addAbortListener}=__require("node:events"),{environmentSettingsObject,readableStreamClose}=require_util2(),{states,opcodes,sentCloseFrameState}=require_constants5(),{webidl}=require_webidl(),{getURLRecord,isValidSubprotocol,isEstablished,utf8Decode}=require_util5(),{establishWebSocketConnection,failWebsocketConnection,closeWebSocketConnection}=require_connection(),{channels}=require_diagnostics(),{WebsocketFrameSend}=require_frame(),{ByteParser}=require_receiver(),{WebSocketError,createUnvalidatedWebSocketError}=require_websocketerror(),{kEnumerableProperty}=require_util(),{utf8DecodeBytes}=require_encoding(),emittedExperimentalWarning=!1,WebSocketStream=class{#url;#openedPromise;#closedPromise;#readableStream;#readableStreamController;#writableStream;#handshakeAborted=!1;#handler={onConnectionEstablished:(response,extensions)=>this.#onConnectionEstablished(response,extensions),onMessage:(opcode,data)=>this.#onMessage(opcode,data),onParserError:err=>failWebsocketConnection(this.#handler,null,err.message),onParserDrain:()=>this.#handler.socket.resume(),onSocketData:chunk=>{this.#parser.write(chunk)||this.#handler.socket.pause()},onSocketError:err=>{this.#handler.readyState=states.CLOSING,channels.socketError.hasSubscribers&&channels.socketError.publish(err),this.#handler.socket.destroy()},onSocketClose:()=>this.#onSocketClose(),onPing:()=>{},onPong:()=>{},readyState:states.CONNECTING,socket:null,closeState:new Set,controller:null,wasEverConnected:!1};#parser;constructor(url,options=void 0){emittedExperimentalWarning||(process.emitWarning("WebSocketStream is experimental! Expect it to change at any time.",{code:"UNDICI-WSS"}),emittedExperimentalWarning=!0),webidl.argumentLengthCheck(arguments,1,"WebSocket"),url=webidl.converters.USVString(url),options!==null&&(options=webidl.converters.WebSocketStreamOptions(options));let baseURL=environmentSettingsObject.settingsObject.baseUrl,urlRecord=getURLRecord(url,baseURL),protocols=options.protocols;if(protocols.length!==new Set(protocols.map(p=>p.toLowerCase())).size)throw new DOMException("Invalid Sec-WebSocket-Protocol value","SyntaxError");if(protocols.length>0&&!protocols.every(p=>isValidSubprotocol(p)))throw new DOMException("Invalid Sec-WebSocket-Protocol value","SyntaxError");if(this.#url=urlRecord.toString(),this.#openedPromise=Promise.withResolvers(),this.#closedPromise=Promise.withResolvers(),options.signal!=null){let signal=options.signal;if(signal.aborted){this.#openedPromise.reject(signal.reason),this.#closedPromise.reject(signal.reason);return}addAbortListener(signal,()=>{isEstablished(this.#handler.readyState)||(failWebsocketConnection(this.#handler),this.#handler.readyState=states.CLOSING,this.#openedPromise.reject(signal.reason),this.#closedPromise.reject(signal.reason),this.#handshakeAborted=!0)})}let client=environmentSettingsObject.settingsObject;this.#handler.controller=establishWebSocketConnection(urlRecord,protocols,client,this.#handler,options)}get url(){return this.#url.toString()}get opened(){return this.#openedPromise.promise}get closed(){return this.#closedPromise.promise}close(closeInfo=void 0){closeInfo!==null&&(closeInfo=webidl.converters.WebSocketCloseInfo(closeInfo));let code=closeInfo.closeCode??null,reason=closeInfo.reason;closeWebSocketConnection(this.#handler,code,reason,!0)}#write(chunk){chunk=webidl.converters.WebSocketStreamWrite(chunk);let promise=Promise.withResolvers(),data=null,opcode=null;if(webidl.is.BufferSource(chunk))data=new Uint8Array(ArrayBuffer.isView(chunk)?new Uint8Array(chunk.buffer,chunk.byteOffset,chunk.byteLength):chunk.slice()),opcode=opcodes.BINARY;else{let string;try{string=webidl.converters.DOMString(chunk)}catch(e){return promise.reject(e),promise.promise}data=new TextEncoder().encode(string),opcode=opcodes.TEXT}if(!this.#handler.closeState.has(sentCloseFrameState.SENT)&&!this.#handler.closeState.has(sentCloseFrameState.RECEIVED)){let frame=new WebsocketFrameSend(data);this.#handler.socket.write(frame.createFrame(opcode),()=>{promise.resolve(void 0)})}return promise.promise}#onConnectionEstablished(response,parsedExtensions){this.#handler.socket=response.socket;let maxFragments=this.#handler.controller.dispatcher?.webSocketOptions?.maxFragments,maxPayloadSize=this.#handler.controller.dispatcher?.webSocketOptions?.maxPayloadSize,parser=new ByteParser(this.#handler,parsedExtensions,{maxFragments,maxPayloadSize});parser.on("drain",()=>this.#handler.onParserDrain()),parser.on("error",err=>this.#handler.onParserError(err)),this.#parser=parser,this.#handler.readyState=states.OPEN;let extensions=parsedExtensions??"",protocol=response.headersList.get("sec-websocket-protocol")??"",readable=new ReadableStream({start:controller=>{this.#readableStreamController=controller},cancel:reason=>this.#cancel(reason)}),writable=new WritableStream({write:chunk=>this.#write(chunk),close:()=>closeWebSocketConnection(this.#handler,null,null),abort:reason=>this.#closeUsingReason(reason)});this.#readableStream=readable,this.#writableStream=writable,this.#openedPromise.resolve({extensions,protocol,readable,writable})}#onMessage(type,data){if(this.#handler.readyState!==states.OPEN)return;let chunk;if(type===opcodes.TEXT)try{chunk=utf8Decode(data)}catch{failWebsocketConnection(this.#handler,1007,"Received invalid UTF-8 in text frame.");return}else type===opcodes.BINARY&&(chunk=new Uint8Array(data.buffer,data.byteOffset,data.byteLength));this.#readableStreamController.enqueue(chunk)}#onSocketClose(){let wasClean=this.#handler.closeState.has(sentCloseFrameState.SENT)&&this.#handler.closeState.has(sentCloseFrameState.RECEIVED);if(this.#handler.readyState=states.CLOSED,this.#handshakeAborted)return;this.#handler.wasEverConnected||this.#openedPromise.reject(new WebSocketError("Socket never opened"));let result=this.#parser?.closingInfo,code=result?.code??1005;!this.#handler.closeState.has(sentCloseFrameState.SENT)&&!this.#handler.closeState.has(sentCloseFrameState.RECEIVED)&&(code=1006);let reason=result?.reason==null?"":utf8DecodeBytes(Buffer.from(result.reason));if(wasClean)readableStreamClose(this.#readableStreamController),this.#writableStream.locked||this.#writableStream.abort(new DOMException("A closed WebSocketStream cannot be written to","InvalidStateError")),this.#closedPromise.resolve({closeCode:code,reason});else{let error=createUnvalidatedWebSocketError("unclean close",code,reason);this.#readableStreamController?.error(error),this.#writableStream?.abort(error),this.#closedPromise.reject(error)}}#closeUsingReason(reason){let code=null,reasonString="";webidl.is.WebSocketError(reason)&&(code=reason.closeCode,reasonString=reason.reason),closeWebSocketConnection(this.#handler,code,reasonString)}#cancel(reason){this.#closeUsingReason(reason)}};Object.defineProperties(WebSocketStream.prototype,{url:kEnumerableProperty,opened:kEnumerableProperty,closed:kEnumerableProperty,close:kEnumerableProperty,[Symbol.toStringTag]:{value:"WebSocketStream",writable:!1,enumerable:!1,configurable:!0}});webidl.converters.WebSocketStreamOptions=webidl.dictionaryConverter([{key:"protocols",converter:webidl.sequenceConverter(webidl.converters.USVString),defaultValue:()=>[]},{key:"signal",converter:webidl.nullableConverter(webidl.converters.AbortSignal),defaultValue:()=>null}]);webidl.converters.WebSocketCloseInfo=webidl.dictionaryConverter([{key:"closeCode",converter:V=>webidl.converters["unsigned short"](V,webidl.attributes.EnforceRange)},{key:"reason",converter:webidl.converters.USVString,defaultValue:()=>""}]);webidl.converters.WebSocketStreamWrite=function(V){return typeof V=="string"?webidl.converters.USVString(V):webidl.converters.BufferSource(V)};module.exports={WebSocketStream}}});var require_util6=__commonJS({"node_modules/undici/lib/web/eventsource/util.js"(exports,module){"use strict";var{makeRequest}=require_request2();function isValidLastEventId(value){return value.indexOf("\0")===-1}function isASCIINumber(value){if(value.length===0)return!1;for(let i=0;i<value.length;i++)if(value.charCodeAt(i)<48||value.charCodeAt(i)>57)return!1;return!0}function createPotentialCORSRequest(url,destination,corsAttributeState,sameOriginFallback){let mode=corsAttributeState==="no cors"?"no-cors":"cors";sameOriginFallback&&mode==="no-cors"&&(mode="same-origin");let credentialsMode="include";return corsAttributeState==="anonymous"&&(credentialsMode="same-origin"),makeRequest({urlList:[url],destination,mode,credentials:credentialsMode,useURLCredentials:!0})}module.exports={isValidLastEventId,isASCIINumber,createPotentialCORSRequest}}});var require_eventsource_stream=__commonJS({"node_modules/undici/lib/web/eventsource/eventsource-stream.js"(exports,module){"use strict";var{Transform}=__require("node:stream"),{isASCIINumber,isValidLastEventId}=require_util6(),BOM=[239,187,191],LF=10,CR=13,COLON=58,SPACE=32,DATA=Buffer.from("data"),EVENT=Buffer.from("event"),ID=Buffer.from("id"),RETRY=Buffer.from("retry");function isASCIINumberBytes(buffer,start){if(start>=buffer.length)return!1;for(let i=start;i<buffer.length;i++)if(buffer[i]<48||buffer[i]>57)return!1;return!0}function isValidLastEventIdBytes(buffer,start){for(let i=start;i<buffer.length;i++)if(buffer[i]===0)return!1;return!0}function isFieldName(line,length,field){if(length!==field.length)return!1;for(let i=0;i<length;i++)if(line[i]!==field[i])return!1;return!0}var EventSourceStream=class extends Transform{state;checkBOM=!0;crlfCheck=!1;eventEndCheck=!1;chunks=[];chunkIndex=0;pos=0;lineChunkIndex=0;linePos=0;event={data:void 0,event:void 0,id:void 0,retry:void 0};constructor(options={}){options.readableObjectMode=!0,super(options),this.state=options.eventSourceSettings||{},options.push&&(this.push=options.push)}_transform(chunk,_encoding,callback){if(chunk.length===0){callback();return}if(this.chunks.push(chunk),this.checkBOM&&this.handleBOM()){callback();return}for(;this.hasCurrentByte();){let byte=this.currentByte();if(this.eventEndCheck){if(this.crlfCheck){if(byte===LF){this.crlfCheck=!1,this.consumeCurrentByte();continue}this.crlfCheck=!1}if(byte===LF||byte===CR){byte===CR&&(this.crlfCheck=!0),this.consumeCurrentByte(),this.hasPendingEvent()&&this.processEvent(this.event),this.clearEvent();continue}this.eventEndCheck=!1;continue}if(byte===LF||byte===CR){byte===CR&&(this.crlfCheck=!0),this.parseLine(this.readLine(),this.event),this.consumeCurrentByte(),this.eventEndCheck=!0;continue}this.advanceCursor()}callback()}parseLine(line,event){if(line.length===0)return;let colonPosition=line.indexOf(COLON);if(colonPosition===0)return;let fieldLength=line.length,valueStart=line.length;if(colonPosition!==-1&&(fieldLength=colonPosition,valueStart=colonPosition+1,line[valueStart]===SPACE&&++valueStart),isFieldName(line,fieldLength,DATA)){let value=line.toString("utf8",valueStart);event.data===void 0?event.data=value:event.data+=`
|
|
130
|
+
${value}`;return}if(isFieldName(line,fieldLength,RETRY)){isASCIINumberBytes(line,valueStart)&&(event.retry=line.toString("utf8",valueStart));return}if(isFieldName(line,fieldLength,ID)){isValidLastEventIdBytes(line,valueStart)&&(event.id=line.toString("utf8",valueStart));return}if(isFieldName(line,fieldLength,EVENT)){let value=line.toString("utf8",valueStart);value.length>0&&(event.event=value)}}processEvent(event){event.retry&&isASCIINumber(event.retry)&&(this.state.reconnectionTime=parseInt(event.retry,10)),event.id!==void 0&&isValidLastEventId(event.id)&&(this.state.lastEventId=event.id),event.data!==void 0&&this.push({type:event.event||"message",options:{data:event.data,lastEventId:this.state.lastEventId,origin:this.state.origin}})}clearEvent(){this.event.data=void 0,this.event.event=void 0,this.event.id=void 0,this.event.retry=void 0}hasPendingEvent(){return this.event.data!==void 0||this.event.event!==void 0||this.event.id!==void 0||this.event.retry!==void 0}hasCurrentByte(){return this.chunkIndex<this.chunks.length&&this.pos<this.chunks[this.chunkIndex].length}currentByte(){return this.chunks[this.chunkIndex][this.pos]}consumeCurrentByte(){this.advanceCursor(),this.syncLineStartToCursor()}advanceCursor(){for(this.pos++;this.chunkIndex<this.chunks.length&&this.pos>=this.chunks[this.chunkIndex].length;)this.chunkIndex++,this.pos=0}syncLineStartToCursor(){this.lineChunkIndex=this.chunkIndex,this.linePos=this.pos,this.dropConsumedChunks()}dropConsumedChunks(){for(;this.lineChunkIndex>0;)this.chunks.shift(),this.lineChunkIndex--,this.chunkIndex--;this.chunkIndex===this.chunks.length&&(this.chunks.length=0,this.chunkIndex=0,this.pos=0,this.lineChunkIndex=0,this.linePos=0)}readLine(){if(this.lineChunkIndex===this.chunkIndex)return this.chunks[this.chunkIndex].subarray(this.linePos,this.pos);let chunks=[],length=0;for(let i=this.lineChunkIndex;i<=this.chunkIndex;i++){let chunk=this.chunks[i],start=i===this.lineChunkIndex?this.linePos:0,end=i===this.chunkIndex?this.pos:chunk.length,slice=chunk.subarray(start,end);length+=slice.length,chunks.push(slice)}return Buffer.concat(chunks,length)}peekBufferedByte(offset){let chunkIndex=this.lineChunkIndex,pos=this.linePos;for(;chunkIndex<this.chunks.length;){let chunk=this.chunks[chunkIndex],remaining=chunk.length-pos;if(offset<remaining)return chunk[pos+offset];offset-=remaining,chunkIndex++,pos=0}}discardLeadingBytes(count){for(;count>0&&this.lineChunkIndex<this.chunks.length;){let remaining=this.chunks[this.lineChunkIndex].length-this.linePos;count<remaining?(this.linePos+=count,count=0):(count-=remaining,this.lineChunkIndex++,this.linePos=0)}this.chunkIndex=this.lineChunkIndex,this.pos=this.linePos,this.dropConsumedChunks()}handleBOM(){let first=this.peekBufferedByte(0),second=this.peekBufferedByte(1),third=this.peekBufferedByte(2);return second===void 0?(first===BOM[0]||(this.checkBOM=!1),!0):third===void 0?first===BOM[0]&&second===BOM[1]?!0:(this.checkBOM=!1,!1):(first===BOM[0]&&second===BOM[1]&&third===BOM[2]&&this.discardLeadingBytes(3),this.checkBOM=!1,!this.hasCurrentByte())}};module.exports={EventSourceStream}}});var require_eventsource=__commonJS({"node_modules/undici/lib/web/eventsource/eventsource.js"(exports,module){"use strict";var{pipeline}=__require("node:stream"),{fetching}=require_fetch(),{webidl}=require_webidl(),{EventSourceStream}=require_eventsource_stream(),{parseMIMEType}=require_data_url(),{createFastMessageEvent}=require_events(),{isNetworkError}=require_response(),{kEnumerableProperty}=require_util(),{environmentSettingsObject}=require_util2(),{createPotentialCORSRequest}=require_util6(),experimentalWarned=!1,defaultReconnectionTime=3e3,CONNECTING=0,OPEN=1,CLOSED=2,ANONYMOUS="anonymous",USE_CREDENTIALS="use-credentials",EventSource=class _EventSource extends EventTarget{#events={open:null,error:null,message:null};#url;#withCredentials=!1;#readyState=CONNECTING;#request=null;#controller=null;#dispatcher;#state;constructor(url,eventSourceInitDict={}){super(),webidl.util.markAsUncloneable(this);let prefix="EventSource constructor";webidl.argumentLengthCheck(arguments,1,prefix),experimentalWarned||(experimentalWarned=!0,process.emitWarning("EventSource is experimental, expect them to change at any time.",{code:"UNDICI-ES"})),url=webidl.converters.USVString(url),eventSourceInitDict=webidl.converters.EventSourceInitDict(eventSourceInitDict,prefix,"eventSourceInitDict"),this.#dispatcher=eventSourceInitDict.node.dispatcher||eventSourceInitDict.dispatcher,this.#state={lastEventId:"",reconnectionTime:eventSourceInitDict.node.reconnectionTime};let settings=environmentSettingsObject,urlRecord;try{urlRecord=new URL(url,settings.settingsObject.baseUrl),this.#state.origin=urlRecord.origin}catch(e){throw new DOMException(e,"SyntaxError")}this.#url=urlRecord.href;let corsAttributeState=ANONYMOUS;eventSourceInitDict.withCredentials===!0&&(corsAttributeState=USE_CREDENTIALS,this.#withCredentials=!0);let request=createPotentialCORSRequest(urlRecord,"",corsAttributeState);request.client=environmentSettingsObject.settingsObject,request.headersList.set("Accept","text/event-stream"),request.cache="no-store",request.initiator="other",this.#request=request,this.#connect()}get readyState(){return this.#readyState}get url(){return this.#url}get withCredentials(){return this.#withCredentials}#connect(){if(this.#readyState===CLOSED)return;this.#readyState=CONNECTING;let fetchParams={request:this.#request,dispatcher:this.#dispatcher},processEventSourceEndOfBody=response=>{if(!isNetworkError(response))return this.#reconnect()};fetchParams.processResponseEndOfBody=processEventSourceEndOfBody,fetchParams.processResponse=response=>{if(isNetworkError(response))if(response.aborted){this.close(),this.dispatchEvent(new Event("error"));return}else{this.#reconnect();return}let contentType=response.headersList.get("content-type",!0),mimeType=contentType!==null?parseMIMEType(contentType):"failure",contentTypeValid=mimeType!=="failure"&&mimeType.essence==="text/event-stream";if(response.status!==200||contentTypeValid===!1){this.close(),this.dispatchEvent(new Event("error"));return}this.#readyState=OPEN,this.dispatchEvent(new Event("open")),this.#state.origin=response.urlList[response.urlList.length-1].origin;let eventSourceStream=new EventSourceStream({eventSourceSettings:this.#state,push:event=>{this.dispatchEvent(createFastMessageEvent(event.type,event.options))}});pipeline(response.body.stream,eventSourceStream,error=>{error?.aborted===!1&&(this.close(),this.dispatchEvent(new Event("error")))})},this.#controller=fetching(fetchParams)}#reconnect(){this.#readyState!==CLOSED&&(this.#readyState=CONNECTING,this.dispatchEvent(new Event("error")),setTimeout(()=>{this.#readyState===CONNECTING&&(this.#state.lastEventId.length&&this.#request.headersList.set("last-event-id",this.#state.lastEventId,!0),this.#connect())},this.#state.reconnectionTime)?.unref())}close(){webidl.brandCheck(this,_EventSource),this.#readyState!==CLOSED&&(this.#readyState=CLOSED,this.#controller.abort(),this.#request=null)}get onopen(){return this.#events.open}set onopen(fn){this.#events.open&&this.removeEventListener("open",this.#events.open);let listener=webidl.converters.EventHandlerNonNull(fn);listener!==null?(this.addEventListener("open",listener),this.#events.open=fn):this.#events.open=null}get onmessage(){return this.#events.message}set onmessage(fn){this.#events.message&&this.removeEventListener("message",this.#events.message);let listener=webidl.converters.EventHandlerNonNull(fn);listener!==null?(this.addEventListener("message",listener),this.#events.message=fn):this.#events.message=null}get onerror(){return this.#events.error}set onerror(fn){this.#events.error&&this.removeEventListener("error",this.#events.error);let listener=webidl.converters.EventHandlerNonNull(fn);listener!==null?(this.addEventListener("error",listener),this.#events.error=fn):this.#events.error=null}},constantsPropertyDescriptors={CONNECTING:{__proto__:null,configurable:!1,enumerable:!0,value:CONNECTING,writable:!1},OPEN:{__proto__:null,configurable:!1,enumerable:!0,value:OPEN,writable:!1},CLOSED:{__proto__:null,configurable:!1,enumerable:!0,value:CLOSED,writable:!1}};Object.defineProperties(EventSource,constantsPropertyDescriptors);Object.defineProperties(EventSource.prototype,constantsPropertyDescriptors);Object.defineProperties(EventSource.prototype,{close:kEnumerableProperty,onerror:kEnumerableProperty,onmessage:kEnumerableProperty,onopen:kEnumerableProperty,readyState:kEnumerableProperty,url:kEnumerableProperty,withCredentials:kEnumerableProperty});webidl.converters.EventSourceInitDict=webidl.dictionaryConverter([{key:"withCredentials",converter:webidl.converters.boolean,defaultValue:()=>!1},{key:"dispatcher",converter:webidl.converters.any},{key:"node",converter:webidl.dictionaryConverter([{key:"reconnectionTime",converter:webidl.converters["unsigned long"],defaultValue:()=>defaultReconnectionTime},{key:"dispatcher",converter:webidl.converters.any}]),defaultValue:()=>({})}]);module.exports={EventSource,defaultReconnectionTime}}});var require_undici=__commonJS({"node_modules/undici/index.js"(exports,module){var Client=require_client(),Dispatcher=require_dispatcher(),Pool=require_pool(),BalancedPool=require_balanced_pool(),RoundRobinPool=require_round_robin_pool(),Agent=require_agent(),Dispatcher1Wrapper=require_dispatcher1_wrapper(),ProxyAgent=require_proxy_agent(),Socks5ProxyAgent=require_socks5_proxy_agent(),EnvHttpProxyAgent=require_env_http_proxy_agent(),RetryAgent=require_retry_agent(),H2CClient=require_h2c_client(),errors=require_errors(),util=require_util(),{InvalidArgumentError}=errors,api=require_api(),buildConnector=require_connect(),MockClient=require_mock_client(),{MockCallHistory,MockCallHistoryLog}=require_mock_call_history(),MockAgent=require_mock_agent(),MockPool=require_mock_pool(),SnapshotAgent=require_snapshot_agent(),mockErrors=require_mock_errors(),RetryHandler=require_retry_handler(),{getGlobalDispatcher,setGlobalDispatcher}=require_global2(),DecoratorHandler=require_decorator_handler(),RedirectHandler=require_redirect_handler();Object.assign(Dispatcher.prototype,api);module.exports.Dispatcher=Dispatcher;module.exports.Client=Client;module.exports.Pool=Pool;module.exports.BalancedPool=BalancedPool;module.exports.RoundRobinPool=RoundRobinPool;module.exports.Agent=Agent;module.exports.Dispatcher1Wrapper=Dispatcher1Wrapper;module.exports.ProxyAgent=ProxyAgent;module.exports.Socks5ProxyAgent=Socks5ProxyAgent;module.exports.EnvHttpProxyAgent=EnvHttpProxyAgent;module.exports.RetryAgent=RetryAgent;module.exports.H2CClient=H2CClient;module.exports.RetryHandler=RetryHandler;module.exports.DecoratorHandler=DecoratorHandler;module.exports.RedirectHandler=RedirectHandler;module.exports.interceptors={redirect:require_redirect(),responseError:require_response_error(),retry:require_retry(),dump:require_dump(),dns:require_dns(),cache:require_cache2(),decompress:require_decompress(),deduplicate:require_deduplicate()};module.exports.cacheStores={MemoryCacheStore:require_memory_cache_store()};var SqliteCacheStore=require_sqlite_cache_store();module.exports.cacheStores.SqliteCacheStore=SqliteCacheStore;module.exports.buildConnector=buildConnector;module.exports.errors=errors;module.exports.util={parseHeaders:util.parseHeaders,headerNameToString:util.headerNameToString};function makeDispatcher(fn){return(url,opts,handler)=>{if(typeof opts=="function"&&(handler=opts,opts=null),!url||typeof url!="string"&&typeof url!="object"&&!(url instanceof URL))throw new InvalidArgumentError("invalid url");if(opts!=null&&typeof opts!="object")throw new InvalidArgumentError("invalid opts");if(opts&&opts.path!=null){if(typeof opts.path!="string")throw new InvalidArgumentError("invalid opts.path");let path=opts.path;opts.path.startsWith("/")||(path=`/${path}`),url=new URL(util.parseOrigin(url).origin+path)}else opts||(opts=typeof url=="object"?url:{}),url=util.parseURL(url);let{agent,dispatcher=getGlobalDispatcher(),...restOpts}=opts;if(agent)throw new InvalidArgumentError("unsupported opts.agent. Did you mean opts.client?");return fn.call(dispatcher,{...restOpts,origin:url.origin,path:url.search?`${url.pathname}${url.search}`:url.pathname,method:opts.method||(opts.body?"PUT":"GET")},handler)}}module.exports.setGlobalDispatcher=setGlobalDispatcher;module.exports.getGlobalDispatcher=getGlobalDispatcher;var fetchImpl=require_fetch().fetch,currentFilename=typeof __filename<"u"?__filename:void 0;function appendFetchStackTrace(err,filename){if(!err||typeof err!="object")return;let stack=typeof err.stack=="string"?err.stack:"",normalizedFilename=filename.replace(/\\/g,"/");if(stack&&(stack.includes(filename)||stack.includes(normalizedFilename)))return;let capture={};if(Error.captureStackTrace(capture,appendFetchStackTrace),!capture.stack)return;let captureLines=capture.stack.split(`
|
|
131
|
+
`).slice(1).join(`
|
|
132
|
+
`);err.stack=stack?`${stack}
|
|
133
|
+
${captureLines}`:capture.stack}module.exports.fetch=function(init,options=void 0){return fetchImpl(init,options).catch(err=>{throw currentFilename?appendFetchStackTrace(err,currentFilename):err&&typeof err=="object"&&Error.captureStackTrace(err,module.exports.fetch),err})};module.exports.Headers=require_headers().Headers;module.exports.Response=require_response().Response;module.exports.Request=require_request2().Request;module.exports.FormData=require_formdata().FormData;var{setGlobalOrigin,getGlobalOrigin}=require_global();module.exports.setGlobalOrigin=setGlobalOrigin;module.exports.getGlobalOrigin=getGlobalOrigin;var{CacheStorage}=require_cachestorage(),{kConstruct}=require_symbols();module.exports.caches=new CacheStorage(kConstruct);var{deleteCookie,getCookies,getSetCookies,setCookie,parseCookie}=require_cookies();module.exports.deleteCookie=deleteCookie;module.exports.getCookies=getCookies;module.exports.getSetCookies=getSetCookies;module.exports.setCookie=setCookie;module.exports.parseCookie=parseCookie;var{parseMIMEType,serializeAMimeType}=require_data_url();module.exports.parseMIMEType=parseMIMEType;module.exports.serializeAMimeType=serializeAMimeType;var{CloseEvent,ErrorEvent,MessageEvent}=require_events(),{WebSocket,ping}=require_websocket();module.exports.WebSocket=WebSocket;module.exports.CloseEvent=CloseEvent;module.exports.ErrorEvent=ErrorEvent;module.exports.MessageEvent=MessageEvent;module.exports.ping=ping;module.exports.WebSocketStream=require_websocketstream().WebSocketStream;module.exports.WebSocketError=require_websocketerror().WebSocketError;module.exports.request=makeDispatcher(api.request);module.exports.stream=makeDispatcher(api.stream);module.exports.pipeline=makeDispatcher(api.pipeline);module.exports.connect=makeDispatcher(api.connect);module.exports.upgrade=makeDispatcher(api.upgrade);module.exports.MockClient=MockClient;module.exports.MockCallHistory=MockCallHistory;module.exports.MockCallHistoryLog=MockCallHistoryLog;module.exports.MockPool=MockPool;module.exports.MockAgent=MockAgent;module.exports.SnapshotAgent=SnapshotAgent;module.exports.mockErrors=mockErrors;var{EventSource}=require_eventsource();module.exports.EventSource=EventSource;function install(){globalThis.fetch=module.exports.fetch,globalThis.Headers=module.exports.Headers,globalThis.Response=module.exports.Response,globalThis.Request=module.exports.Request,globalThis.FormData=module.exports.FormData,globalThis.WebSocket=module.exports.WebSocket,globalThis.CloseEvent=module.exports.CloseEvent,globalThis.ErrorEvent=module.exports.ErrorEvent,globalThis.MessageEvent=module.exports.MessageEvent,globalThis.EventSource=module.exports.EventSource}module.exports.install=install}});export{require_undici};
|