diff --git a/.gitignore b/.gitignore index 8e34b70..7dc4587 100644 --- a/.gitignore +++ b/.gitignore @@ -113,3 +113,6 @@ dist # pr-impact-analysis !pr-impact-analysis/dist + +# qa-bundle-upload +!qa-bundle-upload/dist diff --git a/build.sh b/build.sh index d5472a4..892decb 100644 --- a/build.sh +++ b/build.sh @@ -9,6 +9,7 @@ declare -a arr=( "expo-server" "gh-pages" "pr-impact-analysis" + "qa-bundle-upload" ) for i in "${arr[@]}" diff --git a/docs/plans/2026-03-03-qa-bundle-upload-batch-design.md b/docs/plans/2026-03-03-qa-bundle-upload-batch-design.md new file mode 100644 index 0000000..f8ebf2c --- /dev/null +++ b/docs/plans/2026-03-03-qa-bundle-upload-batch-design.md @@ -0,0 +1,212 @@ +# QA Bundle Upload — Batch Directory Mode Design + +> Extend qa-bundle-upload action to accept a directory containing multiple bundle ZIPs + .info metadata files, automatically scanning, reading metadata, and uploading each bundle serially. + +## TL;DR + +Replace single-file mode with directory mode: action receives `bundle-dir` path → scans for `*-bundle.zip` + `.info` → reads `appVersion`/`platform` from `.info` → uploads each bundle to Utility server via HMAC-signed multipart POST. + +## Context + +- CI workflows (`release-native-bundle.yml`, `release-desktop-bundle.yml`) build bundles and stage them in a directory before uploading as GitHub artifacts +- Native workflow produces `android-bundle.zip` + `ios-bundle.zip` in `./apps/mobile/out-dir-bundle-zip/` +- Desktop workflow produces `electron-bundle.zip` in `./apps/desktop/bundle-zip/` +- Each bundle ZIP has a corresponding `.info` file with metadata (appVersion, appType, sha256, size, etc.) +- The action runs as a step in the same job — files are already on disk, no ZIP extraction needed + +## Decision: Drop Single-File Mode + +Single-file mode (`file-path` + manual `app-version` + `platform`) is removed. Directory mode is the only mode. Rationale: all callers are CI workflows with bundles in a directory alongside `.info` files. A single mode keeps the action simple. + +--- + +## Inputs + +| Parameter | Required | Default | Description | +|-----------|----------|---------|-------------| +| `server-url` | yes | — | Utility server URL, e.g. `https://utility.onekey.so` | +| `upload-secret` | yes | — | HMAC-SHA256 signing secret | +| `bundle-dir` | yes | — | Directory containing `*-bundle.zip` and `.info` files | +| `commit-hash` | no | `${{ github.sha }}` | Git commit hash | +| `branch` | no | — | Git branch name | +| `pr-title` | no | — | PR title | +| `max-retries` | no | `3` | Maximum retry attempts (including first try) | + +**Removed inputs:** `file-path`, `app-version`, `platform` (all read from `.info` files) + +## Outputs + +| Parameter | Description | +|-----------|-------------| +| `results` | JSON array — each element: `{ platform, bundleVersion, downloadUrl, sha256, fileSize }` | + +## Usage + +```yaml +# Native workflow — uploads android + ios +- name: Upload bundles to QA + uses: onekeyhq/actions/qa-bundle-upload@main + with: + server-url: 'https://utility.onekey.so' + upload-secret: ${{ secrets.JS_BUNDLE_UPLOAD_SECRET }} + bundle-dir: './apps/mobile/out-dir-bundle-zip' + commit-hash: ${{ github.sha }} + branch: ${{ github.ref_name }} + pr-title: ${{ github.event.pull_request.title }} + +# Desktop workflow — uploads electron +- name: Upload bundle to QA + uses: onekeyhq/actions/qa-bundle-upload@main + with: + server-url: 'https://utility.onekey.so' + upload-secret: ${{ secrets.JS_BUNDLE_UPLOAD_SECRET }} + bundle-dir: './apps/desktop/bundle-zip' + commit-hash: ${{ github.sha }} + branch: ${{ github.ref_name }} +``` + +--- + +## Core Flow + +``` +1. Read inputs (server-url, upload-secret, bundle-dir, ...) +2. Scan bundle-dir: + a. Find all *-bundle.zip files + b. For each bundle ZIP, find matching .info file + - {name}-bundle.zip → {name}-bundle.zip.info OR {name}-bundle.json.info + c. No bundle ZIPs found → core.setFailed + d. Bundle ZIP without matching .info → core.setFailed +3. For each bundle (serial): + a. Parse .info JSON → extract appVersion, appType (platform), sha256 + b. Read bundle ZIP into Buffer + c. Validate ZIP magic bytes (PK\x03\x04) + d. Compute SHA256, cross-check with .info sha256 + e. Generate HMAC signature (timestamp + sha256) + f. Build multipart/form-data + g. POST upload with retry + h. Record result +4. Aggregate results, set outputs +5. Any bundle upload failed → core.setFailed +``` + +### .info File Matching + +Real artifact structures: +- `android-bundle.zip` → `android-bundle.zip.info` +- `ios-bundle.zip` → `ios-bundle.zip.info` +- `electron-bundle.zip` → `electron-bundle.json.info` + +Strategy: for `{name}-bundle.zip`, look for `{name}-bundle.zip.info` first, fall back to `{name}-bundle.json.info`. + +### .info File Schema + +```json +{ + "fileName": "android-bundle.zip", + "sha256": "cdb3c8b5...", + "size": 57235048, + "generatedAt": "2026-03-02T20:34:58.267Z", + "appType": "android", + "appVersion": "6.1.0", + "buildNumber": "2026030235", + "bundleVersion": "2" +} +``` + +Required fields for upload: `appVersion`, `appType` (mapped to `platform`), `sha256`. + +### SHA256 Cross-Check + +The `.info` file contains a pre-computed SHA256. The action also computes SHA256 from the actual file. Both must match — mismatch indicates file corruption or tampering. + +### Serial Upload + +Bundles are uploaded one at a time. Rationale: +- Files are ~57MB each; parallel upload won't be faster (network bandwidth bottleneck) +- Serial execution produces clearer logs +- Easier to debug failures + +--- + +## Error Handling + +| Scenario | Action | +|----------|--------| +| `bundle-dir` doesn't exist or isn't a directory | `core.setFailed('bundle-dir not found or not a directory')` | +| No `*-bundle.zip` found | `core.setFailed('No bundle ZIP files found in {dir}')` | +| Bundle ZIP has no matching `.info` | `core.setFailed('{name}: no matching .info file')` | +| `.info` JSON parse error | `core.setFailed('{name}.info: invalid JSON')` | +| `.info` missing required field | `core.setFailed('{name}.info: missing required field {field}')` | +| SHA256 mismatch (computed vs .info) | `core.setFailed('{name}: SHA256 mismatch')` | +| ZIP magic bytes check failed | `core.setFailed('{name}: not a valid ZIP')` | +| Server 4xx | No retry, `core.setFailed` | +| Server 5xx / network error | Exponential backoff retry, exhaust → `core.setFailed` | +| Partial success (some bundles uploaded, some failed) | Successful results recorded in output, overall `core.setFailed` | + +### Log Format + +``` +[android] Uploading android-bundle.zip (57.23 MB, v6.1.0)... +[android] SHA256: cdb3c8b5... +[android] Upload attempt 1/3... +[android] Upload successful! Bundle version: 3 +[android] Download URL: https://... + +[ios] Uploading ios-bundle.zip (57.23 MB, v6.1.0)... +... +``` + +--- + +## File Structure + +``` +qa-bundle-upload/ +├── action.yml # Updated inputs/outputs +├── package.json # No dependency changes +├── src/ +│ └── index.js # Rewritten for directory mode +├── dist/ +│ └── index.js # ncc build output +└── yarn.lock +``` + +Single file `src/index.js` — logic increase is modest: +- New: `scanBundleDir()` — scan directory, match .info files +- New: `parseInfoFile()` — parse .info JSON, validate fields +- Existing: `computeSignature()`, `buildFormData()`, `uploadWithRetry()` — minimal changes +- `run()` — rewritten to loop over discovered bundles + +### Dependencies + +No new dependencies. `fs.readdirSync` + `path` handle directory scanning. + +--- + +## Workflow Integration + +Add the qa-bundle-upload step **before** the existing `upload-artifact` step in both workflows: + +```yaml +# release-native-bundle.yml +- name: Upload bundles to QA + uses: onekeyhq/actions/qa-bundle-upload@main + with: + server-url: 'https://utility.onekey.so' + upload-secret: ${{ secrets.JS_BUNDLE_UPLOAD_SECRET }} + bundle-dir: './apps/mobile/out-dir-bundle-zip' + commit-hash: ${{ github.sha }} + branch: ${{ github.ref_name }} + +- name: upload zips + uses: actions/upload-artifact@v4 + ... +``` + +## Implementation Notes + +- Runtime: `node20` +- The action no longer supports single-file mode — this is a breaking change +- `.info` field `appType` maps directly to the `platform` form field in the upload request +- `metadata.json` files in the desktop bundle are ignored (not a bundle, not uploaded) diff --git a/docs/plans/2026-03-03-qa-bundle-upload-batch-plan.md b/docs/plans/2026-03-03-qa-bundle-upload-batch-plan.md new file mode 100644 index 0000000..ed7cfba --- /dev/null +++ b/docs/plans/2026-03-03-qa-bundle-upload-batch-plan.md @@ -0,0 +1,745 @@ +# QA Bundle Upload Batch Mode Implementation Plan + +> **For Claude:** REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task. + +**Goal:** Rewrite qa-bundle-upload action to accept a directory of bundle ZIPs + .info metadata files, automatically scanning, reading metadata, and uploading each bundle serially. + +**Architecture:** Replace single-file mode entirely. Action reads `bundle-dir`, scans for `*-bundle.zip` files, matches each to a `.info` metadata file, extracts `appVersion`/`platform`/`sha256` from `.info`, then uploads each bundle via HMAC-signed multipart POST. Existing `computeSignature`, `buildFormData`, `uploadWithRetry` functions are preserved with minor signature changes. + +**Tech Stack:** Node.js 20, @actions/core, axios, form-data, @vercel/ncc + +**Design doc:** `docs/plans/2026-03-03-qa-bundle-upload-batch-design.md` + +--- + +### Task 1: Update action.yml + +**Files:** +- Modify: `qa-bundle-upload/action.yml` + +**Step 1: Replace inputs and outputs** + +Replace the entire file content with: + +```yaml +name: 'QA Bundle Upload' +description: 'Scan a directory for bundle ZIPs + .info metadata, then upload each to Utility server via HMAC-signed multipart POST' +branding: + icon: 'upload-cloud' + color: 'green' +inputs: + server-url: + description: 'Utility server URL, e.g. https://utility.onekey.so' + required: true + upload-secret: + description: 'HMAC-SHA256 signing secret (JS_BUNDLE_UPLOAD_SECRET)' + required: true + bundle-dir: + description: 'Directory containing *-bundle.zip and *.info files' + required: true + commit-hash: + description: 'Git commit hash' + required: false + default: ${{ github.sha }} + branch: + description: 'Git branch name' + required: false + pr-title: + description: 'Pull request title' + required: false + max-retries: + description: 'Maximum retry attempts (including first try)' + required: false + default: '3' +outputs: + results: + description: 'JSON array of upload results: [{ platform, bundleVersion, downloadUrl, sha256, fileSize }]' +runs: + using: 'node20' + main: 'dist/index.js' +``` + +**Step 2: Commit** + +```bash +git add qa-bundle-upload/action.yml +git commit -m "refactor(qa-bundle-upload): update action.yml for batch directory mode + +Remove file-path, app-version, platform inputs. Add bundle-dir input. +Replace per-file outputs with single results JSON array output." +``` + +--- + +### Task 2: Create test fixtures + +**Files:** +- Create: `qa-bundle-upload/test/fixtures/native-bundles/android-bundle.zip` +- Create: `qa-bundle-upload/test/fixtures/native-bundles/android-bundle.zip.info` +- Create: `qa-bundle-upload/test/fixtures/native-bundles/ios-bundle.zip` +- Create: `qa-bundle-upload/test/fixtures/native-bundles/ios-bundle.zip.info` +- Create: `qa-bundle-upload/test/fixtures/desktop-bundle/electron-bundle.zip` +- Create: `qa-bundle-upload/test/fixtures/desktop-bundle/electron-bundle.json.info` +- Create: `qa-bundle-upload/test/scan.test.js` + +**Step 1: Create minimal ZIP test fixtures** + +Create a script to generate tiny valid ZIP files with correct magic bytes and matching .info files: + +```bash +cd qa-bundle-upload +mkdir -p test/fixtures/native-bundles test/fixtures/desktop-bundle +``` + +```javascript +// test/create-fixtures.js +const fs = require('fs'); +const path = require('path'); +const crypto = require('crypto'); + +// Minimal valid ZIP (empty archive): PK\x05\x06 + 18 zero bytes +const ZIP_HEADER = Buffer.from([ + 0x50, 0x4b, 0x03, 0x04, // local file header signature + 0x14, 0x00, 0x00, 0x00, 0x08, 0x00, // version, flags, compression + 0x00, 0x00, 0x00, 0x00, // mod time/date + 0x00, 0x00, 0x00, 0x00, // crc-32 + 0x02, 0x00, 0x00, 0x00, // compressed size + 0x00, 0x00, 0x00, 0x00, // uncompressed size + 0x01, 0x00, 0x00, 0x00, // filename length, extra length + 0x78, // filename 'x' + 0x03, 0x00, // compressed data (empty deflate) + 0x50, 0x4b, 0x01, 0x02, // central directory + 0x14, 0x00, 0x14, 0x00, 0x00, 0x00, 0x08, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x78, // filename 'x' + 0x50, 0x4b, 0x05, 0x06, // end of central directory + 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x01, 0x00, + 0x2f, 0x00, 0x00, 0x00, + 0x25, 0x00, 0x00, 0x00, + 0x00, 0x00, +]); + +function createBundle(dir, name, platform) { + const zipPath = path.join(dir, `${name}-bundle.zip`); + // Each platform gets slightly different content so SHA256 differs + const content = Buffer.concat([ZIP_HEADER, Buffer.from(platform)]); + fs.writeFileSync(zipPath, content); + + const sha256 = crypto.createHash('sha256').update(content).digest('hex'); + + const infoSuffix = platform === 'electron' ? '.json.info' : '.zip.info'; + const infoPath = path.join(dir, `${name}-bundle${infoSuffix}`); + const info = { + fileName: `${name}-bundle.zip`, + sha256, + size: content.length, + generatedAt: new Date().toISOString(), + appType: platform, + appVersion: '6.1.0', + buildNumber: '2026030235', + bundleVersion: '2', + }; + fs.writeFileSync(infoPath, JSON.stringify(info, null, 2)); + console.log(`Created ${zipPath} (${content.length} bytes, sha256: ${sha256.slice(0, 12)}...)`); + console.log(`Created ${infoPath}`); +} + +const nativeDir = path.join(__dirname, 'fixtures/native-bundles'); +const desktopDir = path.join(__dirname, 'fixtures/desktop-bundle'); + +createBundle(nativeDir, 'android', 'android'); +createBundle(nativeDir, 'ios', 'ios'); +createBundle(desktopDir, 'electron', 'electron'); + +console.log('\nFixtures created successfully.'); +``` + +Run: + +```bash +cd qa-bundle-upload && node test/create-fixtures.js +``` + +**Step 2: Write scan + parse unit tests** + +```javascript +// test/scan.test.js +const { describe, it } = require('node:test'); +const assert = require('node:assert/strict'); +const path = require('path'); + +// Will test scanBundleDir and parseInfoFile once implemented +// For now, verify fixtures exist and are well-formed +const fs = require('fs'); + +describe('test fixtures', () => { + const nativeDir = path.join(__dirname, 'fixtures/native-bundles'); + const desktopDir = path.join(__dirname, 'fixtures/desktop-bundle'); + + it('native dir has android + ios bundles with .info', () => { + assert.ok(fs.existsSync(path.join(nativeDir, 'android-bundle.zip'))); + assert.ok(fs.existsSync(path.join(nativeDir, 'android-bundle.zip.info'))); + assert.ok(fs.existsSync(path.join(nativeDir, 'ios-bundle.zip'))); + assert.ok(fs.existsSync(path.join(nativeDir, 'ios-bundle.zip.info'))); + }); + + it('desktop dir has electron bundle with .json.info', () => { + assert.ok(fs.existsSync(path.join(desktopDir, 'electron-bundle.zip'))); + assert.ok(fs.existsSync(path.join(desktopDir, 'electron-bundle.json.info'))); + }); + + it('ZIP files start with magic bytes', () => { + const buf = fs.readFileSync(path.join(nativeDir, 'android-bundle.zip')); + assert.equal(buf[0], 0x50); // P + assert.equal(buf[1], 0x4b); // K + assert.equal(buf[2], 0x03); + assert.equal(buf[3], 0x04); + }); + + it('.info files contain valid JSON with required fields', () => { + const info = JSON.parse(fs.readFileSync(path.join(nativeDir, 'android-bundle.zip.info'), 'utf8')); + assert.ok(info.appVersion); + assert.ok(info.appType); + assert.ok(info.sha256); + assert.ok(info.fileName); + }); +}); +``` + +**Step 3: Run fixture tests** + +```bash +cd qa-bundle-upload && node --test test/scan.test.js +``` + +Expected: all 4 tests pass. + +**Step 4: Commit** + +```bash +git add qa-bundle-upload/test/ +git commit -m "test(qa-bundle-upload): add fixtures and initial tests for batch mode" +``` + +--- + +### Task 3: Implement scanBundleDir and parseInfoFile + +**Files:** +- Modify: `qa-bundle-upload/src/index.js` +- Modify: `qa-bundle-upload/test/scan.test.js` + +**Step 1: Add failing tests for scanBundleDir and parseInfoFile** + +Append to `test/scan.test.js`: + +```javascript +// Import the functions (we'll export them from index.js for testing) +// Note: require src/index.js will call run() if not guarded, so we'll +// extract testable functions into a separate require pattern + +const { scanBundleDir, parseInfoFile } = require('../src/index.js'); + +describe('scanBundleDir', () => { + const nativeDir = path.join(__dirname, 'fixtures/native-bundles'); + const desktopDir = path.join(__dirname, 'fixtures/desktop-bundle'); + + it('finds android + ios bundles in native dir', () => { + const bundles = scanBundleDir(nativeDir); + assert.equal(bundles.length, 2); + const platforms = bundles.map((b) => path.basename(b.zipPath)).sort(); + assert.deepEqual(platforms, ['android-bundle.zip', 'ios-bundle.zip']); + }); + + it('finds electron bundle in desktop dir', () => { + const bundles = scanBundleDir(desktopDir); + assert.equal(bundles.length, 1); + assert.equal(path.basename(bundles[0].zipPath), 'electron-bundle.zip'); + }); + + it('each bundle has matching infoPath', () => { + const bundles = scanBundleDir(nativeDir); + for (const b of bundles) { + assert.ok(fs.existsSync(b.infoPath), `infoPath should exist: ${b.infoPath}`); + } + }); + + it('throws on non-existent directory', () => { + assert.throws(() => scanBundleDir('/tmp/does-not-exist-xyz'), /not found/i); + }); + + it('throws on directory with no bundles', () => { + const emptyDir = path.join(__dirname, 'fixtures'); + assert.throws(() => scanBundleDir(emptyDir), /no bundle/i); + }); +}); + +describe('parseInfoFile', () => { + const nativeDir = path.join(__dirname, 'fixtures/native-bundles'); + + it('parses valid .info and returns metadata', () => { + const infoPath = path.join(nativeDir, 'android-bundle.zip.info'); + const meta = parseInfoFile(infoPath); + assert.equal(meta.appVersion, '6.1.0'); + assert.equal(meta.platform, 'android'); + assert.ok(meta.sha256); + }); + + it('maps appType to platform', () => { + const infoPath = path.join(nativeDir, 'ios-bundle.zip.info'); + const meta = parseInfoFile(infoPath); + assert.equal(meta.platform, 'ios'); + }); +}); +``` + +**Step 2: Run tests to verify they fail** + +```bash +cd qa-bundle-upload && node --test test/scan.test.js +``` + +Expected: FAIL — `scanBundleDir is not a function` (not exported yet). + +**Step 3: Implement scanBundleDir and parseInfoFile in src/index.js** + +Replace the full content of `qa-bundle-upload/src/index.js` with: + +```javascript +const fs = require('fs'); +const path = require('path'); +const crypto = require('crypto'); +const core = require('@actions/core'); +const axios = require('axios'); +const FormData = require('form-data'); + +const UPLOAD_PATH = '/v1/app-update/bundles/upload'; +const REQUEST_TIMEOUT_MS = 5 * 60 * 1000; // 5 minutes for large files +const VALID_PLATFORMS = ['android', 'ios', 'electron']; +const ZIP_MAGIC = [0x50, 0x4b, 0x03, 0x04]; +const INFO_REQUIRED_FIELDS = ['appVersion', 'appType', 'sha256']; + +// --- Directory scanning --- + +function scanBundleDir(dirPath) { + if (!fs.existsSync(dirPath) || !fs.statSync(dirPath).isDirectory()) { + throw new Error(`bundle-dir not found or not a directory: ${dirPath}`); + } + + const entries = fs.readdirSync(dirPath); + const zipFiles = entries.filter((f) => f.endsWith('-bundle.zip')); + + if (zipFiles.length === 0) { + throw new Error(`No bundle ZIP files found in ${dirPath}`); + } + + return zipFiles.map((zipName) => { + const baseName = zipName.replace(/-bundle\.zip$/, ''); + // Try {name}-bundle.zip.info first, then {name}-bundle.json.info + const candidates = [`${baseName}-bundle.zip.info`, `${baseName}-bundle.json.info`]; + const infoName = candidates.find((c) => entries.includes(c)); + + if (!infoName) { + throw new Error(`${zipName}: no matching .info file (tried ${candidates.join(', ')})`); + } + + return { + zipPath: path.join(dirPath, zipName), + infoPath: path.join(dirPath, infoName), + }; + }); +} + +function parseInfoFile(infoPath) { + let raw; + try { + raw = JSON.parse(fs.readFileSync(infoPath, 'utf8')); + } catch (e) { + throw new Error(`${path.basename(infoPath)}: invalid JSON — ${e.message}`); + } + + for (const field of INFO_REQUIRED_FIELDS) { + if (!raw[field]) { + throw new Error(`${path.basename(infoPath)}: missing required field "${field}"`); + } + } + + if (!VALID_PLATFORMS.includes(raw.appType)) { + throw new Error( + `${path.basename(infoPath)}: invalid appType "${raw.appType}" (expected: ${VALID_PLATFORMS.join(', ')})` + ); + } + + return { + appVersion: raw.appVersion, + platform: raw.appType, + sha256: raw.sha256, + fileName: raw.fileName, + size: raw.size, + }; +} + +// --- Crypto & upload (preserved from v1) --- + +function validateZipMagic(fileBuffer, label) { + if (!ZIP_MAGIC.every((b, i) => fileBuffer[i] === b)) { + throw new Error(`${label}: not a valid ZIP archive`); + } +} + +function computeSignature(fileHash, secret) { + const timestamp = Math.floor(Date.now() / 1000).toString(); + const signature = crypto + .createHmac('sha256', secret) + .update(`${timestamp}:${fileHash}`) + .digest('hex'); + return { timestamp, signature }; +} + +function buildFormData(fileBuffer, fileName, fields) { + const form = new FormData(); + form.append('file', fileBuffer, { + filename: fileName, + contentType: 'application/zip', + }); + form.append('appVersion', fields.appVersion); + form.append('platform', fields.platform); + form.append('commitHash', fields.commitHash); + if (fields.branch) { + form.append('branch', fields.branch); + } + if (fields.prTitle) { + form.append('prTitle', fields.prTitle); + } + return form; +} + +async function uploadWithRetry({ url, fileBuffer, fileName, fields, fileHash, secret, maxRetries, label }) { + let lastError; + + for (let attempt = 1; attempt <= maxRetries; attempt++) { + try { + core.info(`[${label}] Upload attempt ${attempt}/${maxRetries}...`); + + const { timestamp, signature } = computeSignature(fileHash, secret); + const form = buildFormData(fileBuffer, fileName, fields); + + const response = await axios.post(url, form, { + headers: { + ...form.getHeaders(), + 'X-Bundle-Timestamp': timestamp, + 'X-Bundle-Signature': signature, + }, + timeout: REQUEST_TIMEOUT_MS, + maxContentLength: Infinity, + maxBodyLength: Infinity, + }); + return { data: response.data }; + } catch (error) { + lastError = error; + const status = error.response?.status; + const isRetryable = !status || status >= 500; + + if (!isRetryable || attempt === maxRetries) { + throw error; + } + + const delay = Math.pow(2, attempt) * 1000; + core.warning( + `[${label}] Attempt ${attempt} failed (${status || error.code || error.message}), retrying in ${delay / 1000}s...` + ); + await new Promise((resolve) => setTimeout(resolve, delay)); + } + } + + throw lastError; +} + +// --- Main --- + +async function run() { + try { + // 1. Read inputs + const serverUrl = core.getInput('server-url', { required: true }).replace(/\/$/, ''); + const secret = core.getInput('upload-secret', { required: true }); + core.setSecret(secret); + const bundleDir = core.getInput('bundle-dir', { required: true }); + const commitHash = core.getInput('commit-hash') || process.env.GITHUB_SHA; + const branch = core.getInput('branch') || ''; + const prTitle = core.getInput('pr-title') || ''; + const maxRetries = parseInt(core.getInput('max-retries') || '3', 10); + + if (Number.isNaN(maxRetries) || maxRetries < 1) { + throw new Error(`Invalid max-retries: "${core.getInput('max-retries')}" (expected positive integer)`); + } + + // 2. Scan directory + core.info(`Scanning ${bundleDir} for bundles...`); + const bundles = scanBundleDir(bundleDir); + core.info(`Found ${bundles.length} bundle(s): ${bundles.map((b) => path.basename(b.zipPath)).join(', ')}`); + + // 3. Upload each bundle + const uploadUrl = `${serverUrl}${UPLOAD_PATH}`; + const results = []; + let hasFailure = false; + + for (const bundle of bundles) { + const meta = parseInfoFile(bundle.infoPath); + const label = meta.platform; + + try { + // Read and validate + const fileBuffer = fs.readFileSync(bundle.zipPath); + validateZipMagic(fileBuffer, label); + + const fileSizeMB = (fileBuffer.length / (1024 * 1024)).toFixed(2); + core.info(`[${label}] Uploading ${path.basename(bundle.zipPath)} (${fileSizeMB} MB, v${meta.appVersion})...`); + + // SHA256 cross-check + const computedHash = crypto.createHash('sha256').update(fileBuffer).digest('hex'); + if (computedHash !== meta.sha256) { + throw new Error(`SHA256 mismatch: computed ${computedHash}, .info says ${meta.sha256}`); + } + core.info(`[${label}] SHA256: ${computedHash}`); + + // Upload + const { data: result } = await uploadWithRetry({ + url: uploadUrl, + fileBuffer, + fileName: path.basename(bundle.zipPath), + fields: { appVersion: meta.appVersion, platform: meta.platform, commitHash, branch, prTitle }, + fileHash: computedHash, + secret, + maxRetries, + label, + }); + + const entry = { + platform: meta.platform, + bundleVersion: String(result.bundleVersion), + downloadUrl: result.downloadUrl, + sha256: result.sha256 || computedHash, + fileSize: String(result.fileSize || fileBuffer.length), + }; + results.push(entry); + + core.info(`[${label}] Upload successful! Bundle version: ${entry.bundleVersion}`); + core.info(`[${label}] Download URL: ${entry.downloadUrl}`); + } catch (error) { + hasFailure = true; + const status = error.response?.status; + const body = error.response?.data; + if (status) { + core.error(`[${label}] Server responded with ${status}: ${JSON.stringify(body)}`); + } + core.error(`[${label}] Upload failed: ${error.message}`); + } + } + + // 4. Set outputs + core.setOutput('results', JSON.stringify(results)); + + if (hasFailure) { + core.setFailed(`One or more bundles failed to upload. ${results.length}/${bundles.length} succeeded.`); + } else { + core.info(`All ${results.length} bundle(s) uploaded successfully.`); + } + } catch (error) { + core.setFailed(`Upload failed: ${error.message}`); + } +} + +// Allow testing by exporting functions, only call run() when executed directly +module.exports = { scanBundleDir, parseInfoFile, validateZipMagic }; + +if (require.main === module) { + run(); +} +``` + +**Step 4: Run tests to verify they pass** + +```bash +cd qa-bundle-upload && node --test test/scan.test.js +``` + +Expected: all tests PASS. + +**Step 5: Commit** + +```bash +git add qa-bundle-upload/src/index.js qa-bundle-upload/test/scan.test.js +git commit -m "feat(qa-bundle-upload): implement scanBundleDir and parseInfoFile + +Rewrite src/index.js for batch directory mode. Scans bundle-dir for +*-bundle.zip files, matches to .info metadata, validates fields, +and uploads each bundle serially with HMAC signing." +``` + +--- + +### Task 4: Build dist and verify + +**Files:** +- Modify: `qa-bundle-upload/dist/index.js` (generated) + +**Step 1: Install deps and build** + +```bash +cd qa-bundle-upload/src && yarn && yarn build +``` + +**Step 2: Verify dist was generated** + +```bash +ls -la qa-bundle-upload/dist/index.js +head -5 qa-bundle-upload/dist/index.js +``` + +Expected: `dist/index.js` exists and contains bundled code. + +**Step 3: Verify the built file handles the `require.main` guard** + +```bash +# Should exit cleanly without errors (no @actions/core in non-GHA env) +node -e "const m = require('./qa-bundle-upload/dist/index.js')" 2>&1 || echo "Expected: may warn about missing inputs but should not crash" +``` + +**Step 4: Commit** + +```bash +git add qa-bundle-upload/dist/ +git commit -m "build(qa-bundle-upload): rebuild dist for batch directory mode" +``` + +--- + +### Task 5: Manual verification with real artifacts + +**Files:** None (read-only verification) + +**Step 1: Verify scanBundleDir with real native artifacts** + +```bash +node -e " +const { scanBundleDir, parseInfoFile } = require('./qa-bundle-upload/src/index.js'); +const bundles = scanBundleDir('$HOME/Downloads/release-native-bundle-zips-6.1.0-2026030235-2-ab17696f0686ff4a8af78a33fa7958cbbe5d4f9e'); +console.log('Found bundles:', bundles.length); +bundles.forEach(b => { + const meta = parseInfoFile(b.infoPath); + console.log(meta.platform, '-', meta.appVersion, '-', meta.sha256.slice(0, 12) + '...'); +}); +" +``` + +Expected output: +``` +Found bundles: 2 +android - 6.1.0 - cdb3c8b5ec87... +ios - 6.1.0 - d6e2805037... +``` + +**Step 2: Verify with real desktop artifacts** + +```bash +node -e " +const { scanBundleDir, parseInfoFile } = require('./qa-bundle-upload/src/index.js'); +const bundles = scanBundleDir('$HOME/Downloads/onekey-desktop-bundle-6.1.0-2026030235-2-ab17696f0686ff4a8af78a33fa7958cbbe5d4f9e'); +console.log('Found bundles:', bundles.length); +bundles.forEach(b => { + const meta = parseInfoFile(b.infoPath); + console.log(meta.platform, '-', meta.appVersion, '-', meta.sha256.slice(0, 12) + '...'); +}); +" +``` + +Expected output: +``` +Found bundles: 1 +electron - 6.1.0 - e16f40efd7cb... +``` + +**Step 3: Verify SHA256 cross-check with real files** + +```bash +node -e " +const fs = require('fs'); +const crypto = require('crypto'); +const { scanBundleDir, parseInfoFile } = require('./qa-bundle-upload/src/index.js'); +const bundles = scanBundleDir('$HOME/Downloads/release-native-bundle-zips-6.1.0-2026030235-2-ab17696f0686ff4a8af78a33fa7958cbbe5d4f9e'); +for (const b of bundles) { + const meta = parseInfoFile(b.infoPath); + const buf = fs.readFileSync(b.zipPath); + const computed = crypto.createHash('sha256').update(buf).digest('hex'); + const match = computed === meta.sha256 ? 'MATCH' : 'MISMATCH'; + console.log(meta.platform, match, computed.slice(0, 16)); +} +" +``` + +Expected: both show `MATCH`. + +--- + +### Task 6: Add test script to package.json + +**Files:** +- Modify: `qa-bundle-upload/package.json` + +**Step 1: Add test script** + +Add `"test": "node --test test/"` to the scripts section of `qa-bundle-upload/package.json`: + +```json +{ + "scripts": { + "build": "ncc build src/index.js -m -o ./dist/", + "test": "node --test test/" + } +} +``` + +**Step 2: Run tests via npm script** + +```bash +cd qa-bundle-upload && yarn test +``` + +Expected: all tests PASS. + +**Step 3: Commit** + +```bash +git add qa-bundle-upload/package.json +git commit -m "chore(qa-bundle-upload): add test script to package.json" +``` + +--- + +### Task 7: Update .gitignore for test fixtures + +**Files:** +- Check: `.gitignore` + +**Step 1: Verify test fixtures aren't gitignored** + +```bash +git status qa-bundle-upload/test/ +``` + +If test fixtures show up as untracked, they should be committed (they're tiny). If `.gitignore` blocks them, adjust accordingly. The fixture ZIP files are ~100 bytes each, not real 57MB bundles. + +**Step 2: Commit if needed** + +```bash +git add qa-bundle-upload/test/ +git commit -m "test(qa-bundle-upload): ensure test fixtures are tracked" +``` diff --git a/qa-bundle-upload/README.md b/qa-bundle-upload/README.md new file mode 100644 index 0000000..48e4a47 --- /dev/null +++ b/qa-bundle-upload/README.md @@ -0,0 +1,178 @@ +# QA Bundle Upload Action + +Scan a directory for `*-bundle.zip` + `.info` metadata files, then upload each bundle to the Utility server via HMAC-signed multipart POST. + +## Quick Start + +```yaml +- name: Upload QA Bundles + id: upload + uses: ./qa-bundle-upload + with: + server-url: ${{ secrets.UTILITY_SERVER_URL }} + upload-secret: ${{ secrets.JS_BUNDLE_UPLOAD_SECRET }} + bundle-dir: ./dist/bundles + commit-hash: ${{ github.sha }} + branch: ${{ github.ref_name }} + pr-title: ${{ github.event.pull_request.title }} + +- name: Print upload results + run: echo '${{ steps.upload.outputs.results }}' | jq '.' +``` + +## Inputs + +| Name | Required | Default | Description | +|------|----------|---------|-------------| +| `server-url` | Yes | — | Utility server URL, e.g. `https://utility.onekey.so` | +| `upload-secret` | Yes | — | HMAC-SHA256 signing secret (`JS_BUNDLE_UPLOAD_SECRET`) | +| `bundle-dir` | Yes | — | Directory containing `*-bundle.zip` and `.info` files | +| `commit-hash` | No | `${{ github.sha }}` | Git commit hash | +| `branch` | No | — | Git branch name | +| `pr-title` | No | — | Pull request title | +| `max-retries` | No | `3` | Maximum retry attempts (including first try) | + +## Outputs + +| Name | Description | +|------|-------------| +| `results` | JSON array of upload results | + +```json +[ + { + "platform": "android", + "bundleVersion": "42", + "downloadUrl": "https://utility.onekey.so/download/android-v42", + "sha256": "506d55db...", + "fileSize": "5242880" + } +] +``` + +> Even if some bundles fail, the `results` output still contains the successfully uploaded ones. + +## Bundle Directory Structure + +The action scans `bundle-dir` for ZIP files matching `*-bundle.zip` and pairs each with a `.info` metadata file. + +``` +dist/bundles/ +├── android-bundle.zip ← ZIP file +├── android-bundle.zip.info ← metadata (native convention) +├── ios-bundle.zip +├── ios-bundle.zip.info +├── electron-bundle.zip +└── electron-bundle.json.info ← metadata (electron convention) +``` + +### Naming Convention + +For a ZIP named `{prefix}-bundle.zip`, the action looks for `.info` files in this priority order: + +1. `{prefix}-bundle.zip.info` (used by native platforms) +2. `{prefix}-bundle.json.info` (used by electron) + +### `.info` File Format + +Each `.info` file is a JSON object with the following fields: + +```json +{ + "fileName": "android-bundle.zip", + "appVersion": "6.1.0", + "appType": "android", + "sha256": "506d55db48f8140ef0e9e6217fdce6147e59f6a3ebfd85d7251af9be1c31fc08", + "size": 5242880, + "buildNumber": "2026030235", + "bundleVersion": "2" +} +``` + +**Required fields:** + +| Field | Validation | Example | +|-------|-----------|---------| +| `fileName` | Non-empty string | `"android-bundle.zip"` | +| `appVersion` | Semver format `x.y.z` | `"6.1.0"` | +| `appType` | `android` \| `ios` \| `electron` | `"android"` | +| `sha256` | 64 hex characters (case-insensitive) | `"506d55db..."` | + +Optional fields: `size`, `buildNumber`, `bundleVersion`, `generatedAt`. + +### ZIP Validation + +- The file must start with ZIP magic bytes (`PK\x03\x04`). +- The computed SHA256 of the ZIP file must match the `sha256` value in the `.info` file (comparison is case-insensitive). + +## Upload Protocol + +The action uploads each bundle via `POST /v1/app-update/bundles/upload` with HMAC authentication. + +### HMAC Signature + +``` +timestamp = floor(Date.now() / 1000) +signature = HMAC-SHA256("${timestamp}:${sha256_of_zip}", secret).hex() +``` + +### HTTP Request + +```http +POST /v1/app-update/bundles/upload HTTP/1.1 +Host: {server-url} +X-Bundle-Timestamp: {timestamp} +X-Bundle-Signature: {signature} +Content-Type: multipart/form-data + +file: (binary ZIP) +appVersion: "6.1.0" +platform: "android" +commitHash: "abc123..." +branch: "feat/update" +prTitle: "Add new features" +``` + +### Expected Server Response + +The server must return JSON containing at least: + +```json +{ + "bundleVersion": "42", + "downloadUrl": "https://..." +} +``` + +### Retry Behavior + +| Condition | Retries? | +|-----------|----------| +| Network error | Yes | +| 5xx server error | Yes | +| 4xx client error | No | +| Timeout (5 min) | Yes | + +Retry delay uses exponential backoff: 2s → 4s → 8s … + +## Error Handling + +The action fails (`core.setFailed`) if: + +- `bundle-dir` does not exist or is not a directory +- No `*-bundle.zip` files found in the directory +- Any ZIP is missing its corresponding `.info` file +- Any bundle fails to upload after all retries + +A single bundle's `.info` parse failure or SHA256 mismatch will skip that bundle and continue processing the rest — the action still fails at the end if any bundle was skipped. + +## Server Integration Checklist + +If you're implementing the server-side endpoint: + +- [ ] Accept `POST /v1/app-update/bundles/upload` with `multipart/form-data` +- [ ] Validate HMAC signature: `HMAC-SHA256("${X-Bundle-Timestamp}:${sha256_of_uploaded_file}", secret)` +- [ ] Accept form fields: `file`, `appVersion`, `platform`, `commitHash` (optional), `branch` (optional), `prTitle` (optional) +- [ ] Return JSON with `bundleVersion` and `downloadUrl` on success +- [ ] Return 4xx for client errors (bad request, validation failure) +- [ ] Return 5xx for retriable server errors diff --git a/qa-bundle-upload/action.yml b/qa-bundle-upload/action.yml new file mode 100644 index 0000000..dbdf458 --- /dev/null +++ b/qa-bundle-upload/action.yml @@ -0,0 +1,35 @@ +name: 'QA Bundle Upload' +description: 'Scan a directory for bundle ZIPs + .info metadata, then upload each to Utility server via HMAC-signed multipart POST' +branding: + icon: 'upload-cloud' + color: 'green' +inputs: + server-url: + description: 'Utility server URL, e.g. https://utility.onekeytest.com' + required: true + upload-secret: + description: 'HMAC-SHA256 signing secret (JS_BUNDLE_UPLOAD_SECRET)' + required: true + bundle-dir: + description: 'Directory containing *-bundle.zip and *.info files' + required: true + commit-hash: + description: 'Git commit hash' + required: false + default: ${{ github.sha }} + branch: + description: 'Git branch name' + required: false + pr-title: + description: 'Pull request title' + required: false + max-retries: + description: 'Maximum retry attempts (including first try)' + required: false + default: '3' +outputs: + results: + description: 'JSON array of upload results: [{ platform, bundleVersion, downloadUrl, sha256, fileSize }]' +runs: + using: 'node20' + main: 'dist/index.js' diff --git a/qa-bundle-upload/dist/index.js b/qa-bundle-upload/dist/index.js new file mode 100644 index 0000000..98032f6 --- /dev/null +++ b/qa-bundle-upload/dist/index.js @@ -0,0 +1,17 @@ +(()=>{var __webpack_modules__={7351:function(e,A,t){"use strict";var s=this&&this.__createBinding||(Object.create?function(e,A,t,s){if(s===undefined)s=t;var n=Object.getOwnPropertyDescriptor(A,t);if(!n||("get"in n?!A.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return A[t]}}}Object.defineProperty(e,s,n)}:function(e,A,t,s){if(s===undefined)s=t;e[s]=A[t]});var n=this&&this.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:true,value:A})}:function(e,A){e["default"]=A});var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)if(t!=="default"&&Object.prototype.hasOwnProperty.call(e,t))s(A,e,t);n(A,e);return A};Object.defineProperty(A,"__esModule",{value:true});A.issue=A.issueCommand=void 0;const o=i(t(2037));const r=t(5278);function issueCommand(e,A,t){const s=new Command(e,A,t);process.stdout.write(s.toString()+o.EOL)}A.issueCommand=issueCommand;function issue(e,A=""){issueCommand(e,{},A)}A.issue=issue;const a="::";class Command{constructor(e,A,t){if(!e){e="missing.command"}this.command=e;this.properties=A;this.message=t}toString(){let e=a+this.command;if(this.properties&&Object.keys(this.properties).length>0){e+=" ";let A=true;for(const t in this.properties){if(this.properties.hasOwnProperty(t)){const s=this.properties[t];if(s){if(A){A=false}else{e+=","}e+=`${t}=${escapeProperty(s)}`}}}}e+=`${a}${escapeData(this.message)}`;return e}}function escapeData(e){return(0,r.toCommandValue)(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A")}function escapeProperty(e){return(0,r.toCommandValue)(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/:/g,"%3A").replace(/,/g,"%2C")}},2186:function(e,A,t){"use strict";var s=this&&this.__createBinding||(Object.create?function(e,A,t,s){if(s===undefined)s=t;var n=Object.getOwnPropertyDescriptor(A,t);if(!n||("get"in n?!A.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return A[t]}}}Object.defineProperty(e,s,n)}:function(e,A,t,s){if(s===undefined)s=t;e[s]=A[t]});var n=this&&this.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:true,value:A})}:function(e,A){e["default"]=A});var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)if(t!=="default"&&Object.prototype.hasOwnProperty.call(e,t))s(A,e,t);n(A,e);return A};var o=this&&this.__awaiter||function(e,A,t,s){function adopt(e){return e instanceof t?e:new t((function(A){A(e)}))}return new(t||(t=Promise))((function(t,n){function fulfilled(e){try{step(s.next(e))}catch(e){n(e)}}function rejected(e){try{step(s["throw"](e))}catch(e){n(e)}}function step(e){e.done?t(e.value):adopt(e.value).then(fulfilled,rejected)}step((s=s.apply(e,A||[])).next())}))};Object.defineProperty(A,"__esModule",{value:true});A.platform=A.toPlatformPath=A.toWin32Path=A.toPosixPath=A.markdownSummary=A.summary=A.getIDToken=A.getState=A.saveState=A.group=A.endGroup=A.startGroup=A.info=A.notice=A.warning=A.error=A.debug=A.isDebug=A.setFailed=A.setCommandEcho=A.setOutput=A.getBooleanInput=A.getMultilineInput=A.getInput=A.addPath=A.setSecret=A.exportVariable=A.ExitCode=void 0;const r=t(7351);const a=t(717);const c=t(5278);const l=i(t(2037));const u=i(t(1017));const p=t(8041);var g;(function(e){e[e["Success"]=0]="Success";e[e["Failure"]=1]="Failure"})(g||(A.ExitCode=g={}));function exportVariable(e,A){const t=(0,c.toCommandValue)(A);process.env[e]=t;const s=process.env["GITHUB_ENV"]||"";if(s){return(0,a.issueFileCommand)("ENV",(0,a.prepareKeyValueMessage)(e,A))}(0,r.issueCommand)("set-env",{name:e},t)}A.exportVariable=exportVariable;function setSecret(e){(0,r.issueCommand)("add-mask",{},e)}A.setSecret=setSecret;function addPath(e){const A=process.env["GITHUB_PATH"]||"";if(A){(0,a.issueFileCommand)("PATH",e)}else{(0,r.issueCommand)("add-path",{},e)}process.env["PATH"]=`${e}${u.delimiter}${process.env["PATH"]}`}A.addPath=addPath;function getInput(e,A){const t=process.env[`INPUT_${e.replace(/ /g,"_").toUpperCase()}`]||"";if(A&&A.required&&!t){throw new Error(`Input required and not supplied: ${e}`)}if(A&&A.trimWhitespace===false){return t}return t.trim()}A.getInput=getInput;function getMultilineInput(e,A){const t=getInput(e,A).split("\n").filter((e=>e!==""));if(A&&A.trimWhitespace===false){return t}return t.map((e=>e.trim()))}A.getMultilineInput=getMultilineInput;function getBooleanInput(e,A){const t=["true","True","TRUE"];const s=["false","False","FALSE"];const n=getInput(e,A);if(t.includes(n))return true;if(s.includes(n))return false;throw new TypeError(`Input does not meet YAML 1.2 "Core Schema" specification: ${e}\n`+`Support boolean input list: \`true | True | TRUE | false | False | FALSE\``)}A.getBooleanInput=getBooleanInput;function setOutput(e,A){const t=process.env["GITHUB_OUTPUT"]||"";if(t){return(0,a.issueFileCommand)("OUTPUT",(0,a.prepareKeyValueMessage)(e,A))}process.stdout.write(l.EOL);(0,r.issueCommand)("set-output",{name:e},(0,c.toCommandValue)(A))}A.setOutput=setOutput;function setCommandEcho(e){(0,r.issue)("echo",e?"on":"off")}A.setCommandEcho=setCommandEcho;function setFailed(e){process.exitCode=g.Failure;error(e)}A.setFailed=setFailed;function isDebug(){return process.env["RUNNER_DEBUG"]==="1"}A.isDebug=isDebug;function debug(e){(0,r.issueCommand)("debug",{},e)}A.debug=debug;function error(e,A={}){(0,r.issueCommand)("error",(0,c.toCommandProperties)(A),e instanceof Error?e.toString():e)}A.error=error;function warning(e,A={}){(0,r.issueCommand)("warning",(0,c.toCommandProperties)(A),e instanceof Error?e.toString():e)}A.warning=warning;function notice(e,A={}){(0,r.issueCommand)("notice",(0,c.toCommandProperties)(A),e instanceof Error?e.toString():e)}A.notice=notice;function info(e){process.stdout.write(e+l.EOL)}A.info=info;function startGroup(e){(0,r.issue)("group",e)}A.startGroup=startGroup;function endGroup(){(0,r.issue)("endgroup")}A.endGroup=endGroup;function group(e,A){return o(this,void 0,void 0,(function*(){startGroup(e);let t;try{t=yield A()}finally{endGroup()}return t}))}A.group=group;function saveState(e,A){const t=process.env["GITHUB_STATE"]||"";if(t){return(0,a.issueFileCommand)("STATE",(0,a.prepareKeyValueMessage)(e,A))}(0,r.issueCommand)("save-state",{name:e},(0,c.toCommandValue)(A))}A.saveState=saveState;function getState(e){return process.env[`STATE_${e}`]||""}A.getState=getState;function getIDToken(e){return o(this,void 0,void 0,(function*(){return yield p.OidcClient.getIDToken(e)}))}A.getIDToken=getIDToken;var d=t(1327);Object.defineProperty(A,"summary",{enumerable:true,get:function(){return d.summary}});var E=t(1327);Object.defineProperty(A,"markdownSummary",{enumerable:true,get:function(){return E.markdownSummary}});var h=t(2981);Object.defineProperty(A,"toPosixPath",{enumerable:true,get:function(){return h.toPosixPath}});Object.defineProperty(A,"toWin32Path",{enumerable:true,get:function(){return h.toWin32Path}});Object.defineProperty(A,"toPlatformPath",{enumerable:true,get:function(){return h.toPlatformPath}});A.platform=i(t(5243))},717:function(e,A,t){"use strict";var s=this&&this.__createBinding||(Object.create?function(e,A,t,s){if(s===undefined)s=t;var n=Object.getOwnPropertyDescriptor(A,t);if(!n||("get"in n?!A.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return A[t]}}}Object.defineProperty(e,s,n)}:function(e,A,t,s){if(s===undefined)s=t;e[s]=A[t]});var n=this&&this.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:true,value:A})}:function(e,A){e["default"]=A});var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)if(t!=="default"&&Object.prototype.hasOwnProperty.call(e,t))s(A,e,t);n(A,e);return A};Object.defineProperty(A,"__esModule",{value:true});A.prepareKeyValueMessage=A.issueFileCommand=void 0;const o=i(t(6113));const r=i(t(7147));const a=i(t(2037));const c=t(5278);function issueFileCommand(e,A){const t=process.env[`GITHUB_${e}`];if(!t){throw new Error(`Unable to find environment variable for file command ${e}`)}if(!r.existsSync(t)){throw new Error(`Missing file at path: ${t}`)}r.appendFileSync(t,`${(0,c.toCommandValue)(A)}${a.EOL}`,{encoding:"utf8"})}A.issueFileCommand=issueFileCommand;function prepareKeyValueMessage(e,A){const t=`ghadelimiter_${o.randomUUID()}`;const s=(0,c.toCommandValue)(A);if(e.includes(t)){throw new Error(`Unexpected input: name should not contain the delimiter "${t}"`)}if(s.includes(t)){throw new Error(`Unexpected input: value should not contain the delimiter "${t}"`)}return`${e}<<${t}${a.EOL}${s}${a.EOL}${t}`}A.prepareKeyValueMessage=prepareKeyValueMessage},8041:function(e,A,t){"use strict";var s=this&&this.__awaiter||function(e,A,t,s){function adopt(e){return e instanceof t?e:new t((function(A){A(e)}))}return new(t||(t=Promise))((function(t,n){function fulfilled(e){try{step(s.next(e))}catch(e){n(e)}}function rejected(e){try{step(s["throw"](e))}catch(e){n(e)}}function step(e){e.done?t(e.value):adopt(e.value).then(fulfilled,rejected)}step((s=s.apply(e,A||[])).next())}))};Object.defineProperty(A,"__esModule",{value:true});A.OidcClient=void 0;const n=t(6255);const i=t(5526);const o=t(2186);class OidcClient{static createHttpClient(e=true,A=10){const t={allowRetries:e,maxRetries:A};return new n.HttpClient("actions/oidc-client",[new i.BearerCredentialHandler(OidcClient.getRequestToken())],t)}static getRequestToken(){const e=process.env["ACTIONS_ID_TOKEN_REQUEST_TOKEN"];if(!e){throw new Error("Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable")}return e}static getIDTokenUrl(){const e=process.env["ACTIONS_ID_TOKEN_REQUEST_URL"];if(!e){throw new Error("Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable")}return e}static getCall(e){var A;return s(this,void 0,void 0,(function*(){const t=OidcClient.createHttpClient();const s=yield t.getJson(e).catch((e=>{throw new Error(`Failed to get ID Token. \n \n Error Code : ${e.statusCode}\n \n Error Message: ${e.message}`)}));const n=(A=s.result)===null||A===void 0?void 0:A.value;if(!n){throw new Error("Response json body do not have ID Token field")}return n}))}static getIDToken(e){return s(this,void 0,void 0,(function*(){try{let A=OidcClient.getIDTokenUrl();if(e){const t=encodeURIComponent(e);A=`${A}&audience=${t}`}(0,o.debug)(`ID token url is ${A}`);const t=yield OidcClient.getCall(A);(0,o.setSecret)(t);return t}catch(e){throw new Error(`Error message: ${e.message}`)}}))}}A.OidcClient=OidcClient},2981:function(e,A,t){"use strict";var s=this&&this.__createBinding||(Object.create?function(e,A,t,s){if(s===undefined)s=t;var n=Object.getOwnPropertyDescriptor(A,t);if(!n||("get"in n?!A.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return A[t]}}}Object.defineProperty(e,s,n)}:function(e,A,t,s){if(s===undefined)s=t;e[s]=A[t]});var n=this&&this.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:true,value:A})}:function(e,A){e["default"]=A});var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)if(t!=="default"&&Object.prototype.hasOwnProperty.call(e,t))s(A,e,t);n(A,e);return A};Object.defineProperty(A,"__esModule",{value:true});A.toPlatformPath=A.toWin32Path=A.toPosixPath=void 0;const o=i(t(1017));function toPosixPath(e){return e.replace(/[\\]/g,"/")}A.toPosixPath=toPosixPath;function toWin32Path(e){return e.replace(/[/]/g,"\\")}A.toWin32Path=toWin32Path;function toPlatformPath(e){return e.replace(/[/\\]/g,o.sep)}A.toPlatformPath=toPlatformPath},5243:function(e,A,t){"use strict";var s=this&&this.__createBinding||(Object.create?function(e,A,t,s){if(s===undefined)s=t;var n=Object.getOwnPropertyDescriptor(A,t);if(!n||("get"in n?!A.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return A[t]}}}Object.defineProperty(e,s,n)}:function(e,A,t,s){if(s===undefined)s=t;e[s]=A[t]});var n=this&&this.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:true,value:A})}:function(e,A){e["default"]=A});var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)if(t!=="default"&&Object.prototype.hasOwnProperty.call(e,t))s(A,e,t);n(A,e);return A};var o=this&&this.__awaiter||function(e,A,t,s){function adopt(e){return e instanceof t?e:new t((function(A){A(e)}))}return new(t||(t=Promise))((function(t,n){function fulfilled(e){try{step(s.next(e))}catch(e){n(e)}}function rejected(e){try{step(s["throw"](e))}catch(e){n(e)}}function step(e){e.done?t(e.value):adopt(e.value).then(fulfilled,rejected)}step((s=s.apply(e,A||[])).next())}))};var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(A,"__esModule",{value:true});A.getDetails=A.isLinux=A.isMacOS=A.isWindows=A.arch=A.platform=void 0;const a=r(t(2037));const c=i(t(1514));const getWindowsInfo=()=>o(void 0,void 0,void 0,(function*(){const{stdout:e}=yield c.getExecOutput('powershell -command "(Get-CimInstance -ClassName Win32_OperatingSystem).Version"',undefined,{silent:true});const{stdout:A}=yield c.getExecOutput('powershell -command "(Get-CimInstance -ClassName Win32_OperatingSystem).Caption"',undefined,{silent:true});return{name:A.trim(),version:e.trim()}}));const getMacOsInfo=()=>o(void 0,void 0,void 0,(function*(){var e,A,t,s;const{stdout:n}=yield c.getExecOutput("sw_vers",undefined,{silent:true});const i=(A=(e=n.match(/ProductVersion:\s*(.+)/))===null||e===void 0?void 0:e[1])!==null&&A!==void 0?A:"";const o=(s=(t=n.match(/ProductName:\s*(.+)/))===null||t===void 0?void 0:t[1])!==null&&s!==void 0?s:"";return{name:o,version:i}}));const getLinuxInfo=()=>o(void 0,void 0,void 0,(function*(){const{stdout:e}=yield c.getExecOutput("lsb_release",["-i","-r","-s"],{silent:true});const[A,t]=e.trim().split("\n");return{name:A,version:t}}));A.platform=a.default.platform();A.arch=a.default.arch();A.isWindows=A.platform==="win32";A.isMacOS=A.platform==="darwin";A.isLinux=A.platform==="linux";function getDetails(){return o(this,void 0,void 0,(function*(){return Object.assign(Object.assign({},yield A.isWindows?getWindowsInfo():A.isMacOS?getMacOsInfo():getLinuxInfo()),{platform:A.platform,arch:A.arch,isWindows:A.isWindows,isMacOS:A.isMacOS,isLinux:A.isLinux})}))}A.getDetails=getDetails},1327:function(e,A,t){"use strict";var s=this&&this.__awaiter||function(e,A,t,s){function adopt(e){return e instanceof t?e:new t((function(A){A(e)}))}return new(t||(t=Promise))((function(t,n){function fulfilled(e){try{step(s.next(e))}catch(e){n(e)}}function rejected(e){try{step(s["throw"](e))}catch(e){n(e)}}function step(e){e.done?t(e.value):adopt(e.value).then(fulfilled,rejected)}step((s=s.apply(e,A||[])).next())}))};Object.defineProperty(A,"__esModule",{value:true});A.summary=A.markdownSummary=A.SUMMARY_DOCS_URL=A.SUMMARY_ENV_VAR=void 0;const n=t(2037);const i=t(7147);const{access:o,appendFile:r,writeFile:a}=i.promises;A.SUMMARY_ENV_VAR="GITHUB_STEP_SUMMARY";A.SUMMARY_DOCS_URL="https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary";class Summary{constructor(){this._buffer=""}filePath(){return s(this,void 0,void 0,(function*(){if(this._filePath){return this._filePath}const e=process.env[A.SUMMARY_ENV_VAR];if(!e){throw new Error(`Unable to find environment variable for $${A.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`)}try{yield o(e,i.constants.R_OK|i.constants.W_OK)}catch(A){throw new Error(`Unable to access summary file: '${e}'. Check if the file has correct read/write permissions.`)}this._filePath=e;return this._filePath}))}wrap(e,A,t={}){const s=Object.entries(t).map((([e,A])=>` ${e}="${A}"`)).join("");if(!A){return`<${e}${s}>`}return`<${e}${s}>${A}`}write(e){return s(this,void 0,void 0,(function*(){const A=!!(e===null||e===void 0?void 0:e.overwrite);const t=yield this.filePath();const s=A?a:r;yield s(t,this._buffer,{encoding:"utf8"});return this.emptyBuffer()}))}clear(){return s(this,void 0,void 0,(function*(){return this.emptyBuffer().write({overwrite:true})}))}stringify(){return this._buffer}isEmptyBuffer(){return this._buffer.length===0}emptyBuffer(){this._buffer="";return this}addRaw(e,A=false){this._buffer+=e;return A?this.addEOL():this}addEOL(){return this.addRaw(n.EOL)}addCodeBlock(e,A){const t=Object.assign({},A&&{lang:A});const s=this.wrap("pre",this.wrap("code",e),t);return this.addRaw(s).addEOL()}addList(e,A=false){const t=A?"ol":"ul";const s=e.map((e=>this.wrap("li",e))).join("");const n=this.wrap(t,s);return this.addRaw(n).addEOL()}addTable(e){const A=e.map((e=>{const A=e.map((e=>{if(typeof e==="string"){return this.wrap("td",e)}const{header:A,data:t,colspan:s,rowspan:n}=e;const i=A?"th":"td";const o=Object.assign(Object.assign({},s&&{colspan:s}),n&&{rowspan:n});return this.wrap(i,t,o)})).join("");return this.wrap("tr",A)})).join("");const t=this.wrap("table",A);return this.addRaw(t).addEOL()}addDetails(e,A){const t=this.wrap("details",this.wrap("summary",e)+A);return this.addRaw(t).addEOL()}addImage(e,A,t){const{width:s,height:n}=t||{};const i=Object.assign(Object.assign({},s&&{width:s}),n&&{height:n});const o=this.wrap("img",null,Object.assign({src:e,alt:A},i));return this.addRaw(o).addEOL()}addHeading(e,A){const t=`h${A}`;const s=["h1","h2","h3","h4","h5","h6"].includes(t)?t:"h1";const n=this.wrap(s,e);return this.addRaw(n).addEOL()}addSeparator(){const e=this.wrap("hr",null);return this.addRaw(e).addEOL()}addBreak(){const e=this.wrap("br",null);return this.addRaw(e).addEOL()}addQuote(e,A){const t=Object.assign({},A&&{cite:A});const s=this.wrap("blockquote",e,t);return this.addRaw(s).addEOL()}addLink(e,A){const t=this.wrap("a",e,{href:A});return this.addRaw(t).addEOL()}}const c=new Summary;A.markdownSummary=c;A.summary=c},5278:(e,A)=>{"use strict";Object.defineProperty(A,"__esModule",{value:true});A.toCommandProperties=A.toCommandValue=void 0;function toCommandValue(e){if(e===null||e===undefined){return""}else if(typeof e==="string"||e instanceof String){return e}return JSON.stringify(e)}A.toCommandValue=toCommandValue;function toCommandProperties(e){if(!Object.keys(e).length){return{}}return{title:e.title,file:e.file,line:e.startLine,endLine:e.endLine,col:e.startColumn,endColumn:e.endColumn}}A.toCommandProperties=toCommandProperties},1514:function(e,A,t){"use strict";var s=this&&this.__createBinding||(Object.create?function(e,A,t,s){if(s===undefined)s=t;Object.defineProperty(e,s,{enumerable:true,get:function(){return A[t]}})}:function(e,A,t,s){if(s===undefined)s=t;e[s]=A[t]});var n=this&&this.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:true,value:A})}:function(e,A){e["default"]=A});var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)if(t!=="default"&&Object.hasOwnProperty.call(e,t))s(A,e,t);n(A,e);return A};var o=this&&this.__awaiter||function(e,A,t,s){function adopt(e){return e instanceof t?e:new t((function(A){A(e)}))}return new(t||(t=Promise))((function(t,n){function fulfilled(e){try{step(s.next(e))}catch(e){n(e)}}function rejected(e){try{step(s["throw"](e))}catch(e){n(e)}}function step(e){e.done?t(e.value):adopt(e.value).then(fulfilled,rejected)}step((s=s.apply(e,A||[])).next())}))};Object.defineProperty(A,"__esModule",{value:true});A.getExecOutput=A.exec=void 0;const r=t(1576);const a=i(t(8159));function exec(e,A,t){return o(this,void 0,void 0,(function*(){const s=a.argStringToArray(e);if(s.length===0){throw new Error(`Parameter 'commandLine' cannot be null or empty.`)}const n=s[0];A=s.slice(1).concat(A||[]);const i=new a.ToolRunner(n,A,t);return i.exec()}))}A.exec=exec;function getExecOutput(e,A,t){var s,n;return o(this,void 0,void 0,(function*(){let i="";let o="";const a=new r.StringDecoder("utf8");const c=new r.StringDecoder("utf8");const l=(s=t===null||t===void 0?void 0:t.listeners)===null||s===void 0?void 0:s.stdout;const u=(n=t===null||t===void 0?void 0:t.listeners)===null||n===void 0?void 0:n.stderr;const stdErrListener=e=>{o+=c.write(e);if(u){u(e)}};const stdOutListener=e=>{i+=a.write(e);if(l){l(e)}};const p=Object.assign(Object.assign({},t===null||t===void 0?void 0:t.listeners),{stdout:stdOutListener,stderr:stdErrListener});const g=yield exec(e,A,Object.assign(Object.assign({},t),{listeners:p}));i+=a.end();o+=c.end();return{exitCode:g,stdout:i,stderr:o}}))}A.getExecOutput=getExecOutput},8159:function(e,A,t){"use strict";var s=this&&this.__createBinding||(Object.create?function(e,A,t,s){if(s===undefined)s=t;Object.defineProperty(e,s,{enumerable:true,get:function(){return A[t]}})}:function(e,A,t,s){if(s===undefined)s=t;e[s]=A[t]});var n=this&&this.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:true,value:A})}:function(e,A){e["default"]=A});var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)if(t!=="default"&&Object.hasOwnProperty.call(e,t))s(A,e,t);n(A,e);return A};var o=this&&this.__awaiter||function(e,A,t,s){function adopt(e){return e instanceof t?e:new t((function(A){A(e)}))}return new(t||(t=Promise))((function(t,n){function fulfilled(e){try{step(s.next(e))}catch(e){n(e)}}function rejected(e){try{step(s["throw"](e))}catch(e){n(e)}}function step(e){e.done?t(e.value):adopt(e.value).then(fulfilled,rejected)}step((s=s.apply(e,A||[])).next())}))};Object.defineProperty(A,"__esModule",{value:true});A.argStringToArray=A.ToolRunner=void 0;const r=i(t(2037));const a=i(t(2361));const c=i(t(2081));const l=i(t(1017));const u=i(t(7436));const p=i(t(1962));const g=t(9512);const d=process.platform==="win32";class ToolRunner extends a.EventEmitter{constructor(e,A,t){super();if(!e){throw new Error("Parameter 'toolPath' cannot be null or empty.")}this.toolPath=e;this.args=A||[];this.options=t||{}}_debug(e){if(this.options.listeners&&this.options.listeners.debug){this.options.listeners.debug(e)}}_getCommandString(e,A){const t=this._getSpawnFileName();const s=this._getSpawnArgs(e);let n=A?"":"[command]";if(d){if(this._isCmdFile()){n+=t;for(const e of s){n+=` ${e}`}}else if(e.windowsVerbatimArguments){n+=`"${t}"`;for(const e of s){n+=` ${e}`}}else{n+=this._windowsQuoteCmdArg(t);for(const e of s){n+=` ${this._windowsQuoteCmdArg(e)}`}}}else{n+=t;for(const e of s){n+=` ${e}`}}return n}_processLineBuffer(e,A,t){try{let s=A+e.toString();let n=s.indexOf(r.EOL);while(n>-1){const e=s.substring(0,n);t(e);s=s.substring(n+r.EOL.length);n=s.indexOf(r.EOL)}return s}catch(e){this._debug(`error processing line. Failed with error ${e}`);return""}}_getSpawnFileName(){if(d){if(this._isCmdFile()){return process.env["COMSPEC"]||"cmd.exe"}}return this.toolPath}_getSpawnArgs(e){if(d){if(this._isCmdFile()){let A=`/D /S /C "${this._windowsQuoteCmdArg(this.toolPath)}`;for(const t of this.args){A+=" ";A+=e.windowsVerbatimArguments?t:this._windowsQuoteCmdArg(t)}A+='"';return[A]}}return this.args}_endsWith(e,A){return e.endsWith(A)}_isCmdFile(){const e=this.toolPath.toUpperCase();return this._endsWith(e,".CMD")||this._endsWith(e,".BAT")}_windowsQuoteCmdArg(e){if(!this._isCmdFile()){return this._uvQuoteCmdArg(e)}if(!e){return'""'}const A=[" ","\t","&","(",")","[","]","{","}","^","=",";","!","'","+",",","`","~","|","<",">",'"'];let t=false;for(const s of e){if(A.some((e=>e===s))){t=true;break}}if(!t){return e}let s='"';let n=true;for(let A=e.length;A>0;A--){s+=e[A-1];if(n&&e[A-1]==="\\"){s+="\\"}else if(e[A-1]==='"'){n=true;s+='"'}else{n=false}}s+='"';return s.split("").reverse().join("")}_uvQuoteCmdArg(e){if(!e){return'""'}if(!e.includes(" ")&&!e.includes("\t")&&!e.includes('"')){return e}if(!e.includes('"')&&!e.includes("\\")){return`"${e}"`}let A='"';let t=true;for(let s=e.length;s>0;s--){A+=e[s-1];if(t&&e[s-1]==="\\"){A+="\\"}else if(e[s-1]==='"'){t=true;A+="\\"}else{t=false}}A+='"';return A.split("").reverse().join("")}_cloneExecOptions(e){e=e||{};const A={cwd:e.cwd||process.cwd(),env:e.env||process.env,silent:e.silent||false,windowsVerbatimArguments:e.windowsVerbatimArguments||false,failOnStdErr:e.failOnStdErr||false,ignoreReturnCode:e.ignoreReturnCode||false,delay:e.delay||1e4};A.outStream=e.outStream||process.stdout;A.errStream=e.errStream||process.stderr;return A}_getSpawnOptions(e,A){e=e||{};const t={};t.cwd=e.cwd;t.env=e.env;t["windowsVerbatimArguments"]=e.windowsVerbatimArguments||this._isCmdFile();if(e.windowsVerbatimArguments){t.argv0=`"${A}"`}return t}exec(){return o(this,void 0,void 0,(function*(){if(!p.isRooted(this.toolPath)&&(this.toolPath.includes("/")||d&&this.toolPath.includes("\\"))){this.toolPath=l.resolve(process.cwd(),this.options.cwd||process.cwd(),this.toolPath)}this.toolPath=yield u.which(this.toolPath,true);return new Promise(((e,A)=>o(this,void 0,void 0,(function*(){this._debug(`exec tool: ${this.toolPath}`);this._debug("arguments:");for(const e of this.args){this._debug(` ${e}`)}const t=this._cloneExecOptions(this.options);if(!t.silent&&t.outStream){t.outStream.write(this._getCommandString(t)+r.EOL)}const s=new ExecState(t,this.toolPath);s.on("debug",(e=>{this._debug(e)}));if(this.options.cwd&&!(yield p.exists(this.options.cwd))){return A(new Error(`The cwd: ${this.options.cwd} does not exist!`))}const n=this._getSpawnFileName();const i=c.spawn(n,this._getSpawnArgs(t),this._getSpawnOptions(this.options,n));let o="";if(i.stdout){i.stdout.on("data",(e=>{if(this.options.listeners&&this.options.listeners.stdout){this.options.listeners.stdout(e)}if(!t.silent&&t.outStream){t.outStream.write(e)}o=this._processLineBuffer(e,o,(e=>{if(this.options.listeners&&this.options.listeners.stdline){this.options.listeners.stdline(e)}}))}))}let a="";if(i.stderr){i.stderr.on("data",(e=>{s.processStderr=true;if(this.options.listeners&&this.options.listeners.stderr){this.options.listeners.stderr(e)}if(!t.silent&&t.errStream&&t.outStream){const A=t.failOnStdErr?t.errStream:t.outStream;A.write(e)}a=this._processLineBuffer(e,a,(e=>{if(this.options.listeners&&this.options.listeners.errline){this.options.listeners.errline(e)}}))}))}i.on("error",(e=>{s.processError=e.message;s.processExited=true;s.processClosed=true;s.CheckComplete()}));i.on("exit",(e=>{s.processExitCode=e;s.processExited=true;this._debug(`Exit code ${e} received from tool '${this.toolPath}'`);s.CheckComplete()}));i.on("close",(e=>{s.processExitCode=e;s.processExited=true;s.processClosed=true;this._debug(`STDIO streams have closed for tool '${this.toolPath}'`);s.CheckComplete()}));s.on("done",((t,s)=>{if(o.length>0){this.emit("stdline",o)}if(a.length>0){this.emit("errline",a)}i.removeAllListeners();if(t){A(t)}else{e(s)}}));if(this.options.input){if(!i.stdin){throw new Error("child process missing stdin")}i.stdin.end(this.options.input)}}))))}))}}A.ToolRunner=ToolRunner;function argStringToArray(e){const A=[];let t=false;let s=false;let n="";function append(e){if(s&&e!=='"'){n+="\\"}n+=e;s=false}for(let i=0;i0){A.push(n);n=""}continue}append(o)}if(n.length>0){A.push(n.trim())}return A}A.argStringToArray=argStringToArray;class ExecState extends a.EventEmitter{constructor(e,A){super();this.processClosed=false;this.processError="";this.processExitCode=0;this.processExited=false;this.processStderr=false;this.delay=1e4;this.done=false;this.timeout=null;if(!A){throw new Error("toolPath must not be empty")}this.options=e;this.toolPath=A;if(e.delay){this.delay=e.delay}}CheckComplete(){if(this.done){return}if(this.processClosed){this._setResult()}else if(this.processExited){this.timeout=g.setTimeout(ExecState.HandleTimeout,this.delay,this)}}_debug(e){this.emit("debug",e)}_setResult(){let e;if(this.processExited){if(this.processError){e=new Error(`There was an error when attempting to execute the process '${this.toolPath}'. This may indicate the process failed to start. Error: ${this.processError}`)}else if(this.processExitCode!==0&&!this.options.ignoreReturnCode){e=new Error(`The process '${this.toolPath}' failed with exit code ${this.processExitCode}`)}else if(this.processStderr&&this.options.failOnStdErr){e=new Error(`The process '${this.toolPath}' failed because one or more lines were written to the STDERR stream`)}}if(this.timeout){clearTimeout(this.timeout);this.timeout=null}this.done=true;this.emit("done",e,this.processExitCode)}static HandleTimeout(e){if(e.done){return}if(!e.processClosed&&e.processExited){const A=`The STDIO streams did not close within ${e.delay/1e3} seconds of the exit event from process '${e.toolPath}'. This may indicate a child process inherited the STDIO streams and has not yet exited.`;e._debug(A)}e._setResult()}}},5526:function(e,A){"use strict";var t=this&&this.__awaiter||function(e,A,t,s){function adopt(e){return e instanceof t?e:new t((function(A){A(e)}))}return new(t||(t=Promise))((function(t,n){function fulfilled(e){try{step(s.next(e))}catch(e){n(e)}}function rejected(e){try{step(s["throw"](e))}catch(e){n(e)}}function step(e){e.done?t(e.value):adopt(e.value).then(fulfilled,rejected)}step((s=s.apply(e,A||[])).next())}))};Object.defineProperty(A,"__esModule",{value:true});A.PersonalAccessTokenCredentialHandler=A.BearerCredentialHandler=A.BasicCredentialHandler=void 0;class BasicCredentialHandler{constructor(e,A){this.username=e;this.password=A}prepareRequest(e){if(!e.headers){throw Error("The request has no headers")}e.headers["Authorization"]=`Basic ${Buffer.from(`${this.username}:${this.password}`).toString("base64")}`}canHandleAuthentication(){return false}handleAuthentication(){return t(this,void 0,void 0,(function*(){throw new Error("not implemented")}))}}A.BasicCredentialHandler=BasicCredentialHandler;class BearerCredentialHandler{constructor(e){this.token=e}prepareRequest(e){if(!e.headers){throw Error("The request has no headers")}e.headers["Authorization"]=`Bearer ${this.token}`}canHandleAuthentication(){return false}handleAuthentication(){return t(this,void 0,void 0,(function*(){throw new Error("not implemented")}))}}A.BearerCredentialHandler=BearerCredentialHandler;class PersonalAccessTokenCredentialHandler{constructor(e){this.token=e}prepareRequest(e){if(!e.headers){throw Error("The request has no headers")}e.headers["Authorization"]=`Basic ${Buffer.from(`PAT:${this.token}`).toString("base64")}`}canHandleAuthentication(){return false}handleAuthentication(){return t(this,void 0,void 0,(function*(){throw new Error("not implemented")}))}}A.PersonalAccessTokenCredentialHandler=PersonalAccessTokenCredentialHandler},6255:function(e,A,t){"use strict";var s=this&&this.__createBinding||(Object.create?function(e,A,t,s){if(s===undefined)s=t;var n=Object.getOwnPropertyDescriptor(A,t);if(!n||("get"in n?!A.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return A[t]}}}Object.defineProperty(e,s,n)}:function(e,A,t,s){if(s===undefined)s=t;e[s]=A[t]});var n=this&&this.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:true,value:A})}:function(e,A){e["default"]=A});var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)if(t!=="default"&&Object.prototype.hasOwnProperty.call(e,t))s(A,e,t);n(A,e);return A};var o=this&&this.__awaiter||function(e,A,t,s){function adopt(e){return e instanceof t?e:new t((function(A){A(e)}))}return new(t||(t=Promise))((function(t,n){function fulfilled(e){try{step(s.next(e))}catch(e){n(e)}}function rejected(e){try{step(s["throw"](e))}catch(e){n(e)}}function step(e){e.done?t(e.value):adopt(e.value).then(fulfilled,rejected)}step((s=s.apply(e,A||[])).next())}))};Object.defineProperty(A,"__esModule",{value:true});A.HttpClient=A.isHttps=A.HttpClientResponse=A.HttpClientError=A.getProxyUrl=A.MediaTypes=A.Headers=A.HttpCodes=void 0;const r=i(t(3685));const a=i(t(5687));const c=i(t(9835));const l=i(t(4294));const u=t(1773);var p;(function(e){e[e["OK"]=200]="OK";e[e["MultipleChoices"]=300]="MultipleChoices";e[e["MovedPermanently"]=301]="MovedPermanently";e[e["ResourceMoved"]=302]="ResourceMoved";e[e["SeeOther"]=303]="SeeOther";e[e["NotModified"]=304]="NotModified";e[e["UseProxy"]=305]="UseProxy";e[e["SwitchProxy"]=306]="SwitchProxy";e[e["TemporaryRedirect"]=307]="TemporaryRedirect";e[e["PermanentRedirect"]=308]="PermanentRedirect";e[e["BadRequest"]=400]="BadRequest";e[e["Unauthorized"]=401]="Unauthorized";e[e["PaymentRequired"]=402]="PaymentRequired";e[e["Forbidden"]=403]="Forbidden";e[e["NotFound"]=404]="NotFound";e[e["MethodNotAllowed"]=405]="MethodNotAllowed";e[e["NotAcceptable"]=406]="NotAcceptable";e[e["ProxyAuthenticationRequired"]=407]="ProxyAuthenticationRequired";e[e["RequestTimeout"]=408]="RequestTimeout";e[e["Conflict"]=409]="Conflict";e[e["Gone"]=410]="Gone";e[e["TooManyRequests"]=429]="TooManyRequests";e[e["InternalServerError"]=500]="InternalServerError";e[e["NotImplemented"]=501]="NotImplemented";e[e["BadGateway"]=502]="BadGateway";e[e["ServiceUnavailable"]=503]="ServiceUnavailable";e[e["GatewayTimeout"]=504]="GatewayTimeout"})(p||(A.HttpCodes=p={}));var g;(function(e){e["Accept"]="accept";e["ContentType"]="content-type"})(g||(A.Headers=g={}));var d;(function(e){e["ApplicationJson"]="application/json"})(d||(A.MediaTypes=d={}));function getProxyUrl(e){const A=c.getProxyUrl(new URL(e));return A?A.href:""}A.getProxyUrl=getProxyUrl;const E=[p.MovedPermanently,p.ResourceMoved,p.SeeOther,p.TemporaryRedirect,p.PermanentRedirect];const h=[p.BadGateway,p.ServiceUnavailable,p.GatewayTimeout];const Q=["OPTIONS","GET","DELETE","HEAD"];const C=10;const B=5;class HttpClientError extends Error{constructor(e,A){super(e);this.name="HttpClientError";this.statusCode=A;Object.setPrototypeOf(this,HttpClientError.prototype)}}A.HttpClientError=HttpClientError;class HttpClientResponse{constructor(e){this.message=e}readBody(){return o(this,void 0,void 0,(function*(){return new Promise((e=>o(this,void 0,void 0,(function*(){let A=Buffer.alloc(0);this.message.on("data",(e=>{A=Buffer.concat([A,e])}));this.message.on("end",(()=>{e(A.toString())}))}))))}))}readBodyBuffer(){return o(this,void 0,void 0,(function*(){return new Promise((e=>o(this,void 0,void 0,(function*(){const A=[];this.message.on("data",(e=>{A.push(e)}));this.message.on("end",(()=>{e(Buffer.concat(A))}))}))))}))}}A.HttpClientResponse=HttpClientResponse;function isHttps(e){const A=new URL(e);return A.protocol==="https:"}A.isHttps=isHttps;class HttpClient{constructor(e,A,t){this._ignoreSslError=false;this._allowRedirects=true;this._allowRedirectDowngrade=false;this._maxRedirects=50;this._allowRetries=false;this._maxRetries=1;this._keepAlive=false;this._disposed=false;this.userAgent=e;this.handlers=A||[];this.requestOptions=t;if(t){if(t.ignoreSslError!=null){this._ignoreSslError=t.ignoreSslError}this._socketTimeout=t.socketTimeout;if(t.allowRedirects!=null){this._allowRedirects=t.allowRedirects}if(t.allowRedirectDowngrade!=null){this._allowRedirectDowngrade=t.allowRedirectDowngrade}if(t.maxRedirects!=null){this._maxRedirects=Math.max(t.maxRedirects,0)}if(t.keepAlive!=null){this._keepAlive=t.keepAlive}if(t.allowRetries!=null){this._allowRetries=t.allowRetries}if(t.maxRetries!=null){this._maxRetries=t.maxRetries}}}options(e,A){return o(this,void 0,void 0,(function*(){return this.request("OPTIONS",e,null,A||{})}))}get(e,A){return o(this,void 0,void 0,(function*(){return this.request("GET",e,null,A||{})}))}del(e,A){return o(this,void 0,void 0,(function*(){return this.request("DELETE",e,null,A||{})}))}post(e,A,t){return o(this,void 0,void 0,(function*(){return this.request("POST",e,A,t||{})}))}patch(e,A,t){return o(this,void 0,void 0,(function*(){return this.request("PATCH",e,A,t||{})}))}put(e,A,t){return o(this,void 0,void 0,(function*(){return this.request("PUT",e,A,t||{})}))}head(e,A){return o(this,void 0,void 0,(function*(){return this.request("HEAD",e,null,A||{})}))}sendStream(e,A,t,s){return o(this,void 0,void 0,(function*(){return this.request(e,A,t,s)}))}getJson(e,A={}){return o(this,void 0,void 0,(function*(){A[g.Accept]=this._getExistingOrDefaultHeader(A,g.Accept,d.ApplicationJson);const t=yield this.get(e,A);return this._processResponse(t,this.requestOptions)}))}postJson(e,A,t={}){return o(this,void 0,void 0,(function*(){const s=JSON.stringify(A,null,2);t[g.Accept]=this._getExistingOrDefaultHeader(t,g.Accept,d.ApplicationJson);t[g.ContentType]=this._getExistingOrDefaultHeader(t,g.ContentType,d.ApplicationJson);const n=yield this.post(e,s,t);return this._processResponse(n,this.requestOptions)}))}putJson(e,A,t={}){return o(this,void 0,void 0,(function*(){const s=JSON.stringify(A,null,2);t[g.Accept]=this._getExistingOrDefaultHeader(t,g.Accept,d.ApplicationJson);t[g.ContentType]=this._getExistingOrDefaultHeader(t,g.ContentType,d.ApplicationJson);const n=yield this.put(e,s,t);return this._processResponse(n,this.requestOptions)}))}patchJson(e,A,t={}){return o(this,void 0,void 0,(function*(){const s=JSON.stringify(A,null,2);t[g.Accept]=this._getExistingOrDefaultHeader(t,g.Accept,d.ApplicationJson);t[g.ContentType]=this._getExistingOrDefaultHeader(t,g.ContentType,d.ApplicationJson);const n=yield this.patch(e,s,t);return this._processResponse(n,this.requestOptions)}))}request(e,A,t,s){return o(this,void 0,void 0,(function*(){if(this._disposed){throw new Error("Client has already been disposed.")}const n=new URL(A);let i=this._prepareRequest(e,n,s);const o=this._allowRetries&&Q.includes(e)?this._maxRetries+1:1;let r=0;let a;do{a=yield this.requestRaw(i,t);if(a&&a.message&&a.message.statusCode===p.Unauthorized){let e;for(const A of this.handlers){if(A.canHandleAuthentication(a)){e=A;break}}if(e){return e.handleAuthentication(this,i,t)}else{return a}}let A=this._maxRedirects;while(a.message.statusCode&&E.includes(a.message.statusCode)&&this._allowRedirects&&A>0){const o=a.message.headers["location"];if(!o){break}const r=new URL(o);if(n.protocol==="https:"&&n.protocol!==r.protocol&&!this._allowRedirectDowngrade){throw new Error("Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.")}yield a.readBody();if(r.hostname!==n.hostname){for(const e in s){if(e.toLowerCase()==="authorization"){delete s[e]}}}i=this._prepareRequest(e,r,s);a=yield this.requestRaw(i,t);A--}if(!a.message.statusCode||!h.includes(a.message.statusCode)){return a}r+=1;if(r{function callbackForResult(e,A){if(e){s(e)}else if(!A){s(new Error("Unknown error"))}else{t(A)}}this.requestRawWithCallback(e,A,callbackForResult)}))}))}requestRawWithCallback(e,A,t){if(typeof A==="string"){if(!e.options.headers){e.options.headers={}}e.options.headers["Content-Length"]=Buffer.byteLength(A,"utf8")}let s=false;function handleResult(e,A){if(!s){s=true;t(e,A)}}const n=e.httpModule.request(e.options,(e=>{const A=new HttpClientResponse(e);handleResult(undefined,A)}));let i;n.on("socket",(e=>{i=e}));n.setTimeout(this._socketTimeout||3*6e4,(()=>{if(i){i.end()}handleResult(new Error(`Request timeout: ${e.options.path}`))}));n.on("error",(function(e){handleResult(e)}));if(A&&typeof A==="string"){n.write(A,"utf8")}if(A&&typeof A!=="string"){A.on("close",(function(){n.end()}));A.pipe(n)}else{n.end()}}getAgent(e){const A=new URL(e);return this._getAgent(A)}getAgentDispatcher(e){const A=new URL(e);const t=c.getProxyUrl(A);const s=t&&t.hostname;if(!s){return}return this._getProxyAgentDispatcher(A,t)}_prepareRequest(e,A,t){const s={};s.parsedUrl=A;const n=s.parsedUrl.protocol==="https:";s.httpModule=n?a:r;const i=n?443:80;s.options={};s.options.host=s.parsedUrl.hostname;s.options.port=s.parsedUrl.port?parseInt(s.parsedUrl.port):i;s.options.path=(s.parsedUrl.pathname||"")+(s.parsedUrl.search||"");s.options.method=e;s.options.headers=this._mergeHeaders(t);if(this.userAgent!=null){s.options.headers["user-agent"]=this.userAgent}s.options.agent=this._getAgent(s.parsedUrl);if(this.handlers){for(const e of this.handlers){e.prepareRequest(s.options)}}return s}_mergeHeaders(e){if(this.requestOptions&&this.requestOptions.headers){return Object.assign({},lowercaseKeys(this.requestOptions.headers),lowercaseKeys(e||{}))}return lowercaseKeys(e||{})}_getExistingOrDefaultHeader(e,A,t){let s;if(this.requestOptions&&this.requestOptions.headers){s=lowercaseKeys(this.requestOptions.headers)[A]}return e[A]||s||t}_getAgent(e){let A;const t=c.getProxyUrl(e);const s=t&&t.hostname;if(this._keepAlive&&s){A=this._proxyAgent}if(!s){A=this._agent}if(A){return A}const n=e.protocol==="https:";let i=100;if(this.requestOptions){i=this.requestOptions.maxSockets||r.globalAgent.maxSockets}if(t&&t.hostname){const e={maxSockets:i,keepAlive:this._keepAlive,proxy:Object.assign(Object.assign({},(t.username||t.password)&&{proxyAuth:`${t.username}:${t.password}`}),{host:t.hostname,port:t.port})};let s;const o=t.protocol==="https:";if(n){s=o?l.httpsOverHttps:l.httpsOverHttp}else{s=o?l.httpOverHttps:l.httpOverHttp}A=s(e);this._proxyAgent=A}if(!A){const e={keepAlive:this._keepAlive,maxSockets:i};A=n?new a.Agent(e):new r.Agent(e);this._agent=A}if(n&&this._ignoreSslError){A.options=Object.assign(A.options||{},{rejectUnauthorized:false})}return A}_getProxyAgentDispatcher(e,A){let t;if(this._keepAlive){t=this._proxyAgentDispatcher}if(t){return t}const s=e.protocol==="https:";t=new u.ProxyAgent(Object.assign({uri:A.href,pipelining:!this._keepAlive?0:1},(A.username||A.password)&&{token:`Basic ${Buffer.from(`${A.username}:${A.password}`).toString("base64")}`}));this._proxyAgentDispatcher=t;if(s&&this._ignoreSslError){t.options=Object.assign(t.options.requestTls||{},{rejectUnauthorized:false})}return t}_performExponentialBackoff(e){return o(this,void 0,void 0,(function*(){e=Math.min(C,e);const A=B*Math.pow(2,e);return new Promise((e=>setTimeout((()=>e()),A)))}))}_processResponse(e,A){return o(this,void 0,void 0,(function*(){return new Promise(((t,s)=>o(this,void 0,void 0,(function*(){const n=e.message.statusCode||0;const i={statusCode:n,result:null,headers:{}};if(n===p.NotFound){t(i)}function dateTimeDeserializer(e,A){if(typeof A==="string"){const e=new Date(A);if(!isNaN(e.valueOf())){return e}}return A}let o;let r;try{r=yield e.readBody();if(r&&r.length>0){if(A&&A.deserializeDates){o=JSON.parse(r,dateTimeDeserializer)}else{o=JSON.parse(r)}i.result=o}i.headers=e.message.headers}catch(e){}if(n>299){let e;if(o&&o.message){e=o.message}else if(r&&r.length>0){e=r}else{e=`Failed request: (${n})`}const A=new HttpClientError(e,n);A.result=i.result;s(A)}else{t(i)}}))))}))}}A.HttpClient=HttpClient;const lowercaseKeys=e=>Object.keys(e).reduce(((A,t)=>(A[t.toLowerCase()]=e[t],A)),{})},9835:(e,A)=>{"use strict";Object.defineProperty(A,"__esModule",{value:true});A.checkBypass=A.getProxyUrl=void 0;function getProxyUrl(e){const A=e.protocol==="https:";if(checkBypass(e)){return undefined}const t=(()=>{if(A){return process.env["https_proxy"]||process.env["HTTPS_PROXY"]}else{return process.env["http_proxy"]||process.env["HTTP_PROXY"]}})();if(t){try{return new DecodedURL(t)}catch(e){if(!t.startsWith("http://")&&!t.startsWith("https://"))return new DecodedURL(`http://${t}`)}}else{return undefined}}A.getProxyUrl=getProxyUrl;function checkBypass(e){if(!e.hostname){return false}const A=e.hostname;if(isLoopbackAddress(A)){return true}const t=process.env["no_proxy"]||process.env["NO_PROXY"]||"";if(!t){return false}let s;if(e.port){s=Number(e.port)}else if(e.protocol==="http:"){s=80}else if(e.protocol==="https:"){s=443}const n=[e.hostname.toUpperCase()];if(typeof s==="number"){n.push(`${n[0]}:${s}`)}for(const e of t.split(",").map((e=>e.trim().toUpperCase())).filter((e=>e))){if(e==="*"||n.some((A=>A===e||A.endsWith(`.${e}`)||e.startsWith(".")&&A.endsWith(`${e}`)))){return true}}return false}A.checkBypass=checkBypass;function isLoopbackAddress(e){const A=e.toLowerCase();return A==="localhost"||A.startsWith("127.")||A.startsWith("[::1]")||A.startsWith("[0:0:0:0:0:0:0:1]")}class DecodedURL extends URL{constructor(e,A){super(e,A);this._decodedUsername=decodeURIComponent(super.username);this._decodedPassword=decodeURIComponent(super.password)}get username(){return this._decodedUsername}get password(){return this._decodedPassword}}},1962:function(e,A,t){"use strict";var s=this&&this.__createBinding||(Object.create?function(e,A,t,s){if(s===undefined)s=t;Object.defineProperty(e,s,{enumerable:true,get:function(){return A[t]}})}:function(e,A,t,s){if(s===undefined)s=t;e[s]=A[t]});var n=this&&this.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:true,value:A})}:function(e,A){e["default"]=A});var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)if(t!=="default"&&Object.hasOwnProperty.call(e,t))s(A,e,t);n(A,e);return A};var o=this&&this.__awaiter||function(e,A,t,s){function adopt(e){return e instanceof t?e:new t((function(A){A(e)}))}return new(t||(t=Promise))((function(t,n){function fulfilled(e){try{step(s.next(e))}catch(e){n(e)}}function rejected(e){try{step(s["throw"](e))}catch(e){n(e)}}function step(e){e.done?t(e.value):adopt(e.value).then(fulfilled,rejected)}step((s=s.apply(e,A||[])).next())}))};var r;Object.defineProperty(A,"__esModule",{value:true});A.getCmdPath=A.tryGetExecutablePath=A.isRooted=A.isDirectory=A.exists=A.READONLY=A.UV_FS_O_EXLOCK=A.IS_WINDOWS=A.unlink=A.symlink=A.stat=A.rmdir=A.rm=A.rename=A.readlink=A.readdir=A.open=A.mkdir=A.lstat=A.copyFile=A.chmod=void 0;const a=i(t(7147));const c=i(t(1017));r=a.promises,A.chmod=r.chmod,A.copyFile=r.copyFile,A.lstat=r.lstat,A.mkdir=r.mkdir,A.open=r.open,A.readdir=r.readdir,A.readlink=r.readlink,A.rename=r.rename,A.rm=r.rm,A.rmdir=r.rmdir,A.stat=r.stat,A.symlink=r.symlink,A.unlink=r.unlink;A.IS_WINDOWS=process.platform==="win32";A.UV_FS_O_EXLOCK=268435456;A.READONLY=a.constants.O_RDONLY;function exists(e){return o(this,void 0,void 0,(function*(){try{yield A.stat(e)}catch(e){if(e.code==="ENOENT"){return false}throw e}return true}))}A.exists=exists;function isDirectory(e,t=false){return o(this,void 0,void 0,(function*(){const s=t?yield A.stat(e):yield A.lstat(e);return s.isDirectory()}))}A.isDirectory=isDirectory;function isRooted(e){e=normalizeSeparators(e);if(!e){throw new Error('isRooted() parameter "p" cannot be empty')}if(A.IS_WINDOWS){return e.startsWith("\\")||/^[A-Z]:/i.test(e)}return e.startsWith("/")}A.isRooted=isRooted;function tryGetExecutablePath(e,t){return o(this,void 0,void 0,(function*(){let s=undefined;try{s=yield A.stat(e)}catch(A){if(A.code!=="ENOENT"){console.log(`Unexpected error attempting to determine if executable file exists '${e}': ${A}`)}}if(s&&s.isFile()){if(A.IS_WINDOWS){const A=c.extname(e).toUpperCase();if(t.some((e=>e.toUpperCase()===A))){return e}}else{if(isUnixExecutable(s)){return e}}}const n=e;for(const i of t){e=n+i;s=undefined;try{s=yield A.stat(e)}catch(A){if(A.code!=="ENOENT"){console.log(`Unexpected error attempting to determine if executable file exists '${e}': ${A}`)}}if(s&&s.isFile()){if(A.IS_WINDOWS){try{const t=c.dirname(e);const s=c.basename(e).toUpperCase();for(const n of yield A.readdir(t)){if(s===n.toUpperCase()){e=c.join(t,n);break}}}catch(A){console.log(`Unexpected error attempting to determine the actual case of the file '${e}': ${A}`)}return e}else{if(isUnixExecutable(s)){return e}}}}return""}))}A.tryGetExecutablePath=tryGetExecutablePath;function normalizeSeparators(e){e=e||"";if(A.IS_WINDOWS){e=e.replace(/\//g,"\\");return e.replace(/\\\\+/g,"\\")}return e.replace(/\/\/+/g,"/")}function isUnixExecutable(e){return(e.mode&1)>0||(e.mode&8)>0&&e.gid===process.getgid()||(e.mode&64)>0&&e.uid===process.getuid()}function getCmdPath(){var e;return(e=process.env["COMSPEC"])!==null&&e!==void 0?e:`cmd.exe`}A.getCmdPath=getCmdPath},7436:function(e,A,t){"use strict";var s=this&&this.__createBinding||(Object.create?function(e,A,t,s){if(s===undefined)s=t;Object.defineProperty(e,s,{enumerable:true,get:function(){return A[t]}})}:function(e,A,t,s){if(s===undefined)s=t;e[s]=A[t]});var n=this&&this.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:true,value:A})}:function(e,A){e["default"]=A});var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)if(t!=="default"&&Object.hasOwnProperty.call(e,t))s(A,e,t);n(A,e);return A};var o=this&&this.__awaiter||function(e,A,t,s){function adopt(e){return e instanceof t?e:new t((function(A){A(e)}))}return new(t||(t=Promise))((function(t,n){function fulfilled(e){try{step(s.next(e))}catch(e){n(e)}}function rejected(e){try{step(s["throw"](e))}catch(e){n(e)}}function step(e){e.done?t(e.value):adopt(e.value).then(fulfilled,rejected)}step((s=s.apply(e,A||[])).next())}))};Object.defineProperty(A,"__esModule",{value:true});A.findInPath=A.which=A.mkdirP=A.rmRF=A.mv=A.cp=void 0;const r=t(9491);const a=i(t(1017));const c=i(t(1962));function cp(e,A,t={}){return o(this,void 0,void 0,(function*(){const{force:s,recursive:n,copySourceDirectory:i}=readCopyOptions(t);const o=(yield c.exists(A))?yield c.stat(A):null;if(o&&o.isFile()&&!s){return}const r=o&&o.isDirectory()&&i?a.join(A,a.basename(e)):A;if(!(yield c.exists(e))){throw new Error(`no such file or directory: ${e}`)}const l=yield c.stat(e);if(l.isDirectory()){if(!n){throw new Error(`Failed to copy. ${e} is a directory, but tried to copy without recursive flag.`)}else{yield cpDirRecursive(e,r,0,s)}}else{if(a.relative(e,r)===""){throw new Error(`'${r}' and '${e}' are the same file`)}yield copyFile(e,r,s)}}))}A.cp=cp;function mv(e,A,t={}){return o(this,void 0,void 0,(function*(){if(yield c.exists(A)){let s=true;if(yield c.isDirectory(A)){A=a.join(A,a.basename(e));s=yield c.exists(A)}if(s){if(t.force==null||t.force){yield rmRF(A)}else{throw new Error("Destination already exists")}}}yield mkdirP(a.dirname(A));yield c.rename(e,A)}))}A.mv=mv;function rmRF(e){return o(this,void 0,void 0,(function*(){if(c.IS_WINDOWS){if(/[*"<>|]/.test(e)){throw new Error('File path must not contain `*`, `"`, `<`, `>` or `|` on Windows')}}try{yield c.rm(e,{force:true,maxRetries:3,recursive:true,retryDelay:300})}catch(e){throw new Error(`File was unable to be removed ${e}`)}}))}A.rmRF=rmRF;function mkdirP(e){return o(this,void 0,void 0,(function*(){r.ok(e,"a path argument must be provided");yield c.mkdir(e,{recursive:true})}))}A.mkdirP=mkdirP;function which(e,A){return o(this,void 0,void 0,(function*(){if(!e){throw new Error("parameter 'tool' is required")}if(A){const A=yield which(e,false);if(!A){if(c.IS_WINDOWS){throw new Error(`Unable to locate executable file: ${e}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`)}else{throw new Error(`Unable to locate executable file: ${e}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`)}}return A}const t=yield findInPath(e);if(t&&t.length>0){return t[0]}return""}))}A.which=which;function findInPath(e){return o(this,void 0,void 0,(function*(){if(!e){throw new Error("parameter 'tool' is required")}const A=[];if(c.IS_WINDOWS&&process.env["PATHEXT"]){for(const e of process.env["PATHEXT"].split(a.delimiter)){if(e){A.push(e)}}}if(c.isRooted(e)){const t=yield c.tryGetExecutablePath(e,A);if(t){return[t]}return[]}if(e.includes(a.sep)){return[]}const t=[];if(process.env.PATH){for(const e of process.env.PATH.split(a.delimiter)){if(e){t.push(e)}}}const s=[];for(const n of t){const t=yield c.tryGetExecutablePath(a.join(n,e),A);if(t){s.push(t)}}return s}))}A.findInPath=findInPath;function readCopyOptions(e){const A=e.force==null?true:e.force;const t=Boolean(e.recursive);const s=e.copySourceDirectory==null?true:Boolean(e.copySourceDirectory);return{force:A,recursive:t,copySourceDirectory:s}}function cpDirRecursive(e,A,t,s){return o(this,void 0,void 0,(function*(){if(t>=255)return;t++;yield mkdirP(A);const n=yield c.readdir(e);for(const i of n){const n=`${e}/${i}`;const o=`${A}/${i}`;const r=yield c.lstat(n);if(r.isDirectory()){yield cpDirRecursive(n,o,t,s)}else{yield copyFile(n,o,s)}}yield c.chmod(A,(yield c.stat(e)).mode)}))}function copyFile(e,A,t){return o(this,void 0,void 0,(function*(){if((yield c.lstat(e)).isSymbolicLink()){try{yield c.lstat(A);yield c.unlink(A)}catch(e){if(e.code==="EPERM"){yield c.chmod(A,"0666");yield c.unlink(A)}}const t=yield c.readlink(e);yield c.symlink(t,A,c.IS_WINDOWS?"junction":null)}else if(!(yield c.exists(A))||t){yield c.copyFile(e,A)}}))}},4812:(e,A,t)=>{e.exports={parallel:t(8210),serial:t(445),serialOrdered:t(3578)}},1700:e=>{e.exports=abort;function abort(e){Object.keys(e.jobs).forEach(clean.bind(e));e.jobs={}}function clean(e){if(typeof this.jobs[e]=="function"){this.jobs[e]()}}},2794:(e,A,t)=>{var s=t(5295);e.exports=async;function async(e){var A=false;s((function(){A=true}));return function async_callback(t,n){if(A){e(t,n)}else{s((function nextTick_callback(){e(t,n)}))}}}},5295:e=>{e.exports=defer;function defer(e){var A=typeof setImmediate=="function"?setImmediate:typeof process=="object"&&typeof process.nextTick=="function"?process.nextTick:null;if(A){A(e)}else{setTimeout(e,0)}}},9023:(e,A,t)=>{var s=t(2794),n=t(1700);e.exports=iterate;function iterate(e,A,t,s){var i=t["keyedList"]?t["keyedList"][t.index]:t.index;t.jobs[i]=runJob(A,i,e[i],(function(e,A){if(!(i in t.jobs)){return}delete t.jobs[i];if(e){n(t)}else{t.results[i]=A}s(e,t.results)}))}function runJob(e,A,t,n){var i;if(e.length==2){i=e(t,s(n))}else{i=e(t,A,s(n))}return i}},2474:e=>{e.exports=state;function state(e,A){var t=!Array.isArray(e),s={index:0,keyedList:t||A?Object.keys(e):null,jobs:{},results:t?{}:[],size:t?Object.keys(e).length:e.length};if(A){s.keyedList.sort(t?A:function(t,s){return A(e[t],e[s])})}return s}},7942:(e,A,t)=>{var s=t(1700),n=t(2794);e.exports=terminator;function terminator(e){if(!Object.keys(this.jobs).length){return}this.index=this.size;s(this);n(e)(null,this.results)}},8210:(e,A,t)=>{var s=t(9023),n=t(2474),i=t(7942);e.exports=parallel;function parallel(e,A,t){var o=n(e);while(o.index<(o["keyedList"]||e).length){s(e,A,o,(function(e,A){if(e){t(e,A);return}if(Object.keys(o.jobs).length===0){t(null,o.results);return}}));o.index++}return i.bind(o,t)}},445:(e,A,t)=>{var s=t(3578);e.exports=serial;function serial(e,A,t){return s(e,A,null,t)}},3578:(e,A,t)=>{var s=t(9023),n=t(2474),i=t(7942);e.exports=serialOrdered;e.exports.ascending=ascending;e.exports.descending=descending;function serialOrdered(e,A,t,o){var r=n(e,t);s(e,A,r,(function iteratorHandler(t,n){if(t){o(t,n);return}r.index++;if(r.index<(r["keyedList"]||e).length){s(e,A,r,iteratorHandler);return}o(null,r.results)}));return i.bind(r,o)}function ascending(e,A){return eA?1:0}function descending(e,A){return-1*ascending(e,A)}},9227:(e,A,t)=>{"use strict";var s=t(8334);var n=t(4177);var i=t(2808);var o=t(8309);e.exports=o||s.call(i,n)},4177:e=>{"use strict";e.exports=Function.prototype.apply},2808:e=>{"use strict";e.exports=Function.prototype.call},6815:(e,A,t)=>{"use strict";var s=t(8334);var n=t(6361);var i=t(2808);var o=t(9227);e.exports=function callBindBasic(e){if(e.length<1||typeof e[0]!=="function"){throw new n("a function is required")}return o(s,i,e)}},8309:e=>{"use strict";e.exports=typeof Reflect!=="undefined"&&Reflect&&Reflect.apply},5443:(e,A,t)=>{var s=t(3837);var n=t(2781).Stream;var i=t(8611);e.exports=CombinedStream;function CombinedStream(){this.writable=false;this.readable=true;this.dataSize=0;this.maxDataSize=2*1024*1024;this.pauseStreams=true;this._released=false;this._streams=[];this._currentStream=null;this._insideLoop=false;this._pendingNext=false}s.inherits(CombinedStream,n);CombinedStream.create=function(e){var A=new this;e=e||{};for(var t in e){A[t]=e[t]}return A};CombinedStream.isStreamLike=function(e){return typeof e!=="function"&&typeof e!=="string"&&typeof e!=="boolean"&&typeof e!=="number"&&!Buffer.isBuffer(e)};CombinedStream.prototype.append=function(e){var A=CombinedStream.isStreamLike(e);if(A){if(!(e instanceof i)){var t=i.create(e,{maxDataSize:Infinity,pauseStream:this.pauseStreams});e.on("data",this._checkDataSize.bind(this));e=t}this._handleErrors(e);if(this.pauseStreams){e.pause()}}this._streams.push(e);return this};CombinedStream.prototype.pipe=function(e,A){n.prototype.pipe.call(this,e,A);this.resume();return e};CombinedStream.prototype._getNext=function(){this._currentStream=null;if(this._insideLoop){this._pendingNext=true;return}this._insideLoop=true;try{do{this._pendingNext=false;this._realGetNext()}while(this._pendingNext)}finally{this._insideLoop=false}};CombinedStream.prototype._realGetNext=function(){var e=this._streams.shift();if(typeof e=="undefined"){this.end();return}if(typeof e!=="function"){this._pipeNext(e);return}var A=e;A(function(e){var A=CombinedStream.isStreamLike(e);if(A){e.on("data",this._checkDataSize.bind(this));this._handleErrors(e)}this._pipeNext(e)}.bind(this))};CombinedStream.prototype._pipeNext=function(e){this._currentStream=e;var A=CombinedStream.isStreamLike(e);if(A){e.on("end",this._getNext.bind(this));e.pipe(this,{end:false});return}var t=e;this.write(t);this._getNext()};CombinedStream.prototype._handleErrors=function(e){var A=this;e.on("error",(function(e){A._emitError(e)}))};CombinedStream.prototype.write=function(e){this.emit("data",e)};CombinedStream.prototype.pause=function(){if(!this.pauseStreams){return}if(this.pauseStreams&&this._currentStream&&typeof this._currentStream.pause=="function")this._currentStream.pause();this.emit("pause")};CombinedStream.prototype.resume=function(){if(!this._released){this._released=true;this.writable=true;this._getNext()}if(this.pauseStreams&&this._currentStream&&typeof this._currentStream.resume=="function")this._currentStream.resume();this.emit("resume")};CombinedStream.prototype.end=function(){this._reset();this.emit("end")};CombinedStream.prototype.destroy=function(){this._reset();this.emit("close")};CombinedStream.prototype._reset=function(){this.writable=false;this._streams=[];this._currentStream=null};CombinedStream.prototype._checkDataSize=function(){this._updateDataSize();if(this.dataSize<=this.maxDataSize){return}var e="DelayedStream#maxDataSize of "+this.maxDataSize+" bytes exceeded.";this._emitError(new Error(e))};CombinedStream.prototype._updateDataSize=function(){this.dataSize=0;var e=this;this._streams.forEach((function(A){if(!A.dataSize){return}e.dataSize+=A.dataSize}));if(this._currentStream&&this._currentStream.dataSize){this.dataSize+=this._currentStream.dataSize}};CombinedStream.prototype._emitError=function(e){this._reset();this.emit("error",e)}},8611:(e,A,t)=>{var s=t(2781).Stream;var n=t(3837);e.exports=DelayedStream;function DelayedStream(){this.source=null;this.dataSize=0;this.maxDataSize=1024*1024;this.pauseStream=true;this._maxDataSizeExceeded=false;this._released=false;this._bufferedEvents=[]}n.inherits(DelayedStream,s);DelayedStream.create=function(e,A){var t=new this;A=A||{};for(var s in A){t[s]=A[s]}t.source=e;var n=e.emit;e.emit=function(){t._handleEmit(arguments);return n.apply(e,arguments)};e.on("error",(function(){}));if(t.pauseStream){e.pause()}return t};Object.defineProperty(DelayedStream.prototype,"readable",{configurable:true,enumerable:true,get:function(){return this.source.readable}});DelayedStream.prototype.setEncoding=function(){return this.source.setEncoding.apply(this.source,arguments)};DelayedStream.prototype.resume=function(){if(!this._released){this.release()}this.source.resume()};DelayedStream.prototype.pause=function(){this.source.pause()};DelayedStream.prototype.release=function(){this._released=true;this._bufferedEvents.forEach(function(e){this.emit.apply(this,e)}.bind(this));this._bufferedEvents=[]};DelayedStream.prototype.pipe=function(){var e=s.prototype.pipe.apply(this,arguments);this.resume();return e};DelayedStream.prototype._handleEmit=function(e){if(this._released){this.emit.apply(this,e);return}if(e[0]==="data"){this.dataSize+=e[1].length;this._checkIfMaxDataSizeExceeded()}this._bufferedEvents.push(e)};DelayedStream.prototype._checkIfMaxDataSizeExceeded=function(){if(this._maxDataSizeExceeded){return}if(this.dataSize<=this.maxDataSize){return}this._maxDataSizeExceeded=true;var e="DelayedStream#maxDataSize of "+this.maxDataSize+" bytes exceeded.";this.emit("error",new Error(e))}},2693:(e,A,t)=>{"use strict";var s=t(6815);var n=t(8501);var i;try{i=[].__proto__===Array.prototype}catch(e){if(!e||typeof e!=="object"||!("code"in e)||e.code!=="ERR_PROTO_ACCESS"){throw e}}var o=!!i&&n&&n(Object.prototype,"__proto__");var r=Object;var a=r.getPrototypeOf;e.exports=o&&typeof o.get==="function"?s([o.get]):typeof a==="function"?function getDunder(e){return a(e==null?e:r(e))}:false},6123:e=>{"use strict";var A=Object.defineProperty||false;if(A){try{A({},"a",{value:1})}catch(e){A=false}}e.exports=A},1933:e=>{"use strict";e.exports=EvalError},8015:e=>{"use strict";e.exports=Error},4415:e=>{"use strict";e.exports=RangeError},6279:e=>{"use strict";e.exports=ReferenceError},5474:e=>{"use strict";e.exports=SyntaxError},6361:e=>{"use strict";e.exports=TypeError},5065:e=>{"use strict";e.exports=URIError},8308:e=>{"use strict";e.exports=Object},1770:(e,A,t)=>{"use strict";var s=t(4538);var n=s("%Object.defineProperty%",true);var i=t(9038)();var o=t(2157);var r=t(6361);var a=i?Symbol.toStringTag:null;e.exports=function setToStringTag(e,A){var t=arguments.length>2&&!!arguments[2]&&arguments[2].force;var s=arguments.length>2&&!!arguments[2]&&arguments[2].nonConfigurable;if(typeof t!=="undefined"&&typeof t!=="boolean"||typeof s!=="undefined"&&typeof s!=="boolean"){throw new r("if provided, the `overrideIfSet` and `nonConfigurable` options must be booleans")}if(a&&(t||!o(e,a))){if(n){n(e,a,{configurable:!s,enumerable:false,value:A,writable:false})}else{e[a]=A}}}},1133:(e,A,t)=>{var s;e.exports=function(){if(!s){try{s=t(9975)("follow-redirects")}catch(e){}if(typeof s!=="function"){s=function(){}}}s.apply(null,arguments)}},7707:(e,A,t)=>{var s=t(7310);var n=s.URL;var i=t(3685);var o=t(5687);var r=t(2781).Writable;var a=t(9491);var c=t(1133);(function detectUnsupportedEnvironment(){var e=typeof process!=="undefined";var A=typeof window!=="undefined"&&typeof document!=="undefined";var t=isFunction(Error.captureStackTrace);if(!e&&(A||!t)){console.warn("The follow-redirects package should be excluded from browser builds.")}})();var l=false;try{a(new n(""))}catch(e){l=e.code==="ERR_INVALID_URL"}var u=["auth","host","hostname","href","path","pathname","port","protocol","query","search","hash"];var p=["abort","aborted","connect","error","socket","timeout"];var g=Object.create(null);p.forEach((function(e){g[e]=function(A,t,s){this._redirectable.emit(e,A,t,s)}}));var d=createErrorType("ERR_INVALID_URL","Invalid URL",TypeError);var E=createErrorType("ERR_FR_REDIRECTION_FAILURE","Redirected request failed");var h=createErrorType("ERR_FR_TOO_MANY_REDIRECTS","Maximum number of redirects exceeded",E);var Q=createErrorType("ERR_FR_MAX_BODY_LENGTH_EXCEEDED","Request body larger than maxBodyLength limit");var C=createErrorType("ERR_STREAM_WRITE_AFTER_END","write after end");var B=r.prototype.destroy||noop;function RedirectableRequest(e,A){r.call(this);this._sanitizeOptions(e);this._options=e;this._ended=false;this._ending=false;this._redirectCount=0;this._redirects=[];this._requestBodyLength=0;this._requestBodyBuffers=[];if(A){this.on("response",A)}var t=this;this._onNativeResponse=function(e){try{t._processResponse(e)}catch(e){t.emit("error",e instanceof E?e:new E({cause:e}))}};this._performRequest()}RedirectableRequest.prototype=Object.create(r.prototype);RedirectableRequest.prototype.abort=function(){destroyRequest(this._currentRequest);this._currentRequest.abort();this.emit("abort")};RedirectableRequest.prototype.destroy=function(e){destroyRequest(this._currentRequest,e);B.call(this,e);return this};RedirectableRequest.prototype.write=function(e,A,t){if(this._ending){throw new C}if(!isString(e)&&!isBuffer(e)){throw new TypeError("data should be a string, Buffer or Uint8Array")}if(isFunction(A)){t=A;A=null}if(e.length===0){if(t){t()}return}if(this._requestBodyLength+e.length<=this._options.maxBodyLength){this._requestBodyLength+=e.length;this._requestBodyBuffers.push({data:e,encoding:A});this._currentRequest.write(e,A,t)}else{this.emit("error",new Q);this.abort()}};RedirectableRequest.prototype.end=function(e,A,t){if(isFunction(e)){t=e;e=A=null}else if(isFunction(A)){t=A;A=null}if(!e){this._ended=this._ending=true;this._currentRequest.end(null,null,t)}else{var s=this;var n=this._currentRequest;this.write(e,A,(function(){s._ended=true;n.end(null,null,t)}));this._ending=true}};RedirectableRequest.prototype.setHeader=function(e,A){this._options.headers[e]=A;this._currentRequest.setHeader(e,A)};RedirectableRequest.prototype.removeHeader=function(e){delete this._options.headers[e];this._currentRequest.removeHeader(e)};RedirectableRequest.prototype.setTimeout=function(e,A){var t=this;function destroyOnTimeout(A){A.setTimeout(e);A.removeListener("timeout",A.destroy);A.addListener("timeout",A.destroy)}function startTimer(A){if(t._timeout){clearTimeout(t._timeout)}t._timeout=setTimeout((function(){t.emit("timeout");clearTimer()}),e);destroyOnTimeout(A)}function clearTimer(){if(t._timeout){clearTimeout(t._timeout);t._timeout=null}t.removeListener("abort",clearTimer);t.removeListener("error",clearTimer);t.removeListener("response",clearTimer);t.removeListener("close",clearTimer);if(A){t.removeListener("timeout",A)}if(!t.socket){t._currentRequest.removeListener("socket",startTimer)}}if(A){this.on("timeout",A)}if(this.socket){startTimer(this.socket)}else{this._currentRequest.once("socket",startTimer)}this.on("socket",destroyOnTimeout);this.on("abort",clearTimer);this.on("error",clearTimer);this.on("response",clearTimer);this.on("close",clearTimer);return this};["flushHeaders","getHeader","setNoDelay","setSocketKeepAlive"].forEach((function(e){RedirectableRequest.prototype[e]=function(A,t){return this._currentRequest[e](A,t)}}));["aborted","connection","socket"].forEach((function(e){Object.defineProperty(RedirectableRequest.prototype,e,{get:function(){return this._currentRequest[e]}})}));RedirectableRequest.prototype._sanitizeOptions=function(e){if(!e.headers){e.headers={}}if(e.host){if(!e.hostname){e.hostname=e.host}delete e.host}if(!e.pathname&&e.path){var A=e.path.indexOf("?");if(A<0){e.pathname=e.path}else{e.pathname=e.path.substring(0,A);e.search=e.path.substring(A)}}};RedirectableRequest.prototype._performRequest=function(){var e=this._options.protocol;var A=this._options.nativeProtocols[e];if(!A){throw new TypeError("Unsupported protocol "+e)}if(this._options.agents){var t=e.slice(0,-1);this._options.agent=this._options.agents[t]}var n=this._currentRequest=A.request(this._options,this._onNativeResponse);n._redirectable=this;for(var i of p){n.on(i,g[i])}this._currentUrl=/^\//.test(this._options.path)?s.format(this._options):this._options.path;if(this._isRedirect){var o=0;var r=this;var a=this._requestBodyBuffers;(function writeNext(e){if(n===r._currentRequest){if(e){r.emit("error",e)}else if(o=400){e.responseUrl=this._currentUrl;e.redirects=this._redirects;this.emit("response",e);this._requestBodyBuffers=[];return}destroyRequest(this._currentRequest);e.destroy();if(++this._redirectCount>this._options.maxRedirects){throw new h}var n;var i=this._options.beforeRedirect;if(i){n=Object.assign({Host:e.req.getHeader("host")},this._options.headers)}var o=this._options.method;if((A===301||A===302)&&this._options.method==="POST"||A===303&&!/^(?:GET|HEAD)$/.test(this._options.method)){this._options.method="GET";this._requestBodyBuffers=[];removeMatchingHeaders(/^content-/i,this._options.headers)}var r=removeMatchingHeaders(/^host$/i,this._options.headers);var a=parseUrl(this._currentUrl);var l=r||a.host;var u=/^\w+:/.test(t)?this._currentUrl:s.format(Object.assign(a,{host:l}));var p=resolveUrl(t,u);c("redirecting to",p.href);this._isRedirect=true;spreadUrlObject(p,this._options);if(p.protocol!==a.protocol&&p.protocol!=="https:"||p.host!==l&&!isSubdomain(p.host,l)){removeMatchingHeaders(/^(?:(?:proxy-)?authorization|cookie)$/i,this._options.headers)}if(isFunction(i)){var g={headers:e.headers,statusCode:A};var d={url:u,method:o,headers:n};i(this._options,g,d);this._sanitizeOptions(this._options)}this._performRequest()};function wrap(e){var A={maxRedirects:21,maxBodyLength:10*1024*1024};var t={};Object.keys(e).forEach((function(s){var n=s+":";var i=t[n]=e[s];var o=A[s]=Object.create(i);function request(e,s,i){if(isURL(e)){e=spreadUrlObject(e)}else if(isString(e)){e=spreadUrlObject(parseUrl(e))}else{i=s;s=validateUrl(e);e={protocol:n}}if(isFunction(s)){i=s;s=null}s=Object.assign({maxRedirects:A.maxRedirects,maxBodyLength:A.maxBodyLength},e,s);s.nativeProtocols=t;if(!isString(s.host)&&!isString(s.hostname)){s.hostname="::1"}a.equal(s.protocol,n,"protocol mismatch");c("options",s);return new RedirectableRequest(s,i)}function get(e,A,t){var s=o.request(e,A,t);s.end();return s}Object.defineProperties(o,{request:{value:request,configurable:true,enumerable:true,writable:true},get:{value:get,configurable:true,enumerable:true,writable:true}})}));return A}function noop(){}function parseUrl(e){var A;if(l){A=new n(e)}else{A=validateUrl(s.parse(e));if(!isString(A.protocol)){throw new d({input:e})}}return A}function resolveUrl(e,A){return l?new n(e,A):parseUrl(s.resolve(A,e))}function validateUrl(e){if(/^\[/.test(e.hostname)&&!/^\[[:0-9a-f]+\]$/i.test(e.hostname)){throw new d({input:e.href||e})}if(/^\[/.test(e.host)&&!/^\[[:0-9a-f]+\](:\d+)?$/i.test(e.host)){throw new d({input:e.href||e})}return e}function spreadUrlObject(e,A){var t=A||{};for(var s of u){t[s]=e[s]}if(t.hostname.startsWith("[")){t.hostname=t.hostname.slice(1,-1)}if(t.port!==""){t.port=Number(t.port)}t.path=t.search?t.pathname+t.search:t.pathname;return t}function removeMatchingHeaders(e,A){var t;for(var s in A){if(e.test(s)){t=A[s];delete A[s]}}return t===null||typeof t==="undefined"?undefined:String(t).trim()}function createErrorType(e,A,t){function CustomError(t){if(isFunction(Error.captureStackTrace)){Error.captureStackTrace(this,this.constructor)}Object.assign(this,t||{});this.code=e;this.message=this.cause?A+": "+this.cause.message:A}CustomError.prototype=new(t||Error);Object.defineProperties(CustomError.prototype,{constructor:{value:CustomError,enumerable:false},name:{value:"Error ["+e+"]",enumerable:false}});return CustomError}function destroyRequest(e,A){for(var t of p){e.removeListener(t,g[t])}e.on("error",noop);e.destroy(A)}function isSubdomain(e,A){a(isString(e)&&isString(A));var t=e.length-A.length-1;return t>0&&e[t]==="."&&e.endsWith(A)}function isString(e){return typeof e==="string"||e instanceof String}function isFunction(e){return typeof e==="function"}function isBuffer(e){return typeof e==="object"&&"length"in e}function isURL(e){return n&&e instanceof n}e.exports=wrap({http:i,https:o});e.exports.wrap=wrap},4334:(e,A,t)=>{"use strict";var s=t(5443);var n=t(3837);var i=t(1017);var o=t(3685);var r=t(5687);var a=t(7310).parse;var c=t(7147);var l=t(2781).Stream;var u=t(6113);var p=t(3583);var g=t(4812);var d=t(1770);var E=t(2157);var h=t(7142);function FormData(e){if(!(this instanceof FormData)){return new FormData(e)}this._overheadLength=0;this._valueLength=0;this._valuesToMeasure=[];s.call(this);e=e||{};for(var A in e){this[A]=e[A]}}n.inherits(FormData,s);FormData.LINE_BREAK="\r\n";FormData.DEFAULT_CONTENT_TYPE="application/octet-stream";FormData.prototype.append=function(e,A,t){t=t||{};if(typeof t==="string"){t={filename:t}}var n=s.prototype.append.bind(this);if(typeof A==="number"||A==null){A=String(A)}if(Array.isArray(A)){this._error(new Error("Arrays are not supported."));return}var i=this._multiPartHeader(e,A,t);var o=this._multiPartFooter();n(i);n(A);n(o);this._trackLength(i,A,t)};FormData.prototype._trackLength=function(e,A,t){var s=0;if(t.knownLength!=null){s+=Number(t.knownLength)}else if(Buffer.isBuffer(A)){s=A.length}else if(typeof A==="string"){s=Buffer.byteLength(A)}this._valueLength+=s;this._overheadLength+=Buffer.byteLength(e)+FormData.LINE_BREAK.length;if(!A||!A.path&&!(A.readable&&E(A,"httpVersion"))&&!(A instanceof l)){return}if(!t.knownLength){this._valuesToMeasure.push(A)}};FormData.prototype._lengthRetriever=function(e,A){if(E(e,"fd")){if(e.end!=undefined&&e.end!=Infinity&&e.start!=undefined){A(null,e.end+1-(e.start?e.start:0))}else{c.stat(e.path,(function(t,s){if(t){A(t);return}var n=s.size-(e.start?e.start:0);A(null,n)}))}}else if(E(e,"httpVersion")){A(null,Number(e.headers["content-length"]))}else if(E(e,"httpModule")){e.on("response",(function(t){e.pause();A(null,Number(t.headers["content-length"]))}));e.resume()}else{A("Unknown stream")}};FormData.prototype._multiPartHeader=function(e,A,t){if(typeof t.header==="string"){return t.header}var s=this._getContentDisposition(A,t);var n=this._getContentType(A,t);var i="";var o={"Content-Disposition":["form-data",'name="'+e+'"'].concat(s||[]),"Content-Type":[].concat(n||[])};if(typeof t.header==="object"){h(o,t.header)}var r;for(var a in o){if(E(o,a)){r=o[a];if(r==null){continue}if(!Array.isArray(r)){r=[r]}if(r.length){i+=a+": "+r.join("; ")+FormData.LINE_BREAK}}}return"--"+this.getBoundary()+FormData.LINE_BREAK+i+FormData.LINE_BREAK};FormData.prototype._getContentDisposition=function(e,A){var t;if(typeof A.filepath==="string"){t=i.normalize(A.filepath).replace(/\\/g,"/")}else if(A.filename||e&&(e.name||e.path)){t=i.basename(A.filename||e&&(e.name||e.path))}else if(e&&e.readable&&E(e,"httpVersion")){t=i.basename(e.client._httpMessage.path||"")}if(t){return'filename="'+t+'"'}};FormData.prototype._getContentType=function(e,A){var t=A.contentType;if(!t&&e&&e.name){t=p.lookup(e.name)}if(!t&&e&&e.path){t=p.lookup(e.path)}if(!t&&e&&e.readable&&E(e,"httpVersion")){t=e.headers["content-type"]}if(!t&&(A.filepath||A.filename)){t=p.lookup(A.filepath||A.filename)}if(!t&&e&&typeof e==="object"){t=FormData.DEFAULT_CONTENT_TYPE}return t};FormData.prototype._multiPartFooter=function(){return function(e){var A=FormData.LINE_BREAK;var t=this._streams.length===0;if(t){A+=this._lastBoundary()}e(A)}.bind(this)};FormData.prototype._lastBoundary=function(){return"--"+this.getBoundary()+"--"+FormData.LINE_BREAK};FormData.prototype.getHeaders=function(e){var A;var t={"content-type":"multipart/form-data; boundary="+this.getBoundary()};for(A in e){if(E(e,A)){t[A.toLowerCase()]=e[A]}}return t};FormData.prototype.setBoundary=function(e){if(typeof e!=="string"){throw new TypeError("FormData boundary must be a string")}this._boundary=e};FormData.prototype.getBoundary=function(){if(!this._boundary){this._generateBoundary()}return this._boundary};FormData.prototype.getBuffer=function(){var e=new Buffer.alloc(0);var A=this.getBoundary();for(var t=0,s=this._streams.length;t{"use strict";e.exports=function(e,A){Object.keys(A).forEach((function(t){e[t]=e[t]||A[t]}));return e}},9320:e=>{"use strict";var A="Function.prototype.bind called on incompatible ";var t=Object.prototype.toString;var s=Math.max;var n="[object Function]";var i=function concatty(e,A){var t=[];for(var s=0;s{"use strict";var s=t(9320);e.exports=Function.prototype.bind||s},4538:(e,A,t)=>{"use strict";var s;var n=t(8308);var i=t(8015);var o=t(1933);var r=t(4415);var a=t(6279);var c=t(5474);var l=t(6361);var u=t(5065);var p=t(9775);var g=t(924);var d=t(2419);var E=t(3373);var h=t(8029);var Q=t(9396);var C=t(9091);var B=Function;var getEvalledConstructor=function(e){try{return B('"use strict"; return ('+e+").constructor;")()}catch(e){}};var f=t(8501);var I=t(6123);var throwTypeError=function(){throw new l};var m=f?function(){try{arguments.callee;return throwTypeError}catch(e){try{return f(arguments,"callee").get}catch(e){return throwTypeError}}}():throwTypeError;var y=t(587)();var b=t(3592);var w=t(5045);var R=t(8859);var x=t(4177);var D=t(2808);var v={};var k=typeof Uint8Array==="undefined"||!b?s:b(Uint8Array);var S={__proto__:null,"%AggregateError%":typeof AggregateError==="undefined"?s:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer==="undefined"?s:ArrayBuffer,"%ArrayIteratorPrototype%":y&&b?b([][Symbol.iterator]()):s,"%AsyncFromSyncIteratorPrototype%":s,"%AsyncFunction%":v,"%AsyncGenerator%":v,"%AsyncGeneratorFunction%":v,"%AsyncIteratorPrototype%":v,"%Atomics%":typeof Atomics==="undefined"?s:Atomics,"%BigInt%":typeof BigInt==="undefined"?s:BigInt,"%BigInt64Array%":typeof BigInt64Array==="undefined"?s:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array==="undefined"?s:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView==="undefined"?s:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":i,"%eval%":eval,"%EvalError%":o,"%Float16Array%":typeof Float16Array==="undefined"?s:Float16Array,"%Float32Array%":typeof Float32Array==="undefined"?s:Float32Array,"%Float64Array%":typeof Float64Array==="undefined"?s:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry==="undefined"?s:FinalizationRegistry,"%Function%":B,"%GeneratorFunction%":v,"%Int8Array%":typeof Int8Array==="undefined"?s:Int8Array,"%Int16Array%":typeof Int16Array==="undefined"?s:Int16Array,"%Int32Array%":typeof Int32Array==="undefined"?s:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":y&&b?b(b([][Symbol.iterator]())):s,"%JSON%":typeof JSON==="object"?JSON:s,"%Map%":typeof Map==="undefined"?s:Map,"%MapIteratorPrototype%":typeof Map==="undefined"||!y||!b?s:b((new Map)[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":n,"%Object.getOwnPropertyDescriptor%":f,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise==="undefined"?s:Promise,"%Proxy%":typeof Proxy==="undefined"?s:Proxy,"%RangeError%":r,"%ReferenceError%":a,"%Reflect%":typeof Reflect==="undefined"?s:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set==="undefined"?s:Set,"%SetIteratorPrototype%":typeof Set==="undefined"||!y||!b?s:b((new Set)[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer==="undefined"?s:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":y&&b?b(""[Symbol.iterator]()):s,"%Symbol%":y?Symbol:s,"%SyntaxError%":c,"%ThrowTypeError%":m,"%TypedArray%":k,"%TypeError%":l,"%Uint8Array%":typeof Uint8Array==="undefined"?s:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray==="undefined"?s:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array==="undefined"?s:Uint16Array,"%Uint32Array%":typeof Uint32Array==="undefined"?s:Uint32Array,"%URIError%":u,"%WeakMap%":typeof WeakMap==="undefined"?s:WeakMap,"%WeakRef%":typeof WeakRef==="undefined"?s:WeakRef,"%WeakSet%":typeof WeakSet==="undefined"?s:WeakSet,"%Function.prototype.call%":D,"%Function.prototype.apply%":x,"%Object.defineProperty%":I,"%Object.getPrototypeOf%":w,"%Math.abs%":p,"%Math.floor%":g,"%Math.max%":d,"%Math.min%":E,"%Math.pow%":h,"%Math.round%":Q,"%Math.sign%":C,"%Reflect.getPrototypeOf%":R};if(b){try{null.error}catch(e){var F=b(b(e));S["%Error.prototype%"]=F}}var N=function doEval(e){var A;if(e==="%AsyncFunction%"){A=getEvalledConstructor("async function () {}")}else if(e==="%GeneratorFunction%"){A=getEvalledConstructor("function* () {}")}else if(e==="%AsyncGeneratorFunction%"){A=getEvalledConstructor("async function* () {}")}else if(e==="%AsyncGenerator%"){var t=doEval("%AsyncGeneratorFunction%");if(t){A=t.prototype}}else if(e==="%AsyncIteratorPrototype%"){var s=doEval("%AsyncGenerator%");if(s&&b){A=b(s.prototype)}}S[e]=A;return A};var U={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]};var L=t(8334);var M=t(2157);var T=L.call(D,Array.prototype.concat);var H=L.call(x,Array.prototype.splice);var Y=L.call(D,String.prototype.replace);var J=L.call(D,String.prototype.slice);var G=L.call(D,RegExp.prototype.exec);var O=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g;var V=/\\(\\)?/g;var P=function stringToPath(e){var A=J(e,0,1);var t=J(e,-1);if(A==="%"&&t!=="%"){throw new c("invalid intrinsic syntax, expected closing `%`")}else if(t==="%"&&A!=="%"){throw new c("invalid intrinsic syntax, expected opening `%`")}var s=[];Y(e,O,(function(e,A,t,n){s[s.length]=t?Y(n,V,"$1"):A||e}));return s};var _=function getBaseIntrinsic(e,A){var t=e;var s;if(M(U,t)){s=U[t];t="%"+s[0]+"%"}if(M(S,t)){var n=S[t];if(n===v){n=N(t)}if(typeof n==="undefined"&&!A){throw new l("intrinsic "+e+" exists, but is not available. Please file an issue!")}return{alias:s,name:t,value:n}}throw new c("intrinsic "+e+" does not exist!")};e.exports=function GetIntrinsic(e,A){if(typeof e!=="string"||e.length===0){throw new l("intrinsic name must be a non-empty string")}if(arguments.length>1&&typeof A!=="boolean"){throw new l('"allowMissing" argument must be a boolean')}if(G(/^%?[^%]*%?$/,e)===null){throw new c("`%` may not be present anywhere but at the beginning and end of the intrinsic name")}var t=P(e);var n=t.length>0?t[0]:"";var i=_("%"+n+"%",A);var o=i.name;var r=i.value;var a=false;var u=i.alias;if(u){n=u[0];H(t,T([0,1],u))}for(var p=1,g=true;p=t.length){var Q=f(r,d);g=!!Q;if(g&&"get"in Q&&!("originalValue"in Q.get)){r=Q.get}else{r=r[d]}}else{g=M(r,d);r=r[d]}if(g&&!a){S[o]=r}}}return r}},5045:(e,A,t)=>{"use strict";var s=t(8308);e.exports=s.getPrototypeOf||null},8859:e=>{"use strict";e.exports=typeof Reflect!=="undefined"&&Reflect.getPrototypeOf||null},3592:(e,A,t)=>{"use strict";var s=t(8859);var n=t(5045);var i=t(2693);e.exports=s?function getProto(e){return s(e)}:n?function getProto(e){if(!e||typeof e!=="object"&&typeof e!=="function"){throw new TypeError("getProto: not an object")}return n(e)}:i?function getProto(e){return i(e)}:null},7087:e=>{"use strict";e.exports=Object.getOwnPropertyDescriptor},8501:(e,A,t)=>{"use strict";var s=t(7087);if(s){try{s([],"length")}catch(e){s=null}}e.exports=s},587:(e,A,t)=>{"use strict";var s=typeof Symbol!=="undefined"&&Symbol;var n=t(7747);e.exports=function hasNativeSymbols(){if(typeof s!=="function"){return false}if(typeof Symbol!=="function"){return false}if(typeof s("foo")!=="symbol"){return false}if(typeof Symbol("bar")!=="symbol"){return false}return n()}},7747:e=>{"use strict";e.exports=function hasSymbols(){if(typeof Symbol!=="function"||typeof Object.getOwnPropertySymbols!=="function"){return false}if(typeof Symbol.iterator==="symbol"){return true}var e={};var A=Symbol("test");var t=Object(A);if(typeof A==="string"){return false}if(Object.prototype.toString.call(A)!=="[object Symbol]"){return false}if(Object.prototype.toString.call(t)!=="[object Symbol]"){return false}var s=42;e[A]=s;for(var n in e){return false}if(typeof Object.keys==="function"&&Object.keys(e).length!==0){return false}if(typeof Object.getOwnPropertyNames==="function"&&Object.getOwnPropertyNames(e).length!==0){return false}var i=Object.getOwnPropertySymbols(e);if(i.length!==1||i[0]!==A){return false}if(!Object.prototype.propertyIsEnumerable.call(e,A)){return false}if(typeof Object.getOwnPropertyDescriptor==="function"){var o=Object.getOwnPropertyDescriptor(e,A);if(o.value!==s||o.enumerable!==true){return false}}return true}},9038:(e,A,t)=>{"use strict";var s=t(7747);e.exports=function hasToStringTagShams(){return s()&&!!Symbol.toStringTag}},2157:(e,A,t)=>{"use strict";var s=Function.prototype.call;var n=Object.prototype.hasOwnProperty;var i=t(8334);e.exports=i.call(s,n)},9775:e=>{"use strict";e.exports=Math.abs},924:e=>{"use strict";e.exports=Math.floor},7661:e=>{"use strict";e.exports=Number.isNaN||function isNaN(e){return e!==e}},2419:e=>{"use strict";e.exports=Math.max},3373:e=>{"use strict";e.exports=Math.min},8029:e=>{"use strict";e.exports=Math.pow},9396:e=>{"use strict";e.exports=Math.round},9091:(e,A,t)=>{"use strict";var s=t(7661);e.exports=function sign(e){if(s(e)||e===0){return e}return e<0?-1:+1}},7426:(e,A,t)=>{ +/*! + * mime-db + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2015-2022 Douglas Christopher Wilson + * MIT Licensed + */ +e.exports=t(3765)},3583:(e,A,t)=>{"use strict"; +/*! + * mime-types + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */var s=t(7426);var n=t(1017).extname;var i=/^\s*([^;\s]*)(?:;|\s|$)/;var o=/^text\//i;A.charset=charset;A.charsets={lookup:charset};A.contentType=contentType;A.extension=extension;A.extensions=Object.create(null);A.lookup=lookup;A.types=Object.create(null);populateMaps(A.extensions,A.types);function charset(e){if(!e||typeof e!=="string"){return false}var A=i.exec(e);var t=A&&s[A[1].toLowerCase()];if(t&&t.charset){return t.charset}if(A&&o.test(A[1])){return"UTF-8"}return false}function contentType(e){if(!e||typeof e!=="string"){return false}var t=e.indexOf("/")===-1?A.lookup(e):e;if(!t){return false}if(t.indexOf("charset")===-1){var s=A.charset(t);if(s)t+="; charset="+s.toLowerCase()}return t}function extension(e){if(!e||typeof e!=="string"){return false}var t=i.exec(e);var s=t&&A.extensions[t[1].toLowerCase()];if(!s||!s.length){return false}return s[0]}function lookup(e){if(!e||typeof e!=="string"){return false}var t=n("x."+e).toLowerCase().substr(1);if(!t){return false}return A.types[t]||false}function populateMaps(e,A){var t=["nginx","apache",undefined,"iana"];Object.keys(s).forEach((function forEachMimeType(n){var i=s[n];var o=i.extensions;if(!o||!o.length){return}e[n]=o;for(var r=0;rl||c===l&&A[a].substr(0,12)==="application/")){continue}}A[a]=n}}))}},3329:(e,A,t)=>{"use strict";var s=t(7310).parse;var n={ftp:21,gopher:70,http:80,https:443,ws:80,wss:443};var i=String.prototype.endsWith||function(e){return e.length<=this.length&&this.indexOf(e,this.length-e.length)!==-1};function getProxyForUrl(e){var A=typeof e==="string"?s(e):e||{};var t=A.protocol;var i=A.host;var o=A.port;if(typeof i!=="string"||!i||typeof t!=="string"){return""}t=t.split(":",1)[0];i=i.replace(/:\d*$/,"");o=parseInt(o)||n[t]||0;if(!shouldProxy(i,o)){return""}var r=getEnv("npm_config_"+t+"_proxy")||getEnv(t+"_proxy")||getEnv("npm_config_proxy")||getEnv("all_proxy");if(r&&r.indexOf("://")===-1){r=t+"://"+r}return r}function shouldProxy(e,A){var t=(getEnv("npm_config_no_proxy")||getEnv("no_proxy")).toLowerCase();if(!t){return true}if(t==="*"){return false}return t.split(/[,\s]/).every((function(t){if(!t){return true}var s=t.match(/^(.+):(\d+)$/);var n=s?s[1]:t;var o=s?parseInt(s[2]):0;if(o&&o!==A){return true}if(!/^[.*]/.test(n)){return e!==n}if(n.charAt(0)==="*"){n=n.slice(1)}return!i.call(e,n)}))}function getEnv(e){return process.env[e.toLowerCase()]||process.env[e.toUpperCase()]||""}A.getProxyForUrl=getProxyForUrl},4294:(e,A,t)=>{e.exports=t(4219)},4219:(e,A,t)=>{"use strict";var s=t(1808);var n=t(4404);var i=t(3685);var o=t(5687);var r=t(2361);var a=t(9491);var c=t(3837);A.httpOverHttp=httpOverHttp;A.httpsOverHttp=httpsOverHttp;A.httpOverHttps=httpOverHttps;A.httpsOverHttps=httpsOverHttps;function httpOverHttp(e){var A=new TunnelingAgent(e);A.request=i.request;return A}function httpsOverHttp(e){var A=new TunnelingAgent(e);A.request=i.request;A.createSocket=createSecureSocket;A.defaultPort=443;return A}function httpOverHttps(e){var A=new TunnelingAgent(e);A.request=o.request;return A}function httpsOverHttps(e){var A=new TunnelingAgent(e);A.request=o.request;A.createSocket=createSecureSocket;A.defaultPort=443;return A}function TunnelingAgent(e){var A=this;A.options=e||{};A.proxyOptions=A.options.proxy||{};A.maxSockets=A.options.maxSockets||i.Agent.defaultMaxSockets;A.requests=[];A.sockets=[];A.on("free",(function onFree(e,t,s,n){var i=toOptions(t,s,n);for(var o=0,r=A.requests.length;o=this.maxSockets){n.requests.push(i);return}n.createSocket(i,(function(A){A.on("free",onFree);A.on("close",onCloseOrRemove);A.on("agentRemove",onCloseOrRemove);e.onSocket(A);function onFree(){n.emit("free",A,i)}function onCloseOrRemove(e){n.removeSocket(A);A.removeListener("free",onFree);A.removeListener("close",onCloseOrRemove);A.removeListener("agentRemove",onCloseOrRemove)}}))};TunnelingAgent.prototype.createSocket=function createSocket(e,A){var t=this;var s={};t.sockets.push(s);var n=mergeOptions({},t.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:false,headers:{host:e.host+":"+e.port}});if(e.localAddress){n.localAddress=e.localAddress}if(n.proxyAuth){n.headers=n.headers||{};n.headers["Proxy-Authorization"]="Basic "+new Buffer(n.proxyAuth).toString("base64")}l("making CONNECT request");var i=t.request(n);i.useChunkedEncodingByDefault=false;i.once("response",onResponse);i.once("upgrade",onUpgrade);i.once("connect",onConnect);i.once("error",onError);i.end();function onResponse(e){e.upgrade=true}function onUpgrade(e,A,t){process.nextTick((function(){onConnect(e,A,t)}))}function onConnect(n,o,r){i.removeAllListeners();o.removeAllListeners();if(n.statusCode!==200){l("tunneling socket could not be established, statusCode=%d",n.statusCode);o.destroy();var a=new Error("tunneling socket could not be established, "+"statusCode="+n.statusCode);a.code="ECONNRESET";e.request.emit("error",a);t.removeSocket(s);return}if(r.length>0){l("got illegal response body from proxy");o.destroy();var a=new Error("got illegal response body from proxy");a.code="ECONNRESET";e.request.emit("error",a);t.removeSocket(s);return}l("tunneling connection has established");t.sockets[t.sockets.indexOf(s)]=o;return A(o)}function onError(A){i.removeAllListeners();l("tunneling socket could not be established, cause=%s\n",A.message,A.stack);var n=new Error("tunneling socket could not be established, "+"cause="+A.message);n.code="ECONNRESET";e.request.emit("error",n);t.removeSocket(s)}};TunnelingAgent.prototype.removeSocket=function removeSocket(e){var A=this.sockets.indexOf(e);if(A===-1){return}this.sockets.splice(A,1);var t=this.requests.shift();if(t){this.createSocket(t,(function(e){t.request.onSocket(e)}))}};function createSecureSocket(e,A){var t=this;TunnelingAgent.prototype.createSocket.call(t,e,(function(s){var i=e.request.getHeader("host");var o=mergeOptions({},t.options,{socket:s,servername:i?i.replace(/:.*$/,""):e.host});var r=n.connect(0,o);t.sockets[t.sockets.indexOf(s)]=r;A(r)}))}function toOptions(e,A,t){if(typeof e==="string"){return{host:e,port:A,localAddress:t}}return e}function mergeOptions(e){for(var A=1,t=arguments.length;A{"use strict";const s=t(3598);const n=t(412);const i=t(8045);const o=t(4634);const r=t(7931);const a=t(7890);const c=t(3983);const{InvalidArgumentError:l}=i;const u=t(4059);const p=t(2067);const g=t(8687);const d=t(6771);const E=t(6193);const h=t(888);const Q=t(7858);const C=t(2286);const{getGlobalDispatcher:B,setGlobalDispatcher:f}=t(1892);const I=t(6930);const m=t(2860);const y=t(8861);let b;try{t(6113);b=true}catch{b=false}Object.assign(n.prototype,u);e.exports.Dispatcher=n;e.exports.Client=s;e.exports.Pool=o;e.exports.BalancedPool=r;e.exports.Agent=a;e.exports.ProxyAgent=Q;e.exports.RetryHandler=C;e.exports.DecoratorHandler=I;e.exports.RedirectHandler=m;e.exports.createRedirectInterceptor=y;e.exports.buildConnector=p;e.exports.errors=i;function makeDispatcher(e){return(A,t,s)=>{if(typeof t==="function"){s=t;t=null}if(!A||typeof A!=="string"&&typeof A!=="object"&&!(A instanceof URL)){throw new l("invalid url")}if(t!=null&&typeof t!=="object"){throw new l("invalid opts")}if(t&&t.path!=null){if(typeof t.path!=="string"){throw new l("invalid opts.path")}let e=t.path;if(!t.path.startsWith("/")){e=`/${e}`}A=new URL(c.parseOrigin(A).origin+e)}else{if(!t){t=typeof A==="object"?A:{}}A=c.parseURL(A)}const{agent:n,dispatcher:i=B()}=t;if(n){throw new l("unsupported opts.agent. Did you mean opts.client?")}return e.call(i,{...t,origin:A.origin,path:A.search?`${A.pathname}${A.search}`:A.pathname,method:t.method||(t.body?"PUT":"GET")},s)}}e.exports.setGlobalDispatcher=f;e.exports.getGlobalDispatcher=B;if(c.nodeMajor>16||c.nodeMajor===16&&c.nodeMinor>=8){let A=null;e.exports.fetch=async function fetch(e){if(!A){A=t(4881).fetch}try{return await A(...arguments)}catch(e){if(typeof e==="object"){Error.captureStackTrace(e,this)}throw e}};e.exports.Headers=t(554).Headers;e.exports.Response=t(7823).Response;e.exports.Request=t(8359).Request;e.exports.FormData=t(2015).FormData;e.exports.File=t(8511).File;e.exports.FileReader=t(1446).FileReader;const{setGlobalOrigin:s,getGlobalOrigin:n}=t(1246);e.exports.setGlobalOrigin=s;e.exports.getGlobalOrigin=n;const{CacheStorage:i}=t(7907);const{kConstruct:o}=t(9174);e.exports.caches=new i(o)}if(c.nodeMajor>=16){const{deleteCookie:A,getCookies:s,getSetCookies:n,setCookie:i}=t(1724);e.exports.deleteCookie=A;e.exports.getCookies=s;e.exports.getSetCookies=n;e.exports.setCookie=i;const{parseMIMEType:o,serializeAMimeType:r}=t(685);e.exports.parseMIMEType=o;e.exports.serializeAMimeType=r}if(c.nodeMajor>=18&&b){const{WebSocket:A}=t(4284);e.exports.WebSocket=A}e.exports.request=makeDispatcher(u.request);e.exports.stream=makeDispatcher(u.stream);e.exports.pipeline=makeDispatcher(u.pipeline);e.exports.connect=makeDispatcher(u.connect);e.exports.upgrade=makeDispatcher(u.upgrade);e.exports.MockClient=g;e.exports.MockPool=E;e.exports.MockAgent=d;e.exports.mockErrors=h},7890:(e,A,t)=>{"use strict";const{InvalidArgumentError:s}=t(8045);const{kClients:n,kRunning:i,kClose:o,kDestroy:r,kDispatch:a,kInterceptors:c}=t(2785);const l=t(4839);const u=t(4634);const p=t(3598);const g=t(3983);const d=t(8861);const{WeakRef:E,FinalizationRegistry:h}=t(6436)();const Q=Symbol("onConnect");const C=Symbol("onDisconnect");const B=Symbol("onConnectionError");const f=Symbol("maxRedirections");const I=Symbol("onDrain");const m=Symbol("factory");const y=Symbol("finalizer");const b=Symbol("options");function defaultFactory(e,A){return A&&A.connections===1?new p(e,A):new u(e,A)}class Agent extends l{constructor({factory:e=defaultFactory,maxRedirections:A=0,connect:t,...i}={}){super();if(typeof e!=="function"){throw new s("factory must be a function.")}if(t!=null&&typeof t!=="function"&&typeof t!=="object"){throw new s("connect must be a function or an object")}if(!Number.isInteger(A)||A<0){throw new s("maxRedirections must be a positive number")}if(t&&typeof t!=="function"){t={...t}}this[c]=i.interceptors&&i.interceptors.Agent&&Array.isArray(i.interceptors.Agent)?i.interceptors.Agent:[d({maxRedirections:A})];this[b]={...g.deepClone(i),connect:t};this[b].interceptors=i.interceptors?{...i.interceptors}:undefined;this[f]=A;this[m]=e;this[n]=new Map;this[y]=new h((e=>{const A=this[n].get(e);if(A!==undefined&&A.deref()===undefined){this[n].delete(e)}}));const o=this;this[I]=(e,A)=>{o.emit("drain",e,[o,...A])};this[Q]=(e,A)=>{o.emit("connect",e,[o,...A])};this[C]=(e,A,t)=>{o.emit("disconnect",e,[o,...A],t)};this[B]=(e,A,t)=>{o.emit("connectionError",e,[o,...A],t)}}get[i](){let e=0;for(const A of this[n].values()){const t=A.deref();if(t){e+=t[i]}}return e}[a](e,A){let t;if(e.origin&&(typeof e.origin==="string"||e.origin instanceof URL)){t=String(e.origin)}else{throw new s("opts.origin must be a non-empty string or URL.")}const i=this[n].get(t);let o=i?i.deref():null;if(!o){o=this[m](e.origin,this[b]).on("drain",this[I]).on("connect",this[Q]).on("disconnect",this[C]).on("connectionError",this[B]);this[n].set(t,new E(o));this[y].register(o,t)}return o.dispatch(e,A)}async[o](){const e=[];for(const A of this[n].values()){const t=A.deref();if(t){e.push(t.close())}}await Promise.all(e)}async[r](e){const A=[];for(const t of this[n].values()){const s=t.deref();if(s){A.push(s.destroy(e))}}await Promise.all(A)}}e.exports=Agent},7032:(e,A,t)=>{const{addAbortListener:s}=t(3983);const{RequestAbortedError:n}=t(8045);const i=Symbol("kListener");const o=Symbol("kSignal");function abort(e){if(e.abort){e.abort()}else{e.onError(new n)}}function addSignal(e,A){e[o]=null;e[i]=null;if(!A){return}if(A.aborted){abort(e);return}e[o]=A;e[i]=()=>{abort(e)};s(e[o],e[i])}function removeSignal(e){if(!e[o]){return}if("removeEventListener"in e[o]){e[o].removeEventListener("abort",e[i])}else{e[o].removeListener("abort",e[i])}e[o]=null;e[i]=null}e.exports={addSignal:addSignal,removeSignal:removeSignal}},9744:(e,A,t)=>{"use strict";const{AsyncResource:s}=t(852);const{InvalidArgumentError:n,RequestAbortedError:i,SocketError:o}=t(8045);const r=t(3983);const{addSignal:a,removeSignal:c}=t(7032);class ConnectHandler extends s{constructor(e,A){if(!e||typeof e!=="object"){throw new n("invalid opts")}if(typeof A!=="function"){throw new n("invalid callback")}const{signal:t,opaque:s,responseHeaders:i}=e;if(t&&typeof t.on!=="function"&&typeof t.addEventListener!=="function"){throw new n("signal must be an EventEmitter or EventTarget")}super("UNDICI_CONNECT");this.opaque=s||null;this.responseHeaders=i||null;this.callback=A;this.abort=null;a(this,t)}onConnect(e,A){if(!this.callback){throw new i}this.abort=e;this.context=A}onHeaders(){throw new o("bad connect",null)}onUpgrade(e,A,t){const{callback:s,opaque:n,context:i}=this;c(this);this.callback=null;let o=A;if(o!=null){o=this.responseHeaders==="raw"?r.parseRawHeaders(A):r.parseHeaders(A)}this.runInAsyncScope(s,null,null,{statusCode:e,headers:o,socket:t,opaque:n,context:i})}onError(e){const{callback:A,opaque:t}=this;c(this);if(A){this.callback=null;queueMicrotask((()=>{this.runInAsyncScope(A,null,e,{opaque:t})}))}}}function connect(e,A){if(A===undefined){return new Promise(((A,t)=>{connect.call(this,e,((e,s)=>e?t(e):A(s)))}))}try{const t=new ConnectHandler(e,A);this.dispatch({...e,method:"CONNECT"},t)}catch(t){if(typeof A!=="function"){throw t}const s=e&&e.opaque;queueMicrotask((()=>A(t,{opaque:s})))}}e.exports=connect},8752:(e,A,t)=>{"use strict";const{Readable:s,Duplex:n,PassThrough:i}=t(2781);const{InvalidArgumentError:o,InvalidReturnValueError:r,RequestAbortedError:a}=t(8045);const c=t(3983);const{AsyncResource:l}=t(852);const{addSignal:u,removeSignal:p}=t(7032);const g=t(9491);const d=Symbol("resume");class PipelineRequest extends s{constructor(){super({autoDestroy:true});this[d]=null}_read(){const{[d]:e}=this;if(e){this[d]=null;e()}}_destroy(e,A){this._read();A(e)}}class PipelineResponse extends s{constructor(e){super({autoDestroy:true});this[d]=e}_read(){this[d]()}_destroy(e,A){if(!e&&!this._readableState.endEmitted){e=new a}A(e)}}class PipelineHandler extends l{constructor(e,A){if(!e||typeof e!=="object"){throw new o("invalid opts")}if(typeof A!=="function"){throw new o("invalid handler")}const{signal:t,method:s,opaque:i,onInfo:r,responseHeaders:l}=e;if(t&&typeof t.on!=="function"&&typeof t.addEventListener!=="function"){throw new o("signal must be an EventEmitter or EventTarget")}if(s==="CONNECT"){throw new o("invalid method")}if(r&&typeof r!=="function"){throw new o("invalid onInfo callback")}super("UNDICI_PIPELINE");this.opaque=i||null;this.responseHeaders=l||null;this.handler=A;this.abort=null;this.context=null;this.onInfo=r||null;this.req=(new PipelineRequest).on("error",c.nop);this.ret=new n({readableObjectMode:e.objectMode,autoDestroy:true,read:()=>{const{body:e}=this;if(e&&e.resume){e.resume()}},write:(e,A,t)=>{const{req:s}=this;if(s.push(e,A)||s._readableState.destroyed){t()}else{s[d]=t}},destroy:(e,A)=>{const{body:t,req:s,res:n,ret:i,abort:o}=this;if(!e&&!i._readableState.endEmitted){e=new a}if(o&&e){o()}c.destroy(t,e);c.destroy(s,e);c.destroy(n,e);p(this);A(e)}}).on("prefinish",(()=>{const{req:e}=this;e.push(null)}));this.res=null;u(this,t)}onConnect(e,A){const{ret:t,res:s}=this;g(!s,"pipeline cannot be retried");if(t.destroyed){throw new a}this.abort=e;this.context=A}onHeaders(e,A,t){const{opaque:s,handler:n,context:i}=this;if(e<200){if(this.onInfo){const t=this.responseHeaders==="raw"?c.parseRawHeaders(A):c.parseHeaders(A);this.onInfo({statusCode:e,headers:t})}return}this.res=new PipelineResponse(t);let o;try{this.handler=null;const t=this.responseHeaders==="raw"?c.parseRawHeaders(A):c.parseHeaders(A);o=this.runInAsyncScope(n,null,{statusCode:e,headers:t,opaque:s,body:this.res,context:i})}catch(e){this.res.on("error",c.nop);throw e}if(!o||typeof o.on!=="function"){throw new r("expected Readable")}o.on("data",(e=>{const{ret:A,body:t}=this;if(!A.push(e)&&t.pause){t.pause()}})).on("error",(e=>{const{ret:A}=this;c.destroy(A,e)})).on("end",(()=>{const{ret:e}=this;e.push(null)})).on("close",(()=>{const{ret:e}=this;if(!e._readableState.ended){c.destroy(e,new a)}}));this.body=o}onData(e){const{res:A}=this;return A.push(e)}onComplete(e){const{res:A}=this;A.push(null)}onError(e){const{ret:A}=this;this.handler=null;c.destroy(A,e)}}function pipeline(e,A){try{const t=new PipelineHandler(e,A);this.dispatch({...e,body:t.req},t);return t.ret}catch(e){return(new i).destroy(e)}}e.exports=pipeline},5448:(e,A,t)=>{"use strict";const s=t(3858);const{InvalidArgumentError:n,RequestAbortedError:i}=t(8045);const o=t(3983);const{getResolveErrorBodyCallback:r}=t(7474);const{AsyncResource:a}=t(852);const{addSignal:c,removeSignal:l}=t(7032);class RequestHandler extends a{constructor(e,A){if(!e||typeof e!=="object"){throw new n("invalid opts")}const{signal:t,method:s,opaque:i,body:r,onInfo:a,responseHeaders:l,throwOnError:u,highWaterMark:p}=e;try{if(typeof A!=="function"){throw new n("invalid callback")}if(p&&(typeof p!=="number"||p<0)){throw new n("invalid highWaterMark")}if(t&&typeof t.on!=="function"&&typeof t.addEventListener!=="function"){throw new n("signal must be an EventEmitter or EventTarget")}if(s==="CONNECT"){throw new n("invalid method")}if(a&&typeof a!=="function"){throw new n("invalid onInfo callback")}super("UNDICI_REQUEST")}catch(e){if(o.isStream(r)){o.destroy(r.on("error",o.nop),e)}throw e}this.responseHeaders=l||null;this.opaque=i||null;this.callback=A;this.res=null;this.abort=null;this.body=r;this.trailers={};this.context=null;this.onInfo=a||null;this.throwOnError=u;this.highWaterMark=p;if(o.isStream(r)){r.on("error",(e=>{this.onError(e)}))}c(this,t)}onConnect(e,A){if(!this.callback){throw new i}this.abort=e;this.context=A}onHeaders(e,A,t,n){const{callback:i,opaque:a,abort:c,context:l,responseHeaders:u,highWaterMark:p}=this;const g=u==="raw"?o.parseRawHeaders(A):o.parseHeaders(A);if(e<200){if(this.onInfo){this.onInfo({statusCode:e,headers:g})}return}const d=u==="raw"?o.parseHeaders(A):g;const E=d["content-type"];const h=new s({resume:t,abort:c,contentType:E,highWaterMark:p});this.callback=null;this.res=h;if(i!==null){if(this.throwOnError&&e>=400){this.runInAsyncScope(r,null,{callback:i,body:h,contentType:E,statusCode:e,statusMessage:n,headers:g})}else{this.runInAsyncScope(i,null,null,{statusCode:e,headers:g,trailers:this.trailers,opaque:a,body:h,context:l})}}}onData(e){const{res:A}=this;return A.push(e)}onComplete(e){const{res:A}=this;l(this);o.parseHeaders(e,this.trailers);A.push(null)}onError(e){const{res:A,callback:t,body:s,opaque:n}=this;l(this);if(t){this.callback=null;queueMicrotask((()=>{this.runInAsyncScope(t,null,e,{opaque:n})}))}if(A){this.res=null;queueMicrotask((()=>{o.destroy(A,e)}))}if(s){this.body=null;o.destroy(s,e)}}}function request(e,A){if(A===undefined){return new Promise(((A,t)=>{request.call(this,e,((e,s)=>e?t(e):A(s)))}))}try{this.dispatch(e,new RequestHandler(e,A))}catch(t){if(typeof A!=="function"){throw t}const s=e&&e.opaque;queueMicrotask((()=>A(t,{opaque:s})))}}e.exports=request;e.exports.RequestHandler=RequestHandler},5395:(e,A,t)=>{"use strict";const{finished:s,PassThrough:n}=t(2781);const{InvalidArgumentError:i,InvalidReturnValueError:o,RequestAbortedError:r}=t(8045);const a=t(3983);const{getResolveErrorBodyCallback:c}=t(7474);const{AsyncResource:l}=t(852);const{addSignal:u,removeSignal:p}=t(7032);class StreamHandler extends l{constructor(e,A,t){if(!e||typeof e!=="object"){throw new i("invalid opts")}const{signal:s,method:n,opaque:o,body:r,onInfo:c,responseHeaders:l,throwOnError:p}=e;try{if(typeof t!=="function"){throw new i("invalid callback")}if(typeof A!=="function"){throw new i("invalid factory")}if(s&&typeof s.on!=="function"&&typeof s.addEventListener!=="function"){throw new i("signal must be an EventEmitter or EventTarget")}if(n==="CONNECT"){throw new i("invalid method")}if(c&&typeof c!=="function"){throw new i("invalid onInfo callback")}super("UNDICI_STREAM")}catch(e){if(a.isStream(r)){a.destroy(r.on("error",a.nop),e)}throw e}this.responseHeaders=l||null;this.opaque=o||null;this.factory=A;this.callback=t;this.res=null;this.abort=null;this.context=null;this.trailers=null;this.body=r;this.onInfo=c||null;this.throwOnError=p||false;if(a.isStream(r)){r.on("error",(e=>{this.onError(e)}))}u(this,s)}onConnect(e,A){if(!this.callback){throw new r}this.abort=e;this.context=A}onHeaders(e,A,t,i){const{factory:r,opaque:l,context:u,callback:p,responseHeaders:g}=this;const d=g==="raw"?a.parseRawHeaders(A):a.parseHeaders(A);if(e<200){if(this.onInfo){this.onInfo({statusCode:e,headers:d})}return}this.factory=null;let E;if(this.throwOnError&&e>=400){const t=g==="raw"?a.parseHeaders(A):d;const s=t["content-type"];E=new n;this.callback=null;this.runInAsyncScope(c,null,{callback:p,body:E,contentType:s,statusCode:e,statusMessage:i,headers:d})}else{if(r===null){return}E=this.runInAsyncScope(r,null,{statusCode:e,headers:d,opaque:l,context:u});if(!E||typeof E.write!=="function"||typeof E.end!=="function"||typeof E.on!=="function"){throw new o("expected Writable")}s(E,{readable:false},(e=>{const{callback:A,res:t,opaque:s,trailers:n,abort:i}=this;this.res=null;if(e||!t.readable){a.destroy(t,e)}this.callback=null;this.runInAsyncScope(A,null,e||null,{opaque:s,trailers:n});if(e){i()}}))}E.on("drain",t);this.res=E;const h=E.writableNeedDrain!==undefined?E.writableNeedDrain:E._writableState&&E._writableState.needDrain;return h!==true}onData(e){const{res:A}=this;return A?A.write(e):true}onComplete(e){const{res:A}=this;p(this);if(!A){return}this.trailers=a.parseHeaders(e);A.end()}onError(e){const{res:A,callback:t,opaque:s,body:n}=this;p(this);this.factory=null;if(A){this.res=null;a.destroy(A,e)}else if(t){this.callback=null;queueMicrotask((()=>{this.runInAsyncScope(t,null,e,{opaque:s})}))}if(n){this.body=null;a.destroy(n,e)}}}function stream(e,A,t){if(t===undefined){return new Promise(((t,s)=>{stream.call(this,e,A,((e,A)=>e?s(e):t(A)))}))}try{this.dispatch(e,new StreamHandler(e,A,t))}catch(A){if(typeof t!=="function"){throw A}const s=e&&e.opaque;queueMicrotask((()=>t(A,{opaque:s})))}}e.exports=stream},6923:(e,A,t)=>{"use strict";const{InvalidArgumentError:s,RequestAbortedError:n,SocketError:i}=t(8045);const{AsyncResource:o}=t(852);const r=t(3983);const{addSignal:a,removeSignal:c}=t(7032);const l=t(9491);class UpgradeHandler extends o{constructor(e,A){if(!e||typeof e!=="object"){throw new s("invalid opts")}if(typeof A!=="function"){throw new s("invalid callback")}const{signal:t,opaque:n,responseHeaders:i}=e;if(t&&typeof t.on!=="function"&&typeof t.addEventListener!=="function"){throw new s("signal must be an EventEmitter or EventTarget")}super("UNDICI_UPGRADE");this.responseHeaders=i||null;this.opaque=n||null;this.callback=A;this.abort=null;this.context=null;a(this,t)}onConnect(e,A){if(!this.callback){throw new n}this.abort=e;this.context=null}onHeaders(){throw new i("bad upgrade",null)}onUpgrade(e,A,t){const{callback:s,opaque:n,context:i}=this;l.strictEqual(e,101);c(this);this.callback=null;const o=this.responseHeaders==="raw"?r.parseRawHeaders(A):r.parseHeaders(A);this.runInAsyncScope(s,null,null,{headers:o,socket:t,opaque:n,context:i})}onError(e){const{callback:A,opaque:t}=this;c(this);if(A){this.callback=null;queueMicrotask((()=>{this.runInAsyncScope(A,null,e,{opaque:t})}))}}}function upgrade(e,A){if(A===undefined){return new Promise(((A,t)=>{upgrade.call(this,e,((e,s)=>e?t(e):A(s)))}))}try{const t=new UpgradeHandler(e,A);this.dispatch({...e,method:e.method||"GET",upgrade:e.protocol||"Websocket"},t)}catch(t){if(typeof A!=="function"){throw t}const s=e&&e.opaque;queueMicrotask((()=>A(t,{opaque:s})))}}e.exports=upgrade},4059:(e,A,t)=>{"use strict";e.exports.request=t(5448);e.exports.stream=t(5395);e.exports.pipeline=t(8752);e.exports.upgrade=t(6923);e.exports.connect=t(9744)},3858:(e,A,t)=>{"use strict";const s=t(9491);const{Readable:n}=t(2781);const{RequestAbortedError:i,NotSupportedError:o,InvalidArgumentError:r}=t(8045);const a=t(3983);const{ReadableStreamFrom:c,toUSVString:l}=t(3983);let u;const p=Symbol("kConsume");const g=Symbol("kReading");const d=Symbol("kBody");const E=Symbol("abort");const h=Symbol("kContentType");const noop=()=>{};e.exports=class BodyReadable extends n{constructor({resume:e,abort:A,contentType:t="",highWaterMark:s=64*1024}){super({autoDestroy:true,read:e,highWaterMark:s});this._readableState.dataEmitted=false;this[E]=A;this[p]=null;this[d]=null;this[h]=t;this[g]=false}destroy(e){if(this.destroyed){return this}if(!e&&!this._readableState.endEmitted){e=new i}if(e){this[E]()}return super.destroy(e)}emit(e,...A){if(e==="data"){this._readableState.dataEmitted=true}else if(e==="error"){this._readableState.errorEmitted=true}return super.emit(e,...A)}on(e,...A){if(e==="data"||e==="readable"){this[g]=true}return super.on(e,...A)}addListener(e,...A){return this.on(e,...A)}off(e,...A){const t=super.off(e,...A);if(e==="data"||e==="readable"){this[g]=this.listenerCount("data")>0||this.listenerCount("readable")>0}return t}removeListener(e,...A){return this.off(e,...A)}push(e){if(this[p]&&e!==null&&this.readableLength===0){consumePush(this[p],e);return this[g]?super.push(e):true}return super.push(e)}async text(){return consume(this,"text")}async json(){return consume(this,"json")}async blob(){return consume(this,"blob")}async arrayBuffer(){return consume(this,"arrayBuffer")}async formData(){throw new o}get bodyUsed(){return a.isDisturbed(this)}get body(){if(!this[d]){this[d]=c(this);if(this[p]){this[d].getReader();s(this[d].locked)}}return this[d]}dump(e){let A=e&&Number.isFinite(e.limit)?e.limit:262144;const t=e&&e.signal;if(t){try{if(typeof t!=="object"||!("aborted"in t)){throw new r("signal must be an AbortSignal")}a.throwIfAborted(t)}catch(e){return Promise.reject(e)}}if(this.closed){return Promise.resolve(null)}return new Promise(((e,s)=>{const n=t?a.addAbortListener(t,(()=>{this.destroy()})):noop;this.on("close",(function(){n();if(t&&t.aborted){s(t.reason||Object.assign(new Error("The operation was aborted"),{name:"AbortError"}))}else{e(null)}})).on("error",noop).on("data",(function(e){A-=e.length;if(A<=0){this.destroy()}})).resume()}))}};function isLocked(e){return e[d]&&e[d].locked===true||e[p]}function isUnusable(e){return a.isDisturbed(e)||isLocked(e)}async function consume(e,A){if(isUnusable(e)){throw new TypeError("unusable")}s(!e[p]);return new Promise(((t,s)=>{e[p]={type:A,stream:e,resolve:t,reject:s,length:0,body:[]};e.on("error",(function(e){consumeFinish(this[p],e)})).on("close",(function(){if(this[p].body!==null){consumeFinish(this[p],new i)}}));process.nextTick(consumeStart,e[p])}))}function consumeStart(e){if(e.body===null){return}const{_readableState:A}=e.stream;for(const t of A.buffer){consumePush(e,t)}if(A.endEmitted){consumeEnd(this[p])}else{e.stream.on("end",(function(){consumeEnd(this[p])}))}e.stream.resume();while(e.stream.read()!=null){}}function consumeEnd(e){const{type:A,body:s,resolve:n,stream:i,length:o}=e;try{if(A==="text"){n(l(Buffer.concat(s)))}else if(A==="json"){n(JSON.parse(Buffer.concat(s)))}else if(A==="arrayBuffer"){const e=new Uint8Array(o);let A=0;for(const t of s){e.set(t,A);A+=t.byteLength}n(e.buffer)}else if(A==="blob"){if(!u){u=t(4300).Blob}n(new u(s,{type:i[h]}))}consumeFinish(e)}catch(e){i.destroy(e)}}function consumePush(e,A){e.length+=A.length;e.body.push(A)}function consumeFinish(e,A){if(e.body===null){return}if(A){e.reject(A)}else{e.resolve()}e.type=null;e.stream=null;e.resolve=null;e.reject=null;e.length=0;e.body=null}},7474:(e,A,t)=>{const s=t(9491);const{ResponseStatusCodeError:n}=t(8045);const{toUSVString:i}=t(3983);async function getResolveErrorBodyCallback({callback:e,body:A,contentType:t,statusCode:o,statusMessage:r,headers:a}){s(A);let c=[];let l=0;for await(const e of A){c.push(e);l+=e.length;if(l>128*1024){c=null;break}}if(o===204||!t||!c){process.nextTick(e,new n(`Response status code ${o}${r?`: ${r}`:""}`,o,a));return}try{if(t.startsWith("application/json")){const A=JSON.parse(i(Buffer.concat(c)));process.nextTick(e,new n(`Response status code ${o}${r?`: ${r}`:""}`,o,a,A));return}if(t.startsWith("text/")){const A=i(Buffer.concat(c));process.nextTick(e,new n(`Response status code ${o}${r?`: ${r}`:""}`,o,a,A));return}}catch(e){}process.nextTick(e,new n(`Response status code ${o}${r?`: ${r}`:""}`,o,a))}e.exports={getResolveErrorBodyCallback:getResolveErrorBodyCallback}},7931:(e,A,t)=>{"use strict";const{BalancedPoolMissingUpstreamError:s,InvalidArgumentError:n}=t(8045);const{PoolBase:i,kClients:o,kNeedDrain:r,kAddClient:a,kRemoveClient:c,kGetDispatcher:l}=t(3198);const u=t(4634);const{kUrl:p,kInterceptors:g}=t(2785);const{parseOrigin:d}=t(3983);const E=Symbol("factory");const h=Symbol("options");const Q=Symbol("kGreatestCommonDivisor");const C=Symbol("kCurrentWeight");const B=Symbol("kIndex");const f=Symbol("kWeight");const I=Symbol("kMaxWeightPerServer");const m=Symbol("kErrorPenalty");function getGreatestCommonDivisor(e,A){if(A===0)return e;return getGreatestCommonDivisor(A,e%A)}function defaultFactory(e,A){return new u(e,A)}class BalancedPool extends i{constructor(e=[],{factory:A=defaultFactory,...t}={}){super();this[h]=t;this[B]=-1;this[C]=0;this[I]=this[h].maxWeightPerServer||100;this[m]=this[h].errorPenalty||15;if(!Array.isArray(e)){e=[e]}if(typeof A!=="function"){throw new n("factory must be a function.")}this[g]=t.interceptors&&t.interceptors.BalancedPool&&Array.isArray(t.interceptors.BalancedPool)?t.interceptors.BalancedPool:[];this[E]=A;for(const A of e){this.addUpstream(A)}this._updateBalancedPoolStats()}addUpstream(e){const A=d(e).origin;if(this[o].find((e=>e[p].origin===A&&e.closed!==true&&e.destroyed!==true))){return this}const t=this[E](A,Object.assign({},this[h]));this[a](t);t.on("connect",(()=>{t[f]=Math.min(this[I],t[f]+this[m])}));t.on("connectionError",(()=>{t[f]=Math.max(1,t[f]-this[m]);this._updateBalancedPoolStats()}));t.on("disconnect",((...e)=>{const A=e[2];if(A&&A.code==="UND_ERR_SOCKET"){t[f]=Math.max(1,t[f]-this[m]);this._updateBalancedPoolStats()}}));for(const e of this[o]){e[f]=this[I]}this._updateBalancedPoolStats();return this}_updateBalancedPoolStats(){this[Q]=this[o].map((e=>e[f])).reduce(getGreatestCommonDivisor,0)}removeUpstream(e){const A=d(e).origin;const t=this[o].find((e=>e[p].origin===A&&e.closed!==true&&e.destroyed!==true));if(t){this[c](t)}return this}get upstreams(){return this[o].filter((e=>e.closed!==true&&e.destroyed!==true)).map((e=>e[p].origin))}[l](){if(this[o].length===0){throw new s}const e=this[o].find((e=>!e[r]&&e.closed!==true&&e.destroyed!==true));if(!e){return}const A=this[o].map((e=>e[r])).reduce(((e,A)=>e&&A),true);if(A){return}let t=0;let n=this[o].findIndex((e=>!e[r]));while(t++this[o][n][f]&&!e[r]){n=this[B]}if(this[B]===0){this[C]=this[C]-this[Q];if(this[C]<=0){this[C]=this[I]}}if(e[f]>=this[C]&&!e[r]){return e}}this[C]=this[o][n][f];this[B]=n;return this[o][n]}}e.exports=BalancedPool},6101:(e,A,t)=>{"use strict";const{kConstruct:s}=t(9174);const{urlEquals:n,fieldValues:i}=t(2396);const{kEnumerableProperty:o,isDisturbed:r}=t(3983);const{kHeadersList:a}=t(2785);const{webidl:c}=t(1744);const{Response:l,cloneResponse:u}=t(7823);const{Request:p}=t(8359);const{kState:g,kHeaders:d,kGuard:E,kRealm:h}=t(5861);const{fetching:Q}=t(4881);const{urlIsHttpHttpsScheme:C,createDeferredPromise:B,readAllBytes:f}=t(2538);const I=t(9491);const{getGlobalDispatcher:m}=t(1892);class Cache{#e;constructor(){if(arguments[0]!==s){c.illegalConstructor()}this.#e=arguments[1]}async match(e,A={}){c.brandCheck(this,Cache);c.argumentLengthCheck(arguments,1,{header:"Cache.match"});e=c.converters.RequestInfo(e);A=c.converters.CacheQueryOptions(A);const t=await this.matchAll(e,A);if(t.length===0){return}return t[0]}async matchAll(e=undefined,A={}){c.brandCheck(this,Cache);if(e!==undefined)e=c.converters.RequestInfo(e);A=c.converters.CacheQueryOptions(A);let t=null;if(e!==undefined){if(e instanceof p){t=e[g];if(t.method!=="GET"&&!A.ignoreMethod){return[]}}else if(typeof e==="string"){t=new p(e)[g]}}const s=[];if(e===undefined){for(const e of this.#e){s.push(e[1])}}else{const e=this.#A(t,A);for(const A of e){s.push(A[1])}}const n=[];for(const e of s){const A=new l(e.body?.source??null);const t=A[g].body;A[g]=e;A[g].body=t;A[d][a]=e.headersList;A[d][E]="immutable";n.push(A)}return Object.freeze(n)}async add(e){c.brandCheck(this,Cache);c.argumentLengthCheck(arguments,1,{header:"Cache.add"});e=c.converters.RequestInfo(e);const A=[e];const t=this.addAll(A);return await t}async addAll(e){c.brandCheck(this,Cache);c.argumentLengthCheck(arguments,1,{header:"Cache.addAll"});e=c.converters["sequence"](e);const A=[];const t=[];for(const A of e){if(typeof A==="string"){continue}const e=A[g];if(!C(e.url)||e.method!=="GET"){throw c.errors.exception({header:"Cache.addAll",message:"Expected http/s scheme when method is not GET."})}}const s=[];for(const n of e){const e=new p(n)[g];if(!C(e.url)){throw c.errors.exception({header:"Cache.addAll",message:"Expected http/s scheme."})}e.initiator="fetch";e.destination="subresource";t.push(e);const o=B();s.push(Q({request:e,dispatcher:m(),processResponse(e){if(e.type==="error"||e.status===206||e.status<200||e.status>299){o.reject(c.errors.exception({header:"Cache.addAll",message:"Received an invalid status code or the request failed."}))}else if(e.headersList.contains("vary")){const A=i(e.headersList.get("vary"));for(const e of A){if(e==="*"){o.reject(c.errors.exception({header:"Cache.addAll",message:"invalid vary field value"}));for(const e of s){e.abort()}return}}}},processResponseEndOfBody(e){if(e.aborted){o.reject(new DOMException("aborted","AbortError"));return}o.resolve(e)}}));A.push(o.promise)}const n=Promise.all(A);const o=await n;const r=[];let a=0;for(const e of o){const A={type:"put",request:t[a],response:e};r.push(A);a++}const l=B();let u=null;try{this.#t(r)}catch(e){u=e}queueMicrotask((()=>{if(u===null){l.resolve(undefined)}else{l.reject(u)}}));return l.promise}async put(e,A){c.brandCheck(this,Cache);c.argumentLengthCheck(arguments,2,{header:"Cache.put"});e=c.converters.RequestInfo(e);A=c.converters.Response(A);let t=null;if(e instanceof p){t=e[g]}else{t=new p(e)[g]}if(!C(t.url)||t.method!=="GET"){throw c.errors.exception({header:"Cache.put",message:"Expected an http/s scheme when method is not GET"})}const s=A[g];if(s.status===206){throw c.errors.exception({header:"Cache.put",message:"Got 206 status"})}if(s.headersList.contains("vary")){const e=i(s.headersList.get("vary"));for(const A of e){if(A==="*"){throw c.errors.exception({header:"Cache.put",message:"Got * vary field value"})}}}if(s.body&&(r(s.body.stream)||s.body.stream.locked)){throw c.errors.exception({header:"Cache.put",message:"Response body is locked or disturbed"})}const n=u(s);const o=B();if(s.body!=null){const e=s.body.stream;const A=e.getReader();f(A).then(o.resolve,o.reject)}else{o.resolve(undefined)}const a=[];const l={type:"put",request:t,response:n};a.push(l);const d=await o.promise;if(n.body!=null){n.body.source=d}const E=B();let h=null;try{this.#t(a)}catch(e){h=e}queueMicrotask((()=>{if(h===null){E.resolve()}else{E.reject(h)}}));return E.promise}async delete(e,A={}){c.brandCheck(this,Cache);c.argumentLengthCheck(arguments,1,{header:"Cache.delete"});e=c.converters.RequestInfo(e);A=c.converters.CacheQueryOptions(A);let t=null;if(e instanceof p){t=e[g];if(t.method!=="GET"&&!A.ignoreMethod){return false}}else{I(typeof e==="string");t=new p(e)[g]}const s=[];const n={type:"delete",request:t,options:A};s.push(n);const i=B();let o=null;let r;try{r=this.#t(s)}catch(e){o=e}queueMicrotask((()=>{if(o===null){i.resolve(!!r?.length)}else{i.reject(o)}}));return i.promise}async keys(e=undefined,A={}){c.brandCheck(this,Cache);if(e!==undefined)e=c.converters.RequestInfo(e);A=c.converters.CacheQueryOptions(A);let t=null;if(e!==undefined){if(e instanceof p){t=e[g];if(t.method!=="GET"&&!A.ignoreMethod){return[]}}else if(typeof e==="string"){t=new p(e)[g]}}const s=B();const n=[];if(e===undefined){for(const e of this.#e){n.push(e[0])}}else{const e=this.#A(t,A);for(const A of e){n.push(A[0])}}queueMicrotask((()=>{const e=[];for(const A of n){const t=new p("https://a");t[g]=A;t[d][a]=A.headersList;t[d][E]="immutable";t[h]=A.client;e.push(t)}s.resolve(Object.freeze(e))}));return s.promise}#t(e){const A=this.#e;const t=[...A];const s=[];const n=[];try{for(const t of e){if(t.type!=="delete"&&t.type!=="put"){throw c.errors.exception({header:"Cache.#batchCacheOperations",message:'operation type does not match "delete" or "put"'})}if(t.type==="delete"&&t.response!=null){throw c.errors.exception({header:"Cache.#batchCacheOperations",message:"delete operation should not have an associated response"})}if(this.#A(t.request,t.options,s).length){throw new DOMException("???","InvalidStateError")}let e;if(t.type==="delete"){e=this.#A(t.request,t.options);if(e.length===0){return[]}for(const t of e){const e=A.indexOf(t);I(e!==-1);A.splice(e,1)}}else if(t.type==="put"){if(t.response==null){throw c.errors.exception({header:"Cache.#batchCacheOperations",message:"put operation should have an associated response"})}const n=t.request;if(!C(n.url)){throw c.errors.exception({header:"Cache.#batchCacheOperations",message:"expected http or https scheme"})}if(n.method!=="GET"){throw c.errors.exception({header:"Cache.#batchCacheOperations",message:"not get method"})}if(t.options!=null){throw c.errors.exception({header:"Cache.#batchCacheOperations",message:"options must not be defined"})}e=this.#A(t.request);for(const t of e){const e=A.indexOf(t);I(e!==-1);A.splice(e,1)}A.push([t.request,t.response]);s.push([t.request,t.response])}n.push([t.request,t.response])}return n}catch(e){this.#e.length=0;this.#e=t;throw e}}#A(e,A,t){const s=[];const n=t??this.#e;for(const t of n){const[n,i]=t;if(this.#s(e,n,i,A)){s.push(t)}}return s}#s(e,A,t=null,s){const o=new URL(e.url);const r=new URL(A.url);if(s?.ignoreSearch){r.search="";o.search=""}if(!n(o,r,true)){return false}if(t==null||s?.ignoreVary||!t.headersList.contains("vary")){return true}const a=i(t.headersList.get("vary"));for(const t of a){if(t==="*"){return false}const s=A.headersList.get(t);const n=e.headersList.get(t);if(s!==n){return false}}return true}}Object.defineProperties(Cache.prototype,{[Symbol.toStringTag]:{value:"Cache",configurable:true},match:o,matchAll:o,add:o,addAll:o,put:o,delete:o,keys:o});const y=[{key:"ignoreSearch",converter:c.converters.boolean,defaultValue:false},{key:"ignoreMethod",converter:c.converters.boolean,defaultValue:false},{key:"ignoreVary",converter:c.converters.boolean,defaultValue:false}];c.converters.CacheQueryOptions=c.dictionaryConverter(y);c.converters.MultiCacheQueryOptions=c.dictionaryConverter([...y,{key:"cacheName",converter:c.converters.DOMString}]);c.converters.Response=c.interfaceConverter(l);c.converters["sequence"]=c.sequenceConverter(c.converters.RequestInfo);e.exports={Cache:Cache}},7907:(e,A,t)=>{"use strict";const{kConstruct:s}=t(9174);const{Cache:n}=t(6101);const{webidl:i}=t(1744);const{kEnumerableProperty:o}=t(3983);class CacheStorage{#n=new Map;constructor(){if(arguments[0]!==s){i.illegalConstructor()}}async match(e,A={}){i.brandCheck(this,CacheStorage);i.argumentLengthCheck(arguments,1,{header:"CacheStorage.match"});e=i.converters.RequestInfo(e);A=i.converters.MultiCacheQueryOptions(A);if(A.cacheName!=null){if(this.#n.has(A.cacheName)){const t=this.#n.get(A.cacheName);const i=new n(s,t);return await i.match(e,A)}}else{for(const t of this.#n.values()){const i=new n(s,t);const o=await i.match(e,A);if(o!==undefined){return o}}}}async has(e){i.brandCheck(this,CacheStorage);i.argumentLengthCheck(arguments,1,{header:"CacheStorage.has"});e=i.converters.DOMString(e);return this.#n.has(e)}async open(e){i.brandCheck(this,CacheStorage);i.argumentLengthCheck(arguments,1,{header:"CacheStorage.open"});e=i.converters.DOMString(e);if(this.#n.has(e)){const A=this.#n.get(e);return new n(s,A)}const A=[];this.#n.set(e,A);return new n(s,A)}async delete(e){i.brandCheck(this,CacheStorage);i.argumentLengthCheck(arguments,1,{header:"CacheStorage.delete"});e=i.converters.DOMString(e);return this.#n.delete(e)}async keys(){i.brandCheck(this,CacheStorage);const e=this.#n.keys();return[...e]}}Object.defineProperties(CacheStorage.prototype,{[Symbol.toStringTag]:{value:"CacheStorage",configurable:true},match:o,has:o,open:o,delete:o,keys:o});e.exports={CacheStorage:CacheStorage}},9174:(e,A,t)=>{"use strict";e.exports={kConstruct:t(2785).kConstruct}},2396:(e,A,t)=>{"use strict";const s=t(9491);const{URLSerializer:n}=t(685);const{isValidHeaderName:i}=t(2538);function urlEquals(e,A,t=false){const s=n(e,t);const i=n(A,t);return s===i}function fieldValues(e){s(e!==null);const A=[];for(let t of e.split(",")){t=t.trim();if(!t.length){continue}else if(!i(t)){continue}A.push(t)}return A}e.exports={urlEquals:urlEquals,fieldValues:fieldValues}},3598:(e,A,t)=>{"use strict";const s=t(9491);const n=t(1808);const i=t(3685);const{pipeline:o}=t(2781);const r=t(3983);const a=t(9459);const c=t(2905);const l=t(4839);const{RequestContentLengthMismatchError:u,ResponseContentLengthMismatchError:p,InvalidArgumentError:g,RequestAbortedError:d,HeadersTimeoutError:E,HeadersOverflowError:h,SocketError:Q,InformationalError:C,BodyTimeoutError:B,HTTPParserError:f,ResponseExceededMaxSizeError:I,ClientDestroyedError:m}=t(8045);const y=t(2067);const{kUrl:b,kReset:w,kServerName:R,kClient:x,kBusy:D,kParser:v,kConnect:k,kBlocking:S,kResuming:F,kRunning:N,kPending:U,kSize:L,kWriting:M,kQueue:T,kConnected:H,kConnecting:Y,kNeedDrain:J,kNoRef:G,kKeepAliveDefaultTimeout:O,kHostHeader:V,kPendingIdx:P,kRunningIdx:_,kError:q,kPipelining:W,kSocket:j,kKeepAliveTimeoutValue:z,kMaxHeadersSize:Z,kKeepAliveMaxTimeout:X,kKeepAliveTimeoutThreshold:K,kHeadersTimeout:$,kBodyTimeout:ee,kStrictContentLength:Ae,kConnector:te,kMaxRedirections:se,kMaxRequests:ne,kCounter:ie,kClose:oe,kDestroy:re,kDispatch:ae,kInterceptors:ce,kLocalAddress:le,kMaxResponseSize:ue,kHTTPConnVersion:pe,kHost:ge,kHTTP2Session:de,kHTTP2SessionState:Ee,kHTTP2BuildRequest:he,kHTTP2CopyHeaders:Qe,kHTTP1BuildRequest:Ce}=t(2785);let Be;try{Be=t(5158)}catch{Be={constants:{}}}const{constants:{HTTP2_HEADER_AUTHORITY:fe,HTTP2_HEADER_METHOD:Ie,HTTP2_HEADER_PATH:me,HTTP2_HEADER_SCHEME:ye,HTTP2_HEADER_CONTENT_LENGTH:be,HTTP2_HEADER_EXPECT:we,HTTP2_HEADER_STATUS:Re}}=Be;let xe=false;const De=Buffer[Symbol.species];const ve=Symbol("kClosedResolve");const ke={};try{const e=t(7643);ke.sendHeaders=e.channel("undici:client:sendHeaders");ke.beforeConnect=e.channel("undici:client:beforeConnect");ke.connectError=e.channel("undici:client:connectError");ke.connected=e.channel("undici:client:connected")}catch{ke.sendHeaders={hasSubscribers:false};ke.beforeConnect={hasSubscribers:false};ke.connectError={hasSubscribers:false};ke.connected={hasSubscribers:false}}class Client extends l{constructor(e,{interceptors:A,maxHeaderSize:t,headersTimeout:s,socketTimeout:o,requestTimeout:a,connectTimeout:c,bodyTimeout:l,idleTimeout:u,keepAlive:p,keepAliveTimeout:d,maxKeepAliveTimeout:E,keepAliveMaxTimeout:h,keepAliveTimeoutThreshold:Q,socketPath:C,pipelining:B,tls:f,strictContentLength:I,maxCachedSessions:m,maxRedirections:w,connect:x,maxRequestsPerClient:D,localAddress:v,maxResponseSize:k,autoSelectFamily:S,autoSelectFamilyAttemptTimeout:N,allowH2:U,maxConcurrentStreams:L}={}){super();if(p!==undefined){throw new g("unsupported keepAlive, use pipelining=0 instead")}if(o!==undefined){throw new g("unsupported socketTimeout, use headersTimeout & bodyTimeout instead")}if(a!==undefined){throw new g("unsupported requestTimeout, use headersTimeout & bodyTimeout instead")}if(u!==undefined){throw new g("unsupported idleTimeout, use keepAliveTimeout instead")}if(E!==undefined){throw new g("unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead")}if(t!=null&&!Number.isFinite(t)){throw new g("invalid maxHeaderSize")}if(C!=null&&typeof C!=="string"){throw new g("invalid socketPath")}if(c!=null&&(!Number.isFinite(c)||c<0)){throw new g("invalid connectTimeout")}if(d!=null&&(!Number.isFinite(d)||d<=0)){throw new g("invalid keepAliveTimeout")}if(h!=null&&(!Number.isFinite(h)||h<=0)){throw new g("invalid keepAliveMaxTimeout")}if(Q!=null&&!Number.isFinite(Q)){throw new g("invalid keepAliveTimeoutThreshold")}if(s!=null&&(!Number.isInteger(s)||s<0)){throw new g("headersTimeout must be a positive integer or zero")}if(l!=null&&(!Number.isInteger(l)||l<0)){throw new g("bodyTimeout must be a positive integer or zero")}if(x!=null&&typeof x!=="function"&&typeof x!=="object"){throw new g("connect must be a function or an object")}if(w!=null&&(!Number.isInteger(w)||w<0)){throw new g("maxRedirections must be a positive number")}if(D!=null&&(!Number.isInteger(D)||D<0)){throw new g("maxRequestsPerClient must be a positive number")}if(v!=null&&(typeof v!=="string"||n.isIP(v)===0)){throw new g("localAddress must be valid string IP address")}if(k!=null&&(!Number.isInteger(k)||k<-1)){throw new g("maxResponseSize must be a positive number")}if(N!=null&&(!Number.isInteger(N)||N<-1)){throw new g("autoSelectFamilyAttemptTimeout must be a positive number")}if(U!=null&&typeof U!=="boolean"){throw new g("allowH2 must be a valid boolean value")}if(L!=null&&(typeof L!=="number"||L<1)){throw new g("maxConcurrentStreams must be a possitive integer, greater than 0")}if(typeof x!=="function"){x=y({...f,maxCachedSessions:m,allowH2:U,socketPath:C,timeout:c,...r.nodeHasAutoSelectFamily&&S?{autoSelectFamily:S,autoSelectFamilyAttemptTimeout:N}:undefined,...x})}this[ce]=A&&A.Client&&Array.isArray(A.Client)?A.Client:[Fe({maxRedirections:w})];this[b]=r.parseOrigin(e);this[te]=x;this[j]=null;this[W]=B!=null?B:1;this[Z]=t||i.maxHeaderSize;this[O]=d==null?4e3:d;this[X]=h==null?6e5:h;this[K]=Q==null?1e3:Q;this[z]=this[O];this[R]=null;this[le]=v!=null?v:null;this[F]=0;this[J]=0;this[V]=`host: ${this[b].hostname}${this[b].port?`:${this[b].port}`:""}\r\n`;this[ee]=l!=null?l:3e5;this[$]=s!=null?s:3e5;this[Ae]=I==null?true:I;this[se]=w;this[ne]=D;this[ve]=null;this[ue]=k>-1?k:-1;this[pe]="h1";this[de]=null;this[Ee]=!U?null:{openStreams:0,maxConcurrentStreams:L!=null?L:100};this[ge]=`${this[b].hostname}${this[b].port?`:${this[b].port}`:""}`;this[T]=[];this[_]=0;this[P]=0}get pipelining(){return this[W]}set pipelining(e){this[W]=e;resume(this,true)}get[U](){return this[T].length-this[P]}get[N](){return this[P]-this[_]}get[L](){return this[T].length-this[_]}get[H](){return!!this[j]&&!this[Y]&&!this[j].destroyed}get[D](){const e=this[j];return e&&(e[w]||e[M]||e[S])||this[L]>=(this[W]||1)||this[U]>0}[k](e){connect(this);this.once("connect",e)}[ae](e,A){const t=e.origin||this[b].origin;const s=this[pe]==="h2"?c[he](t,e,A):c[Ce](t,e,A);this[T].push(s);if(this[F]){}else if(r.bodyLength(s.body)==null&&r.isIterable(s.body)){this[F]=1;process.nextTick(resume,this)}else{resume(this,true)}if(this[F]&&this[J]!==2&&this[D]){this[J]=2}return this[J]<2}async[oe](){return new Promise((e=>{if(!this[L]){e(null)}else{this[ve]=e}}))}async[re](e){return new Promise((A=>{const t=this[T].splice(this[P]);for(let A=0;A{if(this[ve]){this[ve]();this[ve]=null}A()};if(this[de]!=null){r.destroy(this[de],e);this[de]=null;this[Ee]=null}if(!this[j]){queueMicrotask(callback)}else{r.destroy(this[j].on("close",callback),e)}resume(this)}))}}function onHttp2SessionError(e){s(e.code!=="ERR_TLS_CERT_ALTNAME_INVALID");this[j][q]=e;onError(this[x],e)}function onHttp2FrameError(e,A,t){const s=new C(`HTTP/2: "frameError" received - type ${e}, code ${A}`);if(t===0){this[j][q]=s;onError(this[x],s)}}function onHttp2SessionEnd(){r.destroy(this,new Q("other side closed"));r.destroy(this[j],new Q("other side closed"))}function onHTTP2GoAway(e){const A=this[x];const t=new C(`HTTP/2: "GOAWAY" frame received with code ${e}`);A[j]=null;A[de]=null;if(A.destroyed){s(this[U]===0);const e=A[T].splice(A[_]);for(let A=0;A0){const e=A[T][A[_]];A[T][A[_]++]=null;errorRequest(A,e,t)}A[P]=A[_];s(A[N]===0);A.emit("disconnect",A[b],[A],t);resume(A)}const Se=t(953);const Fe=t(8861);const Ne=Buffer.alloc(0);async function lazyllhttp(){const e=process.env.JEST_WORKER_ID?t(1145):undefined;let A;try{A=await WebAssembly.compile(Buffer.from(t(5627),"base64"))}catch(s){A=await WebAssembly.compile(Buffer.from(e||t(1145),"base64"))}return await WebAssembly.instantiate(A,{env:{wasm_on_url:(e,A,t)=>0,wasm_on_status:(e,A,t)=>{s.strictEqual(Me.ptr,e);const n=A-Ye+Te.byteOffset;return Me.onStatus(new De(Te.buffer,n,t))||0},wasm_on_message_begin:e=>{s.strictEqual(Me.ptr,e);return Me.onMessageBegin()||0},wasm_on_header_field:(e,A,t)=>{s.strictEqual(Me.ptr,e);const n=A-Ye+Te.byteOffset;return Me.onHeaderField(new De(Te.buffer,n,t))||0},wasm_on_header_value:(e,A,t)=>{s.strictEqual(Me.ptr,e);const n=A-Ye+Te.byteOffset;return Me.onHeaderValue(new De(Te.buffer,n,t))||0},wasm_on_headers_complete:(e,A,t,n)=>{s.strictEqual(Me.ptr,e);return Me.onHeadersComplete(A,Boolean(t),Boolean(n))||0},wasm_on_body:(e,A,t)=>{s.strictEqual(Me.ptr,e);const n=A-Ye+Te.byteOffset;return Me.onBody(new De(Te.buffer,n,t))||0},wasm_on_message_complete:e=>{s.strictEqual(Me.ptr,e);return Me.onMessageComplete()||0}}})}let Ue=null;let Le=lazyllhttp();Le.catch();let Me=null;let Te=null;let He=0;let Ye=null;const Je=1;const Ge=2;const Oe=3;class Parser{constructor(e,A,{exports:t}){s(Number.isFinite(e[Z])&&e[Z]>0);this.llhttp=t;this.ptr=this.llhttp.llhttp_alloc(Se.TYPE.RESPONSE);this.client=e;this.socket=A;this.timeout=null;this.timeoutValue=null;this.timeoutType=null;this.statusCode=null;this.statusText="";this.upgrade=false;this.headers=[];this.headersSize=0;this.headersMaxSize=e[Z];this.shouldKeepAlive=false;this.paused=false;this.resume=this.resume.bind(this);this.bytesRead=0;this.keepAlive="";this.contentLength="";this.connection="";this.maxResponseSize=e[ue]}setTimeout(e,A){this.timeoutType=A;if(e!==this.timeoutValue){a.clearTimeout(this.timeout);if(e){this.timeout=a.setTimeout(onParserTimeout,e,this);if(this.timeout.unref){this.timeout.unref()}}else{this.timeout=null}this.timeoutValue=e}else if(this.timeout){if(this.timeout.refresh){this.timeout.refresh()}}}resume(){if(this.socket.destroyed||!this.paused){return}s(this.ptr!=null);s(Me==null);this.llhttp.llhttp_resume(this.ptr);s(this.timeoutType===Ge);if(this.timeout){if(this.timeout.refresh){this.timeout.refresh()}}this.paused=false;this.execute(this.socket.read()||Ne);this.readMore()}readMore(){while(!this.paused&&this.ptr){const e=this.socket.read();if(e===null){break}this.execute(e)}}execute(e){s(this.ptr!=null);s(Me==null);s(!this.paused);const{socket:A,llhttp:t}=this;if(e.length>He){if(Ye){t.free(Ye)}He=Math.ceil(e.length/4096)*4096;Ye=t.malloc(He)}new Uint8Array(t.memory.buffer,Ye,He).set(e);try{let s;try{Te=e;Me=this;s=t.llhttp_execute(this.ptr,Ye,e.length)}catch(e){throw e}finally{Me=null;Te=null}const n=t.llhttp_get_error_pos(this.ptr)-Ye;if(s===Se.ERROR.PAUSED_UPGRADE){this.onUpgrade(e.slice(n))}else if(s===Se.ERROR.PAUSED){this.paused=true;A.unshift(e.slice(n))}else if(s!==Se.ERROR.OK){const A=t.llhttp_get_error_reason(this.ptr);let i="";if(A){const e=new Uint8Array(t.memory.buffer,A).indexOf(0);i="Response does not match the HTTP/1.1 protocol ("+Buffer.from(t.memory.buffer,A,e).toString()+")"}throw new f(i,Se.ERROR[s],e.slice(n))}}catch(e){r.destroy(A,e)}}destroy(){s(this.ptr!=null);s(Me==null);this.llhttp.llhttp_free(this.ptr);this.ptr=null;a.clearTimeout(this.timeout);this.timeout=null;this.timeoutValue=null;this.timeoutType=null;this.paused=false}onStatus(e){this.statusText=e.toString()}onMessageBegin(){const{socket:e,client:A}=this;if(e.destroyed){return-1}const t=A[T][A[_]];if(!t){return-1}}onHeaderField(e){const A=this.headers.length;if((A&1)===0){this.headers.push(e)}else{this.headers[A-1]=Buffer.concat([this.headers[A-1],e])}this.trackHeader(e.length)}onHeaderValue(e){let A=this.headers.length;if((A&1)===1){this.headers.push(e);A+=1}else{this.headers[A-1]=Buffer.concat([this.headers[A-1],e])}const t=this.headers[A-2];if(t.length===10&&t.toString().toLowerCase()==="keep-alive"){this.keepAlive+=e.toString()}else if(t.length===10&&t.toString().toLowerCase()==="connection"){this.connection+=e.toString()}else if(t.length===14&&t.toString().toLowerCase()==="content-length"){this.contentLength+=e.toString()}this.trackHeader(e.length)}trackHeader(e){this.headersSize+=e;if(this.headersSize>=this.headersMaxSize){r.destroy(this.socket,new h)}}onUpgrade(e){const{upgrade:A,client:t,socket:n,headers:i,statusCode:o}=this;s(A);const a=t[T][t[_]];s(a);s(!n.destroyed);s(n===t[j]);s(!this.paused);s(a.upgrade||a.method==="CONNECT");this.statusCode=null;this.statusText="";this.shouldKeepAlive=null;s(this.headers.length%2===0);this.headers=[];this.headersSize=0;n.unshift(e);n[v].destroy();n[v]=null;n[x]=null;n[q]=null;n.removeListener("error",onSocketError).removeListener("readable",onSocketReadable).removeListener("end",onSocketEnd).removeListener("close",onSocketClose);t[j]=null;t[T][t[_]++]=null;t.emit("disconnect",t[b],[t],new C("upgrade"));try{a.onUpgrade(o,i,n)}catch(e){r.destroy(n,e)}resume(t)}onHeadersComplete(e,A,t){const{client:n,socket:i,headers:o,statusText:a}=this;if(i.destroyed){return-1}const c=n[T][n[_]];if(!c){return-1}s(!this.upgrade);s(this.statusCode<200);if(e===100){r.destroy(i,new Q("bad response",r.getSocketInfo(i)));return-1}if(A&&!c.upgrade){r.destroy(i,new Q("bad upgrade",r.getSocketInfo(i)));return-1}s.strictEqual(this.timeoutType,Je);this.statusCode=e;this.shouldKeepAlive=t||c.method==="HEAD"&&!i[w]&&this.connection.toLowerCase()==="keep-alive";if(this.statusCode>=200){const e=c.bodyTimeout!=null?c.bodyTimeout:n[ee];this.setTimeout(e,Ge)}else if(this.timeout){if(this.timeout.refresh){this.timeout.refresh()}}if(c.method==="CONNECT"){s(n[N]===1);this.upgrade=true;return 2}if(A){s(n[N]===1);this.upgrade=true;return 2}s(this.headers.length%2===0);this.headers=[];this.headersSize=0;if(this.shouldKeepAlive&&n[W]){const e=this.keepAlive?r.parseKeepAliveTimeout(this.keepAlive):null;if(e!=null){const A=Math.min(e-n[K],n[X]);if(A<=0){i[w]=true}else{n[z]=A}}else{n[z]=n[O]}}else{i[w]=true}const l=c.onHeaders(e,o,this.resume,a)===false;if(c.aborted){return-1}if(c.method==="HEAD"){return 1}if(e<200){return 1}if(i[S]){i[S]=false;resume(n)}return l?Se.ERROR.PAUSED:0}onBody(e){const{client:A,socket:t,statusCode:n,maxResponseSize:i}=this;if(t.destroyed){return-1}const o=A[T][A[_]];s(o);s.strictEqual(this.timeoutType,Ge);if(this.timeout){if(this.timeout.refresh){this.timeout.refresh()}}s(n>=200);if(i>-1&&this.bytesRead+e.length>i){r.destroy(t,new I);return-1}this.bytesRead+=e.length;if(o.onData(e)===false){return Se.ERROR.PAUSED}}onMessageComplete(){const{client:e,socket:A,statusCode:t,upgrade:n,headers:i,contentLength:o,bytesRead:a,shouldKeepAlive:c}=this;if(A.destroyed&&(!t||c)){return-1}if(n){return}const l=e[T][e[_]];s(l);s(t>=100);this.statusCode=null;this.statusText="";this.bytesRead=0;this.contentLength="";this.keepAlive="";this.connection="";s(this.headers.length%2===0);this.headers=[];this.headersSize=0;if(t<200){return}if(l.method!=="HEAD"&&o&&a!==parseInt(o,10)){r.destroy(A,new p);return-1}l.onComplete(i);e[T][e[_]++]=null;if(A[M]){s.strictEqual(e[N],0);r.destroy(A,new C("reset"));return Se.ERROR.PAUSED}else if(!c){r.destroy(A,new C("reset"));return Se.ERROR.PAUSED}else if(A[w]&&e[N]===0){r.destroy(A,new C("reset"));return Se.ERROR.PAUSED}else if(e[W]===1){setImmediate(resume,e)}else{resume(e)}}}function onParserTimeout(e){const{socket:A,timeoutType:t,client:n}=e;if(t===Je){if(!A[M]||A.writableNeedDrain||n[N]>1){s(!e.paused,"cannot be paused while waiting for headers");r.destroy(A,new E)}}else if(t===Ge){if(!e.paused){r.destroy(A,new B)}}else if(t===Oe){s(n[N]===0&&n[z]);r.destroy(A,new C("socket idle timeout"))}}function onSocketReadable(){const{[v]:e}=this;if(e){e.readMore()}}function onSocketError(e){const{[x]:A,[v]:t}=this;s(e.code!=="ERR_TLS_CERT_ALTNAME_INVALID");if(A[pe]!=="h2"){if(e.code==="ECONNRESET"&&t.statusCode&&!t.shouldKeepAlive){t.onMessageComplete();return}}this[q]=e;onError(this[x],e)}function onError(e,A){if(e[N]===0&&A.code!=="UND_ERR_INFO"&&A.code!=="UND_ERR_SOCKET"){s(e[P]===e[_]);const t=e[T].splice(e[_]);for(let s=0;s0&&t.code!=="UND_ERR_INFO"){const A=e[T][e[_]];e[T][e[_]++]=null;errorRequest(e,A,t)}e[P]=e[_];s(e[N]===0);e.emit("disconnect",e[b],[e],t);resume(e)}async function connect(e){s(!e[Y]);s(!e[j]);let{host:A,hostname:t,protocol:i,port:o}=e[b];if(t[0]==="["){const e=t.indexOf("]");s(e!==-1);const A=t.substring(1,e);s(n.isIP(A));t=A}e[Y]=true;if(ke.beforeConnect.hasSubscribers){ke.beforeConnect.publish({connectParams:{host:A,hostname:t,protocol:i,port:o,servername:e[R],localAddress:e[le]},connector:e[te]})}try{const n=await new Promise(((s,n)=>{e[te]({host:A,hostname:t,protocol:i,port:o,servername:e[R],localAddress:e[le]},((e,A)=>{if(e){n(e)}else{s(A)}}))}));if(e.destroyed){r.destroy(n.on("error",(()=>{})),new m);return}e[Y]=false;s(n);const a=n.alpnProtocol==="h2";if(a){if(!xe){xe=true;process.emitWarning("H2 support is experimental, expect them to change at any time.",{code:"UNDICI-H2"})}const A=Be.connect(e[b],{createConnection:()=>n,peerMaxConcurrentStreams:e[Ee].maxConcurrentStreams});e[pe]="h2";A[x]=e;A[j]=n;A.on("error",onHttp2SessionError);A.on("frameError",onHttp2FrameError);A.on("end",onHttp2SessionEnd);A.on("goaway",onHTTP2GoAway);A.on("close",onSocketClose);A.unref();e[de]=A;n[de]=A}else{if(!Ue){Ue=await Le;Le=null}n[G]=false;n[M]=false;n[w]=false;n[S]=false;n[v]=new Parser(e,n,Ue)}n[ie]=0;n[ne]=e[ne];n[x]=e;n[q]=null;n.on("error",onSocketError).on("readable",onSocketReadable).on("end",onSocketEnd).on("close",onSocketClose);e[j]=n;if(ke.connected.hasSubscribers){ke.connected.publish({connectParams:{host:A,hostname:t,protocol:i,port:o,servername:e[R],localAddress:e[le]},connector:e[te],socket:n})}e.emit("connect",e[b],[e])}catch(n){if(e.destroyed){return}e[Y]=false;if(ke.connectError.hasSubscribers){ke.connectError.publish({connectParams:{host:A,hostname:t,protocol:i,port:o,servername:e[R],localAddress:e[le]},connector:e[te],error:n})}if(n.code==="ERR_TLS_CERT_ALTNAME_INVALID"){s(e[N]===0);while(e[U]>0&&e[T][e[P]].servername===e[R]){const A=e[T][e[P]++];errorRequest(e,A,n)}}else{onError(e,n)}e.emit("connectionError",e[b],[e],n)}resume(e)}function emitDrain(e){e[J]=0;e.emit("drain",e[b],[e])}function resume(e,A){if(e[F]===2){return}e[F]=2;_resume(e,A);e[F]=0;if(e[_]>256){e[T].splice(0,e[_]);e[P]-=e[_];e[_]=0}}function _resume(e,A){while(true){if(e.destroyed){s(e[U]===0);return}if(e[ve]&&!e[L]){e[ve]();e[ve]=null;return}const t=e[j];if(t&&!t.destroyed&&t.alpnProtocol!=="h2"){if(e[L]===0){if(!t[G]&&t.unref){t.unref();t[G]=true}}else if(t[G]&&t.ref){t.ref();t[G]=false}if(e[L]===0){if(t[v].timeoutType!==Oe){t[v].setTimeout(e[z],Oe)}}else if(e[N]>0&&t[v].statusCode<200){if(t[v].timeoutType!==Je){const A=e[T][e[_]];const s=A.headersTimeout!=null?A.headersTimeout:e[$];t[v].setTimeout(s,Je)}}}if(e[D]){e[J]=2}else if(e[J]===2){if(A){e[J]=1;process.nextTick(emitDrain,e)}else{emitDrain(e)}continue}if(e[U]===0){return}if(e[N]>=(e[W]||1)){return}const n=e[T][e[P]];if(e[b].protocol==="https:"&&e[R]!==n.servername){if(e[N]>0){return}e[R]=n.servername;if(t&&t.servername!==n.servername){r.destroy(t,new C("servername changed"));return}}if(e[Y]){return}if(!t&&!e[de]){connect(e);return}if(t.destroyed||t[M]||t[w]||t[S]){return}if(e[N]>0&&!n.idempotent){return}if(e[N]>0&&(n.upgrade||n.method==="CONNECT")){return}if(e[N]>0&&r.bodyLength(n.body)!==0&&(r.isStream(n.body)||r.isAsyncIterable(n.body))){return}if(!n.aborted&&write(e,n)){e[P]++}else{e[T].splice(e[P],1)}}}function shouldSendContentLength(e){return e!=="GET"&&e!=="HEAD"&&e!=="OPTIONS"&&e!=="TRACE"&&e!=="CONNECT"}function write(e,A){if(e[pe]==="h2"){writeH2(e,e[de],A);return}const{body:t,method:n,path:i,host:o,upgrade:a,headers:c,blocking:l,reset:p}=A;const g=n==="PUT"||n==="POST"||n==="PATCH";if(t&&typeof t.read==="function"){t.read(0)}const E=r.bodyLength(t);let h=E;if(h===null){h=A.contentLength}if(h===0&&!g){h=null}if(shouldSendContentLength(n)&&h>0&&A.contentLength!==null&&A.contentLength!==h){if(e[Ae]){errorRequest(e,A,new u);return false}process.emitWarning(new u)}const Q=e[j];try{A.onConnect((t=>{if(A.aborted||A.completed){return}errorRequest(e,A,t||new d);r.destroy(Q,new C("aborted"))}))}catch(t){errorRequest(e,A,t)}if(A.aborted){return false}if(n==="HEAD"){Q[w]=true}if(a||n==="CONNECT"){Q[w]=true}if(p!=null){Q[w]=p}if(e[ne]&&Q[ie]++>=e[ne]){Q[w]=true}if(l){Q[S]=true}let B=`${n} ${i} HTTP/1.1\r\n`;if(typeof o==="string"){B+=`host: ${o}\r\n`}else{B+=e[V]}if(a){B+=`connection: upgrade\r\nupgrade: ${a}\r\n`}else if(e[W]&&!Q[w]){B+="connection: keep-alive\r\n"}else{B+="connection: close\r\n"}if(c){B+=c}if(ke.sendHeaders.hasSubscribers){ke.sendHeaders.publish({request:A,headers:B,socket:Q})}if(!t||E===0){if(h===0){Q.write(`${B}content-length: 0\r\n\r\n`,"latin1")}else{s(h===null,"no body must not have content length");Q.write(`${B}\r\n`,"latin1")}A.onRequestSent()}else if(r.isBuffer(t)){s(h===t.byteLength,"buffer body must have content length");Q.cork();Q.write(`${B}content-length: ${h}\r\n\r\n`,"latin1");Q.write(t);Q.uncork();A.onBodySent(t);A.onRequestSent();if(!g){Q[w]=true}}else if(r.isBlobLike(t)){if(typeof t.stream==="function"){writeIterable({body:t.stream(),client:e,request:A,socket:Q,contentLength:h,header:B,expectsPayload:g})}else{writeBlob({body:t,client:e,request:A,socket:Q,contentLength:h,header:B,expectsPayload:g})}}else if(r.isStream(t)){writeStream({body:t,client:e,request:A,socket:Q,contentLength:h,header:B,expectsPayload:g})}else if(r.isIterable(t)){writeIterable({body:t,client:e,request:A,socket:Q,contentLength:h,header:B,expectsPayload:g})}else{s(false)}return true}function writeH2(e,A,t){const{body:n,method:i,path:o,host:a,upgrade:l,expectContinue:p,signal:g,headers:E}=t;let h;if(typeof E==="string")h=c[Qe](E.trim());else h=E;if(l){errorRequest(e,t,new Error("Upgrade not supported for H2"));return false}try{t.onConnect((A=>{if(t.aborted||t.completed){return}errorRequest(e,t,A||new d)}))}catch(A){errorRequest(e,t,A)}if(t.aborted){return false}let Q;const B=e[Ee];h[fe]=a||e[ge];h[Ie]=i;if(i==="CONNECT"){A.ref();Q=A.request(h,{endStream:false,signal:g});if(Q.id&&!Q.pending){t.onUpgrade(null,null,Q);++B.openStreams}else{Q.once("ready",(()=>{t.onUpgrade(null,null,Q);++B.openStreams}))}Q.once("close",(()=>{B.openStreams-=1;if(B.openStreams===0)A.unref()}));return true}h[me]=o;h[ye]="https";const f=i==="PUT"||i==="POST"||i==="PATCH";if(n&&typeof n.read==="function"){n.read(0)}let I=r.bodyLength(n);if(I==null){I=t.contentLength}if(I===0||!f){I=null}if(shouldSendContentLength(i)&&I>0&&t.contentLength!=null&&t.contentLength!==I){if(e[Ae]){errorRequest(e,t,new u);return false}process.emitWarning(new u)}if(I!=null){s(n,"no body must not have content length");h[be]=`${I}`}A.ref();const m=i==="GET"||i==="HEAD";if(p){h[we]="100-continue";Q=A.request(h,{endStream:m,signal:g});Q.once("continue",writeBodyH2)}else{Q=A.request(h,{endStream:m,signal:g});writeBodyH2()}++B.openStreams;Q.once("response",(e=>{const{[Re]:A,...s}=e;if(t.onHeaders(Number(A),s,Q.resume.bind(Q),"")===false){Q.pause()}}));Q.once("end",(()=>{t.onComplete([])}));Q.on("data",(e=>{if(t.onData(e)===false){Q.pause()}}));Q.once("close",(()=>{B.openStreams-=1;if(B.openStreams===0){A.unref()}}));Q.once("error",(function(A){if(e[de]&&!e[de].destroyed&&!this.closed&&!this.destroyed){B.streams-=1;r.destroy(Q,A)}}));Q.once("frameError",((A,s)=>{const n=new C(`HTTP/2: "frameError" received - type ${A}, code ${s}`);errorRequest(e,t,n);if(e[de]&&!e[de].destroyed&&!this.closed&&!this.destroyed){B.streams-=1;r.destroy(Q,n)}}));return true;function writeBodyH2(){if(!n){t.onRequestSent()}else if(r.isBuffer(n)){s(I===n.byteLength,"buffer body must have content length");Q.cork();Q.write(n);Q.uncork();Q.end();t.onBodySent(n);t.onRequestSent()}else if(r.isBlobLike(n)){if(typeof n.stream==="function"){writeIterable({client:e,request:t,contentLength:I,h2stream:Q,expectsPayload:f,body:n.stream(),socket:e[j],header:""})}else{writeBlob({body:n,client:e,request:t,contentLength:I,expectsPayload:f,h2stream:Q,header:"",socket:e[j]})}}else if(r.isStream(n)){writeStream({body:n,client:e,request:t,contentLength:I,expectsPayload:f,socket:e[j],h2stream:Q,header:""})}else if(r.isIterable(n)){writeIterable({body:n,client:e,request:t,contentLength:I,expectsPayload:f,header:"",h2stream:Q,socket:e[j]})}else{s(false)}}}function writeStream({h2stream:e,body:A,client:t,request:n,socket:i,contentLength:a,header:c,expectsPayload:l}){s(a!==0||t[N]===0,"stream body cannot be pipelined");if(t[pe]==="h2"){const t=o(A,e,(t=>{if(t){r.destroy(A,t);r.destroy(e,t)}else{n.onRequestSent()}}));t.on("data",onPipeData);t.once("end",(()=>{t.removeListener("data",onPipeData);r.destroy(t)}));function onPipeData(e){n.onBodySent(e)}return}let u=false;const p=new AsyncWriter({socket:i,request:n,contentLength:a,client:t,expectsPayload:l,header:c});const onData=function(e){if(u){return}try{if(!p.write(e)&&this.pause){this.pause()}}catch(e){r.destroy(this,e)}};const onDrain=function(){if(u){return}if(A.resume){A.resume()}};const onAbort=function(){if(u){return}const e=new d;queueMicrotask((()=>onFinished(e)))};const onFinished=function(e){if(u){return}u=true;s(i.destroyed||i[M]&&t[N]<=1);i.off("drain",onDrain).off("error",onFinished);A.removeListener("data",onData).removeListener("end",onFinished).removeListener("error",onFinished).removeListener("close",onAbort);if(!e){try{p.end()}catch(A){e=A}}p.destroy(e);if(e&&(e.code!=="UND_ERR_INFO"||e.message!=="reset")){r.destroy(A,e)}else{r.destroy(A)}};A.on("data",onData).on("end",onFinished).on("error",onFinished).on("close",onAbort);if(A.resume){A.resume()}i.on("drain",onDrain).on("error",onFinished)}async function writeBlob({h2stream:e,body:A,client:t,request:n,socket:i,contentLength:o,header:a,expectsPayload:c}){s(o===A.size,"blob body must have content length");const l=t[pe]==="h2";try{if(o!=null&&o!==A.size){throw new u}const s=Buffer.from(await A.arrayBuffer());if(l){e.cork();e.write(s);e.uncork()}else{i.cork();i.write(`${a}content-length: ${o}\r\n\r\n`,"latin1");i.write(s);i.uncork()}n.onBodySent(s);n.onRequestSent();if(!c){i[w]=true}resume(t)}catch(A){r.destroy(l?e:i,A)}}async function writeIterable({h2stream:e,body:A,client:t,request:n,socket:i,contentLength:o,header:r,expectsPayload:a}){s(o!==0||t[N]===0,"iterator body cannot be pipelined");let c=null;function onDrain(){if(c){const e=c;c=null;e()}}const waitForDrain=()=>new Promise(((e,A)=>{s(c===null);if(i[q]){A(i[q])}else{c=e}}));if(t[pe]==="h2"){e.on("close",onDrain).on("drain",onDrain);try{for await(const t of A){if(i[q]){throw i[q]}const A=e.write(t);n.onBodySent(t);if(!A){await waitForDrain()}}}catch(A){e.destroy(A)}finally{n.onRequestSent();e.end();e.off("close",onDrain).off("drain",onDrain)}return}i.on("close",onDrain).on("drain",onDrain);const l=new AsyncWriter({socket:i,request:n,contentLength:o,client:t,expectsPayload:a,header:r});try{for await(const e of A){if(i[q]){throw i[q]}if(!l.write(e)){await waitForDrain()}}l.end()}catch(e){l.destroy(e)}finally{i.off("close",onDrain).off("drain",onDrain)}}class AsyncWriter{constructor({socket:e,request:A,contentLength:t,client:s,expectsPayload:n,header:i}){this.socket=e;this.request=A;this.contentLength=t;this.client=s;this.bytesWritten=0;this.expectsPayload=n;this.header=i;e[M]=true}write(e){const{socket:A,request:t,contentLength:s,client:n,bytesWritten:i,expectsPayload:o,header:r}=this;if(A[q]){throw A[q]}if(A.destroyed){return false}const a=Buffer.byteLength(e);if(!a){return true}if(s!==null&&i+a>s){if(n[Ae]){throw new u}process.emitWarning(new u)}A.cork();if(i===0){if(!o){A[w]=true}if(s===null){A.write(`${r}transfer-encoding: chunked\r\n`,"latin1")}else{A.write(`${r}content-length: ${s}\r\n\r\n`,"latin1")}}if(s===null){A.write(`\r\n${a.toString(16)}\r\n`,"latin1")}this.bytesWritten+=a;const c=A.write(e);A.uncork();t.onBodySent(e);if(!c){if(A[v].timeout&&A[v].timeoutType===Je){if(A[v].timeout.refresh){A[v].timeout.refresh()}}}return c}end(){const{socket:e,contentLength:A,client:t,bytesWritten:s,expectsPayload:n,header:i,request:o}=this;o.onRequestSent();e[M]=false;if(e[q]){throw e[q]}if(e.destroyed){return}if(s===0){if(n){e.write(`${i}content-length: 0\r\n\r\n`,"latin1")}else{e.write(`${i}\r\n`,"latin1")}}else if(A===null){e.write("\r\n0\r\n\r\n","latin1")}if(A!==null&&s!==A){if(t[Ae]){throw new u}else{process.emitWarning(new u)}}if(e[v].timeout&&e[v].timeoutType===Je){if(e[v].timeout.refresh){e[v].timeout.refresh()}}resume(t)}destroy(e){const{socket:A,client:t}=this;A[M]=false;if(e){s(t[N]<=1,"pipeline should only contain this request");r.destroy(A,e)}}}function errorRequest(e,A,t){try{A.onError(t);s(A.aborted)}catch(t){e.emit("error",t)}}e.exports=Client},6436:(e,A,t)=>{"use strict";const{kConnected:s,kSize:n}=t(2785);class CompatWeakRef{constructor(e){this.value=e}deref(){return this.value[s]===0&&this.value[n]===0?undefined:this.value}}class CompatFinalizer{constructor(e){this.finalizer=e}register(e,A){if(e.on){e.on("disconnect",(()=>{if(e[s]===0&&e[n]===0){this.finalizer(A)}}))}}}e.exports=function(){if(process.env.NODE_V8_COVERAGE){return{WeakRef:CompatWeakRef,FinalizationRegistry:CompatFinalizer}}return{WeakRef:global.WeakRef||CompatWeakRef,FinalizationRegistry:global.FinalizationRegistry||CompatFinalizer}}},663:e=>{"use strict";const A=1024;const t=4096;e.exports={maxAttributeValueSize:A,maxNameValuePairSize:t}},1724:(e,A,t)=>{"use strict";const{parseSetCookie:s}=t(4408);const{stringify:n}=t(3121);const{webidl:i}=t(1744);const{Headers:o}=t(554);function getCookies(e){i.argumentLengthCheck(arguments,1,{header:"getCookies"});i.brandCheck(e,o,{strict:false});const A=e.get("cookie");const t={};if(!A){return t}for(const e of A.split(";")){const[A,...s]=e.split("=");t[A.trim()]=s.join("=")}return t}function deleteCookie(e,A,t){i.argumentLengthCheck(arguments,2,{header:"deleteCookie"});i.brandCheck(e,o,{strict:false});A=i.converters.DOMString(A);t=i.converters.DeleteCookieAttributes(t);setCookie(e,{name:A,value:"",expires:new Date(0),...t})}function getSetCookies(e){i.argumentLengthCheck(arguments,1,{header:"getSetCookies"});i.brandCheck(e,o,{strict:false});const A=e.getSetCookie();if(!A){return[]}return A.map((e=>s(e)))}function setCookie(e,A){i.argumentLengthCheck(arguments,2,{header:"setCookie"});i.brandCheck(e,o,{strict:false});A=i.converters.Cookie(A);const t=n(A);if(t){e.append("Set-Cookie",n(A))}}i.converters.DeleteCookieAttributes=i.dictionaryConverter([{converter:i.nullableConverter(i.converters.DOMString),key:"path",defaultValue:null},{converter:i.nullableConverter(i.converters.DOMString),key:"domain",defaultValue:null}]);i.converters.Cookie=i.dictionaryConverter([{converter:i.converters.DOMString,key:"name"},{converter:i.converters.DOMString,key:"value"},{converter:i.nullableConverter((e=>{if(typeof e==="number"){return i.converters["unsigned long long"](e)}return new Date(e)})),key:"expires",defaultValue:null},{converter:i.nullableConverter(i.converters["long long"]),key:"maxAge",defaultValue:null},{converter:i.nullableConverter(i.converters.DOMString),key:"domain",defaultValue:null},{converter:i.nullableConverter(i.converters.DOMString),key:"path",defaultValue:null},{converter:i.nullableConverter(i.converters.boolean),key:"secure",defaultValue:null},{converter:i.nullableConverter(i.converters.boolean),key:"httpOnly",defaultValue:null},{converter:i.converters.USVString,key:"sameSite",allowedValues:["Strict","Lax","None"]},{converter:i.sequenceConverter(i.converters.DOMString),key:"unparsed",defaultValue:[]}]);e.exports={getCookies:getCookies,deleteCookie:deleteCookie,getSetCookies:getSetCookies,setCookie:setCookie}},4408:(e,A,t)=>{"use strict";const{maxNameValuePairSize:s,maxAttributeValueSize:n}=t(663);const{isCTLExcludingHtab:i}=t(3121);const{collectASequenceOfCodePointsFast:o}=t(685);const r=t(9491);function parseSetCookie(e){if(i(e)){return null}let A="";let t="";let n="";let r="";if(e.includes(";")){const s={position:0};A=o(";",e,s);t=e.slice(s.position)}else{A=e}if(!A.includes("=")){r=A}else{const e={position:0};n=o("=",A,e);r=A.slice(e.position+1)}n=n.trim();r=r.trim();if(n.length+r.length>s){return null}return{name:n,value:r,...parseUnparsedAttributes(t)}}function parseUnparsedAttributes(e,A={}){if(e.length===0){return A}r(e[0]===";");e=e.slice(1);let t="";if(e.includes(";")){t=o(";",e,{position:0});e=e.slice(t.length)}else{t=e;e=""}let s="";let i="";if(t.includes("=")){const e={position:0};s=o("=",t,e);i=t.slice(e.position+1)}else{s=t}s=s.trim();i=i.trim();if(i.length>n){return parseUnparsedAttributes(e,A)}const a=s.toLowerCase();if(a==="expires"){const e=new Date(i);A.expires=e}else if(a==="max-age"){const t=i.charCodeAt(0);if((t<48||t>57)&&i[0]!=="-"){return parseUnparsedAttributes(e,A)}if(!/^\d+$/.test(i)){return parseUnparsedAttributes(e,A)}const s=Number(i);A.maxAge=s}else if(a==="domain"){let e=i;if(e[0]==="."){e=e.slice(1)}e=e.toLowerCase();A.domain=e}else if(a==="path"){let e="";if(i.length===0||i[0]!=="/"){e="/"}else{e=i}A.path=e}else if(a==="secure"){A.secure=true}else if(a==="httponly"){A.httpOnly=true}else if(a==="samesite"){let e="Default";const t=i.toLowerCase();if(t.includes("none")){e="None"}if(t.includes("strict")){e="Strict"}if(t.includes("lax")){e="Lax"}A.sameSite=e}else{A.unparsed??=[];A.unparsed.push(`${s}=${i}`)}return parseUnparsedAttributes(e,A)}e.exports={parseSetCookie:parseSetCookie,parseUnparsedAttributes:parseUnparsedAttributes}},3121:e=>{"use strict";function isCTLExcludingHtab(e){if(e.length===0){return false}for(const A of e){const e=A.charCodeAt(0);if(e>=0||e<=8||(e>=10||e<=31)||e===127){return false}}}function validateCookieName(e){for(const A of e){const e=A.charCodeAt(0);if(e<=32||e>127||A==="("||A===")"||A===">"||A==="<"||A==="@"||A===","||A===";"||A===":"||A==="\\"||A==='"'||A==="/"||A==="["||A==="]"||A==="?"||A==="="||A==="{"||A==="}"){throw new Error("Invalid cookie name")}}}function validateCookieValue(e){for(const A of e){const e=A.charCodeAt(0);if(e<33||e===34||e===44||e===59||e===92||e>126){throw new Error("Invalid header value")}}}function validateCookiePath(e){for(const A of e){const e=A.charCodeAt(0);if(e<33||A===";"){throw new Error("Invalid cookie path")}}}function validateCookieDomain(e){if(e.startsWith("-")||e.endsWith(".")||e.endsWith("-")){throw new Error("Invalid cookie domain")}}function toIMFDate(e){if(typeof e==="number"){e=new Date(e)}const A=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];const t=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];const s=A[e.getUTCDay()];const n=e.getUTCDate().toString().padStart(2,"0");const i=t[e.getUTCMonth()];const o=e.getUTCFullYear();const r=e.getUTCHours().toString().padStart(2,"0");const a=e.getUTCMinutes().toString().padStart(2,"0");const c=e.getUTCSeconds().toString().padStart(2,"0");return`${s}, ${n} ${i} ${o} ${r}:${a}:${c} GMT`}function validateCookieMaxAge(e){if(e<0){throw new Error("Invalid cookie max-age")}}function stringify(e){if(e.name.length===0){return null}validateCookieName(e.name);validateCookieValue(e.value);const A=[`${e.name}=${e.value}`];if(e.name.startsWith("__Secure-")){e.secure=true}if(e.name.startsWith("__Host-")){e.secure=true;e.domain=null;e.path="/"}if(e.secure){A.push("Secure")}if(e.httpOnly){A.push("HttpOnly")}if(typeof e.maxAge==="number"){validateCookieMaxAge(e.maxAge);A.push(`Max-Age=${e.maxAge}`)}if(e.domain){validateCookieDomain(e.domain);A.push(`Domain=${e.domain}`)}if(e.path){validateCookiePath(e.path);A.push(`Path=${e.path}`)}if(e.expires&&e.expires.toString()!=="Invalid Date"){A.push(`Expires=${toIMFDate(e.expires)}`)}if(e.sameSite){A.push(`SameSite=${e.sameSite}`)}for(const t of e.unparsed){if(!t.includes("=")){throw new Error("Invalid unparsed")}const[e,...s]=t.split("=");A.push(`${e.trim()}=${s.join("=")}`)}return A.join("; ")}e.exports={isCTLExcludingHtab:isCTLExcludingHtab,validateCookieName:validateCookieName,validateCookiePath:validateCookiePath,validateCookieValue:validateCookieValue,toIMFDate:toIMFDate,stringify:stringify}},2067:(e,A,t)=>{"use strict";const s=t(1808);const n=t(9491);const i=t(3983);const{InvalidArgumentError:o,ConnectTimeoutError:r}=t(8045);let a;let c;if(global.FinalizationRegistry&&!process.env.NODE_V8_COVERAGE){c=class WeakSessionCache{constructor(e){this._maxCachedSessions=e;this._sessionCache=new Map;this._sessionRegistry=new global.FinalizationRegistry((e=>{if(this._sessionCache.size=this._maxCachedSessions){const{value:e}=this._sessionCache.keys().next();this._sessionCache.delete(e)}this._sessionCache.set(e,A)}}}function buildConnector({allowH2:e,maxCachedSessions:A,socketPath:r,timeout:l,...u}){if(A!=null&&(!Number.isInteger(A)||A<0)){throw new o("maxCachedSessions must be a positive integer or zero")}const p={path:r,...u};const g=new c(A==null?100:A);l=l==null?1e4:l;e=e!=null?e:false;return function connect({hostname:A,host:o,protocol:r,port:c,servername:u,localAddress:d,httpSocket:E},h){let Q;if(r==="https:"){if(!a){a=t(4404)}u=u||p.servername||i.getServerName(o)||null;const s=u||A;const r=g.get(s)||null;n(s);Q=a.connect({highWaterMark:16384,...p,servername:u,session:r,localAddress:d,ALPNProtocols:e?["http/1.1","h2"]:["http/1.1"],socket:E,port:c||443,host:A});Q.on("session",(function(e){g.set(s,e)}))}else{n(!E,"httpSocket can only be sent on TLS update");Q=s.connect({highWaterMark:64*1024,...p,localAddress:d,port:c||80,host:A})}if(p.keepAlive==null||p.keepAlive){const e=p.keepAliveInitialDelay===undefined?6e4:p.keepAliveInitialDelay;Q.setKeepAlive(true,e)}const C=setupTimeout((()=>onConnectTimeout(Q)),l);Q.setNoDelay(true).once(r==="https:"?"secureConnect":"connect",(function(){C();if(h){const e=h;h=null;e(null,this)}})).on("error",(function(e){C();if(h){const A=h;h=null;A(e)}}));return Q}}function setupTimeout(e,A){if(!A){return()=>{}}let t=null;let s=null;const n=setTimeout((()=>{t=setImmediate((()=>{if(process.platform==="win32"){s=setImmediate((()=>e()))}else{e()}}))}),A);return()=>{clearTimeout(n);clearImmediate(t);clearImmediate(s)}}function onConnectTimeout(e){i.destroy(e,new r)}e.exports=buildConnector},4462:e=>{"use strict";const A={};const t=["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"];for(let e=0;e{"use strict";class UndiciError extends Error{constructor(e){super(e);this.name="UndiciError";this.code="UND_ERR"}}class ConnectTimeoutError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,ConnectTimeoutError);this.name="ConnectTimeoutError";this.message=e||"Connect Timeout Error";this.code="UND_ERR_CONNECT_TIMEOUT"}}class HeadersTimeoutError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,HeadersTimeoutError);this.name="HeadersTimeoutError";this.message=e||"Headers Timeout Error";this.code="UND_ERR_HEADERS_TIMEOUT"}}class HeadersOverflowError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,HeadersOverflowError);this.name="HeadersOverflowError";this.message=e||"Headers Overflow Error";this.code="UND_ERR_HEADERS_OVERFLOW"}}class BodyTimeoutError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,BodyTimeoutError);this.name="BodyTimeoutError";this.message=e||"Body Timeout Error";this.code="UND_ERR_BODY_TIMEOUT"}}class ResponseStatusCodeError extends UndiciError{constructor(e,A,t,s){super(e);Error.captureStackTrace(this,ResponseStatusCodeError);this.name="ResponseStatusCodeError";this.message=e||"Response Status Code Error";this.code="UND_ERR_RESPONSE_STATUS_CODE";this.body=s;this.status=A;this.statusCode=A;this.headers=t}}class InvalidArgumentError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,InvalidArgumentError);this.name="InvalidArgumentError";this.message=e||"Invalid Argument Error";this.code="UND_ERR_INVALID_ARG"}}class InvalidReturnValueError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,InvalidReturnValueError);this.name="InvalidReturnValueError";this.message=e||"Invalid Return Value Error";this.code="UND_ERR_INVALID_RETURN_VALUE"}}class RequestAbortedError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,RequestAbortedError);this.name="AbortError";this.message=e||"Request aborted";this.code="UND_ERR_ABORTED"}}class InformationalError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,InformationalError);this.name="InformationalError";this.message=e||"Request information";this.code="UND_ERR_INFO"}}class RequestContentLengthMismatchError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,RequestContentLengthMismatchError);this.name="RequestContentLengthMismatchError";this.message=e||"Request body length does not match content-length header";this.code="UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"}}class ResponseContentLengthMismatchError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,ResponseContentLengthMismatchError);this.name="ResponseContentLengthMismatchError";this.message=e||"Response body length does not match content-length header";this.code="UND_ERR_RES_CONTENT_LENGTH_MISMATCH"}}class ClientDestroyedError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,ClientDestroyedError);this.name="ClientDestroyedError";this.message=e||"The client is destroyed";this.code="UND_ERR_DESTROYED"}}class ClientClosedError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,ClientClosedError);this.name="ClientClosedError";this.message=e||"The client is closed";this.code="UND_ERR_CLOSED"}}class SocketError extends UndiciError{constructor(e,A){super(e);Error.captureStackTrace(this,SocketError);this.name="SocketError";this.message=e||"Socket error";this.code="UND_ERR_SOCKET";this.socket=A}}class NotSupportedError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,NotSupportedError);this.name="NotSupportedError";this.message=e||"Not supported error";this.code="UND_ERR_NOT_SUPPORTED"}}class BalancedPoolMissingUpstreamError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,NotSupportedError);this.name="MissingUpstreamError";this.message=e||"No upstream has been added to the BalancedPool";this.code="UND_ERR_BPL_MISSING_UPSTREAM"}}class HTTPParserError extends Error{constructor(e,A,t){super(e);Error.captureStackTrace(this,HTTPParserError);this.name="HTTPParserError";this.code=A?`HPE_${A}`:undefined;this.data=t?t.toString():undefined}}class ResponseExceededMaxSizeError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,ResponseExceededMaxSizeError);this.name="ResponseExceededMaxSizeError";this.message=e||"Response content exceeded max size";this.code="UND_ERR_RES_EXCEEDED_MAX_SIZE"}}class RequestRetryError extends UndiciError{constructor(e,A,{headers:t,data:s}){super(e);Error.captureStackTrace(this,RequestRetryError);this.name="RequestRetryError";this.message=e||"Request retry error";this.code="UND_ERR_REQ_RETRY";this.statusCode=A;this.data=s;this.headers=t}}e.exports={HTTPParserError:HTTPParserError,UndiciError:UndiciError,HeadersTimeoutError:HeadersTimeoutError,HeadersOverflowError:HeadersOverflowError,BodyTimeoutError:BodyTimeoutError,RequestContentLengthMismatchError:RequestContentLengthMismatchError,ConnectTimeoutError:ConnectTimeoutError,ResponseStatusCodeError:ResponseStatusCodeError,InvalidArgumentError:InvalidArgumentError,InvalidReturnValueError:InvalidReturnValueError,RequestAbortedError:RequestAbortedError,ClientDestroyedError:ClientDestroyedError,ClientClosedError:ClientClosedError,InformationalError:InformationalError,SocketError:SocketError,NotSupportedError:NotSupportedError,ResponseContentLengthMismatchError:ResponseContentLengthMismatchError,BalancedPoolMissingUpstreamError:BalancedPoolMissingUpstreamError,ResponseExceededMaxSizeError:ResponseExceededMaxSizeError,RequestRetryError:RequestRetryError}},2905:(e,A,t)=>{"use strict";const{InvalidArgumentError:s,NotSupportedError:n}=t(8045);const i=t(9491);const{kHTTP2BuildRequest:o,kHTTP2CopyHeaders:r,kHTTP1BuildRequest:a}=t(2785);const c=t(3983);const l=/^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/;const u=/[^\t\x20-\x7e\x80-\xff]/;const p=/[^\u0021-\u00ff]/;const g=Symbol("handler");const d={};let E;try{const e=t(7643);d.create=e.channel("undici:request:create");d.bodySent=e.channel("undici:request:bodySent");d.headers=e.channel("undici:request:headers");d.trailers=e.channel("undici:request:trailers");d.error=e.channel("undici:request:error")}catch{d.create={hasSubscribers:false};d.bodySent={hasSubscribers:false};d.headers={hasSubscribers:false};d.trailers={hasSubscribers:false};d.error={hasSubscribers:false}}class Request{constructor(e,{path:A,method:n,body:i,headers:o,query:r,idempotent:a,blocking:u,upgrade:h,headersTimeout:Q,bodyTimeout:C,reset:B,throwOnError:f,expectContinue:I},m){if(typeof A!=="string"){throw new s("path must be a string")}else if(A[0]!=="/"&&!(A.startsWith("http://")||A.startsWith("https://"))&&n!=="CONNECT"){throw new s("path must be an absolute URL or start with a slash")}else if(p.exec(A)!==null){throw new s("invalid request path")}if(typeof n!=="string"){throw new s("method must be a string")}else if(l.exec(n)===null){throw new s("invalid request method")}if(h&&typeof h!=="string"){throw new s("upgrade must be a string")}if(Q!=null&&(!Number.isFinite(Q)||Q<0)){throw new s("invalid headersTimeout")}if(C!=null&&(!Number.isFinite(C)||C<0)){throw new s("invalid bodyTimeout")}if(B!=null&&typeof B!=="boolean"){throw new s("invalid reset")}if(I!=null&&typeof I!=="boolean"){throw new s("invalid expectContinue")}this.headersTimeout=Q;this.bodyTimeout=C;this.throwOnError=f===true;this.method=n;this.abort=null;if(i==null){this.body=null}else if(c.isStream(i)){this.body=i;const e=this.body._readableState;if(!e||!e.autoDestroy){this.endHandler=function autoDestroy(){c.destroy(this)};this.body.on("end",this.endHandler)}this.errorHandler=e=>{if(this.abort){this.abort(e)}else{this.error=e}};this.body.on("error",this.errorHandler)}else if(c.isBuffer(i)){this.body=i.byteLength?i:null}else if(ArrayBuffer.isView(i)){this.body=i.buffer.byteLength?Buffer.from(i.buffer,i.byteOffset,i.byteLength):null}else if(i instanceof ArrayBuffer){this.body=i.byteLength?Buffer.from(i):null}else if(typeof i==="string"){this.body=i.length?Buffer.from(i):null}else if(c.isFormDataLike(i)||c.isIterable(i)||c.isBlobLike(i)){this.body=i}else{throw new s("body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable")}this.completed=false;this.aborted=false;this.upgrade=h||null;this.path=r?c.buildURL(A,r):A;this.origin=e;this.idempotent=a==null?n==="HEAD"||n==="GET":a;this.blocking=u==null?false:u;this.reset=B==null?null:B;this.host=null;this.contentLength=null;this.contentType=null;this.headers="";this.expectContinue=I!=null?I:false;if(Array.isArray(o)){if(o.length%2!==0){throw new s("headers array must be even")}for(let e=0;e{e.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"),kHeadersList:Symbol("headers list"),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"),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"),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"),kInterceptors:Symbol("dispatch interceptors"),kMaxResponseSize:Symbol("max response size"),kHTTP2Session:Symbol("http2Session"),kHTTP2SessionState:Symbol("http2Session state"),kHTTP2BuildRequest:Symbol("http2 build request"),kHTTP1BuildRequest:Symbol("http1 build request"),kHTTP2CopyHeaders:Symbol("http2 copy headers"),kHTTPConnVersion:Symbol("http connection version"),kRetryHandlerDefaultRetry:Symbol("retry agent default retry"),kConstruct:Symbol("constructable")}},3983:(e,A,t)=>{"use strict";const s=t(9491);const{kDestroyed:n,kBodyUsed:i}=t(2785);const{IncomingMessage:o}=t(3685);const r=t(2781);const a=t(1808);const{InvalidArgumentError:c}=t(8045);const{Blob:l}=t(4300);const u=t(3837);const{stringify:p}=t(3477);const{headerNameLowerCasedRecord:g}=t(4462);const[d,E]=process.versions.node.split(".").map((e=>Number(e)));function nop(){}function isStream(e){return e&&typeof e==="object"&&typeof e.pipe==="function"&&typeof e.on==="function"}function isBlobLike(e){return l&&e instanceof l||e&&typeof e==="object"&&(typeof e.stream==="function"||typeof e.arrayBuffer==="function")&&/^(Blob|File)$/.test(e[Symbol.toStringTag])}function buildURL(e,A){if(e.includes("?")||e.includes("#")){throw new Error('Query params cannot be passed when url already contains "?" or "#".')}const t=p(A);if(t){e+="?"+t}return e}function parseURL(e){if(typeof e==="string"){e=new URL(e);if(!/^https?:/.test(e.origin||e.protocol)){throw new c("Invalid URL protocol: the URL must start with `http:` or `https:`.")}return e}if(!e||typeof e!=="object"){throw new c("Invalid URL: The URL argument must be a non-null object.")}if(!/^https?:/.test(e.origin||e.protocol)){throw new c("Invalid URL protocol: the URL must start with `http:` or `https:`.")}if(!(e instanceof URL)){if(e.port!=null&&e.port!==""&&!Number.isFinite(parseInt(e.port))){throw new c("Invalid URL: port must be a valid integer or a string representation of an integer.")}if(e.path!=null&&typeof e.path!=="string"){throw new c("Invalid URL path: the path must be a string or null/undefined.")}if(e.pathname!=null&&typeof e.pathname!=="string"){throw new c("Invalid URL pathname: the pathname must be a string or null/undefined.")}if(e.hostname!=null&&typeof e.hostname!=="string"){throw new c("Invalid URL hostname: the hostname must be a string or null/undefined.")}if(e.origin!=null&&typeof e.origin!=="string"){throw new c("Invalid URL origin: the origin must be a string or null/undefined.")}const A=e.port!=null?e.port:e.protocol==="https:"?443:80;let t=e.origin!=null?e.origin:`${e.protocol}//${e.hostname}:${A}`;let s=e.path!=null?e.path:`${e.pathname||""}${e.search||""}`;if(t.endsWith("/")){t=t.substring(0,t.length-1)}if(s&&!s.startsWith("/")){s=`/${s}`}e=new URL(t+s)}return e}function parseOrigin(e){e=parseURL(e);if(e.pathname!=="/"||e.search||e.hash){throw new c("invalid url")}return e}function getHostname(e){if(e[0]==="["){const A=e.indexOf("]");s(A!==-1);return e.substring(1,A)}const A=e.indexOf(":");if(A===-1)return e;return e.substring(0,A)}function getServerName(e){if(!e){return null}s.strictEqual(typeof e,"string");const A=getHostname(e);if(a.isIP(A)){return""}return A}function deepClone(e){return JSON.parse(JSON.stringify(e))}function isAsyncIterable(e){return!!(e!=null&&typeof e[Symbol.asyncIterator]==="function")}function isIterable(e){return!!(e!=null&&(typeof e[Symbol.iterator]==="function"||typeof e[Symbol.asyncIterator]==="function"))}function bodyLength(e){if(e==null){return 0}else if(isStream(e)){const A=e._readableState;return A&&A.objectMode===false&&A.ended===true&&Number.isFinite(A.length)?A.length:null}else if(isBlobLike(e)){return e.size!=null?e.size:null}else if(isBuffer(e)){return e.byteLength}return null}function isDestroyed(e){return!e||!!(e.destroyed||e[n])}function isReadableAborted(e){const A=e&&e._readableState;return isDestroyed(e)&&A&&!A.endEmitted}function destroy(e,A){if(e==null||!isStream(e)||isDestroyed(e)){return}if(typeof e.destroy==="function"){if(Object.getPrototypeOf(e).constructor===o){e.socket=null}e.destroy(A)}else if(A){process.nextTick(((e,A)=>{e.emit("error",A)}),e,A)}if(e.destroyed!==true){e[n]=true}}const h=/timeout=(\d+)/;function parseKeepAliveTimeout(e){const A=e.toString().match(h);return A?parseInt(A[1],10)*1e3:null}function headerNameToString(e){return g[e]||e.toLowerCase()}function parseHeaders(e,A={}){if(!Array.isArray(e))return e;for(let t=0;te.toString("utf8")))}else{A[s]=e[t+1].toString("utf8")}}else{if(!Array.isArray(n)){n=[n];A[s]=n}n.push(e[t+1].toString("utf8"))}}if("content-length"in A&&"content-disposition"in A){A["content-disposition"]=Buffer.from(A["content-disposition"]).toString("latin1")}return A}function parseRawHeaders(e){const A=[];let t=false;let s=-1;for(let n=0;n{e.close()}))}else{const A=Buffer.isBuffer(s)?s:Buffer.from(s);e.enqueue(new Uint8Array(A))}return e.desiredSize>0},async cancel(e){await A.return()}},0)}function isFormDataLike(e){return e&&typeof e==="object"&&typeof e.append==="function"&&typeof e.delete==="function"&&typeof e.get==="function"&&typeof e.getAll==="function"&&typeof e.has==="function"&&typeof e.set==="function"&&e[Symbol.toStringTag]==="FormData"}function throwIfAborted(e){if(!e){return}if(typeof e.throwIfAborted==="function"){e.throwIfAborted()}else{if(e.aborted){const e=new Error("The operation was aborted");e.name="AbortError";throw e}}}function addAbortListener(e,A){if("addEventListener"in e){e.addEventListener("abort",A,{once:true});return()=>e.removeEventListener("abort",A)}e.addListener("abort",A);return()=>e.removeListener("abort",A)}const C=!!String.prototype.toWellFormed;function toUSVString(e){if(C){return`${e}`.toWellFormed()}else if(u.toUSVString){return u.toUSVString(e)}return`${e}`}function parseRangeHeader(e){if(e==null||e==="")return{start:0,end:null,size:null};const A=e?e.match(/^bytes (\d+)-(\d+)\/(\d+)?$/):null;return A?{start:parseInt(A[1]),end:A[2]?parseInt(A[2]):null,size:A[3]?parseInt(A[3]):null}:null}const B=Object.create(null);B.enumerable=true;e.exports={kEnumerableProperty:B,nop:nop,isDisturbed:isDisturbed,isErrored:isErrored,isReadable:isReadable,toUSVString:toUSVString,isReadableAborted:isReadableAborted,isBlobLike:isBlobLike,parseOrigin:parseOrigin,parseURL:parseURL,getServerName:getServerName,isStream:isStream,isIterable:isIterable,isAsyncIterable:isAsyncIterable,isDestroyed:isDestroyed,headerNameToString:headerNameToString,parseRawHeaders:parseRawHeaders,parseHeaders:parseHeaders,parseKeepAliveTimeout:parseKeepAliveTimeout,destroy:destroy,bodyLength:bodyLength,deepClone:deepClone,ReadableStreamFrom:ReadableStreamFrom,isBuffer:isBuffer,validateHandler:validateHandler,getSocketInfo:getSocketInfo,isFormDataLike:isFormDataLike,buildURL:buildURL,throwIfAborted:throwIfAborted,addAbortListener:addAbortListener,parseRangeHeader:parseRangeHeader,nodeMajor:d,nodeMinor:E,nodeHasAutoSelectFamily:d>18||d===18&&E>=13,safeHTTPMethods:["GET","HEAD","OPTIONS","TRACE"]}},4839:(e,A,t)=>{"use strict";const s=t(412);const{ClientDestroyedError:n,ClientClosedError:i,InvalidArgumentError:o}=t(8045);const{kDestroy:r,kClose:a,kDispatch:c,kInterceptors:l}=t(2785);const u=Symbol("destroyed");const p=Symbol("closed");const g=Symbol("onDestroyed");const d=Symbol("onClosed");const E=Symbol("Intercepted Dispatch");class DispatcherBase extends s{constructor(){super();this[u]=false;this[g]=null;this[p]=false;this[d]=[]}get destroyed(){return this[u]}get closed(){return this[p]}get interceptors(){return this[l]}set interceptors(e){if(e){for(let A=e.length-1;A>=0;A--){const e=this[l][A];if(typeof e!=="function"){throw new o("interceptor must be an function")}}}this[l]=e}close(e){if(e===undefined){return new Promise(((e,A)=>{this.close(((t,s)=>t?A(t):e(s)))}))}if(typeof e!=="function"){throw new o("invalid callback")}if(this[u]){queueMicrotask((()=>e(new n,null)));return}if(this[p]){if(this[d]){this[d].push(e)}else{queueMicrotask((()=>e(null,null)))}return}this[p]=true;this[d].push(e);const onClosed=()=>{const e=this[d];this[d]=null;for(let A=0;Athis.destroy())).then((()=>{queueMicrotask(onClosed)}))}destroy(e,A){if(typeof e==="function"){A=e;e=null}if(A===undefined){return new Promise(((A,t)=>{this.destroy(e,((e,s)=>e?t(e):A(s)))}))}if(typeof A!=="function"){throw new o("invalid callback")}if(this[u]){if(this[g]){this[g].push(A)}else{queueMicrotask((()=>A(null,null)))}return}if(!e){e=new n}this[u]=true;this[g]=this[g]||[];this[g].push(A);const onDestroyed=()=>{const e=this[g];this[g]=null;for(let A=0;A{queueMicrotask(onDestroyed)}))}[E](e,A){if(!this[l]||this[l].length===0){this[E]=this[c];return this[c](e,A)}let t=this[c].bind(this);for(let e=this[l].length-1;e>=0;e--){t=this[l][e](t)}this[E]=t;return t(e,A)}dispatch(e,A){if(!A||typeof A!=="object"){throw new o("handler must be an object")}try{if(!e||typeof e!=="object"){throw new o("opts must be an object.")}if(this[u]||this[g]){throw new n}if(this[p]){throw new i}return this[E](e,A)}catch(e){if(typeof A.onError!=="function"){throw new o("invalid onError method")}A.onError(e);return false}}}e.exports=DispatcherBase},412:(e,A,t)=>{"use strict";const s=t(2361);class Dispatcher extends s{dispatch(){throw new Error("not implemented")}close(){throw new Error("not implemented")}destroy(){throw new Error("not implemented")}}e.exports=Dispatcher},1472:(e,A,t)=>{"use strict";const s=t(727);const n=t(3983);const{ReadableStreamFrom:i,isBlobLike:o,isReadableStreamLike:r,readableStreamClose:a,createDeferredPromise:c,fullyReadBody:l}=t(2538);const{FormData:u}=t(2015);const{kState:p}=t(5861);const{webidl:g}=t(1744);const{DOMException:d,structuredClone:E}=t(1037);const{Blob:h,File:Q}=t(4300);const{kBodyUsed:C}=t(2785);const B=t(9491);const{isErrored:f}=t(3983);const{isUint8Array:I,isArrayBuffer:m}=t(4978);const{File:y}=t(8511);const{parseMIMEType:b,serializeAMimeType:w}=t(685);let R;try{const e=t(6005);R=A=>e.randomInt(0,A)}catch{R=e=>Math.floor(Math.random(e))}let x=globalThis.ReadableStream;const D=Q??y;const v=new TextEncoder;const k=new TextDecoder;function extractBody(e,A=false){if(!x){x=t(5356).ReadableStream}let s=null;if(e instanceof x){s=e}else if(o(e)){s=e.stream()}else{s=new x({async pull(e){e.enqueue(typeof l==="string"?v.encode(l):l);queueMicrotask((()=>a(e)))},start(){},type:undefined})}B(r(s));let c=null;let l=null;let u=null;let p=null;if(typeof e==="string"){l=e;p="text/plain;charset=UTF-8"}else if(e instanceof URLSearchParams){l=e.toString();p="application/x-www-form-urlencoded;charset=UTF-8"}else if(m(e)){l=new Uint8Array(e.slice())}else if(ArrayBuffer.isView(e)){l=new Uint8Array(e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength))}else if(n.isFormDataLike(e)){const A=`----formdata-undici-0${`${R(1e11)}`.padStart(11,"0")}`;const t=`--${A}\r\nContent-Disposition: form-data` +/*! formdata-polyfill. MIT License. Jimmy Wärting */;const escape=e=>e.replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22");const normalizeLinefeeds=e=>e.replace(/\r?\n|\r/g,"\r\n");const s=[];const n=new Uint8Array([13,10]);u=0;let i=false;for(const[A,o]of e){if(typeof o==="string"){const e=v.encode(t+`; name="${escape(normalizeLinefeeds(A))}"`+`\r\n\r\n${normalizeLinefeeds(o)}\r\n`);s.push(e);u+=e.byteLength}else{const e=v.encode(`${t}; name="${escape(normalizeLinefeeds(A))}"`+(o.name?`; filename="${escape(o.name)}"`:"")+"\r\n"+`Content-Type: ${o.type||"application/octet-stream"}\r\n\r\n`);s.push(e,o,n);if(typeof o.size==="number"){u+=e.byteLength+o.size+n.byteLength}else{i=true}}}const o=v.encode(`--${A}--`);s.push(o);u+=o.byteLength;if(i){u=null}l=e;c=async function*(){for(const e of s){if(e.stream){yield*e.stream()}else{yield e}}};p="multipart/form-data; boundary="+A}else if(o(e)){l=e;u=e.size;if(e.type){p=e.type}}else if(typeof e[Symbol.asyncIterator]==="function"){if(A){throw new TypeError("keepalive")}if(n.isDisturbed(e)||e.locked){throw new TypeError("Response body object should not be disturbed or locked")}s=e instanceof x?e:i(e)}if(typeof l==="string"||n.isBuffer(l)){u=Buffer.byteLength(l)}if(c!=null){let A;s=new x({async start(){A=c(e)[Symbol.asyncIterator]()},async pull(e){const{value:t,done:n}=await A.next();if(n){queueMicrotask((()=>{e.close()}))}else{if(!f(s)){e.enqueue(new Uint8Array(t))}}return e.desiredSize>0},async cancel(e){await A.return()},type:undefined})}const g={stream:s,source:l,length:u};return[g,p]}function safelyExtractBody(e,A=false){if(!x){x=t(5356).ReadableStream}if(e instanceof x){B(!n.isDisturbed(e),"The body has already been consumed.");B(!e.locked,"The stream is locked.")}return extractBody(e,A)}function cloneBody(e){const[A,t]=e.stream.tee();const s=E(t,{transfer:[t]});const[,n]=s.tee();e.stream=A;return{stream:n,length:e.length,source:e.source}}async function*consumeBody(e){if(e){if(I(e)){yield e}else{const A=e.stream;if(n.isDisturbed(A)){throw new TypeError("The body has already been consumed.")}if(A.locked){throw new TypeError("The stream is locked.")}A[C]=true;yield*A}}}function throwIfAborted(e){if(e.aborted){throw new d("The operation was aborted.","AbortError")}}function bodyMixinMethods(e){const A={blob(){return specConsumeBody(this,(e=>{let A=bodyMimeType(this);if(A==="failure"){A=""}else if(A){A=w(A)}return new h([e],{type:A})}),e)},arrayBuffer(){return specConsumeBody(this,(e=>new Uint8Array(e).buffer),e)},text(){return specConsumeBody(this,utf8DecodeBytes,e)},json(){return specConsumeBody(this,parseJSONFromBytes,e)},async formData(){g.brandCheck(this,e);throwIfAborted(this[p]);const A=this.headers.get("Content-Type");if(/multipart\/form-data/.test(A)){const e={};for(const[A,t]of this.headers)e[A.toLowerCase()]=t;const A=new u;let t;try{t=new s({headers:e,preservePath:true})}catch(e){throw new d(`${e}`,"AbortError")}t.on("field",((e,t)=>{A.append(e,t)}));t.on("file",((e,t,s,n,i)=>{const o=[];if(n==="base64"||n.toLowerCase()==="base64"){let n="";t.on("data",(e=>{n+=e.toString().replace(/[\r\n]/gm,"");const A=n.length-n.length%4;o.push(Buffer.from(n.slice(0,A),"base64"));n=n.slice(A)}));t.on("end",(()=>{o.push(Buffer.from(n,"base64"));A.append(e,new D(o,s,{type:i}))}))}else{t.on("data",(e=>{o.push(e)}));t.on("end",(()=>{A.append(e,new D(o,s,{type:i}))}))}}));const n=new Promise(((e,A)=>{t.on("finish",e);t.on("error",(e=>A(new TypeError(e))))}));if(this.body!==null)for await(const e of consumeBody(this[p].body))t.write(e);t.end();await n;return A}else if(/application\/x-www-form-urlencoded/.test(A)){let e;try{let A="";const t=new TextDecoder("utf-8",{ignoreBOM:true});for await(const e of consumeBody(this[p].body)){if(!I(e)){throw new TypeError("Expected Uint8Array chunk")}A+=t.decode(e,{stream:true})}A+=t.decode();e=new URLSearchParams(A)}catch(e){throw Object.assign(new TypeError,{cause:e})}const A=new u;for(const[t,s]of e){A.append(t,s)}return A}else{await Promise.resolve();throwIfAborted(this[p]);throw g.errors.exception({header:`${e.name}.formData`,message:"Could not parse content as FormData."})}}};return A}function mixinBody(e){Object.assign(e.prototype,bodyMixinMethods(e))}async function specConsumeBody(e,A,t){g.brandCheck(e,t);throwIfAborted(e[p]);if(bodyUnusable(e[p].body)){throw new TypeError("Body is unusable")}const s=c();const errorSteps=e=>s.reject(e);const successSteps=e=>{try{s.resolve(A(e))}catch(e){errorSteps(e)}};if(e[p].body==null){successSteps(new Uint8Array);return s.promise}await l(e[p].body,successSteps,errorSteps);return s.promise}function bodyUnusable(e){return e!=null&&(e.stream.locked||n.isDisturbed(e.stream))}function utf8DecodeBytes(e){if(e.length===0){return""}if(e[0]===239&&e[1]===187&&e[2]===191){e=e.subarray(3)}const A=k.decode(e);return A}function parseJSONFromBytes(e){return JSON.parse(utf8DecodeBytes(e))}function bodyMimeType(e){const{headersList:A}=e[p];const t=A.get("content-type");if(t===null){return"failure"}return b(t)}e.exports={extractBody:extractBody,safelyExtractBody:safelyExtractBody,cloneBody:cloneBody,mixinBody:mixinBody}},1037:(e,A,t)=>{"use strict";const{MessageChannel:s,receiveMessageOnPort:n}=t(1267);const i=["GET","HEAD","POST"];const o=new Set(i);const r=[101,204,205,304];const a=[301,302,303,307,308];const c=new Set(a);const l=["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","5060","5061","6000","6566","6665","6666","6667","6668","6669","6697","10080"];const u=new Set(l);const p=["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"];const g=new Set(p);const d=["follow","manual","error"];const E=["GET","HEAD","OPTIONS","TRACE"];const h=new Set(E);const Q=["navigate","same-origin","no-cors","cors"];const C=["omit","same-origin","include"];const B=["default","no-store","reload","no-cache","force-cache","only-if-cached"];const f=["content-encoding","content-language","content-location","content-type","content-length"];const I=["half"];const m=["CONNECT","TRACE","TRACK"];const y=new Set(m);const b=["audio","audioworklet","font","image","manifest","paintworklet","script","style","track","video","xslt",""];const w=new Set(b);const R=globalThis.DOMException??(()=>{try{atob("~")}catch(e){return Object.getPrototypeOf(e).constructor}})();let x;const D=globalThis.structuredClone??function structuredClone(e,A=undefined){if(arguments.length===0){throw new TypeError("missing argument")}if(!x){x=new s}x.port1.unref();x.port2.unref();x.port1.postMessage(e,A?.transfer);return n(x.port2).message};e.exports={DOMException:R,structuredClone:D,subresource:b,forbiddenMethods:m,requestBodyHeader:f,referrerPolicy:p,requestRedirect:d,requestMode:Q,requestCredentials:C,requestCache:B,redirectStatus:a,corsSafeListedMethods:i,nullBodyStatus:r,safeMethods:E,badPorts:l,requestDuplex:I,subresourceSet:w,badPortsSet:u,redirectStatusSet:c,corsSafeListedMethodsSet:o,safeMethodsSet:h,forbiddenMethodsSet:y,referrerPolicySet:g}},685:(e,A,t)=>{const s=t(9491);const{atob:n}=t(4300);const{isomorphicDecode:i}=t(2538);const o=new TextEncoder;const r=/^[!#$%&'*+-.^_|~A-Za-z0-9]+$/;const a=/(\u000A|\u000D|\u0009|\u0020)/;const c=/[\u0009|\u0020-\u007E|\u0080-\u00FF]/;function dataURLProcessor(e){s(e.protocol==="data:");let A=URLSerializer(e,true);A=A.slice(5);const t={position:0};let n=collectASequenceOfCodePointsFast(",",A,t);const o=n.length;n=removeASCIIWhitespace(n,true,true);if(t.position>=A.length){return"failure"}t.position++;const r=A.slice(o+1);let a=stringPercentDecode(r);if(/;(\u0020){0,}base64$/i.test(n)){const e=i(a);a=forgivingBase64(e);if(a==="failure"){return"failure"}n=n.slice(0,-6);n=n.replace(/(\u0020)+$/,"");n=n.slice(0,-1)}if(n.startsWith(";")){n="text/plain"+n}let c=parseMIMEType(n);if(c==="failure"){c=parseMIMEType("text/plain;charset=US-ASCII")}return{mimeType:c,body:a}}function URLSerializer(e,A=false){if(!A){return e.href}const t=e.href;const s=e.hash.length;return s===0?t:t.substring(0,t.length-s)}function collectASequenceOfCodePoints(e,A,t){let s="";while(t.positione.length){return"failure"}A.position++;let s=collectASequenceOfCodePointsFast(";",e,A);s=removeHTTPWhitespace(s,false,true);if(s.length===0||!r.test(s)){return"failure"}const n=t.toLowerCase();const i=s.toLowerCase();const o={type:n,subtype:i,parameters:new Map,essence:`${n}/${i}`};while(A.positiona.test(e)),e,A);let t=collectASequenceOfCodePoints((e=>e!==";"&&e!=="="),e,A);t=t.toLowerCase();if(A.positione.length){break}let s=null;if(e[A.position]==='"'){s=collectAnHTTPQuotedString(e,A,true);collectASequenceOfCodePointsFast(";",e,A)}else{s=collectASequenceOfCodePointsFast(";",e,A);s=removeHTTPWhitespace(s,false,true);if(s.length===0){continue}}if(t.length!==0&&r.test(t)&&(s.length===0||c.test(s))&&!o.parameters.has(t)){o.parameters.set(t,s)}}return o}function forgivingBase64(e){e=e.replace(/[\u0009\u000A\u000C\u000D\u0020]/g,"");if(e.length%4===0){e=e.replace(/=?=$/,"")}if(e.length%4===1){return"failure"}if(/[^+/0-9A-Za-z]/.test(e)){return"failure"}const A=n(e);const t=new Uint8Array(A.length);for(let e=0;ee!=='"'&&e!=="\\"),e,A);if(A.position>=e.length){break}const t=e[A.position];A.position++;if(t==="\\"){if(A.position>=e.length){i+="\\";break}i+=e[A.position];A.position++}else{s(t==='"');break}}if(t){return i}return e.slice(n,A.position)}function serializeAMimeType(e){s(e!=="failure");const{parameters:A,essence:t}=e;let n=t;for(let[e,t]of A.entries()){n+=";";n+=e;n+="=";if(!r.test(t)){t=t.replace(/(\\|")/g,"\\$1");t='"'+t;t+='"'}n+=t}return n}function isHTTPWhiteSpace(e){return e==="\r"||e==="\n"||e==="\t"||e===" "}function removeHTTPWhitespace(e,A=true,t=true){let s=0;let n=e.length-1;if(A){for(;s0&&isHTTPWhiteSpace(e[n]);n--);}return e.slice(s,n+1)}function isASCIIWhitespace(e){return e==="\r"||e==="\n"||e==="\t"||e==="\f"||e===" "}function removeASCIIWhitespace(e,A=true,t=true){let s=0;let n=e.length-1;if(A){for(;s0&&isASCIIWhitespace(e[n]);n--);}return e.slice(s,n+1)}e.exports={dataURLProcessor:dataURLProcessor,URLSerializer:URLSerializer,collectASequenceOfCodePoints:collectASequenceOfCodePoints,collectASequenceOfCodePointsFast:collectASequenceOfCodePointsFast,stringPercentDecode:stringPercentDecode,parseMIMEType:parseMIMEType,collectAnHTTPQuotedString:collectAnHTTPQuotedString,serializeAMimeType:serializeAMimeType}},8511:(e,A,t)=>{"use strict";const{Blob:s,File:n}=t(4300);const{types:i}=t(3837);const{kState:o}=t(5861);const{isBlobLike:r}=t(2538);const{webidl:a}=t(1744);const{parseMIMEType:c,serializeAMimeType:l}=t(685);const{kEnumerableProperty:u}=t(3983);const p=new TextEncoder;class File extends s{constructor(e,A,t={}){a.argumentLengthCheck(arguments,2,{header:"File constructor"});e=a.converters["sequence"](e);A=a.converters.USVString(A);t=a.converters.FilePropertyBag(t);const s=A;let n=t.type;let i;e:{if(n){n=c(n);if(n==="failure"){n="";break e}n=l(n).toLowerCase()}i=t.lastModified}super(processBlobParts(e,t),{type:n});this[o]={name:s,lastModified:i,type:n}}get name(){a.brandCheck(this,File);return this[o].name}get lastModified(){a.brandCheck(this,File);return this[o].lastModified}get type(){a.brandCheck(this,File);return this[o].type}}class FileLike{constructor(e,A,t={}){const s=A;const n=t.type;const i=t.lastModified??Date.now();this[o]={blobLike:e,name:s,type:n,lastModified:i}}stream(...e){a.brandCheck(this,FileLike);return this[o].blobLike.stream(...e)}arrayBuffer(...e){a.brandCheck(this,FileLike);return this[o].blobLike.arrayBuffer(...e)}slice(...e){a.brandCheck(this,FileLike);return this[o].blobLike.slice(...e)}text(...e){a.brandCheck(this,FileLike);return this[o].blobLike.text(...e)}get size(){a.brandCheck(this,FileLike);return this[o].blobLike.size}get type(){a.brandCheck(this,FileLike);return this[o].blobLike.type}get name(){a.brandCheck(this,FileLike);return this[o].name}get lastModified(){a.brandCheck(this,FileLike);return this[o].lastModified}get[Symbol.toStringTag](){return"File"}}Object.defineProperties(File.prototype,{[Symbol.toStringTag]:{value:"File",configurable:true},name:u,lastModified:u});a.converters.Blob=a.interfaceConverter(s);a.converters.BlobPart=function(e,A){if(a.util.Type(e)==="Object"){if(r(e)){return a.converters.Blob(e,{strict:false})}if(ArrayBuffer.isView(e)||i.isAnyArrayBuffer(e)){return a.converters.BufferSource(e,A)}}return a.converters.USVString(e,A)};a.converters["sequence"]=a.sequenceConverter(a.converters.BlobPart);a.converters.FilePropertyBag=a.dictionaryConverter([{key:"lastModified",converter:a.converters["long long"],get defaultValue(){return Date.now()}},{key:"type",converter:a.converters.DOMString,defaultValue:""},{key:"endings",converter:e=>{e=a.converters.DOMString(e);e=e.toLowerCase();if(e!=="native"){e="transparent"}return e},defaultValue:"transparent"}]);function processBlobParts(e,A){const t=[];for(const s of e){if(typeof s==="string"){let e=s;if(A.endings==="native"){e=convertLineEndingsNative(e)}t.push(p.encode(e))}else if(i.isAnyArrayBuffer(s)||i.isTypedArray(s)){if(!s.buffer){t.push(new Uint8Array(s))}else{t.push(new Uint8Array(s.buffer,s.byteOffset,s.byteLength))}}else if(r(s)){t.push(s)}}return t}function convertLineEndingsNative(e){let A="\n";if(process.platform==="win32"){A="\r\n"}return e.replace(/\r?\n/g,A)}function isFileLike(e){return n&&e instanceof n||e instanceof File||e&&(typeof e.stream==="function"||typeof e.arrayBuffer==="function")&&e[Symbol.toStringTag]==="File"}e.exports={File:File,FileLike:FileLike,isFileLike:isFileLike}},2015:(e,A,t)=>{"use strict";const{isBlobLike:s,toUSVString:n,makeIterator:i}=t(2538);const{kState:o}=t(5861);const{File:r,FileLike:a,isFileLike:c}=t(8511);const{webidl:l}=t(1744);const{Blob:u,File:p}=t(4300);const g=p??r;class FormData{constructor(e){if(e!==undefined){throw l.errors.conversionFailed({prefix:"FormData constructor",argument:"Argument 1",types:["undefined"]})}this[o]=[]}append(e,A,t=undefined){l.brandCheck(this,FormData);l.argumentLengthCheck(arguments,2,{header:"FormData.append"});if(arguments.length===3&&!s(A)){throw new TypeError("Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'")}e=l.converters.USVString(e);A=s(A)?l.converters.Blob(A,{strict:false}):l.converters.USVString(A);t=arguments.length===3?l.converters.USVString(t):undefined;const n=makeEntry(e,A,t);this[o].push(n)}delete(e){l.brandCheck(this,FormData);l.argumentLengthCheck(arguments,1,{header:"FormData.delete"});e=l.converters.USVString(e);this[o]=this[o].filter((A=>A.name!==e))}get(e){l.brandCheck(this,FormData);l.argumentLengthCheck(arguments,1,{header:"FormData.get"});e=l.converters.USVString(e);const A=this[o].findIndex((A=>A.name===e));if(A===-1){return null}return this[o][A].value}getAll(e){l.brandCheck(this,FormData);l.argumentLengthCheck(arguments,1,{header:"FormData.getAll"});e=l.converters.USVString(e);return this[o].filter((A=>A.name===e)).map((e=>e.value))}has(e){l.brandCheck(this,FormData);l.argumentLengthCheck(arguments,1,{header:"FormData.has"});e=l.converters.USVString(e);return this[o].findIndex((A=>A.name===e))!==-1}set(e,A,t=undefined){l.brandCheck(this,FormData);l.argumentLengthCheck(arguments,2,{header:"FormData.set"});if(arguments.length===3&&!s(A)){throw new TypeError("Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'")}e=l.converters.USVString(e);A=s(A)?l.converters.Blob(A,{strict:false}):l.converters.USVString(A);t=arguments.length===3?n(t):undefined;const i=makeEntry(e,A,t);const r=this[o].findIndex((A=>A.name===e));if(r!==-1){this[o]=[...this[o].slice(0,r),i,...this[o].slice(r+1).filter((A=>A.name!==e))]}else{this[o].push(i)}}entries(){l.brandCheck(this,FormData);return i((()=>this[o].map((e=>[e.name,e.value]))),"FormData","key+value")}keys(){l.brandCheck(this,FormData);return i((()=>this[o].map((e=>[e.name,e.value]))),"FormData","key")}values(){l.brandCheck(this,FormData);return i((()=>this[o].map((e=>[e.name,e.value]))),"FormData","value")}forEach(e,A=globalThis){l.brandCheck(this,FormData);l.argumentLengthCheck(arguments,1,{header:"FormData.forEach"});if(typeof e!=="function"){throw new TypeError("Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'.")}for(const[t,s]of this){e.apply(A,[s,t,this])}}}FormData.prototype[Symbol.iterator]=FormData.prototype.entries;Object.defineProperties(FormData.prototype,{[Symbol.toStringTag]:{value:"FormData",configurable:true}});function makeEntry(e,A,t){e=Buffer.from(e).toString("utf8");if(typeof A==="string"){A=Buffer.from(A).toString("utf8")}else{if(!c(A)){A=A instanceof u?new g([A],"blob",{type:A.type}):new a(A,"blob",{type:A.type})}if(t!==undefined){const e={type:A.type,lastModified:A.lastModified};A=p&&A instanceof p||A instanceof r?new g([A],t,e):new a(A,t,e)}}return{name:e,value:A}}e.exports={FormData:FormData}},1246:e=>{"use strict";const A=Symbol.for("undici.globalOrigin.1");function getGlobalOrigin(){return globalThis[A]}function setGlobalOrigin(e){if(e===undefined){Object.defineProperty(globalThis,A,{value:undefined,writable:true,enumerable:false,configurable:false});return}const t=new URL(e);if(t.protocol!=="http:"&&t.protocol!=="https:"){throw new TypeError(`Only http & https urls are allowed, received ${t.protocol}`)}Object.defineProperty(globalThis,A,{value:t,writable:true,enumerable:false,configurable:false})}e.exports={getGlobalOrigin:getGlobalOrigin,setGlobalOrigin:setGlobalOrigin}},554:(e,A,t)=>{"use strict";const{kHeadersList:s,kConstruct:n}=t(2785);const{kGuard:i}=t(5861);const{kEnumerableProperty:o}=t(3983);const{makeIterator:r,isValidHeaderName:a,isValidHeaderValue:c}=t(2538);const l=t(3837);const{webidl:u}=t(1744);const p=t(9491);const g=Symbol("headers map");const d=Symbol("headers map sorted");function isHTTPWhiteSpaceCharCode(e){return e===10||e===13||e===9||e===32}function headerValueNormalize(e){let A=0;let t=e.length;while(t>A&&isHTTPWhiteSpaceCharCode(e.charCodeAt(t-1)))--t;while(t>A&&isHTTPWhiteSpaceCharCode(e.charCodeAt(A)))++A;return A===0&&t===e.length?e:e.substring(A,t)}function fill(e,A){if(Array.isArray(A)){for(let t=0;t>","record"]})}}function appendHeader(e,A,t){t=headerValueNormalize(t);if(!a(A)){throw u.errors.invalidArgument({prefix:"Headers.append",value:A,type:"header name"})}else if(!c(t)){throw u.errors.invalidArgument({prefix:"Headers.append",value:t,type:"header value"})}if(e[i]==="immutable"){throw new TypeError("immutable")}else if(e[i]==="request-no-cors"){}return e[s].append(A,t)}class HeadersList{cookies=null;constructor(e){if(e instanceof HeadersList){this[g]=new Map(e[g]);this[d]=e[d];this.cookies=e.cookies===null?null:[...e.cookies]}else{this[g]=new Map(e);this[d]=null}}contains(e){e=e.toLowerCase();return this[g].has(e)}clear(){this[g].clear();this[d]=null;this.cookies=null}append(e,A){this[d]=null;const t=e.toLowerCase();const s=this[g].get(t);if(s){const e=t==="cookie"?"; ":", ";this[g].set(t,{name:s.name,value:`${s.value}${e}${A}`})}else{this[g].set(t,{name:e,value:A})}if(t==="set-cookie"){this.cookies??=[];this.cookies.push(A)}}set(e,A){this[d]=null;const t=e.toLowerCase();if(t==="set-cookie"){this.cookies=[A]}this[g].set(t,{name:e,value:A})}delete(e){this[d]=null;e=e.toLowerCase();if(e==="set-cookie"){this.cookies=null}this[g].delete(e)}get(e){const A=this[g].get(e.toLowerCase());return A===undefined?null:A.value}*[Symbol.iterator](){for(const[e,{value:A}]of this[g]){yield[e,A]}}get entries(){const e={};if(this[g].size){for(const{name:A,value:t}of this[g].values()){e[A]=t}}return e}}class Headers{constructor(e=undefined){if(e===n){return}this[s]=new HeadersList;this[i]="none";if(e!==undefined){e=u.converters.HeadersInit(e);fill(this,e)}}append(e,A){u.brandCheck(this,Headers);u.argumentLengthCheck(arguments,2,{header:"Headers.append"});e=u.converters.ByteString(e);A=u.converters.ByteString(A);return appendHeader(this,e,A)}delete(e){u.brandCheck(this,Headers);u.argumentLengthCheck(arguments,1,{header:"Headers.delete"});e=u.converters.ByteString(e);if(!a(e)){throw u.errors.invalidArgument({prefix:"Headers.delete",value:e,type:"header name"})}if(this[i]==="immutable"){throw new TypeError("immutable")}else if(this[i]==="request-no-cors"){}if(!this[s].contains(e)){return}this[s].delete(e)}get(e){u.brandCheck(this,Headers);u.argumentLengthCheck(arguments,1,{header:"Headers.get"});e=u.converters.ByteString(e);if(!a(e)){throw u.errors.invalidArgument({prefix:"Headers.get",value:e,type:"header name"})}return this[s].get(e)}has(e){u.brandCheck(this,Headers);u.argumentLengthCheck(arguments,1,{header:"Headers.has"});e=u.converters.ByteString(e);if(!a(e)){throw u.errors.invalidArgument({prefix:"Headers.has",value:e,type:"header name"})}return this[s].contains(e)}set(e,A){u.brandCheck(this,Headers);u.argumentLengthCheck(arguments,2,{header:"Headers.set"});e=u.converters.ByteString(e);A=u.converters.ByteString(A);A=headerValueNormalize(A);if(!a(e)){throw u.errors.invalidArgument({prefix:"Headers.set",value:e,type:"header name"})}else if(!c(A)){throw u.errors.invalidArgument({prefix:"Headers.set",value:A,type:"header value"})}if(this[i]==="immutable"){throw new TypeError("immutable")}else if(this[i]==="request-no-cors"){}this[s].set(e,A)}getSetCookie(){u.brandCheck(this,Headers);const e=this[s].cookies;if(e){return[...e]}return[]}get[d](){if(this[s][d]){return this[s][d]}const e=[];const A=[...this[s]].sort(((e,A)=>e[0]e),"Headers","key")}return r((()=>[...this[d].values()]),"Headers","key")}values(){u.brandCheck(this,Headers);if(this[i]==="immutable"){const e=this[d];return r((()=>e),"Headers","value")}return r((()=>[...this[d].values()]),"Headers","value")}entries(){u.brandCheck(this,Headers);if(this[i]==="immutable"){const e=this[d];return r((()=>e),"Headers","key+value")}return r((()=>[...this[d].values()]),"Headers","key+value")}forEach(e,A=globalThis){u.brandCheck(this,Headers);u.argumentLengthCheck(arguments,1,{header:"Headers.forEach"});if(typeof e!=="function"){throw new TypeError("Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'.")}for(const[t,s]of this){e.apply(A,[s,t,this])}}[Symbol.for("nodejs.util.inspect.custom")](){u.brandCheck(this,Headers);return this[s]}}Headers.prototype[Symbol.iterator]=Headers.prototype.entries;Object.defineProperties(Headers.prototype,{append:o,delete:o,get:o,has:o,set:o,getSetCookie:o,keys:o,values:o,entries:o,forEach:o,[Symbol.iterator]:{enumerable:false},[Symbol.toStringTag]:{value:"Headers",configurable:true},[l.inspect.custom]:{enumerable:false}});u.converters.HeadersInit=function(e){if(u.util.Type(e)==="Object"){if(e[Symbol.iterator]){return u.converters["sequence>"](e)}return u.converters["record"](e)}throw u.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence>","record"]})};e.exports={fill:fill,Headers:Headers,HeadersList:HeadersList}},4881:(e,A,t)=>{"use strict";const{Response:s,makeNetworkError:n,makeAppropriateNetworkError:i,filterResponse:o,makeResponse:r}=t(7823);const{Headers:a}=t(554);const{Request:c,makeRequest:l}=t(8359);const u=t(9796);const{bytesMatch:p,makePolicyContainer:g,clonePolicyContainer:d,requestBadPort:E,TAOCheck:h,appendRequestOriginHeader:Q,responseLocationURL:C,requestCurrentURL:B,setRequestReferrerPolicyOnRedirect:f,tryUpgradeRequestToAPotentiallyTrustworthyURL:I,createOpaqueTimingInfo:m,appendFetchMetadata:y,corsCheck:b,crossOriginResourcePolicyCheck:w,determineRequestsReferrer:R,coarsenedSharedCurrentTime:x,createDeferredPromise:D,isBlobLike:v,sameOrigin:k,isCancelled:S,isAborted:F,isErrorLike:N,fullyReadBody:U,readableStreamClose:L,isomorphicEncode:M,urlIsLocal:T,urlIsHttpHttpsScheme:H,urlHasHttpsScheme:Y}=t(2538);const{kState:J,kHeaders:G,kGuard:O,kRealm:V}=t(5861);const P=t(9491);const{safelyExtractBody:_}=t(1472);const{redirectStatusSet:q,nullBodyStatus:W,safeMethodsSet:j,requestBodyHeader:z,subresourceSet:Z,DOMException:X}=t(1037);const{kHeadersList:K}=t(2785);const $=t(2361);const{Readable:ee,pipeline:Ae}=t(2781);const{addAbortListener:te,isErrored:se,isReadable:ne,nodeMajor:ie,nodeMinor:oe}=t(3983);const{dataURLProcessor:re,serializeAMimeType:ae}=t(685);const{TransformStream:ce}=t(5356);const{getGlobalDispatcher:le}=t(1892);const{webidl:ue}=t(1744);const{STATUS_CODES:pe}=t(3685);const ge=["GET","HEAD"];let de;let Ee=globalThis.ReadableStream;class Fetch extends ${constructor(e){super();this.dispatcher=e;this.connection=null;this.dump=false;this.state="ongoing";this.setMaxListeners(21)}terminate(e){if(this.state!=="ongoing"){return}this.state="terminated";this.connection?.destroy(e);this.emit("terminated",e)}abort(e){if(this.state!=="ongoing"){return}this.state="aborted";if(!e){e=new X("The operation was aborted.","AbortError")}this.serializedAbortReason=e;this.connection?.destroy(e);this.emit("terminated",e)}}function fetch(e,A={}){ue.argumentLengthCheck(arguments,1,{header:"globalThis.fetch"});const t=D();let n;try{n=new c(e,A)}catch(e){t.reject(e);return t.promise}const i=n[J];if(n.signal.aborted){abortFetch(t,i,null,n.signal.reason);return t.promise}const o=i.client.globalObject;if(o?.constructor?.name==="ServiceWorkerGlobalScope"){i.serviceWorkers="none"}let r=null;const a=null;let l=false;let u=null;te(n.signal,(()=>{l=true;P(u!=null);u.abort(n.signal.reason);abortFetch(t,i,r,n.signal.reason)}));const handleFetchDone=e=>finalizeAndReportTiming(e,"fetch");const processResponse=e=>{if(l){return Promise.resolve()}if(e.aborted){abortFetch(t,i,r,u.serializedAbortReason);return Promise.resolve()}if(e.type==="error"){t.reject(Object.assign(new TypeError("fetch failed"),{cause:e.error}));return Promise.resolve()}r=new s;r[J]=e;r[V]=a;r[G][K]=e.headersList;r[G][O]="immutable";r[G][V]=a;t.resolve(r)};u=fetching({request:i,processResponseEndOfBody:handleFetchDone,processResponse:processResponse,dispatcher:A.dispatcher??le()});return t.promise}function finalizeAndReportTiming(e,A="other"){if(e.type==="error"&&e.aborted){return}if(!e.urlList?.length){return}const t=e.urlList[0];let s=e.timingInfo;let n=e.cacheState;if(!H(t)){return}if(s===null){return}if(!e.timingAllowPassed){s=m({startTime:s.startTime});n=""}s.endTime=x();e.timingInfo=s;markResourceTiming(s,t,A,globalThis,n)}function markResourceTiming(e,A,t,s,n){if(ie>18||ie===18&&oe>=2){performance.markResourceTiming(e,A.href,t,s,n)}}function abortFetch(e,A,t,s){if(!s){s=new X("The operation was aborted.","AbortError")}e.reject(s);if(A.body!=null&&ne(A.body?.stream)){A.body.stream.cancel(s).catch((e=>{if(e.code==="ERR_INVALID_STATE"){return}throw e}))}if(t==null){return}const n=t[J];if(n.body!=null&&ne(n.body?.stream)){n.body.stream.cancel(s).catch((e=>{if(e.code==="ERR_INVALID_STATE"){return}throw e}))}}function fetching({request:e,processRequestBodyChunkLength:A,processRequestEndOfBody:t,processResponse:s,processResponseEndOfBody:n,processResponseConsumeBody:i,useParallelQueue:o=false,dispatcher:r}){let a=null;let c=false;if(e.client!=null){a=e.client.globalObject;c=e.client.crossOriginIsolatedCapability}const l=x(c);const u=m({startTime:l});const p={controller:new Fetch(r),request:e,timingInfo:u,processRequestBodyChunkLength:A,processRequestEndOfBody:t,processResponse:s,processResponseConsumeBody:i,processResponseEndOfBody:n,taskDestination:a,crossOriginIsolatedCapability:c};P(!e.body||e.body.stream);if(e.window==="client"){e.window=e.client?.globalObject?.constructor?.name==="Window"?e.client:"no-window"}if(e.origin==="client"){e.origin=e.client?.origin}if(e.policyContainer==="client"){if(e.client!=null){e.policyContainer=d(e.client.policyContainer)}else{e.policyContainer=g()}}if(!e.headersList.contains("accept")){const A="*/*";e.headersList.append("accept",A)}if(!e.headersList.contains("accept-language")){e.headersList.append("accept-language","*")}if(e.priority===null){}if(Z.has(e.destination)){}mainFetch(p).catch((e=>{p.controller.terminate(e)}));return p.controller}async function mainFetch(e,A=false){const t=e.request;let s=null;if(t.localURLsOnly&&!T(B(t))){s=n("local URLs only")}I(t);if(E(t)==="blocked"){s=n("bad port")}if(t.referrerPolicy===""){t.referrerPolicy=t.policyContainer.referrerPolicy}if(t.referrer!=="no-referrer"){t.referrer=R(t)}if(s===null){s=await(async()=>{const A=B(t);if(k(A,t.url)&&t.responseTainting==="basic"||A.protocol==="data:"||(t.mode==="navigate"||t.mode==="websocket")){t.responseTainting="basic";return await schemeFetch(e)}if(t.mode==="same-origin"){return n('request mode cannot be "same-origin"')}if(t.mode==="no-cors"){if(t.redirect!=="follow"){return n('redirect mode cannot be "follow" for "no-cors" request')}t.responseTainting="opaque";return await schemeFetch(e)}if(!H(B(t))){return n("URL scheme must be a HTTP(S) scheme")}t.responseTainting="cors";return await httpFetch(e)})()}if(A){return s}if(s.status!==0&&!s.internalResponse){if(t.responseTainting==="cors"){}if(t.responseTainting==="basic"){s=o(s,"basic")}else if(t.responseTainting==="cors"){s=o(s,"cors")}else if(t.responseTainting==="opaque"){s=o(s,"opaque")}else{P(false)}}let i=s.status===0?s:s.internalResponse;if(i.urlList.length===0){i.urlList.push(...t.urlList)}if(!t.timingAllowFailed){s.timingAllowPassed=true}if(s.type==="opaque"&&i.status===206&&i.rangeRequested&&!t.headers.contains("range")){s=i=n()}if(s.status!==0&&(t.method==="HEAD"||t.method==="CONNECT"||W.includes(i.status))){i.body=null;e.controller.dump=true}if(t.integrity){const processBodyError=A=>fetchFinale(e,n(A));if(t.responseTainting==="opaque"||s.body==null){processBodyError(s.error);return}const processBody=A=>{if(!p(A,t.integrity)){processBodyError("integrity mismatch");return}s.body=_(A)[0];fetchFinale(e,s)};await U(s.body,processBody,processBodyError)}else{fetchFinale(e,s)}}function schemeFetch(e){if(S(e)&&e.request.redirectCount===0){return Promise.resolve(i(e))}const{request:A}=e;const{protocol:s}=B(A);switch(s){case"about:":{return Promise.resolve(n("about scheme is not supported"))}case"blob:":{if(!de){de=t(4300).resolveObjectURL}const e=B(A);if(e.search.length!==0){return Promise.resolve(n("NetworkError when attempting to fetch resource."))}const s=de(e.toString());if(A.method!=="GET"||!v(s)){return Promise.resolve(n("invalid method"))}const i=_(s);const o=i[0];const a=M(`${o.length}`);const c=i[1]??"";const l=r({statusText:"OK",headersList:[["content-length",{name:"Content-Length",value:a}],["content-type",{name:"Content-Type",value:c}]]});l.body=o;return Promise.resolve(l)}case"data:":{const e=B(A);const t=re(e);if(t==="failure"){return Promise.resolve(n("failed to fetch the data URL"))}const s=ae(t.mimeType);return Promise.resolve(r({statusText:"OK",headersList:[["content-type",{name:"Content-Type",value:s}]],body:_(t.body)[0]}))}case"file:":{return Promise.resolve(n("not implemented... yet..."))}case"http:":case"https:":{return httpFetch(e).catch((e=>n(e)))}default:{return Promise.resolve(n("unknown scheme"))}}}function finalizeResponse(e,A){e.request.done=true;if(e.processResponseDone!=null){queueMicrotask((()=>e.processResponseDone(A)))}}function fetchFinale(e,A){if(A.type==="error"){A.urlList=[e.request.urlList[0]];A.timingInfo=m({startTime:e.timingInfo.startTime})}const processResponseEndOfBody=()=>{e.request.done=true;if(e.processResponseEndOfBody!=null){queueMicrotask((()=>e.processResponseEndOfBody(A)))}};if(e.processResponse!=null){queueMicrotask((()=>e.processResponse(A)))}if(A.body==null){processResponseEndOfBody()}else{const identityTransformAlgorithm=(e,A)=>{A.enqueue(e)};const e=new ce({start(){},transform:identityTransformAlgorithm,flush:processResponseEndOfBody},{size(){return 1}},{size(){return 1}});A.body={stream:A.body.stream.pipeThrough(e)}}if(e.processResponseConsumeBody!=null){const processBody=t=>e.processResponseConsumeBody(A,t);const processBodyError=t=>e.processResponseConsumeBody(A,t);if(A.body==null){queueMicrotask((()=>processBody(null)))}else{return U(A.body,processBody,processBodyError)}return Promise.resolve()}}async function httpFetch(e){const A=e.request;let t=null;let s=null;const i=e.timingInfo;if(A.serviceWorkers==="all"){}if(t===null){if(A.redirect==="follow"){A.serviceWorkers="none"}s=t=await httpNetworkOrCacheFetch(e);if(A.responseTainting==="cors"&&b(A,t)==="failure"){return n("cors failure")}if(h(A,t)==="failure"){A.timingAllowFailed=true}}if((A.responseTainting==="opaque"||t.type==="opaque")&&w(A.origin,A.client,A.destination,s)==="blocked"){return n("blocked")}if(q.has(s.status)){if(A.redirect!=="manual"){e.controller.connection.destroy()}if(A.redirect==="error"){t=n("unexpected redirect")}else if(A.redirect==="manual"){t=s}else if(A.redirect==="follow"){t=await httpRedirectFetch(e,t)}else{P(false)}}t.timingInfo=i;return t}function httpRedirectFetch(e,A){const t=e.request;const s=A.internalResponse?A.internalResponse:A;let i;try{i=C(s,B(t).hash);if(i==null){return A}}catch(e){return Promise.resolve(n(e))}if(!H(i)){return Promise.resolve(n("URL scheme must be a HTTP(S) scheme"))}if(t.redirectCount===20){return Promise.resolve(n("redirect count exceeded"))}t.redirectCount+=1;if(t.mode==="cors"&&(i.username||i.password)&&!k(t,i)){return Promise.resolve(n('cross origin not allowed for request mode "cors"'))}if(t.responseTainting==="cors"&&(i.username||i.password)){return Promise.resolve(n('URL cannot contain credentials for request mode "cors"'))}if(s.status!==303&&t.body!=null&&t.body.source==null){return Promise.resolve(n())}if([301,302].includes(s.status)&&t.method==="POST"||s.status===303&&!ge.includes(t.method)){t.method="GET";t.body=null;for(const e of z){t.headersList.delete(e)}}if(!k(B(t),i)){t.headersList.delete("authorization");t.headersList.delete("proxy-authorization",true);t.headersList.delete("cookie");t.headersList.delete("host")}if(t.body!=null){P(t.body.source!=null);t.body=_(t.body.source)[0]}const o=e.timingInfo;o.redirectEndTime=o.postRedirectStartTime=x(e.crossOriginIsolatedCapability);if(o.redirectStartTime===0){o.redirectStartTime=o.startTime}t.urlList.push(i);f(t,s);return mainFetch(e,true)}async function httpNetworkOrCacheFetch(e,A=false,t=false){const s=e.request;let o=null;let r=null;let a=null;const c=null;const u=false;if(s.window==="no-window"&&s.redirect==="error"){o=e;r=s}else{r=l(s);o={...e};o.request=r}const p=s.credentials==="include"||s.credentials==="same-origin"&&s.responseTainting==="basic";const g=r.body?r.body.length:null;let d=null;if(r.body==null&&["POST","PUT"].includes(r.method)){d="0"}if(g!=null){d=M(`${g}`)}if(d!=null){r.headersList.append("content-length",d)}if(g!=null&&r.keepalive){}if(r.referrer instanceof URL){r.headersList.append("referer",M(r.referrer.href))}Q(r);y(r);if(!r.headersList.contains("user-agent")){r.headersList.append("user-agent",typeof esbuildDetection==="undefined"?"undici":"node")}if(r.cache==="default"&&(r.headersList.contains("if-modified-since")||r.headersList.contains("if-none-match")||r.headersList.contains("if-unmodified-since")||r.headersList.contains("if-match")||r.headersList.contains("if-range"))){r.cache="no-store"}if(r.cache==="no-cache"&&!r.preventNoCacheCacheControlHeaderModification&&!r.headersList.contains("cache-control")){r.headersList.append("cache-control","max-age=0")}if(r.cache==="no-store"||r.cache==="reload"){if(!r.headersList.contains("pragma")){r.headersList.append("pragma","no-cache")}if(!r.headersList.contains("cache-control")){r.headersList.append("cache-control","no-cache")}}if(r.headersList.contains("range")){r.headersList.append("accept-encoding","identity")}if(!r.headersList.contains("accept-encoding")){if(Y(B(r))){r.headersList.append("accept-encoding","br, gzip, deflate")}else{r.headersList.append("accept-encoding","gzip, deflate")}}r.headersList.delete("host");if(p){}if(c==null){r.cache="no-store"}if(r.mode!=="no-store"&&r.mode!=="reload"){}if(a==null){if(r.mode==="only-if-cached"){return n("only if cached")}const e=await httpNetworkFetch(o,p,t);if(!j.has(r.method)&&e.status>=200&&e.status<=399){}if(u&&e.status===304){}if(a==null){a=e}}a.urlList=[...r.urlList];if(r.headersList.contains("range")){a.rangeRequested=true}a.requestIncludesCredentials=p;if(a.status===407){if(s.window==="no-window"){return n()}if(S(e)){return i(e)}return n("proxy authentication required")}if(a.status===421&&!t&&(s.body==null||s.body.source!=null)){if(S(e)){return i(e)}e.controller.connection.destroy();a=await httpNetworkOrCacheFetch(e,A,true)}if(A){}return a}async function httpNetworkFetch(e,A=false,s=false){P(!e.controller.connection||e.controller.connection.destroyed);e.controller.connection={abort:null,destroyed:false,destroy(e){if(!this.destroyed){this.destroyed=true;this.abort?.(e??new X("The operation was aborted.","AbortError"))}}};const o=e.request;let c=null;const l=e.timingInfo;const p=null;if(p==null){o.cache="no-store"}const g=s?"yes":"no";if(o.mode==="websocket"){}else{}let d=null;if(o.body==null&&e.processRequestEndOfBody){queueMicrotask((()=>e.processRequestEndOfBody()))}else if(o.body!=null){const processBodyChunk=async function*(A){if(S(e)){return}yield A;e.processRequestBodyChunkLength?.(A.byteLength)};const processEndOfBody=()=>{if(S(e)){return}if(e.processRequestEndOfBody){e.processRequestEndOfBody()}};const processBodyError=A=>{if(S(e)){return}if(A.name==="AbortError"){e.controller.abort()}else{e.controller.terminate(A)}};d=async function*(){try{for await(const e of o.body.stream){yield*processBodyChunk(e)}processEndOfBody()}catch(e){processBodyError(e)}}()}try{const{body:A,status:t,statusText:s,headersList:n,socket:i}=await dispatch({body:d});if(i){c=r({status:t,statusText:s,headersList:n,socket:i})}else{const i=A[Symbol.asyncIterator]();e.controller.next=()=>i.next();c=r({status:t,statusText:s,headersList:n})}}catch(A){if(A.name==="AbortError"){e.controller.connection.destroy();return i(e,A)}return n(A)}const pullAlgorithm=()=>{e.controller.resume()};const cancelAlgorithm=A=>{e.controller.abort(A)};if(!Ee){Ee=t(5356).ReadableStream}const E=new Ee({async start(A){e.controller.controller=A},async pull(e){await pullAlgorithm(e)},async cancel(e){await cancelAlgorithm(e)}},{highWaterMark:0,size(){return 1}});c.body={stream:E};e.controller.on("terminated",onAborted);e.controller.resume=async()=>{while(true){let A;let t;try{const{done:t,value:s}=await e.controller.next();if(F(e)){break}A=t?undefined:s}catch(s){if(e.controller.ended&&!l.encodedBodySize){A=undefined}else{A=s;t=true}}if(A===undefined){L(e.controller.controller);finalizeResponse(e,c);return}l.decodedBodySize+=A?.byteLength??0;if(t){e.controller.terminate(A);return}e.controller.controller.enqueue(new Uint8Array(A));if(se(E)){e.controller.terminate();return}if(!e.controller.controller.desiredSize){return}}};function onAborted(A){if(F(e)){c.aborted=true;if(ne(E)){e.controller.controller.error(e.controller.serializedAbortReason)}}else{if(ne(E)){e.controller.controller.error(new TypeError("terminated",{cause:N(A)?A:undefined}))}}e.controller.connection.destroy()}return c;async function dispatch({body:A}){const t=B(o);const s=e.controller.dispatcher;return new Promise(((n,i)=>s.dispatch({path:t.pathname+t.search,origin:t.origin,method:o.method,body:e.controller.dispatcher.isMockActive?o.body&&(o.body.source||o.body.stream):A,headers:o.headersList.entries,maxRedirections:0,upgrade:o.mode==="websocket"?"websocket":undefined},{body:null,abort:null,onConnect(A){const{connection:t}=e.controller;if(t.destroyed){A(new X("The operation was aborted.","AbortError"))}else{e.controller.on("terminated",A);this.abort=t.abort=A}},onHeaders(e,A,t,s){if(e<200){return}let i=[];let r="";const c=new a;if(Array.isArray(A)){for(let e=0;ee.trim()))}else if(t.toLowerCase()==="location"){r=s}c[K].append(t,s)}}else{const e=Object.keys(A);for(const t of e){const e=A[t];if(t.toLowerCase()==="content-encoding"){i=e.toLowerCase().split(",").map((e=>e.trim())).reverse()}else if(t.toLowerCase()==="location"){r=e}c[K].append(t,e)}}this.body=new ee({read:t});const l=[];const p=o.redirect==="follow"&&r&&q.has(e);if(o.method!=="HEAD"&&o.method!=="CONNECT"&&!W.includes(e)&&!p){for(const e of i){if(e==="x-gzip"||e==="gzip"){l.push(u.createGunzip({flush:u.constants.Z_SYNC_FLUSH,finishFlush:u.constants.Z_SYNC_FLUSH}))}else if(e==="deflate"){l.push(u.createInflate())}else if(e==="br"){l.push(u.createBrotliDecompress())}else{l.length=0;break}}}n({status:e,statusText:s,headersList:c[K],body:l.length?Ae(this.body,...l,(()=>{})):this.body.on("error",(()=>{}))});return true},onData(A){if(e.controller.dump){return}const t=A;l.encodedBodySize+=t.byteLength;return this.body.push(t)},onComplete(){if(this.abort){e.controller.off("terminated",this.abort)}e.controller.ended=true;this.body.push(null)},onError(A){if(this.abort){e.controller.off("terminated",this.abort)}this.body?.destroy(A);e.controller.terminate(A);i(A)},onUpgrade(e,A,t){if(e!==101){return}const s=new a;for(let e=0;e{"use strict";const{extractBody:s,mixinBody:n,cloneBody:i}=t(1472);const{Headers:o,fill:r,HeadersList:a}=t(554);const{FinalizationRegistry:c}=t(6436)();const l=t(3983);const{isValidHTTPToken:u,sameOrigin:p,normalizeMethod:g,makePolicyContainer:d,normalizeMethodRecord:E}=t(2538);const{forbiddenMethodsSet:h,corsSafeListedMethodsSet:Q,referrerPolicy:C,requestRedirect:B,requestMode:f,requestCredentials:I,requestCache:m,requestDuplex:y}=t(1037);const{kEnumerableProperty:b}=l;const{kHeaders:w,kSignal:R,kState:x,kGuard:D,kRealm:v}=t(5861);const{webidl:k}=t(1744);const{getGlobalOrigin:S}=t(1246);const{URLSerializer:F}=t(685);const{kHeadersList:N,kConstruct:U}=t(2785);const L=t(9491);const{getMaxListeners:M,setMaxListeners:T,getEventListeners:H,defaultMaxListeners:Y}=t(2361);let J=globalThis.TransformStream;const G=Symbol("abortController");const O=new c((({signal:e,abort:A})=>{e.removeEventListener("abort",A)}));class Request{constructor(e,A={}){if(e===U){return}k.argumentLengthCheck(arguments,1,{header:"Request constructor"});e=k.converters.RequestInfo(e);A=k.converters.RequestInit(A);this[v]={settingsObject:{baseUrl:S(),get origin(){return this.baseUrl?.origin},policyContainer:d()}};let n=null;let i=null;const c=this[v].settingsObject.baseUrl;let C=null;if(typeof e==="string"){let A;try{A=new URL(e,c)}catch(A){throw new TypeError("Failed to parse URL from "+e,{cause:A})}if(A.username||A.password){throw new TypeError("Request cannot be constructed from a URL that includes credentials: "+e)}n=makeRequest({urlList:[A]});i="cors"}else{L(e instanceof Request);n=e[x];C=e[R]}const B=this[v].settingsObject.origin;let f="client";if(n.window?.constructor?.name==="EnvironmentSettingsObject"&&p(n.window,B)){f=n.window}if(A.window!=null){throw new TypeError(`'window' option '${f}' must be null`)}if("window"in A){f="no-window"}n=makeRequest({method:n.method,headersList:n.headersList,unsafeRequest:n.unsafeRequest,client:this[v].settingsObject,window:f,priority:n.priority,origin:n.origin,referrer:n.referrer,referrerPolicy:n.referrerPolicy,mode:n.mode,credentials:n.credentials,cache:n.cache,redirect:n.redirect,integrity:n.integrity,keepalive:n.keepalive,reloadNavigation:n.reloadNavigation,historyNavigation:n.historyNavigation,urlList:[...n.urlList]});const I=Object.keys(A).length!==0;if(I){if(n.mode==="navigate"){n.mode="same-origin"}n.reloadNavigation=false;n.historyNavigation=false;n.origin="client";n.referrer="client";n.referrerPolicy="";n.url=n.urlList[n.urlList.length-1];n.urlList=[n.url]}if(A.referrer!==undefined){const e=A.referrer;if(e===""){n.referrer="no-referrer"}else{let A;try{A=new URL(e,c)}catch(A){throw new TypeError(`Referrer "${e}" is not a valid URL.`,{cause:A})}if(A.protocol==="about:"&&A.hostname==="client"||B&&!p(A,this[v].settingsObject.baseUrl)){n.referrer="client"}else{n.referrer=A}}}if(A.referrerPolicy!==undefined){n.referrerPolicy=A.referrerPolicy}let m;if(A.mode!==undefined){m=A.mode}else{m=i}if(m==="navigate"){throw k.errors.exception({header:"Request constructor",message:"invalid request mode navigate."})}if(m!=null){n.mode=m}if(A.credentials!==undefined){n.credentials=A.credentials}if(A.cache!==undefined){n.cache=A.cache}if(n.cache==="only-if-cached"&&n.mode!=="same-origin"){throw new TypeError("'only-if-cached' can be set only with 'same-origin' mode")}if(A.redirect!==undefined){n.redirect=A.redirect}if(A.integrity!=null){n.integrity=String(A.integrity)}if(A.keepalive!==undefined){n.keepalive=Boolean(A.keepalive)}if(A.method!==undefined){let e=A.method;if(!u(e)){throw new TypeError(`'${e}' is not a valid HTTP method.`)}if(h.has(e.toUpperCase())){throw new TypeError(`'${e}' HTTP method is unsupported.`)}e=E[e]??g(e);n.method=e}if(A.signal!==undefined){C=A.signal}this[x]=n;const y=new AbortController;this[R]=y.signal;this[R][v]=this[v];if(C!=null){if(!C||typeof C.aborted!=="boolean"||typeof C.addEventListener!=="function"){throw new TypeError("Failed to construct 'Request': member signal is not of type AbortSignal.")}if(C.aborted){y.abort(C.reason)}else{this[G]=y;const e=new WeakRef(y);const abort=function(){const A=e.deref();if(A!==undefined){A.abort(this.reason)}};try{if(typeof M==="function"&&M(C)===Y){T(100,C)}else if(H(C,"abort").length>=Y){T(100,C)}}catch{}l.addAbortListener(C,abort);O.register(y,{signal:C,abort:abort})}}this[w]=new o(U);this[w][N]=n.headersList;this[w][D]="request";this[w][v]=this[v];if(m==="no-cors"){if(!Q.has(n.method)){throw new TypeError(`'${n.method} is unsupported in no-cors mode.`)}this[w][D]="request-no-cors"}if(I){const e=this[w][N];const t=A.headers!==undefined?A.headers:new a(e);e.clear();if(t instanceof a){for(const[A,s]of t){e.append(A,s)}e.cookies=t.cookies}else{r(this[w],t)}}const b=e instanceof Request?e[x].body:null;if((A.body!=null||b!=null)&&(n.method==="GET"||n.method==="HEAD")){throw new TypeError("Request with GET/HEAD method cannot have body.")}let F=null;if(A.body!=null){const[e,t]=s(A.body,n.keepalive);F=e;if(t&&!this[w][N].contains("content-type")){this[w].append("content-type",t)}}const V=F??b;if(V!=null&&V.source==null){if(F!=null&&A.duplex==null){throw new TypeError("RequestInit: duplex option is required when sending a body.")}if(n.mode!=="same-origin"&&n.mode!=="cors"){throw new TypeError('If request is made from ReadableStream, mode should be "same-origin" or "cors"')}n.useCORSPreflightFlag=true}let P=V;if(F==null&&b!=null){if(l.isDisturbed(b.stream)||b.stream.locked){throw new TypeError("Cannot construct a Request with a Request object that has already been used.")}if(!J){J=t(5356).TransformStream}const e=new J;b.stream.pipeThrough(e);P={source:b.source,length:b.length,stream:e.readable}}this[x].body=P}get method(){k.brandCheck(this,Request);return this[x].method}get url(){k.brandCheck(this,Request);return F(this[x].url)}get headers(){k.brandCheck(this,Request);return this[w]}get destination(){k.brandCheck(this,Request);return this[x].destination}get referrer(){k.brandCheck(this,Request);if(this[x].referrer==="no-referrer"){return""}if(this[x].referrer==="client"){return"about:client"}return this[x].referrer.toString()}get referrerPolicy(){k.brandCheck(this,Request);return this[x].referrerPolicy}get mode(){k.brandCheck(this,Request);return this[x].mode}get credentials(){return this[x].credentials}get cache(){k.brandCheck(this,Request);return this[x].cache}get redirect(){k.brandCheck(this,Request);return this[x].redirect}get integrity(){k.brandCheck(this,Request);return this[x].integrity}get keepalive(){k.brandCheck(this,Request);return this[x].keepalive}get isReloadNavigation(){k.brandCheck(this,Request);return this[x].reloadNavigation}get isHistoryNavigation(){k.brandCheck(this,Request);return this[x].historyNavigation}get signal(){k.brandCheck(this,Request);return this[R]}get body(){k.brandCheck(this,Request);return this[x].body?this[x].body.stream:null}get bodyUsed(){k.brandCheck(this,Request);return!!this[x].body&&l.isDisturbed(this[x].body.stream)}get duplex(){k.brandCheck(this,Request);return"half"}clone(){k.brandCheck(this,Request);if(this.bodyUsed||this.body?.locked){throw new TypeError("unusable")}const e=cloneRequest(this[x]);const A=new Request(U);A[x]=e;A[v]=this[v];A[w]=new o(U);A[w][N]=e.headersList;A[w][D]=this[w][D];A[w][v]=this[w][v];const t=new AbortController;if(this.signal.aborted){t.abort(this.signal.reason)}else{l.addAbortListener(this.signal,(()=>{t.abort(this.signal.reason)}))}A[R]=t.signal;return A}}n(Request);function makeRequest(e){const A={method:"GET",localURLsOnly:false,unsafeRequest:false,body:null,client:null,reservedClient:null,replacesClientId:"",window:"client",keepalive:false,serviceWorkers:"all",initiator:"",destination:"",priority:null,origin:"client",policyContainer:"client",referrer:"client",referrerPolicy:"",mode:"no-cors",useCORSPreflightFlag:false,credentials:"same-origin",useCredentials:false,cache:"default",redirect:"follow",integrity:"",cryptoGraphicsNonceMetadata:"",parserMetadata:"",reloadNavigation:false,historyNavigation:false,userActivation:false,taintedOrigin:false,redirectCount:0,responseTainting:"basic",preventNoCacheCacheControlHeaderModification:false,done:false,timingAllowFailed:false,...e,headersList:e.headersList?new a(e.headersList):new a};A.url=A.urlList[0];return A}function cloneRequest(e){const A=makeRequest({...e,body:null});if(e.body!=null){A.body=i(e.body)}return A}Object.defineProperties(Request.prototype,{method:b,url:b,headers:b,redirect:b,clone:b,signal:b,duplex:b,destination:b,body:b,bodyUsed:b,isHistoryNavigation:b,isReloadNavigation:b,keepalive:b,integrity:b,cache:b,credentials:b,attribute:b,referrerPolicy:b,referrer:b,mode:b,[Symbol.toStringTag]:{value:"Request",configurable:true}});k.converters.Request=k.interfaceConverter(Request);k.converters.RequestInfo=function(e){if(typeof e==="string"){return k.converters.USVString(e)}if(e instanceof Request){return k.converters.Request(e)}return k.converters.USVString(e)};k.converters.AbortSignal=k.interfaceConverter(AbortSignal);k.converters.RequestInit=k.dictionaryConverter([{key:"method",converter:k.converters.ByteString},{key:"headers",converter:k.converters.HeadersInit},{key:"body",converter:k.nullableConverter(k.converters.BodyInit)},{key:"referrer",converter:k.converters.USVString},{key:"referrerPolicy",converter:k.converters.DOMString,allowedValues:C},{key:"mode",converter:k.converters.DOMString,allowedValues:f},{key:"credentials",converter:k.converters.DOMString,allowedValues:I},{key:"cache",converter:k.converters.DOMString,allowedValues:m},{key:"redirect",converter:k.converters.DOMString,allowedValues:B},{key:"integrity",converter:k.converters.DOMString},{key:"keepalive",converter:k.converters.boolean},{key:"signal",converter:k.nullableConverter((e=>k.converters.AbortSignal(e,{strict:false})))},{key:"window",converter:k.converters.any},{key:"duplex",converter:k.converters.DOMString,allowedValues:y}]);e.exports={Request:Request,makeRequest:makeRequest}},7823:(e,A,t)=>{"use strict";const{Headers:s,HeadersList:n,fill:i}=t(554);const{extractBody:o,cloneBody:r,mixinBody:a}=t(1472);const c=t(3983);const{kEnumerableProperty:l}=c;const{isValidReasonPhrase:u,isCancelled:p,isAborted:g,isBlobLike:d,serializeJavascriptValueToJSONString:E,isErrorLike:h,isomorphicEncode:Q}=t(2538);const{redirectStatusSet:C,nullBodyStatus:B,DOMException:f}=t(1037);const{kState:I,kHeaders:m,kGuard:y,kRealm:b}=t(5861);const{webidl:w}=t(1744);const{FormData:R}=t(2015);const{getGlobalOrigin:x}=t(1246);const{URLSerializer:D}=t(685);const{kHeadersList:v,kConstruct:k}=t(2785);const S=t(9491);const{types:F}=t(3837);const N=globalThis.ReadableStream||t(5356).ReadableStream;const U=new TextEncoder("utf-8");class Response{static error(){const e={settingsObject:{}};const A=new Response;A[I]=makeNetworkError();A[b]=e;A[m][v]=A[I].headersList;A[m][y]="immutable";A[m][b]=e;return A}static json(e,A={}){w.argumentLengthCheck(arguments,1,{header:"Response.json"});if(A!==null){A=w.converters.ResponseInit(A)}const t=U.encode(E(e));const s=o(t);const n={settingsObject:{}};const i=new Response;i[b]=n;i[m][y]="response";i[m][b]=n;initializeResponse(i,A,{body:s[0],type:"application/json"});return i}static redirect(e,A=302){const t={settingsObject:{}};w.argumentLengthCheck(arguments,1,{header:"Response.redirect"});e=w.converters.USVString(e);A=w.converters["unsigned short"](A);let s;try{s=new URL(e,x())}catch(A){throw Object.assign(new TypeError("Failed to parse URL from "+e),{cause:A})}if(!C.has(A)){throw new RangeError("Invalid status code "+A)}const n=new Response;n[b]=t;n[m][y]="immutable";n[m][b]=t;n[I].status=A;const i=Q(D(s));n[I].headersList.append("location",i);return n}constructor(e=null,A={}){if(e!==null){e=w.converters.BodyInit(e)}A=w.converters.ResponseInit(A);this[b]={settingsObject:{}};this[I]=makeResponse({});this[m]=new s(k);this[m][y]="response";this[m][v]=this[I].headersList;this[m][b]=this[b];let t=null;if(e!=null){const[A,s]=o(e);t={body:A,type:s}}initializeResponse(this,A,t)}get type(){w.brandCheck(this,Response);return this[I].type}get url(){w.brandCheck(this,Response);const e=this[I].urlList;const A=e[e.length-1]??null;if(A===null){return""}return D(A,true)}get redirected(){w.brandCheck(this,Response);return this[I].urlList.length>1}get status(){w.brandCheck(this,Response);return this[I].status}get ok(){w.brandCheck(this,Response);return this[I].status>=200&&this[I].status<=299}get statusText(){w.brandCheck(this,Response);return this[I].statusText}get headers(){w.brandCheck(this,Response);return this[m]}get body(){w.brandCheck(this,Response);return this[I].body?this[I].body.stream:null}get bodyUsed(){w.brandCheck(this,Response);return!!this[I].body&&c.isDisturbed(this[I].body.stream)}clone(){w.brandCheck(this,Response);if(this.bodyUsed||this.body&&this.body.locked){throw w.errors.exception({header:"Response.clone",message:"Body has already been consumed."})}const e=cloneResponse(this[I]);const A=new Response;A[I]=e;A[b]=this[b];A[m][v]=e.headersList;A[m][y]=this[m][y];A[m][b]=this[m][b];return A}}a(Response);Object.defineProperties(Response.prototype,{type:l,url:l,status:l,ok:l,redirected:l,statusText:l,headers:l,clone:l,body:l,bodyUsed:l,[Symbol.toStringTag]:{value:"Response",configurable:true}});Object.defineProperties(Response,{json:l,redirect:l,error:l});function cloneResponse(e){if(e.internalResponse){return filterResponse(cloneResponse(e.internalResponse),e.type)}const A=makeResponse({...e,body:null});if(e.body!=null){A.body=r(e.body)}return A}function makeResponse(e){return{aborted:false,rangeRequested:false,timingAllowPassed:false,requestIncludesCredentials:false,type:"default",status:200,timingInfo:null,cacheState:"",statusText:"",...e,headersList:e.headersList?new n(e.headersList):new n,urlList:e.urlList?[...e.urlList]:[]}}function makeNetworkError(e){const A=h(e);return makeResponse({type:"error",status:0,error:A?e:new Error(e?String(e):e),aborted:e&&e.name==="AbortError"})}function makeFilteredResponse(e,A){A={internalResponse:e,...A};return new Proxy(e,{get(e,t){return t in A?A[t]:e[t]},set(e,t,s){S(!(t in A));e[t]=s;return true}})}function filterResponse(e,A){if(A==="basic"){return makeFilteredResponse(e,{type:"basic",headersList:e.headersList})}else if(A==="cors"){return makeFilteredResponse(e,{type:"cors",headersList:e.headersList})}else if(A==="opaque"){return makeFilteredResponse(e,{type:"opaque",urlList:Object.freeze([]),status:0,statusText:"",body:null})}else if(A==="opaqueredirect"){return makeFilteredResponse(e,{type:"opaqueredirect",status:0,statusText:"",headersList:[],body:null})}else{S(false)}}function makeAppropriateNetworkError(e,A=null){S(p(e));return g(e)?makeNetworkError(Object.assign(new f("The operation was aborted.","AbortError"),{cause:A})):makeNetworkError(Object.assign(new f("Request was cancelled."),{cause:A}))}function initializeResponse(e,A,t){if(A.status!==null&&(A.status<200||A.status>599)){throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.')}if("statusText"in A&&A.statusText!=null){if(!u(String(A.statusText))){throw new TypeError("Invalid statusText")}}if("status"in A&&A.status!=null){e[I].status=A.status}if("statusText"in A&&A.statusText!=null){e[I].statusText=A.statusText}if("headers"in A&&A.headers!=null){i(e[m],A.headers)}if(t){if(B.includes(e.status)){throw w.errors.exception({header:"Response constructor",message:"Invalid response status code "+e.status})}e[I].body=t.body;if(t.type!=null&&!e[I].headersList.contains("Content-Type")){e[I].headersList.append("content-type",t.type)}}}w.converters.ReadableStream=w.interfaceConverter(N);w.converters.FormData=w.interfaceConverter(R);w.converters.URLSearchParams=w.interfaceConverter(URLSearchParams);w.converters.XMLHttpRequestBodyInit=function(e){if(typeof e==="string"){return w.converters.USVString(e)}if(d(e)){return w.converters.Blob(e,{strict:false})}if(F.isArrayBuffer(e)||F.isTypedArray(e)||F.isDataView(e)){return w.converters.BufferSource(e)}if(c.isFormDataLike(e)){return w.converters.FormData(e,{strict:false})}if(e instanceof URLSearchParams){return w.converters.URLSearchParams(e)}return w.converters.DOMString(e)};w.converters.BodyInit=function(e){if(e instanceof N){return w.converters.ReadableStream(e)}if(e?.[Symbol.asyncIterator]){return e}return w.converters.XMLHttpRequestBodyInit(e)};w.converters.ResponseInit=w.dictionaryConverter([{key:"status",converter:w.converters["unsigned short"],defaultValue:200},{key:"statusText",converter:w.converters.ByteString,defaultValue:""},{key:"headers",converter:w.converters.HeadersInit}]);e.exports={makeNetworkError:makeNetworkError,makeResponse:makeResponse,makeAppropriateNetworkError:makeAppropriateNetworkError,filterResponse:filterResponse,Response:Response,cloneResponse:cloneResponse}},5861:e=>{"use strict";e.exports={kUrl:Symbol("url"),kHeaders:Symbol("headers"),kSignal:Symbol("signal"),kState:Symbol("state"),kGuard:Symbol("guard"),kRealm:Symbol("realm")}},2538:(e,A,t)=>{"use strict";const{redirectStatusSet:s,referrerPolicySet:n,badPortsSet:i}=t(1037);const{getGlobalOrigin:o}=t(1246);const{performance:r}=t(4074);const{isBlobLike:a,toUSVString:c,ReadableStreamFrom:l}=t(3983);const u=t(9491);const{isUint8Array:p}=t(4978);let g=[];let d;try{d=t(6113);const e=["sha256","sha384","sha512"];g=d.getHashes().filter((A=>e.includes(A)))}catch{}function responseURL(e){const A=e.urlList;const t=A.length;return t===0?null:A[t-1].toString()}function responseLocationURL(e,A){if(!s.has(e.status)){return null}let t=e.headersList.get("location");if(t!==null&&isValidHeaderValue(t)){t=new URL(t,responseURL(e))}if(t&&!t.hash){t.hash=A}return t}function requestCurrentURL(e){return e.urlList[e.urlList.length-1]}function requestBadPort(e){const A=requestCurrentURL(e);if(urlIsHttpHttpsScheme(A)&&i.has(A.port)){return"blocked"}return"allowed"}function isErrorLike(e){return e instanceof Error||(e?.constructor?.name==="Error"||e?.constructor?.name==="DOMException")}function isValidReasonPhrase(e){for(let A=0;A=32&&t<=126||t>=128&&t<=255)){return false}}return true}function isTokenCharCode(e){switch(e){case 34:case 40:case 41:case 44:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 123:case 125:return false;default:return e>=33&&e<=126}}function isValidHTTPToken(e){if(e.length===0){return false}for(let A=0;A0){for(let e=s.length;e!==0;e--){const A=s[e-1].trim();if(n.has(A)){i=A;break}}}if(i!==""){e.referrerPolicy=i}}function crossOriginResourcePolicyCheck(){return"allowed"}function corsCheck(){return"success"}function TAOCheck(){return"success"}function appendFetchMetadata(e){let A=null;A=e.mode;e.headersList.set("sec-fetch-mode",A)}function appendRequestOriginHeader(e){let A=e.origin;if(e.responseTainting==="cors"||e.mode==="websocket"){if(A){e.headersList.append("origin",A)}}else if(e.method!=="GET"&&e.method!=="HEAD"){switch(e.referrerPolicy){case"no-referrer":A=null;break;case"no-referrer-when-downgrade":case"strict-origin":case"strict-origin-when-cross-origin":if(e.origin&&urlHasHttpsScheme(e.origin)&&!urlHasHttpsScheme(requestCurrentURL(e))){A=null}break;case"same-origin":if(!sameOrigin(e,requestCurrentURL(e))){A=null}break;default:}if(A){e.headersList.append("origin",A)}}}function coarsenedSharedCurrentTime(e){return r.now()}function createOpaqueTimingInfo(e){return{startTime:e.startTime??0,redirectStartTime:0,redirectEndTime:0,postRedirectStartTime:e.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(e){return{referrerPolicy:e.referrerPolicy}}function determineRequestsReferrer(e){const A=e.referrerPolicy;u(A);let t=null;if(e.referrer==="client"){const e=o();if(!e||e.origin==="null"){return"no-referrer"}t=new URL(e)}else if(e.referrer instanceof URL){t=e.referrer}let s=stripURLForReferrer(t);const n=stripURLForReferrer(t,true);if(s.toString().length>4096){s=n}const i=sameOrigin(e,s);const r=isURLPotentiallyTrustworthy(s)&&!isURLPotentiallyTrustworthy(e.url);switch(A){case"origin":return n!=null?n:stripURLForReferrer(t,true);case"unsafe-url":return s;case"same-origin":return i?n:"no-referrer";case"origin-when-cross-origin":return i?s:n;case"strict-origin-when-cross-origin":{const A=requestCurrentURL(e);if(sameOrigin(s,A)){return s}if(isURLPotentiallyTrustworthy(s)&&!isURLPotentiallyTrustworthy(A)){return"no-referrer"}return n}case"strict-origin":case"no-referrer-when-downgrade":default:return r?"no-referrer":n}}function stripURLForReferrer(e,A){u(e instanceof URL);if(e.protocol==="file:"||e.protocol==="about:"||e.protocol==="blank:"){return"no-referrer"}e.username="";e.password="";e.hash="";if(A){e.pathname="";e.search=""}return e}function isURLPotentiallyTrustworthy(e){if(!(e instanceof URL)){return false}if(e.href==="about:blank"||e.href==="about:srcdoc"){return true}if(e.protocol==="data:")return true;if(e.protocol==="file:")return true;return isOriginPotentiallyTrustworthy(e.origin);function isOriginPotentiallyTrustworthy(e){if(e==null||e==="null")return false;const A=new URL(e);if(A.protocol==="https:"||A.protocol==="wss:"){return true}if(/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(A.hostname)||(A.hostname==="localhost"||A.hostname.includes("localhost."))||A.hostname.endsWith(".localhost")){return true}return false}}function bytesMatch(e,A){if(d===undefined){return true}const t=parseMetadata(A);if(t==="no metadata"){return true}if(t.length===0){return true}const s=getStrongestMetadata(t);const n=filterMetadataListByAlgorithm(t,s);for(const A of n){const t=A.algo;const s=A.hash;let n=d.createHash(t).update(e).digest("base64");if(n[n.length-1]==="="){if(n[n.length-2]==="="){n=n.slice(0,-2)}else{n=n.slice(0,-1)}}if(compareBase64Mixed(n,s)){return true}}return false}const E=/(?sha256|sha384|sha512)-((?[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\s|$)( +[!-~]*)?)?/i;function parseMetadata(e){const A=[];let t=true;for(const s of e.split(" ")){t=false;const e=E.exec(s);if(e===null||e.groups===undefined||e.groups.algo===undefined){continue}const n=e.groups.algo.toLowerCase();if(g.includes(n)){A.push(e.groups)}}if(t===true){return"no metadata"}return A}function getStrongestMetadata(e){let A=e[0].algo;if(A[3]==="5"){return A}for(let t=1;t{e=t;A=s}));return{promise:t,resolve:e,reject:A}}function isAborted(e){return e.controller.state==="aborted"}function isCancelled(e){return e.controller.state==="aborted"||e.controller.state==="terminated"}const h={delete:"DELETE",DELETE:"DELETE",get:"GET",GET:"GET",head:"HEAD",HEAD:"HEAD",options:"OPTIONS",OPTIONS:"OPTIONS",post:"POST",POST:"POST",put:"PUT",PUT:"PUT"};Object.setPrototypeOf(h,null);function normalizeMethod(e){return h[e.toLowerCase()]??e}function serializeJavascriptValueToJSONString(e){const A=JSON.stringify(e);if(A===undefined){throw new TypeError("Value is not JSON serializable")}u(typeof A==="string");return A}const Q=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));function makeIterator(e,A,t){const s={index:0,kind:t,target:e};const n={next(){if(Object.getPrototypeOf(this)!==n){throw new TypeError(`'next' called on an object that does not implement interface ${A} Iterator.`)}const{index:e,kind:t,target:i}=s;const o=i();const r=o.length;if(e>=r){return{value:undefined,done:true}}const a=o[e];s.index=e+1;return iteratorResult(a,t)},[Symbol.toStringTag]:`${A} Iterator`};Object.setPrototypeOf(n,Q);return Object.setPrototypeOf({},n)}function iteratorResult(e,A){let t;switch(A){case"key":{t=e[0];break}case"value":{t=e[1];break}case"key+value":{t=e;break}}return{value:t,done:false}}async function fullyReadBody(e,A,t){const s=A;const n=t;let i;try{i=e.stream.getReader()}catch(e){n(e);return}try{const e=await readAllBytes(i);s(e)}catch(e){n(e)}}let C=globalThis.ReadableStream;function isReadableStreamLike(e){if(!C){C=t(5356).ReadableStream}return e instanceof C||e[Symbol.toStringTag]==="ReadableStream"&&typeof e.tee==="function"}const B=65535;function isomorphicDecode(e){if(e.lengthe+String.fromCharCode(A)),"")}function readableStreamClose(e){try{e.close()}catch(e){if(!e.message.includes("Controller is already closed")){throw e}}}function isomorphicEncode(e){for(let A=0;AObject.prototype.hasOwnProperty.call(e,A));e.exports={isAborted:isAborted,isCancelled:isCancelled,createDeferredPromise:createDeferredPromise,ReadableStreamFrom:l,toUSVString:c,tryUpgradeRequestToAPotentiallyTrustworthyURL:tryUpgradeRequestToAPotentiallyTrustworthyURL,coarsenedSharedCurrentTime:coarsenedSharedCurrentTime,determineRequestsReferrer:determineRequestsReferrer,makePolicyContainer:makePolicyContainer,clonePolicyContainer:clonePolicyContainer,appendFetchMetadata:appendFetchMetadata,appendRequestOriginHeader:appendRequestOriginHeader,TAOCheck:TAOCheck,corsCheck:corsCheck,crossOriginResourcePolicyCheck:crossOriginResourcePolicyCheck,createOpaqueTimingInfo:createOpaqueTimingInfo,setRequestReferrerPolicyOnRedirect:setRequestReferrerPolicyOnRedirect,isValidHTTPToken:isValidHTTPToken,requestBadPort:requestBadPort,requestCurrentURL:requestCurrentURL,responseURL:responseURL,responseLocationURL:responseLocationURL,isBlobLike:a,isURLPotentiallyTrustworthy:isURLPotentiallyTrustworthy,isValidReasonPhrase:isValidReasonPhrase,sameOrigin:sameOrigin,normalizeMethod:normalizeMethod,serializeJavascriptValueToJSONString:serializeJavascriptValueToJSONString,makeIterator:makeIterator,isValidHeaderName:isValidHeaderName,isValidHeaderValue:isValidHeaderValue,hasOwn:f,isErrorLike:isErrorLike,fullyReadBody:fullyReadBody,bytesMatch:bytesMatch,isReadableStreamLike:isReadableStreamLike,readableStreamClose:readableStreamClose,isomorphicEncode:isomorphicEncode,isomorphicDecode:isomorphicDecode,urlIsLocal:urlIsLocal,urlHasHttpsScheme:urlHasHttpsScheme,urlIsHttpHttpsScheme:urlIsHttpHttpsScheme,readAllBytes:readAllBytes,normalizeMethodRecord:h,parseMetadata:parseMetadata}},1744:(e,A,t)=>{"use strict";const{types:s}=t(3837);const{hasOwn:n,toUSVString:i}=t(2538);const o={};o.converters={};o.util={};o.errors={};o.errors.exception=function(e){return new TypeError(`${e.header}: ${e.message}`)};o.errors.conversionFailed=function(e){const A=e.types.length===1?"":" one of";const t=`${e.argument} could not be converted to`+`${A}: ${e.types.join(", ")}.`;return o.errors.exception({header:e.prefix,message:t})};o.errors.invalidArgument=function(e){return o.errors.exception({header:e.prefix,message:`"${e.value}" is an invalid ${e.type}.`})};o.brandCheck=function(e,A,t=undefined){if(t?.strict!==false&&!(e instanceof A)){throw new TypeError("Illegal invocation")}else{return e?.[Symbol.toStringTag]===A.prototype[Symbol.toStringTag]}};o.argumentLengthCheck=function({length:e},A,t){if(en){throw o.errors.exception({header:"Integer conversion",message:`Value must be between ${i}-${n}, got ${r}.`})}return r}if(!Number.isNaN(r)&&s.clamp===true){r=Math.min(Math.max(r,i),n);if(Math.floor(r)%2===0){r=Math.floor(r)}else{r=Math.ceil(r)}return r}if(Number.isNaN(r)||r===0&&Object.is(0,r)||r===Number.POSITIVE_INFINITY||r===Number.NEGATIVE_INFINITY){return 0}r=o.util.IntegerPart(r);r=r%Math.pow(2,A);if(t==="signed"&&r>=Math.pow(2,A)-1){return r-Math.pow(2,A)}return r};o.util.IntegerPart=function(e){const A=Math.floor(Math.abs(e));if(e<0){return-1*A}return A};o.sequenceConverter=function(e){return A=>{if(o.util.Type(A)!=="Object"){throw o.errors.exception({header:"Sequence",message:`Value of type ${o.util.Type(A)} is not an Object.`})}const t=A?.[Symbol.iterator]?.();const s=[];if(t===undefined||typeof t.next!=="function"){throw o.errors.exception({header:"Sequence",message:"Object is not an iterator."})}while(true){const{done:A,value:n}=t.next();if(A){break}s.push(e(n))}return s}};o.recordConverter=function(e,A){return t=>{if(o.util.Type(t)!=="Object"){throw o.errors.exception({header:"Record",message:`Value of type ${o.util.Type(t)} is not an Object.`})}const n={};if(!s.isProxy(t)){const s=Object.keys(t);for(const i of s){const s=e(i);const o=A(t[i]);n[s]=o}return n}const i=Reflect.ownKeys(t);for(const s of i){const i=Reflect.getOwnPropertyDescriptor(t,s);if(i?.enumerable){const i=e(s);const o=A(t[s]);n[i]=o}}return n}};o.interfaceConverter=function(e){return(A,t={})=>{if(t.strict!==false&&!(A instanceof e)){throw o.errors.exception({header:e.name,message:`Expected ${A} to be an instance of ${e.name}.`})}return A}};o.dictionaryConverter=function(e){return A=>{const t=o.util.Type(A);const s={};if(t==="Null"||t==="Undefined"){return s}else if(t!=="Object"){throw o.errors.exception({header:"Dictionary",message:`Expected ${A} to be one of: Null, Undefined, Object.`})}for(const t of e){const{key:e,defaultValue:i,required:r,converter:a}=t;if(r===true){if(!n(A,e)){throw o.errors.exception({header:"Dictionary",message:`Missing required key "${e}".`})}}let c=A[e];const l=n(t,"defaultValue");if(l&&c!==null){c=c??i}if(r||l||c!==undefined){c=a(c);if(t.allowedValues&&!t.allowedValues.includes(c)){throw o.errors.exception({header:"Dictionary",message:`${c} is not an accepted type. Expected one of ${t.allowedValues.join(", ")}.`})}s[e]=c}}return s}};o.nullableConverter=function(e){return A=>{if(A===null){return A}return e(A)}};o.converters.DOMString=function(e,A={}){if(e===null&&A.legacyNullToEmptyString){return""}if(typeof e==="symbol"){throw new TypeError("Could not convert argument of type symbol to string.")}return String(e)};o.converters.ByteString=function(e){const A=o.converters.DOMString(e);for(let e=0;e255){throw new TypeError("Cannot convert argument to a ByteString because the character at "+`index ${e} has a value of ${A.charCodeAt(e)} which is greater than 255.`)}}return A};o.converters.USVString=i;o.converters.boolean=function(e){const A=Boolean(e);return A};o.converters.any=function(e){return e};o.converters["long long"]=function(e){const A=o.util.ConvertToInt(e,64,"signed");return A};o.converters["unsigned long long"]=function(e){const A=o.util.ConvertToInt(e,64,"unsigned");return A};o.converters["unsigned long"]=function(e){const A=o.util.ConvertToInt(e,32,"unsigned");return A};o.converters["unsigned short"]=function(e,A){const t=o.util.ConvertToInt(e,16,"unsigned",A);return t};o.converters.ArrayBuffer=function(e,A={}){if(o.util.Type(e)!=="Object"||!s.isAnyArrayBuffer(e)){throw o.errors.conversionFailed({prefix:`${e}`,argument:`${e}`,types:["ArrayBuffer"]})}if(A.allowShared===false&&s.isSharedArrayBuffer(e)){throw o.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."})}return e};o.converters.TypedArray=function(e,A,t={}){if(o.util.Type(e)!=="Object"||!s.isTypedArray(e)||e.constructor.name!==A.name){throw o.errors.conversionFailed({prefix:`${A.name}`,argument:`${e}`,types:[A.name]})}if(t.allowShared===false&&s.isSharedArrayBuffer(e.buffer)){throw o.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."})}return e};o.converters.DataView=function(e,A={}){if(o.util.Type(e)!=="Object"||!s.isDataView(e)){throw o.errors.exception({header:"DataView",message:"Object is not a DataView."})}if(A.allowShared===false&&s.isSharedArrayBuffer(e.buffer)){throw o.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."})}return e};o.converters.BufferSource=function(e,A={}){if(s.isAnyArrayBuffer(e)){return o.converters.ArrayBuffer(e,A)}if(s.isTypedArray(e)){return o.converters.TypedArray(e,e.constructor)}if(s.isDataView(e)){return o.converters.DataView(e,A)}throw new TypeError(`Could not convert ${e} to a BufferSource.`)};o.converters["sequence"]=o.sequenceConverter(o.converters.ByteString);o.converters["sequence>"]=o.sequenceConverter(o.converters["sequence"]);o.converters["record"]=o.recordConverter(o.converters.ByteString,o.converters.ByteString);e.exports={webidl:o}},4854:e=>{"use strict";function getEncoding(e){if(!e){return"failure"}switch(e.trim().toLowerCase()){case"unicode-1-1-utf-8":case"unicode11utf8":case"unicode20utf8":case"utf-8":case"utf8":case"x-unicode20utf8":return"UTF-8";case"866":case"cp866":case"csibm866":case"ibm866":return"IBM866";case"csisolatin2":case"iso-8859-2":case"iso-ir-101":case"iso8859-2":case"iso88592":case"iso_8859-2":case"iso_8859-2:1987":case"l2":case"latin2":return"ISO-8859-2";case"csisolatin3":case"iso-8859-3":case"iso-ir-109":case"iso8859-3":case"iso88593":case"iso_8859-3":case"iso_8859-3:1988":case"l3":case"latin3":return"ISO-8859-3";case"csisolatin4":case"iso-8859-4":case"iso-ir-110":case"iso8859-4":case"iso88594":case"iso_8859-4":case"iso_8859-4:1988":case"l4":case"latin4":return"ISO-8859-4";case"csisolatincyrillic":case"cyrillic":case"iso-8859-5":case"iso-ir-144":case"iso8859-5":case"iso88595":case"iso_8859-5":case"iso_8859-5:1988":return"ISO-8859-5";case"arabic":case"asmo-708":case"csiso88596e":case"csiso88596i":case"csisolatinarabic":case"ecma-114":case"iso-8859-6":case"iso-8859-6-e":case"iso-8859-6-i":case"iso-ir-127":case"iso8859-6":case"iso88596":case"iso_8859-6":case"iso_8859-6:1987":return"ISO-8859-6";case"csisolatingreek":case"ecma-118":case"elot_928":case"greek":case"greek8":case"iso-8859-7":case"iso-ir-126":case"iso8859-7":case"iso88597":case"iso_8859-7":case"iso_8859-7:1987":case"sun_eu_greek":return"ISO-8859-7";case"csiso88598e":case"csisolatinhebrew":case"hebrew":case"iso-8859-8":case"iso-8859-8-e":case"iso-ir-138":case"iso8859-8":case"iso88598":case"iso_8859-8":case"iso_8859-8:1988":case"visual":return"ISO-8859-8";case"csiso88598i":case"iso-8859-8-i":case"logical":return"ISO-8859-8-I";case"csisolatin6":case"iso-8859-10":case"iso-ir-157":case"iso8859-10":case"iso885910":case"l6":case"latin6":return"ISO-8859-10";case"iso-8859-13":case"iso8859-13":case"iso885913":return"ISO-8859-13";case"iso-8859-14":case"iso8859-14":case"iso885914":return"ISO-8859-14";case"csisolatin9":case"iso-8859-15":case"iso8859-15":case"iso885915":case"iso_8859-15":case"l9":return"ISO-8859-15";case"iso-8859-16":return"ISO-8859-16";case"cskoi8r":case"koi":case"koi8":case"koi8-r":case"koi8_r":return"KOI8-R";case"koi8-ru":case"koi8-u":return"KOI8-U";case"csmacintosh":case"mac":case"macintosh":case"x-mac-roman":return"macintosh";case"iso-8859-11":case"iso8859-11":case"iso885911":case"tis-620":case"windows-874":return"windows-874";case"cp1250":case"windows-1250":case"x-cp1250":return"windows-1250";case"cp1251":case"windows-1251":case"x-cp1251":return"windows-1251";case"ansi_x3.4-1968":case"ascii":case"cp1252":case"cp819":case"csisolatin1":case"ibm819":case"iso-8859-1":case"iso-ir-100":case"iso8859-1":case"iso88591":case"iso_8859-1":case"iso_8859-1:1987":case"l1":case"latin1":case"us-ascii":case"windows-1252":case"x-cp1252":return"windows-1252";case"cp1253":case"windows-1253":case"x-cp1253":return"windows-1253";case"cp1254":case"csisolatin5":case"iso-8859-9":case"iso-ir-148":case"iso8859-9":case"iso88599":case"iso_8859-9":case"iso_8859-9:1989":case"l5":case"latin5":case"windows-1254":case"x-cp1254":return"windows-1254";case"cp1255":case"windows-1255":case"x-cp1255":return"windows-1255";case"cp1256":case"windows-1256":case"x-cp1256":return"windows-1256";case"cp1257":case"windows-1257":case"x-cp1257":return"windows-1257";case"cp1258":case"windows-1258":case"x-cp1258":return"windows-1258";case"x-mac-cyrillic":case"x-mac-ukrainian":return"x-mac-cyrillic";case"chinese":case"csgb2312":case"csiso58gb231280":case"gb2312":case"gb_2312":case"gb_2312-80":case"gbk":case"iso-ir-58":case"x-gbk":return"GBK";case"gb18030":return"gb18030";case"big5":case"big5-hkscs":case"cn-big5":case"csbig5":case"x-x-big5":return"Big5";case"cseucpkdfmtjapanese":case"euc-jp":case"x-euc-jp":return"EUC-JP";case"csiso2022jp":case"iso-2022-jp":return"ISO-2022-JP";case"csshiftjis":case"ms932":case"ms_kanji":case"shift-jis":case"shift_jis":case"sjis":case"windows-31j":case"x-sjis":return"Shift_JIS";case"cseuckr":case"csksc56011987":case"euc-kr":case"iso-ir-149":case"korean":case"ks_c_5601-1987":case"ks_c_5601-1989":case"ksc5601":case"ksc_5601":case"windows-949":return"EUC-KR";case"csiso2022kr":case"hz-gb-2312":case"iso-2022-cn":case"iso-2022-cn-ext":case"iso-2022-kr":case"replacement":return"replacement";case"unicodefffe":case"utf-16be":return"UTF-16BE";case"csunicode":case"iso-10646-ucs-2":case"ucs-2":case"unicode":case"unicodefeff":case"utf-16":case"utf-16le":return"UTF-16LE";case"x-user-defined":return"x-user-defined";default:return"failure"}}e.exports={getEncoding:getEncoding}},1446:(e,A,t)=>{"use strict";const{staticPropertyDescriptors:s,readOperation:n,fireAProgressEvent:i}=t(7530);const{kState:o,kError:r,kResult:a,kEvents:c,kAborted:l}=t(9054);const{webidl:u}=t(1744);const{kEnumerableProperty:p}=t(3983);class FileReader extends EventTarget{constructor(){super();this[o]="empty";this[a]=null;this[r]=null;this[c]={loadend:null,error:null,abort:null,load:null,progress:null,loadstart:null}}readAsArrayBuffer(e){u.brandCheck(this,FileReader);u.argumentLengthCheck(arguments,1,{header:"FileReader.readAsArrayBuffer"});e=u.converters.Blob(e,{strict:false});n(this,e,"ArrayBuffer")}readAsBinaryString(e){u.brandCheck(this,FileReader);u.argumentLengthCheck(arguments,1,{header:"FileReader.readAsBinaryString"});e=u.converters.Blob(e,{strict:false});n(this,e,"BinaryString")}readAsText(e,A=undefined){u.brandCheck(this,FileReader);u.argumentLengthCheck(arguments,1,{header:"FileReader.readAsText"});e=u.converters.Blob(e,{strict:false});if(A!==undefined){A=u.converters.DOMString(A)}n(this,e,"Text",A)}readAsDataURL(e){u.brandCheck(this,FileReader);u.argumentLengthCheck(arguments,1,{header:"FileReader.readAsDataURL"});e=u.converters.Blob(e,{strict:false});n(this,e,"DataURL")}abort(){if(this[o]==="empty"||this[o]==="done"){this[a]=null;return}if(this[o]==="loading"){this[o]="done";this[a]=null}this[l]=true;i("abort",this);if(this[o]!=="loading"){i("loadend",this)}}get readyState(){u.brandCheck(this,FileReader);switch(this[o]){case"empty":return this.EMPTY;case"loading":return this.LOADING;case"done":return this.DONE}}get result(){u.brandCheck(this,FileReader);return this[a]}get error(){u.brandCheck(this,FileReader);return this[r]}get onloadend(){u.brandCheck(this,FileReader);return this[c].loadend}set onloadend(e){u.brandCheck(this,FileReader);if(this[c].loadend){this.removeEventListener("loadend",this[c].loadend)}if(typeof e==="function"){this[c].loadend=e;this.addEventListener("loadend",e)}else{this[c].loadend=null}}get onerror(){u.brandCheck(this,FileReader);return this[c].error}set onerror(e){u.brandCheck(this,FileReader);if(this[c].error){this.removeEventListener("error",this[c].error)}if(typeof e==="function"){this[c].error=e;this.addEventListener("error",e)}else{this[c].error=null}}get onloadstart(){u.brandCheck(this,FileReader);return this[c].loadstart}set onloadstart(e){u.brandCheck(this,FileReader);if(this[c].loadstart){this.removeEventListener("loadstart",this[c].loadstart)}if(typeof e==="function"){this[c].loadstart=e;this.addEventListener("loadstart",e)}else{this[c].loadstart=null}}get onprogress(){u.brandCheck(this,FileReader);return this[c].progress}set onprogress(e){u.brandCheck(this,FileReader);if(this[c].progress){this.removeEventListener("progress",this[c].progress)}if(typeof e==="function"){this[c].progress=e;this.addEventListener("progress",e)}else{this[c].progress=null}}get onload(){u.brandCheck(this,FileReader);return this[c].load}set onload(e){u.brandCheck(this,FileReader);if(this[c].load){this.removeEventListener("load",this[c].load)}if(typeof e==="function"){this[c].load=e;this.addEventListener("load",e)}else{this[c].load=null}}get onabort(){u.brandCheck(this,FileReader);return this[c].abort}set onabort(e){u.brandCheck(this,FileReader);if(this[c].abort){this.removeEventListener("abort",this[c].abort)}if(typeof e==="function"){this[c].abort=e;this.addEventListener("abort",e)}else{this[c].abort=null}}}FileReader.EMPTY=FileReader.prototype.EMPTY=0;FileReader.LOADING=FileReader.prototype.LOADING=1;FileReader.DONE=FileReader.prototype.DONE=2;Object.defineProperties(FileReader.prototype,{EMPTY:s,LOADING:s,DONE:s,readAsArrayBuffer:p,readAsBinaryString:p,readAsText:p,readAsDataURL:p,abort:p,readyState:p,result:p,error:p,onloadstart:p,onprogress:p,onload:p,onabort:p,onerror:p,onloadend:p,[Symbol.toStringTag]:{value:"FileReader",writable:false,enumerable:false,configurable:true}});Object.defineProperties(FileReader,{EMPTY:s,LOADING:s,DONE:s});e.exports={FileReader:FileReader}},5504:(e,A,t)=>{"use strict";const{webidl:s}=t(1744);const n=Symbol("ProgressEvent state");class ProgressEvent extends Event{constructor(e,A={}){e=s.converters.DOMString(e);A=s.converters.ProgressEventInit(A??{});super(e,A);this[n]={lengthComputable:A.lengthComputable,loaded:A.loaded,total:A.total}}get lengthComputable(){s.brandCheck(this,ProgressEvent);return this[n].lengthComputable}get loaded(){s.brandCheck(this,ProgressEvent);return this[n].loaded}get total(){s.brandCheck(this,ProgressEvent);return this[n].total}}s.converters.ProgressEventInit=s.dictionaryConverter([{key:"lengthComputable",converter:s.converters.boolean,defaultValue:false},{key:"loaded",converter:s.converters["unsigned long long"],defaultValue:0},{key:"total",converter:s.converters["unsigned long long"],defaultValue:0},{key:"bubbles",converter:s.converters.boolean,defaultValue:false},{key:"cancelable",converter:s.converters.boolean,defaultValue:false},{key:"composed",converter:s.converters.boolean,defaultValue:false}]);e.exports={ProgressEvent:ProgressEvent}},9054:e=>{"use strict";e.exports={kState:Symbol("FileReader state"),kResult:Symbol("FileReader result"),kError:Symbol("FileReader error"),kLastProgressEventFired:Symbol("FileReader last progress event fired timestamp"),kEvents:Symbol("FileReader events"),kAborted:Symbol("FileReader aborted")}},7530:(e,A,t)=>{"use strict";const{kState:s,kError:n,kResult:i,kAborted:o,kLastProgressEventFired:r}=t(9054);const{ProgressEvent:a}=t(5504);const{getEncoding:c}=t(4854);const{DOMException:l}=t(1037);const{serializeAMimeType:u,parseMIMEType:p}=t(685);const{types:g}=t(3837);const{StringDecoder:d}=t(1576);const{btoa:E}=t(4300);const h={enumerable:true,writable:false,configurable:false};function readOperation(e,A,t,a){if(e[s]==="loading"){throw new l("Invalid state","InvalidStateError")}e[s]="loading";e[i]=null;e[n]=null;const c=A.stream();const u=c.getReader();const p=[];let d=u.read();let E=true;(async()=>{while(!e[o]){try{const{done:c,value:l}=await d;if(E&&!e[o]){queueMicrotask((()=>{fireAProgressEvent("loadstart",e)}))}E=false;if(!c&&g.isUint8Array(l)){p.push(l);if((e[r]===undefined||Date.now()-e[r]>=50)&&!e[o]){e[r]=Date.now();queueMicrotask((()=>{fireAProgressEvent("progress",e)}))}d=u.read()}else if(c){queueMicrotask((()=>{e[s]="done";try{const s=packageData(p,t,A.type,a);if(e[o]){return}e[i]=s;fireAProgressEvent("load",e)}catch(A){e[n]=A;fireAProgressEvent("error",e)}if(e[s]!=="loading"){fireAProgressEvent("loadend",e)}}));break}}catch(A){if(e[o]){return}queueMicrotask((()=>{e[s]="done";e[n]=A;fireAProgressEvent("error",e);if(e[s]!=="loading"){fireAProgressEvent("loadend",e)}}));break}}})()}function fireAProgressEvent(e,A){const t=new a(e,{bubbles:false,cancelable:false});A.dispatchEvent(t)}function packageData(e,A,t,s){switch(A){case"DataURL":{let A="data:";const s=p(t||"application/octet-stream");if(s!=="failure"){A+=u(s)}A+=";base64,";const n=new d("latin1");for(const t of e){A+=E(n.write(t))}A+=E(n.end());return A}case"Text":{let A="failure";if(s){A=c(s)}if(A==="failure"&&t){const e=p(t);if(e!=="failure"){A=c(e.parameters.get("charset"))}}if(A==="failure"){A="UTF-8"}return decode(e,A)}case"ArrayBuffer":{const A=combineByteSequences(e);return A.buffer}case"BinaryString":{let A="";const t=new d("latin1");for(const s of e){A+=t.write(s)}A+=t.end();return A}}}function decode(e,A){const t=combineByteSequences(e);const s=BOMSniffing(t);let n=0;if(s!==null){A=s;n=s==="UTF-8"?3:2}const i=t.slice(n);return new TextDecoder(A).decode(i)}function BOMSniffing(e){const[A,t,s]=e;if(A===239&&t===187&&s===191){return"UTF-8"}else if(A===254&&t===255){return"UTF-16BE"}else if(A===255&&t===254){return"UTF-16LE"}return null}function combineByteSequences(e){const A=e.reduce(((e,A)=>e+A.byteLength),0);let t=0;return e.reduce(((e,A)=>{e.set(A,t);t+=A.byteLength;return e}),new Uint8Array(A))}e.exports={staticPropertyDescriptors:h,readOperation:readOperation,fireAProgressEvent:fireAProgressEvent}},1892:(e,A,t)=>{"use strict";const s=Symbol.for("undici.globalDispatcher.1");const{InvalidArgumentError:n}=t(8045);const i=t(7890);if(getGlobalDispatcher()===undefined){setGlobalDispatcher(new i)}function setGlobalDispatcher(e){if(!e||typeof e.dispatch!=="function"){throw new n("Argument agent must implement Agent")}Object.defineProperty(globalThis,s,{value:e,writable:true,enumerable:false,configurable:false})}function getGlobalDispatcher(){return globalThis[s]}e.exports={setGlobalDispatcher:setGlobalDispatcher,getGlobalDispatcher:getGlobalDispatcher}},6930:e=>{"use strict";e.exports=class DecoratorHandler{constructor(e){this.handler=e}onConnect(...e){return this.handler.onConnect(...e)}onError(...e){return this.handler.onError(...e)}onUpgrade(...e){return this.handler.onUpgrade(...e)}onHeaders(...e){return this.handler.onHeaders(...e)}onData(...e){return this.handler.onData(...e)}onComplete(...e){return this.handler.onComplete(...e)}onBodySent(...e){return this.handler.onBodySent(...e)}}},2860:(e,A,t)=>{"use strict";const s=t(3983);const{kBodyUsed:n}=t(2785);const i=t(9491);const{InvalidArgumentError:o}=t(8045);const r=t(2361);const a=[300,301,302,303,307,308];const c=Symbol("body");class BodyAsyncIterable{constructor(e){this[c]=e;this[n]=false}async*[Symbol.asyncIterator](){i(!this[n],"disturbed");this[n]=true;yield*this[c]}}class RedirectHandler{constructor(e,A,t,a){if(A!=null&&(!Number.isInteger(A)||A<0)){throw new o("maxRedirections must be a positive number")}s.validateHandler(a,t.method,t.upgrade);this.dispatch=e;this.location=null;this.abort=null;this.opts={...t,maxRedirections:0};this.maxRedirections=A;this.handler=a;this.history=[];if(s.isStream(this.opts.body)){if(s.bodyLength(this.opts.body)===0){this.opts.body.on("data",(function(){i(false)}))}if(typeof this.opts.body.readableDidRead!=="boolean"){this.opts.body[n]=false;r.prototype.on.call(this.opts.body,"data",(function(){this[n]=true}))}}else if(this.opts.body&&typeof this.opts.body.pipeTo==="function"){this.opts.body=new BodyAsyncIterable(this.opts.body)}else if(this.opts.body&&typeof this.opts.body!=="string"&&!ArrayBuffer.isView(this.opts.body)&&s.isIterable(this.opts.body)){this.opts.body=new BodyAsyncIterable(this.opts.body)}}onConnect(e){this.abort=e;this.handler.onConnect(e,{history:this.history})}onUpgrade(e,A,t){this.handler.onUpgrade(e,A,t)}onError(e){this.handler.onError(e)}onHeaders(e,A,t,n){this.location=this.history.length>=this.maxRedirections||s.isDisturbed(this.opts.body)?null:parseLocation(e,A);if(this.opts.origin){this.history.push(new URL(this.opts.path,this.opts.origin))}if(!this.location){return this.handler.onHeaders(e,A,t,n)}const{origin:i,pathname:o,search:r}=s.parseURL(new URL(this.location,this.opts.origin&&new URL(this.opts.path,this.opts.origin)));const a=r?`${o}${r}`:o;this.opts.headers=cleanRequestHeaders(this.opts.headers,e===303,this.opts.origin!==i);this.opts.path=a;this.opts.origin=i;this.opts.maxRedirections=0;this.opts.query=null;if(e===303&&this.opts.method!=="HEAD"){this.opts.method="GET";this.opts.body=null}}onData(e){if(this.location){}else{return this.handler.onData(e)}}onComplete(e){if(this.location){this.location=null;this.abort=null;this.dispatch(this.opts,this)}else{this.handler.onComplete(e)}}onBodySent(e){if(this.handler.onBodySent){this.handler.onBodySent(e)}}}function parseLocation(e,A){if(a.indexOf(e)===-1){return null}for(let e=0;e{const s=t(9491);const{kRetryHandlerDefaultRetry:n}=t(2785);const{RequestRetryError:i}=t(8045);const{isDisturbed:o,parseHeaders:r,parseRangeHeader:a}=t(3983);function calculateRetryAfterHeader(e){const A=Date.now();const t=new Date(e).getTime()-A;return t}class RetryHandler{constructor(e,A){const{retryOptions:t,...s}=e;const{retry:i,maxRetries:o,maxTimeout:r,minTimeout:a,timeoutFactor:c,methods:l,errorCodes:u,retryAfter:p,statusCodes:g}=t??{};this.dispatch=A.dispatch;this.handler=A.handler;this.opts=s;this.abort=null;this.aborted=false;this.retryOpts={retry:i??RetryHandler[n],retryAfter:p??true,maxTimeout:r??30*1e3,timeout:a??500,timeoutFactor:c??2,maxRetries:o??5,methods:l??["GET","HEAD","OPTIONS","PUT","DELETE","TRACE"],statusCodes:g??[500,502,503,504,429],errorCodes:u??["ECONNRESET","ECONNREFUSED","ENOTFOUND","ENETDOWN","ENETUNREACH","EHOSTDOWN","EHOSTUNREACH","EPIPE"]};this.retryCount=0;this.start=0;this.end=null;this.etag=null;this.resume=null;this.handler.onConnect((e=>{this.aborted=true;if(this.abort){this.abort(e)}else{this.reason=e}}))}onRequestSent(){if(this.handler.onRequestSent){this.handler.onRequestSent()}}onUpgrade(e,A,t){if(this.handler.onUpgrade){this.handler.onUpgrade(e,A,t)}}onConnect(e){if(this.aborted){e(this.reason)}else{this.abort=e}}onBodySent(e){if(this.handler.onBodySent)return this.handler.onBodySent(e)}static[n](e,{state:A,opts:t},s){const{statusCode:n,code:i,headers:o}=e;const{method:r,retryOptions:a}=t;const{maxRetries:c,timeout:l,maxTimeout:u,timeoutFactor:p,statusCodes:g,errorCodes:d,methods:E}=a;let{counter:h,currentTimeout:Q}=A;Q=Q!=null&&Q>0?Q:l;if(i&&i!=="UND_ERR_REQ_RETRY"&&i!=="UND_ERR_SOCKET"&&!d.includes(i)){s(e);return}if(Array.isArray(E)&&!E.includes(r)){s(e);return}if(n!=null&&Array.isArray(g)&&!g.includes(n)){s(e);return}if(h>c){s(e);return}let C=o!=null&&o["retry-after"];if(C){C=Number(C);C=isNaN(C)?calculateRetryAfterHeader(C):C*1e3}const B=C>0?Math.min(C,u):Math.min(Q*p**h,u);A.currentTimeout=B;setTimeout((()=>s(null)),B)}onHeaders(e,A,t,n){const o=r(A);this.retryCount+=1;if(e>=300){this.abort(new i("Request failed",e,{headers:o,count:this.retryCount}));return false}if(this.resume!=null){this.resume=null;if(e!==206){return true}const A=a(o["content-range"]);if(!A){this.abort(new i("Content-Range mismatch",e,{headers:o,count:this.retryCount}));return false}if(this.etag!=null&&this.etag!==o.etag){this.abort(new i("ETag mismatch",e,{headers:o,count:this.retryCount}));return false}const{start:n,size:r,end:c=r}=A;s(this.start===n,"content-range mismatch");s(this.end==null||this.end===c,"content-range mismatch");this.resume=t;return true}if(this.end==null){if(e===206){const i=a(o["content-range"]);if(i==null){return this.handler.onHeaders(e,A,t,n)}const{start:r,size:c,end:l=c}=i;s(r!=null&&Number.isFinite(r)&&this.start!==r,"content-range mismatch");s(Number.isFinite(r));s(l!=null&&Number.isFinite(l)&&this.end!==l,"invalid content-length");this.start=r;this.end=l}if(this.end==null){const e=o["content-length"];this.end=e!=null?Number(e):null}s(Number.isFinite(this.start));s(this.end==null||Number.isFinite(this.end),"invalid content-length");this.resume=t;this.etag=o.etag!=null?o.etag:null;return this.handler.onHeaders(e,A,t,n)}const c=new i("Request failed",e,{headers:o,count:this.retryCount});this.abort(c);return false}onData(e){this.start+=e.length;return this.handler.onData(e)}onComplete(e){this.retryCount=0;return this.handler.onComplete(e)}onError(e){if(this.aborted||o(this.opts.body)){return this.handler.onError(e)}this.retryOpts.retry(e,{state:{counter:this.retryCount++,currentTimeout:this.retryAfter},opts:{retryOptions:this.retryOpts,...this.opts}},onRetry.bind(this));function onRetry(e){if(e!=null||this.aborted||o(this.opts.body)){return this.handler.onError(e)}if(this.start!==0){this.opts={...this.opts,headers:{...this.opts.headers,range:`bytes=${this.start}-${this.end??""}`}}}try{this.dispatch(this.opts,this)}catch(e){this.handler.onError(e)}}}}e.exports=RetryHandler},8861:(e,A,t)=>{"use strict";const s=t(2860);function createRedirectInterceptor({maxRedirections:e}){return A=>function Intercept(t,n){const{maxRedirections:i=e}=t;if(!i){return A(t,n)}const o=new s(A,i,t,n);t={...t,maxRedirections:0};return A(t,o)}}e.exports=createRedirectInterceptor},953:(e,A,t)=>{"use strict";Object.defineProperty(A,"__esModule",{value:true});A.SPECIAL_HEADERS=A.HEADER_STATE=A.MINOR=A.MAJOR=A.CONNECTION_TOKEN_CHARS=A.HEADER_CHARS=A.TOKEN=A.STRICT_TOKEN=A.HEX=A.URL_CHAR=A.STRICT_URL_CHAR=A.USERINFO_CHARS=A.MARK=A.ALPHANUM=A.NUM=A.HEX_MAP=A.NUM_MAP=A.ALPHA=A.FINISH=A.H_METHOD_MAP=A.METHOD_MAP=A.METHODS_RTSP=A.METHODS_ICE=A.METHODS_HTTP=A.METHODS=A.LENIENT_FLAGS=A.FLAGS=A.TYPE=A.ERROR=void 0;const s=t(1891);var n;(function(e){e[e["OK"]=0]="OK";e[e["INTERNAL"]=1]="INTERNAL";e[e["STRICT"]=2]="STRICT";e[e["LF_EXPECTED"]=3]="LF_EXPECTED";e[e["UNEXPECTED_CONTENT_LENGTH"]=4]="UNEXPECTED_CONTENT_LENGTH";e[e["CLOSED_CONNECTION"]=5]="CLOSED_CONNECTION";e[e["INVALID_METHOD"]=6]="INVALID_METHOD";e[e["INVALID_URL"]=7]="INVALID_URL";e[e["INVALID_CONSTANT"]=8]="INVALID_CONSTANT";e[e["INVALID_VERSION"]=9]="INVALID_VERSION";e[e["INVALID_HEADER_TOKEN"]=10]="INVALID_HEADER_TOKEN";e[e["INVALID_CONTENT_LENGTH"]=11]="INVALID_CONTENT_LENGTH";e[e["INVALID_CHUNK_SIZE"]=12]="INVALID_CHUNK_SIZE";e[e["INVALID_STATUS"]=13]="INVALID_STATUS";e[e["INVALID_EOF_STATE"]=14]="INVALID_EOF_STATE";e[e["INVALID_TRANSFER_ENCODING"]=15]="INVALID_TRANSFER_ENCODING";e[e["CB_MESSAGE_BEGIN"]=16]="CB_MESSAGE_BEGIN";e[e["CB_HEADERS_COMPLETE"]=17]="CB_HEADERS_COMPLETE";e[e["CB_MESSAGE_COMPLETE"]=18]="CB_MESSAGE_COMPLETE";e[e["CB_CHUNK_HEADER"]=19]="CB_CHUNK_HEADER";e[e["CB_CHUNK_COMPLETE"]=20]="CB_CHUNK_COMPLETE";e[e["PAUSED"]=21]="PAUSED";e[e["PAUSED_UPGRADE"]=22]="PAUSED_UPGRADE";e[e["PAUSED_H2_UPGRADE"]=23]="PAUSED_H2_UPGRADE";e[e["USER"]=24]="USER"})(n=A.ERROR||(A.ERROR={}));var i;(function(e){e[e["BOTH"]=0]="BOTH";e[e["REQUEST"]=1]="REQUEST";e[e["RESPONSE"]=2]="RESPONSE"})(i=A.TYPE||(A.TYPE={}));var o;(function(e){e[e["CONNECTION_KEEP_ALIVE"]=1]="CONNECTION_KEEP_ALIVE";e[e["CONNECTION_CLOSE"]=2]="CONNECTION_CLOSE";e[e["CONNECTION_UPGRADE"]=4]="CONNECTION_UPGRADE";e[e["CHUNKED"]=8]="CHUNKED";e[e["UPGRADE"]=16]="UPGRADE";e[e["CONTENT_LENGTH"]=32]="CONTENT_LENGTH";e[e["SKIPBODY"]=64]="SKIPBODY";e[e["TRAILING"]=128]="TRAILING";e[e["TRANSFER_ENCODING"]=512]="TRANSFER_ENCODING"})(o=A.FLAGS||(A.FLAGS={}));var r;(function(e){e[e["HEADERS"]=1]="HEADERS";e[e["CHUNKED_LENGTH"]=2]="CHUNKED_LENGTH";e[e["KEEP_ALIVE"]=4]="KEEP_ALIVE"})(r=A.LENIENT_FLAGS||(A.LENIENT_FLAGS={}));var a;(function(e){e[e["DELETE"]=0]="DELETE";e[e["GET"]=1]="GET";e[e["HEAD"]=2]="HEAD";e[e["POST"]=3]="POST";e[e["PUT"]=4]="PUT";e[e["CONNECT"]=5]="CONNECT";e[e["OPTIONS"]=6]="OPTIONS";e[e["TRACE"]=7]="TRACE";e[e["COPY"]=8]="COPY";e[e["LOCK"]=9]="LOCK";e[e["MKCOL"]=10]="MKCOL";e[e["MOVE"]=11]="MOVE";e[e["PROPFIND"]=12]="PROPFIND";e[e["PROPPATCH"]=13]="PROPPATCH";e[e["SEARCH"]=14]="SEARCH";e[e["UNLOCK"]=15]="UNLOCK";e[e["BIND"]=16]="BIND";e[e["REBIND"]=17]="REBIND";e[e["UNBIND"]=18]="UNBIND";e[e["ACL"]=19]="ACL";e[e["REPORT"]=20]="REPORT";e[e["MKACTIVITY"]=21]="MKACTIVITY";e[e["CHECKOUT"]=22]="CHECKOUT";e[e["MERGE"]=23]="MERGE";e[e["M-SEARCH"]=24]="M-SEARCH";e[e["NOTIFY"]=25]="NOTIFY";e[e["SUBSCRIBE"]=26]="SUBSCRIBE";e[e["UNSUBSCRIBE"]=27]="UNSUBSCRIBE";e[e["PATCH"]=28]="PATCH";e[e["PURGE"]=29]="PURGE";e[e["MKCALENDAR"]=30]="MKCALENDAR";e[e["LINK"]=31]="LINK";e[e["UNLINK"]=32]="UNLINK";e[e["SOURCE"]=33]="SOURCE";e[e["PRI"]=34]="PRI";e[e["DESCRIBE"]=35]="DESCRIBE";e[e["ANNOUNCE"]=36]="ANNOUNCE";e[e["SETUP"]=37]="SETUP";e[e["PLAY"]=38]="PLAY";e[e["PAUSE"]=39]="PAUSE";e[e["TEARDOWN"]=40]="TEARDOWN";e[e["GET_PARAMETER"]=41]="GET_PARAMETER";e[e["SET_PARAMETER"]=42]="SET_PARAMETER";e[e["REDIRECT"]=43]="REDIRECT";e[e["RECORD"]=44]="RECORD";e[e["FLUSH"]=45]="FLUSH"})(a=A.METHODS||(A.METHODS={}));A.METHODS_HTTP=[a.DELETE,a.GET,a.HEAD,a.POST,a.PUT,a.CONNECT,a.OPTIONS,a.TRACE,a.COPY,a.LOCK,a.MKCOL,a.MOVE,a.PROPFIND,a.PROPPATCH,a.SEARCH,a.UNLOCK,a.BIND,a.REBIND,a.UNBIND,a.ACL,a.REPORT,a.MKACTIVITY,a.CHECKOUT,a.MERGE,a["M-SEARCH"],a.NOTIFY,a.SUBSCRIBE,a.UNSUBSCRIBE,a.PATCH,a.PURGE,a.MKCALENDAR,a.LINK,a.UNLINK,a.PRI,a.SOURCE];A.METHODS_ICE=[a.SOURCE];A.METHODS_RTSP=[a.OPTIONS,a.DESCRIBE,a.ANNOUNCE,a.SETUP,a.PLAY,a.PAUSE,a.TEARDOWN,a.GET_PARAMETER,a.SET_PARAMETER,a.REDIRECT,a.RECORD,a.FLUSH,a.GET,a.POST];A.METHOD_MAP=s.enumToMap(a);A.H_METHOD_MAP={};Object.keys(A.METHOD_MAP).forEach((e=>{if(/^H/.test(e)){A.H_METHOD_MAP[e]=A.METHOD_MAP[e]}}));var c;(function(e){e[e["SAFE"]=0]="SAFE";e[e["SAFE_WITH_CB"]=1]="SAFE_WITH_CB";e[e["UNSAFE"]=2]="UNSAFE"})(c=A.FINISH||(A.FINISH={}));A.ALPHA=[];for(let e="A".charCodeAt(0);e<="Z".charCodeAt(0);e++){A.ALPHA.push(String.fromCharCode(e));A.ALPHA.push(String.fromCharCode(e+32))}A.NUM_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9};A.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};A.NUM=["0","1","2","3","4","5","6","7","8","9"];A.ALPHANUM=A.ALPHA.concat(A.NUM);A.MARK=["-","_",".","!","~","*","'","(",")"];A.USERINFO_CHARS=A.ALPHANUM.concat(A.MARK).concat(["%",";",":","&","=","+","$",","]);A.STRICT_URL_CHAR=["!",'"',"$","%","&","'","(",")","*","+",",","-",".","/",":",";","<","=",">","@","[","\\","]","^","_","`","{","|","}","~"].concat(A.ALPHANUM);A.URL_CHAR=A.STRICT_URL_CHAR.concat(["\t","\f"]);for(let e=128;e<=255;e++){A.URL_CHAR.push(e)}A.HEX=A.NUM.concat(["a","b","c","d","e","f","A","B","C","D","E","F"]);A.STRICT_TOKEN=["!","#","$","%","&","'","*","+","-",".","^","_","`","|","~"].concat(A.ALPHANUM);A.TOKEN=A.STRICT_TOKEN.concat([" "]);A.HEADER_CHARS=["\t"];for(let e=32;e<=255;e++){if(e!==127){A.HEADER_CHARS.push(e)}}A.CONNECTION_TOKEN_CHARS=A.HEADER_CHARS.filter((e=>e!==44));A.MAJOR=A.NUM_MAP;A.MINOR=A.MAJOR;var l;(function(e){e[e["GENERAL"]=0]="GENERAL";e[e["CONNECTION"]=1]="CONNECTION";e[e["CONTENT_LENGTH"]=2]="CONTENT_LENGTH";e[e["TRANSFER_ENCODING"]=3]="TRANSFER_ENCODING";e[e["UPGRADE"]=4]="UPGRADE";e[e["CONNECTION_KEEP_ALIVE"]=5]="CONNECTION_KEEP_ALIVE";e[e["CONNECTION_CLOSE"]=6]="CONNECTION_CLOSE";e[e["CONNECTION_UPGRADE"]=7]="CONNECTION_UPGRADE";e[e["TRANSFER_ENCODING_CHUNKED"]=8]="TRANSFER_ENCODING_CHUNKED"})(l=A.HEADER_STATE||(A.HEADER_STATE={}));A.SPECIAL_HEADERS={connection:l.CONNECTION,"content-length":l.CONTENT_LENGTH,"proxy-connection":l.CONNECTION,"transfer-encoding":l.TRANSFER_ENCODING,upgrade:l.UPGRADE}},1145:e=>{e.exports="AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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ADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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FCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAU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YWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8="},5627:e=>{e.exports="AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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IAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQID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YWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw=="},1891:(e,A)=>{"use strict";Object.defineProperty(A,"__esModule",{value:true});A.enumToMap=void 0;function enumToMap(e){const A={};Object.keys(e).forEach((t=>{const s=e[t];if(typeof s==="number"){A[t]=s}}));return A}A.enumToMap=enumToMap},6771:(e,A,t)=>{"use strict";const{kClients:s}=t(2785);const n=t(7890);const{kAgent:i,kMockAgentSet:o,kMockAgentGet:r,kDispatches:a,kIsMockActive:c,kNetConnect:l,kGetNetConnect:u,kOptions:p,kFactory:g}=t(4347);const d=t(8687);const E=t(6193);const{matchValue:h,buildMockOptions:Q}=t(9323);const{InvalidArgumentError:C,UndiciError:B}=t(8045);const f=t(412);const I=t(8891);const m=t(6823);class FakeWeakRef{constructor(e){this.value=e}deref(){return this.value}}class MockAgent extends f{constructor(e){super(e);this[l]=true;this[c]=true;if(e&&e.agent&&typeof e.agent.dispatch!=="function"){throw new C("Argument opts.agent must implement Agent")}const A=e&&e.agent?e.agent:new n(e);this[i]=A;this[s]=A[s];this[p]=Q(e)}get(e){let A=this[r](e);if(!A){A=this[g](e);this[o](e,A)}return A}dispatch(e,A){this.get(e.origin);return this[i].dispatch(e,A)}async close(){await this[i].close();this[s].clear()}deactivate(){this[c]=false}activate(){this[c]=true}enableNetConnect(e){if(typeof e==="string"||typeof e==="function"||e instanceof RegExp){if(Array.isArray(this[l])){this[l].push(e)}else{this[l]=[e]}}else if(typeof e==="undefined"){this[l]=true}else{throw new C("Unsupported matcher. Must be one of String|Function|RegExp.")}}disableNetConnect(){this[l]=false}get isMockActive(){return this[c]}[o](e,A){this[s].set(e,new FakeWeakRef(A))}[g](e){const A=Object.assign({agent:this},this[p]);return this[p]&&this[p].connections===1?new d(e,A):new E(e,A)}[r](e){const A=this[s].get(e);if(A){return A.deref()}if(typeof e!=="string"){const A=this[g]("http://localhost:9999");this[o](e,A);return A}for(const[A,t]of Array.from(this[s])){const s=t.deref();if(s&&typeof A!=="string"&&h(A,e)){const A=this[g](e);this[o](e,A);A[a]=s[a];return A}}}[u](){return this[l]}pendingInterceptors(){const e=this[s];return Array.from(e.entries()).flatMap((([e,A])=>A.deref()[a].map((A=>({...A,origin:e}))))).filter((({pending:e})=>e))}assertNoPendingInterceptors({pendingInterceptorsFormatter:e=new m}={}){const A=this.pendingInterceptors();if(A.length===0){return}const t=new I("interceptor","interceptors").pluralize(A.length);throw new B(`\n${t.count} ${t.noun} ${t.is} pending:\n\n${e.format(A)}\n`.trim())}}e.exports=MockAgent},8687:(e,A,t)=>{"use strict";const{promisify:s}=t(3837);const n=t(3598);const{buildMockDispatch:i}=t(9323);const{kDispatches:o,kMockAgent:r,kClose:a,kOriginalClose:c,kOrigin:l,kOriginalDispatch:u,kConnected:p}=t(4347);const{MockInterceptor:g}=t(410);const d=t(2785);const{InvalidArgumentError:E}=t(8045);class MockClient extends n{constructor(e,A){super(e,A);if(!A||!A.agent||typeof A.agent.dispatch!=="function"){throw new E("Argument opts.agent must implement Agent")}this[r]=A.agent;this[l]=e;this[o]=[];this[p]=1;this[u]=this.dispatch;this[c]=this.close.bind(this);this.dispatch=i.call(this);this.close=this[a]}get[d.kConnected](){return this[p]}intercept(e){return new g(e,this[o])}async[a](){await s(this[c])();this[p]=0;this[r][d.kClients].delete(this[l])}}e.exports=MockClient},888:(e,A,t)=>{"use strict";const{UndiciError:s}=t(8045);class MockNotMatchedError extends s{constructor(e){super(e);Error.captureStackTrace(this,MockNotMatchedError);this.name="MockNotMatchedError";this.message=e||"The request does not match any registered mock dispatches";this.code="UND_MOCK_ERR_MOCK_NOT_MATCHED"}}e.exports={MockNotMatchedError:MockNotMatchedError}},410:(e,A,t)=>{"use strict";const{getResponseData:s,buildKey:n,addMockDispatch:i}=t(9323);const{kDispatches:o,kDispatchKey:r,kDefaultHeaders:a,kDefaultTrailers:c,kContentLength:l,kMockDispatch:u}=t(4347);const{InvalidArgumentError:p}=t(8045);const{buildURL:g}=t(3983);class MockScope{constructor(e){this[u]=e}delay(e){if(typeof e!=="number"||!Number.isInteger(e)||e<=0){throw new p("waitInMs must be a valid integer > 0")}this[u].delay=e;return this}persist(){this[u].persist=true;return this}times(e){if(typeof e!=="number"||!Number.isInteger(e)||e<=0){throw new p("repeatTimes must be a valid integer > 0")}this[u].times=e;return this}}class MockInterceptor{constructor(e,A){if(typeof e!=="object"){throw new p("opts must be an object")}if(typeof e.path==="undefined"){throw new p("opts.path must be defined")}if(typeof e.method==="undefined"){e.method="GET"}if(typeof e.path==="string"){if(e.query){e.path=g(e.path,e.query)}else{const A=new URL(e.path,"data://");e.path=A.pathname+A.search}}if(typeof e.method==="string"){e.method=e.method.toUpperCase()}this[r]=n(e);this[o]=A;this[a]={};this[c]={};this[l]=false}createMockScopeDispatchData(e,A,t={}){const n=s(A);const i=this[l]?{"content-length":n.length}:{};const o={...this[a],...i,...t.headers};const r={...this[c],...t.trailers};return{statusCode:e,data:A,headers:o,trailers:r}}validateReplyParameters(e,A,t){if(typeof e==="undefined"){throw new p("statusCode must be defined")}if(typeof A==="undefined"){throw new p("data must be defined")}if(typeof t!=="object"){throw new p("responseOptions must be an object")}}reply(e){if(typeof e==="function"){const wrappedDefaultsCallback=A=>{const t=e(A);if(typeof t!=="object"){throw new p("reply options callback must return an object")}const{statusCode:s,data:n="",responseOptions:i={}}=t;this.validateReplyParameters(s,n,i);return{...this.createMockScopeDispatchData(s,n,i)}};const A=i(this[o],this[r],wrappedDefaultsCallback);return new MockScope(A)}const[A,t="",s={}]=[...arguments];this.validateReplyParameters(A,t,s);const n=this.createMockScopeDispatchData(A,t,s);const a=i(this[o],this[r],n);return new MockScope(a)}replyWithError(e){if(typeof e==="undefined"){throw new p("error must be defined")}const A=i(this[o],this[r],{error:e});return new MockScope(A)}defaultReplyHeaders(e){if(typeof e==="undefined"){throw new p("headers must be defined")}this[a]=e;return this}defaultReplyTrailers(e){if(typeof e==="undefined"){throw new p("trailers must be defined")}this[c]=e;return this}replyContentLength(){this[l]=true;return this}}e.exports.MockInterceptor=MockInterceptor;e.exports.MockScope=MockScope},6193:(e,A,t)=>{"use strict";const{promisify:s}=t(3837);const n=t(4634);const{buildMockDispatch:i}=t(9323);const{kDispatches:o,kMockAgent:r,kClose:a,kOriginalClose:c,kOrigin:l,kOriginalDispatch:u,kConnected:p}=t(4347);const{MockInterceptor:g}=t(410);const d=t(2785);const{InvalidArgumentError:E}=t(8045);class MockPool extends n{constructor(e,A){super(e,A);if(!A||!A.agent||typeof A.agent.dispatch!=="function"){throw new E("Argument opts.agent must implement Agent")}this[r]=A.agent;this[l]=e;this[o]=[];this[p]=1;this[u]=this.dispatch;this[c]=this.close.bind(this);this.dispatch=i.call(this);this.close=this[a]}get[d.kConnected](){return this[p]}intercept(e){return new g(e,this[o])}async[a](){await s(this[c])();this[p]=0;this[r][d.kClients].delete(this[l])}}e.exports=MockPool},4347:e=>{"use strict";e.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"),kOrigin:Symbol("origin"),kIsMockActive:Symbol("is mock active"),kNetConnect:Symbol("net connect"),kGetNetConnect:Symbol("get net connect"),kConnected:Symbol("connected")}},9323:(e,A,t)=>{"use strict";const{MockNotMatchedError:s}=t(888);const{kDispatches:n,kMockAgent:i,kOriginalDispatch:o,kOrigin:r,kGetNetConnect:a}=t(4347);const{buildURL:c,nop:l}=t(3983);const{STATUS_CODES:u}=t(3685);const{types:{isPromise:p}}=t(3837);function matchValue(e,A){if(typeof e==="string"){return e===A}if(e instanceof RegExp){return e.test(A)}if(typeof e==="function"){return e(A)===true}return false}function lowerCaseEntries(e){return Object.fromEntries(Object.entries(e).map((([e,A])=>[e.toLocaleLowerCase(),A])))}function getHeaderByName(e,A){if(Array.isArray(e)){for(let t=0;t!e)).filter((({path:e})=>matchValue(safeUrl(e),n)));if(i.length===0){throw new s(`Mock dispatch not matched for path '${n}'`)}i=i.filter((({method:e})=>matchValue(e,A.method)));if(i.length===0){throw new s(`Mock dispatch not matched for method '${A.method}'`)}i=i.filter((({body:e})=>typeof e!=="undefined"?matchValue(e,A.body):true));if(i.length===0){throw new s(`Mock dispatch not matched for body '${A.body}'`)}i=i.filter((e=>matchHeaders(e,A.headers)));if(i.length===0){throw new s(`Mock dispatch not matched for headers '${typeof A.headers==="object"?JSON.stringify(A.headers):A.headers}'`)}return i[0]}function addMockDispatch(e,A,t){const s={timesInvoked:0,times:1,persist:false,consumed:false};const n=typeof t==="function"?{callback:t}:{...t};const i={...s,...A,pending:true,data:{error:null,...n}};e.push(i);return i}function deleteMockDispatch(e,A){const t=e.findIndex((e=>{if(!e.consumed){return false}return matchKey(e,A)}));if(t!==-1){e.splice(t,1)}}function buildKey(e){const{path:A,method:t,body:s,headers:n,query:i}=e;return{path:A,method:t,body:s,headers:n,query:i}}function generateKeyValues(e){return Object.entries(e).reduce(((e,[A,t])=>[...e,Buffer.from(`${A}`),Array.isArray(t)?t.map((e=>Buffer.from(`${e}`))):Buffer.from(`${t}`)]),[])}function getStatusText(e){return u[e]||"unknown"}async function getResponse(e){const A=[];for await(const t of e){A.push(t)}return Buffer.concat(A).toString("utf8")}function mockDispatch(e,A){const t=buildKey(e);const s=getMockDispatch(this[n],t);s.timesInvoked++;if(s.data.callback){s.data={...s.data,...s.data.callback(e)}}const{data:{statusCode:i,data:o,headers:r,trailers:a,error:c},delay:u,persist:g}=s;const{timesInvoked:d,times:E}=s;s.consumed=!g&&d>=E;s.pending=d0){setTimeout((()=>{handleReply(this[n])}),u)}else{handleReply(this[n])}function handleReply(s,n=o){const c=Array.isArray(e.headers)?buildHeadersFromArray(e.headers):e.headers;const u=typeof n==="function"?n({...e,headers:c}):n;if(p(u)){u.then((e=>handleReply(s,e)));return}const g=getResponseData(u);const d=generateKeyValues(r);const E=generateKeyValues(a);A.abort=l;A.onHeaders(i,d,resume,getStatusText(i));A.onData(Buffer.from(g));A.onComplete(E);deleteMockDispatch(s,t)}function resume(){}return true}function buildMockDispatch(){const e=this[i];const A=this[r];const t=this[o];return function dispatch(n,i){if(e.isMockActive){try{mockDispatch.call(this,n,i)}catch(o){if(o instanceof s){const r=e[a]();if(r===false){throw new s(`${o.message}: subsequent request to origin ${A} was not allowed (net.connect disabled)`)}if(checkNetConnect(r,A)){t.call(this,n,i)}else{throw new s(`${o.message}: subsequent request to origin ${A} was not allowed (net.connect is not enabled for this origin)`)}}else{throw o}}}else{t.call(this,n,i)}}}function checkNetConnect(e,A){const t=new URL(A);if(e===true){return true}else if(Array.isArray(e)&&e.some((e=>matchValue(e,t.host)))){return true}return false}function buildMockOptions(e){if(e){const{agent:A,...t}=e;return t}}e.exports={getResponseData:getResponseData,getMockDispatch:getMockDispatch,addMockDispatch:addMockDispatch,deleteMockDispatch:deleteMockDispatch,buildKey:buildKey,generateKeyValues:generateKeyValues,matchValue:matchValue,getResponse:getResponse,getStatusText:getStatusText,mockDispatch:mockDispatch,buildMockDispatch:buildMockDispatch,checkNetConnect:checkNetConnect,buildMockOptions:buildMockOptions,getHeaderByName:getHeaderByName}},6823:(e,A,t)=>{"use strict";const{Transform:s}=t(2781);const{Console:n}=t(6206);e.exports=class PendingInterceptorsFormatter{constructor({disableColors:e}={}){this.transform=new s({transform(e,A,t){t(null,e)}});this.logger=new n({stdout:this.transform,inspectOptions:{colors:!e&&!process.env.CI}})}format(e){const A=e.map((({method:e,path:A,data:{statusCode:t},persist:s,times:n,timesInvoked:i,origin:o})=>({Method:e,Origin:o,Path:A,"Status code":t,Persistent:s?"✅":"❌",Invocations:i,Remaining:s?Infinity:n-i})));this.logger.table(A);return this.transform.read().toString()}}},8891:e=>{"use strict";const A={pronoun:"it",is:"is",was:"was",this:"this"};const t={pronoun:"they",is:"are",was:"were",this:"these"};e.exports=class Pluralizer{constructor(e,A){this.singular=e;this.plural=A}pluralize(e){const s=e===1;const n=s?A:t;const i=s?this.singular:this.plural;return{...n,count:e,noun:i}}}},8266:e=>{"use strict";const A=2048;const t=A-1;class FixedCircularBuffer{constructor(){this.bottom=0;this.top=0;this.list=new Array(A);this.next=null}isEmpty(){return this.top===this.bottom}isFull(){return(this.top+1&t)===this.bottom}push(e){this.list[this.top]=e;this.top=this.top+1&t}shift(){const e=this.list[this.bottom];if(e===undefined)return null;this.list[this.bottom]=undefined;this.bottom=this.bottom+1&t;return e}}e.exports=class FixedQueue{constructor(){this.head=this.tail=new FixedCircularBuffer}isEmpty(){return this.head.isEmpty()}push(e){if(this.head.isFull()){this.head=this.head.next=new FixedCircularBuffer}this.head.push(e)}shift(){const e=this.tail;const A=e.shift();if(e.isEmpty()&&e.next!==null){this.tail=e.next}return A}}},3198:(e,A,t)=>{"use strict";const s=t(4839);const n=t(8266);const{kConnected:i,kSize:o,kRunning:r,kPending:a,kQueued:c,kBusy:l,kFree:u,kUrl:p,kClose:g,kDestroy:d,kDispatch:E}=t(2785);const h=t(9689);const Q=Symbol("clients");const C=Symbol("needDrain");const B=Symbol("queue");const f=Symbol("closed resolve");const I=Symbol("onDrain");const m=Symbol("onConnect");const y=Symbol("onDisconnect");const b=Symbol("onConnectionError");const w=Symbol("get dispatcher");const R=Symbol("add client");const x=Symbol("remove client");const D=Symbol("stats");class PoolBase extends s{constructor(){super();this[B]=new n;this[Q]=[];this[c]=0;const e=this;this[I]=function onDrain(A,t){const s=e[B];let n=false;while(!n){const A=s.shift();if(!A){break}e[c]--;n=!this.dispatch(A.opts,A.handler)}this[C]=n;if(!this[C]&&e[C]){e[C]=false;e.emit("drain",A,[e,...t])}if(e[f]&&s.isEmpty()){Promise.all(e[Q].map((e=>e.close()))).then(e[f])}};this[m]=(A,t)=>{e.emit("connect",A,[e,...t])};this[y]=(A,t,s)=>{e.emit("disconnect",A,[e,...t],s)};this[b]=(A,t,s)=>{e.emit("connectionError",A,[e,...t],s)};this[D]=new h(this)}get[l](){return this[C]}get[i](){return this[Q].filter((e=>e[i])).length}get[u](){return this[Q].filter((e=>e[i]&&!e[C])).length}get[a](){let e=this[c];for(const{[a]:A}of this[Q]){e+=A}return e}get[r](){let e=0;for(const{[r]:A}of this[Q]){e+=A}return e}get[o](){let e=this[c];for(const{[o]:A}of this[Q]){e+=A}return e}get stats(){return this[D]}async[g](){if(this[B].isEmpty()){return Promise.all(this[Q].map((e=>e.close())))}else{return new Promise((e=>{this[f]=e}))}}async[d](e){while(true){const A=this[B].shift();if(!A){break}A.handler.onError(e)}return Promise.all(this[Q].map((A=>A.destroy(e))))}[E](e,A){const t=this[w]();if(!t){this[C]=true;this[B].push({opts:e,handler:A});this[c]++}else if(!t.dispatch(e,A)){t[C]=true;this[C]=!this[w]()}return!this[C]}[R](e){e.on("drain",this[I]).on("connect",this[m]).on("disconnect",this[y]).on("connectionError",this[b]);this[Q].push(e);if(this[C]){process.nextTick((()=>{if(this[C]){this[I](e[p],[this,e])}}))}return this}[x](e){e.close((()=>{const A=this[Q].indexOf(e);if(A!==-1){this[Q].splice(A,1)}}));this[C]=this[Q].some((e=>!e[C]&&e.closed!==true&&e.destroyed!==true))}}e.exports={PoolBase:PoolBase,kClients:Q,kNeedDrain:C,kAddClient:R,kRemoveClient:x,kGetDispatcher:w}},9689:(e,A,t)=>{const{kFree:s,kConnected:n,kPending:i,kQueued:o,kRunning:r,kSize:a}=t(2785);const c=Symbol("pool");class PoolStats{constructor(e){this[c]=e}get connected(){return this[c][n]}get free(){return this[c][s]}get pending(){return this[c][i]}get queued(){return this[c][o]}get running(){return this[c][r]}get size(){return this[c][a]}}e.exports=PoolStats},4634:(e,A,t)=>{"use strict";const{PoolBase:s,kClients:n,kNeedDrain:i,kAddClient:o,kGetDispatcher:r}=t(3198);const a=t(3598);const{InvalidArgumentError:c}=t(8045);const l=t(3983);const{kUrl:u,kInterceptors:p}=t(2785);const g=t(2067);const d=Symbol("options");const E=Symbol("connections");const h=Symbol("factory");function defaultFactory(e,A){return new a(e,A)}class Pool extends s{constructor(e,{connections:A,factory:t=defaultFactory,connect:s,connectTimeout:i,tls:o,maxCachedSessions:r,socketPath:a,autoSelectFamily:Q,autoSelectFamilyAttemptTimeout:C,allowH2:B,...f}={}){super();if(A!=null&&(!Number.isFinite(A)||A<0)){throw new c("invalid connections")}if(typeof t!=="function"){throw new c("factory must be a function.")}if(s!=null&&typeof s!=="function"&&typeof s!=="object"){throw new c("connect must be a function or an object")}if(typeof s!=="function"){s=g({...o,maxCachedSessions:r,allowH2:B,socketPath:a,timeout:i,...l.nodeHasAutoSelectFamily&&Q?{autoSelectFamily:Q,autoSelectFamilyAttemptTimeout:C}:undefined,...s})}this[p]=f.interceptors&&f.interceptors.Pool&&Array.isArray(f.interceptors.Pool)?f.interceptors.Pool:[];this[E]=A||null;this[u]=l.parseOrigin(e);this[d]={...l.deepClone(f),connect:s,allowH2:B};this[d].interceptors=f.interceptors?{...f.interceptors}:undefined;this[h]=t;this.on("connectionError",((e,A,t)=>{for(const e of A){const A=this[n].indexOf(e);if(A!==-1){this[n].splice(A,1)}}}))}[r](){let e=this[n].find((e=>!e[i]));if(e){return e}if(!this[E]||this[n].length{"use strict";const{kProxy:s,kClose:n,kDestroy:i,kInterceptors:o}=t(2785);const{URL:r}=t(7310);const a=t(7890);const c=t(4634);const l=t(4839);const{InvalidArgumentError:u,RequestAbortedError:p}=t(8045);const g=t(2067);const d=Symbol("proxy agent");const E=Symbol("proxy client");const h=Symbol("proxy headers");const Q=Symbol("request tls settings");const C=Symbol("proxy tls settings");const B=Symbol("connect endpoint function");function defaultProtocolPort(e){return e==="https:"?443:80}function buildProxyOptions(e){if(typeof e==="string"){e={uri:e}}if(!e||!e.uri){throw new u("Proxy opts.uri is mandatory")}return{uri:e.uri,protocol:e.protocol||"https"}}function defaultFactory(e,A){return new c(e,A)}class ProxyAgent extends l{constructor(e){super(e);this[s]=buildProxyOptions(e);this[d]=new a(e);this[o]=e.interceptors&&e.interceptors.ProxyAgent&&Array.isArray(e.interceptors.ProxyAgent)?e.interceptors.ProxyAgent:[];if(typeof e==="string"){e={uri:e}}if(!e||!e.uri){throw new u("Proxy opts.uri is mandatory")}const{clientFactory:A=defaultFactory}=e;if(typeof A!=="function"){throw new u("Proxy opts.clientFactory must be a function.")}this[Q]=e.requestTls;this[C]=e.proxyTls;this[h]=e.headers||{};const t=new r(e.uri);const{origin:n,port:i,host:c,username:l,password:f}=t;if(e.auth&&e.token){throw new u("opts.auth cannot be used in combination with opts.token")}else if(e.auth){this[h]["proxy-authorization"]=`Basic ${e.auth}`}else if(e.token){this[h]["proxy-authorization"]=e.token}else if(l&&f){this[h]["proxy-authorization"]=`Basic ${Buffer.from(`${decodeURIComponent(l)}:${decodeURIComponent(f)}`).toString("base64")}`}const I=g({...e.proxyTls});this[B]=g({...e.requestTls});this[E]=A(t,{connect:I});this[d]=new a({...e,connect:async(e,A)=>{let t=e.host;if(!e.port){t+=`:${defaultProtocolPort(e.protocol)}`}try{const{socket:s,statusCode:o}=await this[E].connect({origin:n,port:i,path:t,signal:e.signal,headers:{...this[h],host:c}});if(o!==200){s.on("error",(()=>{})).destroy();A(new p(`Proxy response (${o}) !== 200 when HTTP Tunneling`))}if(e.protocol!=="https:"){A(null,s);return}let r;if(this[Q]){r=this[Q].servername}else{r=e.servername}this[B]({...e,servername:r,httpSocket:s},A)}catch(e){A(e)}}})}dispatch(e,A){const{host:t}=new r(e.origin);const s=buildHeaders(e.headers);throwIfProxyAuthIsSent(s);return this[d].dispatch({...e,headers:{...s,host:t}},A)}async[n](){await this[d].close();await this[E].close()}async[i](){await this[d].destroy();await this[E].destroy()}}function buildHeaders(e){if(Array.isArray(e)){const A={};for(let t=0;te.toLowerCase()==="proxy-authorization"));if(A){throw new u("Proxy-Authorization should be sent in ProxyAgent constructor")}}e.exports=ProxyAgent},9459:e=>{"use strict";let A=Date.now();let t;const s=[];function onTimeout(){A=Date.now();let e=s.length;let t=0;while(t0&&A>=n.state){n.state=-1;n.callback(n.opaque)}if(n.state===-1){n.state=-2;if(t!==e-1){s[t]=s.pop()}else{s.pop()}e-=1}else{t+=1}}if(s.length>0){refreshTimeout()}}function refreshTimeout(){if(t&&t.refresh){t.refresh()}else{clearTimeout(t);t=setTimeout(onTimeout,1e3);if(t.unref){t.unref()}}}class Timeout{constructor(e,A,t){this.callback=e;this.delay=A;this.opaque=t;this.state=-2;this.refresh()}refresh(){if(this.state===-2){s.push(this);if(!t||s.length===1){refreshTimeout()}}this.state=0}clear(){this.state=-1}}e.exports={setTimeout(e,A,t){return A<1e3?setTimeout(e,A,t):new Timeout(e,A,t)},clearTimeout(e){if(e instanceof Timeout){e.clear()}else{clearTimeout(e)}}}},5354:(e,A,t)=>{"use strict";const s=t(7643);const{uid:n,states:i}=t(9188);const{kReadyState:o,kSentClose:r,kByteParser:a,kReceivedClose:c}=t(7578);const{fireEvent:l,failWebsocketConnection:u}=t(5515);const{CloseEvent:p}=t(2611);const{makeRequest:g}=t(8359);const{fetching:d}=t(4881);const{Headers:E}=t(554);const{getGlobalDispatcher:h}=t(1892);const{kHeadersList:Q}=t(2785);const C={};C.open=s.channel("undici:websocket:open");C.close=s.channel("undici:websocket:close");C.socketError=s.channel("undici:websocket:socket_error");let B;try{B=t(6113)}catch{}function establishWebSocketConnection(e,A,t,s,i){const o=e;o.protocol=e.protocol==="ws:"?"http:":"https:";const r=g({urlList:[o],serviceWorkers:"none",referrer:"no-referrer",mode:"websocket",credentials:"include",cache:"no-store",redirect:"error"});if(i.headers){const e=new E(i.headers)[Q];r.headersList=e}const a=B.randomBytes(16).toString("base64");r.headersList.append("sec-websocket-key",a);r.headersList.append("sec-websocket-version","13");for(const e of A){r.headersList.append("sec-websocket-protocol",e)}const c="";const l=d({request:r,useParallelQueue:true,dispatcher:i.dispatcher??h(),processResponse(e){if(e.type==="error"||e.status!==101){u(t,"Received network error or non-101 status code.");return}if(A.length!==0&&!e.headersList.get("Sec-WebSocket-Protocol")){u(t,"Server did not respond with sent protocols.");return}if(e.headersList.get("Upgrade")?.toLowerCase()!=="websocket"){u(t,'Server did not set Upgrade header to "websocket".');return}if(e.headersList.get("Connection")?.toLowerCase()!=="upgrade"){u(t,'Server did not set Connection header to "upgrade".');return}const i=e.headersList.get("Sec-WebSocket-Accept");const o=B.createHash("sha1").update(a+n).digest("base64");if(i!==o){u(t,"Incorrect hash received in Sec-WebSocket-Accept header.");return}const l=e.headersList.get("Sec-WebSocket-Extensions");if(l!==null&&l!==c){u(t,"Received different permessage-deflate than the one set.");return}const p=e.headersList.get("Sec-WebSocket-Protocol");if(p!==null&&p!==r.headersList.get("Sec-WebSocket-Protocol")){u(t,"Protocol was not set in the opening handshake.");return}e.socket.on("data",onSocketData);e.socket.on("close",onSocketClose);e.socket.on("error",onSocketError);if(C.open.hasSubscribers){C.open.publish({address:e.socket.address(),protocol:p,extensions:l})}s(e)}});return l}function onSocketData(e){if(!this.ws[a].write(e)){this.pause()}}function onSocketClose(){const{ws:e}=this;const A=e[r]&&e[c];let t=1005;let s="";const n=e[a].closingInfo;if(n){t=n.code??1005;s=n.reason}else if(!e[r]){t=1006}e[o]=i.CLOSED;l("close",e,p,{wasClean:A,code:t,reason:s});if(C.close.hasSubscribers){C.close.publish({websocket:e,code:t,reason:s})}}function onSocketError(e){const{ws:A}=this;A[o]=i.CLOSING;if(C.socketError.hasSubscribers){C.socketError.publish(e)}this.destroy()}e.exports={establishWebSocketConnection:establishWebSocketConnection}},9188:e=>{"use strict";const A="258EAFA5-E914-47DA-95CA-C5AB0DC85B11";const t={enumerable:true,writable:false,configurable:false};const s={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3};const n={CONTINUATION:0,TEXT:1,BINARY:2,CLOSE:8,PING:9,PONG:10};const i=2**16-1;const o={INFO:0,PAYLOADLENGTH_16:2,PAYLOADLENGTH_64:3,READ_DATA:4};const r=Buffer.allocUnsafe(0);e.exports={uid:A,staticPropertyDescriptors:t,states:s,opcodes:n,maxUnsigned16Bit:i,parserStates:o,emptyBuffer:r}},2611:(e,A,t)=>{"use strict";const{webidl:s}=t(1744);const{kEnumerableProperty:n}=t(3983);const{MessagePort:i}=t(1267);class MessageEvent extends Event{#i;constructor(e,A={}){s.argumentLengthCheck(arguments,1,{header:"MessageEvent constructor"});e=s.converters.DOMString(e);A=s.converters.MessageEventInit(A);super(e,A);this.#i=A}get data(){s.brandCheck(this,MessageEvent);return this.#i.data}get origin(){s.brandCheck(this,MessageEvent);return this.#i.origin}get lastEventId(){s.brandCheck(this,MessageEvent);return this.#i.lastEventId}get source(){s.brandCheck(this,MessageEvent);return this.#i.source}get ports(){s.brandCheck(this,MessageEvent);if(!Object.isFrozen(this.#i.ports)){Object.freeze(this.#i.ports)}return this.#i.ports}initMessageEvent(e,A=false,t=false,n=null,i="",o="",r=null,a=[]){s.brandCheck(this,MessageEvent);s.argumentLengthCheck(arguments,1,{header:"MessageEvent.initMessageEvent"});return new MessageEvent(e,{bubbles:A,cancelable:t,data:n,origin:i,lastEventId:o,source:r,ports:a})}}class CloseEvent extends Event{#i;constructor(e,A={}){s.argumentLengthCheck(arguments,1,{header:"CloseEvent constructor"});e=s.converters.DOMString(e);A=s.converters.CloseEventInit(A);super(e,A);this.#i=A}get wasClean(){s.brandCheck(this,CloseEvent);return this.#i.wasClean}get code(){s.brandCheck(this,CloseEvent);return this.#i.code}get reason(){s.brandCheck(this,CloseEvent);return this.#i.reason}}class ErrorEvent extends Event{#i;constructor(e,A){s.argumentLengthCheck(arguments,1,{header:"ErrorEvent constructor"});super(e,A);e=s.converters.DOMString(e);A=s.converters.ErrorEventInit(A??{});this.#i=A}get message(){s.brandCheck(this,ErrorEvent);return this.#i.message}get filename(){s.brandCheck(this,ErrorEvent);return this.#i.filename}get lineno(){s.brandCheck(this,ErrorEvent);return this.#i.lineno}get colno(){s.brandCheck(this,ErrorEvent);return this.#i.colno}get error(){s.brandCheck(this,ErrorEvent);return this.#i.error}}Object.defineProperties(MessageEvent.prototype,{[Symbol.toStringTag]:{value:"MessageEvent",configurable:true},data:n,origin:n,lastEventId:n,source:n,ports:n,initMessageEvent:n});Object.defineProperties(CloseEvent.prototype,{[Symbol.toStringTag]:{value:"CloseEvent",configurable:true},reason:n,code:n,wasClean:n});Object.defineProperties(ErrorEvent.prototype,{[Symbol.toStringTag]:{value:"ErrorEvent",configurable:true},message:n,filename:n,lineno:n,colno:n,error:n});s.converters.MessagePort=s.interfaceConverter(i);s.converters["sequence"]=s.sequenceConverter(s.converters.MessagePort);const o=[{key:"bubbles",converter:s.converters.boolean,defaultValue:false},{key:"cancelable",converter:s.converters.boolean,defaultValue:false},{key:"composed",converter:s.converters.boolean,defaultValue:false}];s.converters.MessageEventInit=s.dictionaryConverter([...o,{key:"data",converter:s.converters.any,defaultValue:null},{key:"origin",converter:s.converters.USVString,defaultValue:""},{key:"lastEventId",converter:s.converters.DOMString,defaultValue:""},{key:"source",converter:s.nullableConverter(s.converters.MessagePort),defaultValue:null},{key:"ports",converter:s.converters["sequence"],get defaultValue(){return[]}}]);s.converters.CloseEventInit=s.dictionaryConverter([...o,{key:"wasClean",converter:s.converters.boolean,defaultValue:false},{key:"code",converter:s.converters["unsigned short"],defaultValue:0},{key:"reason",converter:s.converters.USVString,defaultValue:""}]);s.converters.ErrorEventInit=s.dictionaryConverter([...o,{key:"message",converter:s.converters.DOMString,defaultValue:""},{key:"filename",converter:s.converters.USVString,defaultValue:""},{key:"lineno",converter:s.converters["unsigned long"],defaultValue:0},{key:"colno",converter:s.converters["unsigned long"],defaultValue:0},{key:"error",converter:s.converters.any}]);e.exports={MessageEvent:MessageEvent,CloseEvent:CloseEvent,ErrorEvent:ErrorEvent}},5444:(e,A,t)=>{"use strict";const{maxUnsigned16Bit:s}=t(9188);let n;try{n=t(6113)}catch{}class WebsocketFrameSend{constructor(e){this.frameData=e;this.maskKey=n.randomBytes(4)}createFrame(e){const A=this.frameData?.byteLength??0;let t=A;let n=6;if(A>s){n+=8;t=127}else if(A>125){n+=2;t=126}const i=Buffer.allocUnsafe(A+n);i[0]=i[1]=0;i[0]|=128;i[0]=(i[0]&240)+e; +/*! ws. MIT License. Einar Otto Stangvik */i[n-4]=this.maskKey[0];i[n-3]=this.maskKey[1];i[n-2]=this.maskKey[2];i[n-1]=this.maskKey[3];i[1]=t;if(t===126){i.writeUInt16BE(A,2)}else if(t===127){i[2]=i[3]=0;i.writeUIntBE(A,4,6)}i[1]|=128;for(let e=0;e{"use strict";const{Writable:s}=t(2781);const n=t(7643);const{parserStates:i,opcodes:o,states:r,emptyBuffer:a}=t(9188);const{kReadyState:c,kSentClose:l,kResponse:u,kReceivedClose:p}=t(7578);const{isValidStatusCode:g,failWebsocketConnection:d,websocketMessageReceived:E}=t(5515);const{WebsocketFrameSend:h}=t(5444);const Q={};Q.ping=n.channel("undici:websocket:ping");Q.pong=n.channel("undici:websocket:pong");class ByteParser extends s{#o=[];#r=0;#a=i.INFO;#c={};#l=[];constructor(e){super();this.ws=e}_write(e,A,t){this.#o.push(e);this.#r+=e.length;this.run(t)}run(e){while(true){if(this.#a===i.INFO){if(this.#r<2){return e()}const A=this.consume(2);this.#c.fin=(A[0]&128)!==0;this.#c.opcode=A[0]&15;this.#c.originalOpcode??=this.#c.opcode;this.#c.fragmented=!this.#c.fin&&this.#c.opcode!==o.CONTINUATION;if(this.#c.fragmented&&this.#c.opcode!==o.BINARY&&this.#c.opcode!==o.TEXT){d(this.ws,"Invalid frame type was fragmented.");return}const t=A[1]&127;if(t<=125){this.#c.payloadLength=t;this.#a=i.READ_DATA}else if(t===126){this.#a=i.PAYLOADLENGTH_16}else if(t===127){this.#a=i.PAYLOADLENGTH_64}if(this.#c.fragmented&&t>125){d(this.ws,"Fragmented frame exceeded 125 bytes.");return}else if((this.#c.opcode===o.PING||this.#c.opcode===o.PONG||this.#c.opcode===o.CLOSE)&&t>125){d(this.ws,"Payload length for control frame exceeded 125 bytes.");return}else if(this.#c.opcode===o.CLOSE){if(t===1){d(this.ws,"Received close frame with a 1-byte body.");return}const e=this.consume(t);this.#c.closeInfo=this.parseCloseBody(false,e);if(!this.ws[l]){const e=Buffer.allocUnsafe(2);e.writeUInt16BE(this.#c.closeInfo.code,0);const A=new h(e);this.ws[u].socket.write(A.createFrame(o.CLOSE),(e=>{if(!e){this.ws[l]=true}}))}this.ws[c]=r.CLOSING;this.ws[p]=true;this.end();return}else if(this.#c.opcode===o.PING){const A=this.consume(t);if(!this.ws[p]){const e=new h(A);this.ws[u].socket.write(e.createFrame(o.PONG));if(Q.ping.hasSubscribers){Q.ping.publish({payload:A})}}this.#a=i.INFO;if(this.#r>0){continue}else{e();return}}else if(this.#c.opcode===o.PONG){const A=this.consume(t);if(Q.pong.hasSubscribers){Q.pong.publish({payload:A})}if(this.#r>0){continue}else{e();return}}}else if(this.#a===i.PAYLOADLENGTH_16){if(this.#r<2){return e()}const A=this.consume(2);this.#c.payloadLength=A.readUInt16BE(0);this.#a=i.READ_DATA}else if(this.#a===i.PAYLOADLENGTH_64){if(this.#r<8){return e()}const A=this.consume(8);const t=A.readUInt32BE(0);if(t>2**31-1){d(this.ws,"Received payload length > 2^31 bytes.");return}const s=A.readUInt32BE(4);this.#c.payloadLength=(t<<8)+s;this.#a=i.READ_DATA}else if(this.#a===i.READ_DATA){if(this.#r=this.#c.payloadLength){const e=this.consume(this.#c.payloadLength);this.#l.push(e);if(!this.#c.fragmented||this.#c.fin&&this.#c.opcode===o.CONTINUATION){const e=Buffer.concat(this.#l);E(this.ws,this.#c.originalOpcode,e);this.#c={};this.#l.length=0}this.#a=i.INFO}}if(this.#r>0){continue}else{e();break}}}consume(e){if(e>this.#r){return null}else if(e===0){return a}if(this.#o[0].length===e){this.#r-=this.#o[0].length;return this.#o.shift()}const A=Buffer.allocUnsafe(e);let t=0;while(t!==e){const s=this.#o[0];const{length:n}=s;if(n+t===e){A.set(this.#o.shift(),t);break}else if(n+t>e){A.set(s.subarray(0,e-t),t);this.#o[0]=s.subarray(e-t);break}else{A.set(this.#o.shift(),t);t+=s.length}}this.#r-=e;return A}parseCloseBody(e,A){let t;if(A.length>=2){t=A.readUInt16BE(0)}if(e){if(!g(t)){return null}return{code:t}}let s=A.subarray(2);if(s[0]===239&&s[1]===187&&s[2]===191){s=s.subarray(3)}if(t!==undefined&&!g(t)){return null}try{s=new TextDecoder("utf-8",{fatal:true}).decode(s)}catch{return null}return{code:t,reason:s}}get closingInfo(){return this.#c.closeInfo}}e.exports={ByteParser:ByteParser}},7578:e=>{"use strict";e.exports={kWebSocketURL:Symbol("url"),kReadyState:Symbol("ready state"),kController:Symbol("controller"),kResponse:Symbol("response"),kBinaryType:Symbol("binary type"),kSentClose:Symbol("sent close"),kReceivedClose:Symbol("received close"),kByteParser:Symbol("byte parser")}},5515:(e,A,t)=>{"use strict";const{kReadyState:s,kController:n,kResponse:i,kBinaryType:o,kWebSocketURL:r}=t(7578);const{states:a,opcodes:c}=t(9188);const{MessageEvent:l,ErrorEvent:u}=t(2611);function isEstablished(e){return e[s]===a.OPEN}function isClosing(e){return e[s]===a.CLOSING}function isClosed(e){return e[s]===a.CLOSED}function fireEvent(e,A,t=Event,s){const n=new t(e,s);A.dispatchEvent(n)}function websocketMessageReceived(e,A,t){if(e[s]!==a.OPEN){return}let n;if(A===c.TEXT){try{n=new TextDecoder("utf-8",{fatal:true}).decode(t)}catch{failWebsocketConnection(e,"Received invalid UTF-8 in text frame.");return}}else if(A===c.BINARY){if(e[o]==="blob"){n=new Blob([t])}else{n=new Uint8Array(t).buffer}}fireEvent("message",e,l,{origin:e[r].origin,data:n})}function isValidSubprotocol(e){if(e.length===0){return false}for(const A of e){const e=A.charCodeAt(0);if(e<33||e>126||A==="("||A===")"||A==="<"||A===">"||A==="@"||A===","||A===";"||A===":"||A==="\\"||A==='"'||A==="/"||A==="["||A==="]"||A==="?"||A==="="||A==="{"||A==="}"||e===32||e===9){return false}}return true}function isValidStatusCode(e){if(e>=1e3&&e<1015){return e!==1004&&e!==1005&&e!==1006}return e>=3e3&&e<=4999}function failWebsocketConnection(e,A){const{[n]:t,[i]:s}=e;t.abort();if(s?.socket&&!s.socket.destroyed){s.socket.destroy()}if(A){fireEvent("error",e,u,{error:new Error(A)})}}e.exports={isEstablished:isEstablished,isClosing:isClosing,isClosed:isClosed,fireEvent:fireEvent,isValidSubprotocol:isValidSubprotocol,isValidStatusCode:isValidStatusCode,failWebsocketConnection:failWebsocketConnection,websocketMessageReceived:websocketMessageReceived}},4284:(e,A,t)=>{"use strict";const{webidl:s}=t(1744);const{DOMException:n}=t(1037);const{URLSerializer:i}=t(685);const{getGlobalOrigin:o}=t(1246);const{staticPropertyDescriptors:r,states:a,opcodes:c,emptyBuffer:l}=t(9188);const{kWebSocketURL:u,kReadyState:p,kController:g,kBinaryType:d,kResponse:E,kSentClose:h,kByteParser:Q}=t(7578);const{isEstablished:C,isClosing:B,isValidSubprotocol:f,failWebsocketConnection:I,fireEvent:m}=t(5515);const{establishWebSocketConnection:y}=t(5354);const{WebsocketFrameSend:b}=t(5444);const{ByteParser:w}=t(1688);const{kEnumerableProperty:R,isBlobLike:x}=t(3983);const{getGlobalDispatcher:D}=t(1892);const{types:v}=t(3837);let k=false;class WebSocket extends EventTarget{#u={open:null,error:null,close:null,message:null};#p=0;#g="";#d="";constructor(e,A=[]){super();s.argumentLengthCheck(arguments,1,{header:"WebSocket constructor"});if(!k){k=true;process.emitWarning("WebSockets are experimental, expect them to change at any time.",{code:"UNDICI-WS"})}const t=s.converters["DOMString or sequence or WebSocketInit"](A);e=s.converters.USVString(e);A=t.protocols;const i=o();let r;try{r=new URL(e,i)}catch(e){throw new n(e,"SyntaxError")}if(r.protocol==="http:"){r.protocol="ws:"}else if(r.protocol==="https:"){r.protocol="wss:"}if(r.protocol!=="ws:"&&r.protocol!=="wss:"){throw new n(`Expected a ws: or wss: protocol, got ${r.protocol}`,"SyntaxError")}if(r.hash||r.href.endsWith("#")){throw new n("Got fragment","SyntaxError")}if(typeof A==="string"){A=[A]}if(A.length!==new Set(A.map((e=>e.toLowerCase()))).size){throw new n("Invalid Sec-WebSocket-Protocol value","SyntaxError")}if(A.length>0&&!A.every((e=>f(e)))){throw new n("Invalid Sec-WebSocket-Protocol value","SyntaxError")}this[u]=new URL(r.href);this[g]=y(r,A,this,(e=>this.#E(e)),t);this[p]=WebSocket.CONNECTING;this[d]="blob"}close(e=undefined,A=undefined){s.brandCheck(this,WebSocket);if(e!==undefined){e=s.converters["unsigned short"](e,{clamp:true})}if(A!==undefined){A=s.converters.USVString(A)}if(e!==undefined){if(e!==1e3&&(e<3e3||e>4999)){throw new n("invalid code","InvalidAccessError")}}let t=0;if(A!==undefined){t=Buffer.byteLength(A);if(t>123){throw new n(`Reason must be less than 123 bytes; received ${t}`,"SyntaxError")}}if(this[p]===WebSocket.CLOSING||this[p]===WebSocket.CLOSED){}else if(!C(this)){I(this,"Connection was closed before it was established.");this[p]=WebSocket.CLOSING}else if(!B(this)){const s=new b;if(e!==undefined&&A===undefined){s.frameData=Buffer.allocUnsafe(2);s.frameData.writeUInt16BE(e,0)}else if(e!==undefined&&A!==undefined){s.frameData=Buffer.allocUnsafe(2+t);s.frameData.writeUInt16BE(e,0);s.frameData.write(A,2,"utf-8")}else{s.frameData=l}const n=this[E].socket;n.write(s.createFrame(c.CLOSE),(e=>{if(!e){this[h]=true}}));this[p]=a.CLOSING}else{this[p]=WebSocket.CLOSING}}send(e){s.brandCheck(this,WebSocket);s.argumentLengthCheck(arguments,1,{header:"WebSocket.send"});e=s.converters.WebSocketSendData(e);if(this[p]===WebSocket.CONNECTING){throw new n("Sent before connected.","InvalidStateError")}if(!C(this)||B(this)){return}const A=this[E].socket;if(typeof e==="string"){const t=Buffer.from(e);const s=new b(t);const n=s.createFrame(c.TEXT);this.#p+=t.byteLength;A.write(n,(()=>{this.#p-=t.byteLength}))}else if(v.isArrayBuffer(e)){const t=Buffer.from(e);const s=new b(t);const n=s.createFrame(c.BINARY);this.#p+=t.byteLength;A.write(n,(()=>{this.#p-=t.byteLength}))}else if(ArrayBuffer.isView(e)){const t=Buffer.from(e,e.byteOffset,e.byteLength);const s=new b(t);const n=s.createFrame(c.BINARY);this.#p+=t.byteLength;A.write(n,(()=>{this.#p-=t.byteLength}))}else if(x(e)){const t=new b;e.arrayBuffer().then((e=>{const s=Buffer.from(e);t.frameData=s;const n=t.createFrame(c.BINARY);this.#p+=s.byteLength;A.write(n,(()=>{this.#p-=s.byteLength}))}))}}get readyState(){s.brandCheck(this,WebSocket);return this[p]}get bufferedAmount(){s.brandCheck(this,WebSocket);return this.#p}get url(){s.brandCheck(this,WebSocket);return i(this[u])}get extensions(){s.brandCheck(this,WebSocket);return this.#d}get protocol(){s.brandCheck(this,WebSocket);return this.#g}get onopen(){s.brandCheck(this,WebSocket);return this.#u.open}set onopen(e){s.brandCheck(this,WebSocket);if(this.#u.open){this.removeEventListener("open",this.#u.open)}if(typeof e==="function"){this.#u.open=e;this.addEventListener("open",e)}else{this.#u.open=null}}get onerror(){s.brandCheck(this,WebSocket);return this.#u.error}set onerror(e){s.brandCheck(this,WebSocket);if(this.#u.error){this.removeEventListener("error",this.#u.error)}if(typeof e==="function"){this.#u.error=e;this.addEventListener("error",e)}else{this.#u.error=null}}get onclose(){s.brandCheck(this,WebSocket);return this.#u.close}set onclose(e){s.brandCheck(this,WebSocket);if(this.#u.close){this.removeEventListener("close",this.#u.close)}if(typeof e==="function"){this.#u.close=e;this.addEventListener("close",e)}else{this.#u.close=null}}get onmessage(){s.brandCheck(this,WebSocket);return this.#u.message}set onmessage(e){s.brandCheck(this,WebSocket);if(this.#u.message){this.removeEventListener("message",this.#u.message)}if(typeof e==="function"){this.#u.message=e;this.addEventListener("message",e)}else{this.#u.message=null}}get binaryType(){s.brandCheck(this,WebSocket);return this[d]}set binaryType(e){s.brandCheck(this,WebSocket);if(e!=="blob"&&e!=="arraybuffer"){this[d]="blob"}else{this[d]=e}}#E(e){this[E]=e;const A=new w(this);A.on("drain",(function onParserDrain(){this.ws[E].socket.resume()}));e.socket.ws=this;this[Q]=A;this[p]=a.OPEN;const t=e.headersList.get("sec-websocket-extensions");if(t!==null){this.#d=t}const s=e.headersList.get("sec-websocket-protocol");if(s!==null){this.#g=s}m("open",this)}}WebSocket.CONNECTING=WebSocket.prototype.CONNECTING=a.CONNECTING;WebSocket.OPEN=WebSocket.prototype.OPEN=a.OPEN;WebSocket.CLOSING=WebSocket.prototype.CLOSING=a.CLOSING;WebSocket.CLOSED=WebSocket.prototype.CLOSED=a.CLOSED;Object.defineProperties(WebSocket.prototype,{CONNECTING:r,OPEN:r,CLOSING:r,CLOSED:r,url:R,readyState:R,bufferedAmount:R,onopen:R,onerror:R,onclose:R,close:R,onmessage:R,binaryType:R,send:R,extensions:R,protocol:R,[Symbol.toStringTag]:{value:"WebSocket",writable:false,enumerable:false,configurable:true}});Object.defineProperties(WebSocket,{CONNECTING:r,OPEN:r,CLOSING:r,CLOSED:r});s.converters["sequence"]=s.sequenceConverter(s.converters.DOMString);s.converters["DOMString or sequence"]=function(e){if(s.util.Type(e)==="Object"&&Symbol.iterator in e){return s.converters["sequence"](e)}return s.converters.DOMString(e)};s.converters.WebSocketInit=s.dictionaryConverter([{key:"protocols",converter:s.converters["DOMString or sequence"],get defaultValue(){return[]}},{key:"dispatcher",converter:e=>e,get defaultValue(){return D()}},{key:"headers",converter:s.nullableConverter(s.converters.HeadersInit)}]);s.converters["DOMString or sequence or WebSocketInit"]=function(e){if(s.util.Type(e)==="Object"&&!(Symbol.iterator in e)){return s.converters.WebSocketInit(e)}return{protocols:s.converters["DOMString or sequence"](e)}};s.converters.WebSocketSendData=function(e){if(s.util.Type(e)==="Object"){if(x(e)){return s.converters.Blob(e,{strict:false})}if(ArrayBuffer.isView(e)||v.isAnyArrayBuffer(e)){return s.converters.BufferSource(e)}}return s.converters.USVString(e)};e.exports={WebSocket:WebSocket}},4351:(module,__unused_webpack_exports,__nccwpck_require__)=>{const fs=__nccwpck_require__(7147);const path=__nccwpck_require__(1017);const crypto=__nccwpck_require__(6113);const core=__nccwpck_require__(2186);const axios=__nccwpck_require__(8757);const FormData=__nccwpck_require__(4334);const UPLOAD_PATH="/utility/v1/app-update/bundles/upload";const REQUEST_TIMEOUT_MS=5*60*1e3;const VALID_PLATFORMS=["android","ios","electron"];const ZIP_MAGIC=[80,75,3,4];const INFO_REQUIRED_FIELDS=["appVersion","appType","sha256"];function scanBundleDir(e){if(!fs.existsSync(e)||!fs.statSync(e).isDirectory()){throw new Error(`bundle-dir not found or not a directory: ${e}`)}const A=fs.readdirSync(e);const t=A.filter((e=>e.endsWith("-bundle.zip")));if(t.length===0){throw new Error(`No bundle ZIP files found in ${e}`)}return t.map((t=>{const s=t.replace(/-bundle\.zip$/,"");const n=[`${s}-bundle.zip.info`,`${s}-bundle.json.info`];const i=n.find((e=>A.includes(e)));if(!i){throw new Error(`${t}: no matching .info file (tried ${n.join(", ")})`)}return{zipPath:path.join(e,t),infoPath:path.join(e,i)}}))}function parseInfoFile(e){let A;let t;try{t=fs.readFileSync(e,"utf8")}catch(A){throw new Error(`${path.basename(e)}: cannot read file — ${A.message}`)}try{A=JSON.parse(t)}catch(A){throw new Error(`${path.basename(e)}: invalid JSON — ${A.message}`)}for(const t of INFO_REQUIRED_FIELDS){if(!A[t]){throw new Error(`${path.basename(e)}: missing required field "${t}"`)}}if(!/^[0-9a-f]{64}$/i.test(A.sha256)){throw new Error(`${path.basename(e)}: invalid sha256 format`)}if(!/^\d+\.\d+\.\d+$/.test(A.appVersion)){throw new Error(`${path.basename(e)}: invalid appVersion format "${A.appVersion}" (expected x.y.z)`)}if(!VALID_PLATFORMS.includes(A.appType)){throw new Error(`${path.basename(e)}: invalid appType "${A.appType}" (expected: ${VALID_PLATFORMS.join(", ")})`)}return{appVersion:A.appVersion,platform:A.appType,sha256:A.sha256,fileName:A.fileName,size:A.size,buildNumber:A.buildNumber||"",bundleVersion:A.bundleVersion||""}}function validateZipMagic(e,A){if(!ZIP_MAGIC.every(((A,t)=>e[t]===A))){throw new Error(`${A}: not a valid ZIP archive`)}}function computeSignature(e,A){const t=Math.floor(Date.now()/1e3).toString();const s=crypto.createHmac("sha256",A).update(`${t}:${e}`).digest("hex");return{timestamp:t,signature:s}}function buildFormData(e,A,t){const s=new FormData;s.append("file",e,{filename:A,contentType:"application/zip"});s.append("appVersion",t.appVersion);s.append("platform",t.platform);if(t.commitHash){s.append("commitHash",t.commitHash)}if(t.branch){s.append("branch",t.branch)}if(t.prTitle){s.append("prTitle",t.prTitle)}if(t.buildNumber){s.append("buildNumber",t.buildNumber)}if(t.bundleVersion){s.append("bundleVersion",t.bundleVersion)}return s}async function uploadWithRetry({url:e,fileBuffer:A,fileName:t,fields:s,fileHash:n,secret:i,maxRetries:o,label:r}){let a;for(let c=1;c<=o;c++){try{core.info(`[${r}] Upload attempt ${c}/${o}...`);const{timestamp:a,signature:l}=computeSignature(n,i);const u=buildFormData(A,t,s);const p={...u.getHeaders(),"X-Bundle-Timestamp":a,"X-Bundle-Signature":l};core.info(`[${r}] Request URL: ${e}`);const g={...p,"X-Bundle-Signature":p["X-Bundle-Signature"].slice(0,8)+"..."};core.info(`[${r}] Request headers: ${JSON.stringify(g,null,2)}`);const d=await axios.post(e,u,{headers:p,timeout:REQUEST_TIMEOUT_MS,maxContentLength:Infinity,maxBodyLength:Infinity});return{data:d.data}}catch(e){a=e;const A=e.response?.status;const t=!A||A>=500;if(!t||c===o){throw e}const s=Math.pow(2,c)*1e3;core.warning(`[${r}] Attempt ${c} failed (${A||e.code||e.message}), retrying in ${s/1e3}s...`);await new Promise((e=>setTimeout(e,s)))}}throw a}async function run(){try{const e=core.getInput("server-url",{required:true}).replace(/\/$/,"");const A=core.getInput("upload-secret",{required:true});core.setSecret(A);const t=core.getInput("bundle-dir",{required:true});const s=core.getInput("commit-hash")||process.env.GITHUB_SHA;const n=core.getInput("branch")||"";const i=core.getInput("pr-title")||"";const o=parseInt(core.getInput("max-retries")||"3",10);if(Number.isNaN(o)||o<1){throw new Error(`Invalid max-retries: "${core.getInput("max-retries")}" (expected positive integer)`)}core.info(`Scanning ${t} for bundles...`);const r=scanBundleDir(t);core.info(`Found ${r.length} bundle(s): ${r.map((e=>path.basename(e.zipPath))).join(", ")}`);const a=`${e}${UPLOAD_PATH}`;const c=[];let l=false;for(const e of r){let t;try{t=parseInfoFile(e.infoPath)}catch(A){l=true;core.error(`[${path.basename(e.infoPath)}] ${A.message}`);continue}const r=t.platform;try{const l=fs.readFileSync(e.zipPath);validateZipMagic(l,r);const u=(l.length/(1024*1024)).toFixed(2);core.info(`[${r}] Uploading ${path.basename(e.zipPath)} (${u} MB, v${t.appVersion})...`);const p=crypto.createHash("sha256").update(l).digest("hex");if(p!==t.sha256.toLowerCase()){throw new Error(`SHA256 mismatch: computed ${p}, .info says ${t.sha256}`)}core.info(`[${r}] SHA256: ${p}`);const{data:g}=await uploadWithRetry({url:a,fileBuffer:l,fileName:path.basename(e.zipPath),fields:{appVersion:t.appVersion,platform:t.platform,commitHash:s,branch:n,prTitle:i,buildNumber:t.buildNumber,bundleVersion:t.bundleVersion},fileHash:p,secret:A,maxRetries:o,label:r});if(g.code!==0){throw new Error(`Server returned error: ${JSON.stringify(g)}`)}const d=g.data;if(!d||!d.bundleVersion||!d.downloadUrl){throw new Error(`Server response missing required fields: ${JSON.stringify(g)}`)}const E={platform:t.platform,bundleVersion:String(d.bundleVersion),downloadUrl:d.downloadUrl,sha256:d.sha256||p,fileSize:String(d.fileSize||l.length)};c.push(E);core.info(`[${r}] Upload successful! Bundle version: ${E.bundleVersion}`);core.info(`[${r}] Download URL: ${E.downloadUrl}`)}catch(e){l=true;const A=e.response?.status;const t=e.response?.data;if(A){core.error(`[${r}] Server responded with ${A}: ${JSON.stringify(t)}`)}core.error(`[${r}] Upload failed: ${e.message}`)}}core.setOutput("results",JSON.stringify(c));if(l){core.setFailed(`One or more bundles failed to upload. ${c.length}/${r.length} succeeded.`)}else{core.info(`All ${c.length} bundle(s) uploaded successfully.`)}}catch(e){core.setFailed(`Upload failed: ${e.message}`)}}module.exports={scanBundleDir:scanBundleDir,parseInfoFile:parseInfoFile,validateZipMagic:validateZipMagic};if(require.main===require.cache[eval("__filename")]){run()}},9975:module=>{module.exports=eval("require")("debug")},4978:module=>{module.exports=eval("require")("util/types")},9491:e=>{"use strict";e.exports=require("assert")},852:e=>{"use strict";e.exports=require("async_hooks")},4300:e=>{"use strict";e.exports=require("buffer")},2081:e=>{"use strict";e.exports=require("child_process")},6206:e=>{"use strict";e.exports=require("console")},6113:e=>{"use strict";e.exports=require("crypto")},7643:e=>{"use strict";e.exports=require("diagnostics_channel")},2361:e=>{"use strict";e.exports=require("events")},7147:e=>{"use strict";e.exports=require("fs")},3685:e=>{"use strict";e.exports=require("http")},5158:e=>{"use strict";e.exports=require("http2")},5687:e=>{"use strict";e.exports=require("https")},1808:e=>{"use strict";e.exports=require("net")},6005:e=>{"use strict";e.exports=require("node:crypto")},5673:e=>{"use strict";e.exports=require("node:events")},4492:e=>{"use strict";e.exports=require("node:stream")},7261:e=>{"use strict";e.exports=require("node:util")},2037:e=>{"use strict";e.exports=require("os")},1017:e=>{"use strict";e.exports=require("path")},4074:e=>{"use strict";e.exports=require("perf_hooks")},3477:e=>{"use strict";e.exports=require("querystring")},2781:e=>{"use strict";e.exports=require("stream")},5356:e=>{"use strict";e.exports=require("stream/web")},1576:e=>{"use strict";e.exports=require("string_decoder")},9512:e=>{"use strict";e.exports=require("timers")},4404:e=>{"use strict";e.exports=require("tls")},7310:e=>{"use strict";e.exports=require("url")},3837:e=>{"use strict";e.exports=require("util")},1267:e=>{"use strict";e.exports=require("worker_threads")},9796:e=>{"use strict";e.exports=require("zlib")},2960:(e,A,t)=>{"use strict";const s=t(4492).Writable;const n=t(7261).inherits;const i=t(1142);const o=t(1620);const r=t(2032);const a=45;const c=Buffer.from("-");const l=Buffer.from("\r\n");const EMPTY_FN=function(){};function Dicer(e){if(!(this instanceof Dicer)){return new Dicer(e)}s.call(this,e);if(!e||!e.headerFirst&&typeof e.boundary!=="string"){throw new TypeError("Boundary required")}if(typeof e.boundary==="string"){this.setBoundary(e.boundary)}else{this._bparser=undefined}this._headerFirst=e.headerFirst;this._dashes=0;this._parts=0;this._finished=false;this._realFinish=false;this._isPreamble=true;this._justMatched=false;this._firstWrite=true;this._inHeader=true;this._part=undefined;this._cb=undefined;this._ignoreData=false;this._partOpts={highWaterMark:e.partHwm};this._pause=false;const A=this;this._hparser=new r(e);this._hparser.on("header",(function(e){A._inHeader=false;A._part.emit("header",e)}))}n(Dicer,s);Dicer.prototype.emit=function(e){if(e==="finish"&&!this._realFinish){if(!this._finished){const e=this;process.nextTick((function(){e.emit("error",new Error("Unexpected end of multipart data"));if(e._part&&!e._ignoreData){const A=e._isPreamble?"Preamble":"Part";e._part.emit("error",new Error(A+" terminated early due to unexpected end of multipart data"));e._part.push(null);process.nextTick((function(){e._realFinish=true;e.emit("finish");e._realFinish=false}));return}e._realFinish=true;e.emit("finish");e._realFinish=false}))}}else{s.prototype.emit.apply(this,arguments)}};Dicer.prototype._write=function(e,A,t){if(!this._hparser&&!this._bparser){return t()}if(this._headerFirst&&this._isPreamble){if(!this._part){this._part=new o(this._partOpts);if(this.listenerCount("preamble")!==0){this.emit("preamble",this._part)}else{this._ignore()}}const A=this._hparser.push(e);if(!this._inHeader&&A!==undefined&&A{"use strict";const s=t(5673).EventEmitter;const n=t(7261).inherits;const i=t(1467);const o=t(1142);const r=Buffer.from("\r\n\r\n");const a=/\r\n/g;const c=/^([^:]+):[ \t]?([\x00-\xFF]+)?$/;function HeaderParser(e){s.call(this);e=e||{};const A=this;this.nread=0;this.maxed=false;this.npairs=0;this.maxHeaderPairs=i(e,"maxHeaderPairs",2e3);this.maxHeaderSize=i(e,"maxHeaderSize",80*1024);this.buffer="";this.header={};this.finished=false;this.ss=new o(r);this.ss.on("info",(function(e,t,s,n){if(t&&!A.maxed){if(A.nread+n-s>=A.maxHeaderSize){n=A.maxHeaderSize-A.nread+s;A.nread=A.maxHeaderSize;A.maxed=true}else{A.nread+=n-s}A.buffer+=t.toString("binary",s,n)}if(e){A._finish()}}))}n(HeaderParser,s);HeaderParser.prototype.push=function(e){const A=this.ss.push(e);if(this.finished){return A}};HeaderParser.prototype.reset=function(){this.finished=false;this.buffer="";this.header={};this.ss.reset()};HeaderParser.prototype._finish=function(){if(this.buffer){this._parseHeader()}this.ss.matches=this.ss.maxMatches;const e=this.header;this.header={};this.buffer="";this.finished=true;this.nread=this.npairs=0;this.maxed=false;this.emit("header",e)};HeaderParser.prototype._parseHeader=function(){if(this.npairs===this.maxHeaderPairs){return}const e=this.buffer.split(a);const A=e.length;let t,s;for(var n=0;n{"use strict";const s=t(7261).inherits;const n=t(4492).Readable;function PartStream(e){n.call(this,e)}s(PartStream,n);PartStream.prototype._read=function(e){};e.exports=PartStream},1142:(e,A,t)=>{"use strict";const s=t(5673).EventEmitter;const n=t(7261).inherits;function SBMH(e){if(typeof e==="string"){e=Buffer.from(e)}if(!Buffer.isBuffer(e)){throw new TypeError("The needle has to be a String or a Buffer.")}const A=e.length;if(A===0){throw new Error("The needle cannot be an empty String/Buffer.")}if(A>256){throw new Error("The needle cannot have a length bigger than 256.")}this.maxMatches=Infinity;this.matches=0;this._occ=new Array(256).fill(A);this._lookbehind_size=0;this._needle=e;this._bufpos=0;this._lookbehind=Buffer.alloc(A);for(var t=0;t=0){this.emit("info",false,this._lookbehind,0,this._lookbehind_size);this._lookbehind_size=0}else{const t=this._lookbehind_size+i;if(t>0){this.emit("info",false,this._lookbehind,0,t)}this._lookbehind.copy(this._lookbehind,0,t,this._lookbehind_size-t);this._lookbehind_size-=t;e.copy(this._lookbehind,this._lookbehind_size);this._lookbehind_size+=A;this._bufpos=A;return A}}i+=(i>=0)*this._bufpos;if(e.indexOf(t,i)!==-1){i=e.indexOf(t,i);++this.matches;if(i>0){this.emit("info",true,e,this._bufpos,i)}else{this.emit("info",true)}return this._bufpos=i+s}else{i=A-s}while(i0){this.emit("info",false,e,this._bufpos,i{"use strict";const s=t(4492).Writable;const{inherits:n}=t(7261);const i=t(2960);const o=t(2183);const r=t(8306);const a=t(1854);function Busboy(e){if(!(this instanceof Busboy)){return new Busboy(e)}if(typeof e!=="object"){throw new TypeError("Busboy expected an options-Object.")}if(typeof e.headers!=="object"){throw new TypeError("Busboy expected an options-Object with headers-attribute.")}if(typeof e.headers["content-type"]!=="string"){throw new TypeError("Missing Content-Type-header.")}const{headers:A,...t}=e;this.opts={autoDestroy:false,...t};s.call(this,this.opts);this._done=false;this._parser=this.getParserByHeaders(A);this._finished=false}n(Busboy,s);Busboy.prototype.emit=function(e){if(e==="finish"){if(!this._done){this._parser?.end();return}else if(this._finished){return}this._finished=true}s.prototype.emit.apply(this,arguments)};Busboy.prototype.getParserByHeaders=function(e){const A=a(e["content-type"]);const t={defCharset:this.opts.defCharset,fileHwm:this.opts.fileHwm,headers:e,highWaterMark:this.opts.highWaterMark,isPartAFile:this.opts.isPartAFile,limits:this.opts.limits,parsedConType:A,preservePath:this.opts.preservePath};if(o.detect.test(A[0])){return new o(this,t)}if(r.detect.test(A[0])){return new r(this,t)}throw new Error("Unsupported Content-Type.")};Busboy.prototype._write=function(e,A,t){this._parser.write(e,t)};e.exports=Busboy;e.exports["default"]=Busboy;e.exports.Busboy=Busboy;e.exports.Dicer=i},2183:(e,A,t)=>{"use strict";const{Readable:s}=t(4492);const{inherits:n}=t(7261);const i=t(2960);const o=t(1854);const r=t(4619);const a=t(8647);const c=t(1467);const l=/^boundary$/i;const u=/^form-data$/i;const p=/^charset$/i;const g=/^filename$/i;const d=/^name$/i;Multipart.detect=/^multipart\/form-data/i;function Multipart(e,A){let t;let s;const n=this;let E;const h=A.limits;const Q=A.isPartAFile||((e,A,t)=>A==="application/octet-stream"||t!==undefined);const C=A.parsedConType||[];const B=A.defCharset||"utf8";const f=A.preservePath;const I={highWaterMark:A.fileHwm};for(t=0,s=C.length;tR){n.parser.removeListener("part",onPart);n.parser.on("part",skipPart);e.hitPartsLimit=true;e.emit("partsLimit");return skipPart(A)}if(N){const e=N;e.emit("end");e.removeAllListeners("end")}A.on("header",(function(i){let c;let l;let E;let h;let C;let R;let x=0;if(i["content-type"]){E=o(i["content-type"][0]);if(E[0]){c=E[0].toLowerCase();for(t=0,s=E.length;ty){const s=y-x+e.length;if(s>0){t.push(e.slice(0,s))}t.truncated=true;t.bytesRead=y;A.removeAllListeners("data");t.emit("limit");return}else if(!t.push(e)){n._pause=true}t.bytesRead=x};U=function(){F=undefined;t.push(null)}}else{if(k===w){if(!e.hitFieldsLimit){e.hitFieldsLimit=true;e.emit("fieldsLimit")}return skipPart(A)}++k;++S;let t="";let s=false;N=A;D=function(e){if((x+=e.length)>m){const n=m-(x-e.length);t+=e.toString("binary",0,n);s=true;A.removeAllListeners("data")}else{t+=e.toString("binary")}};U=function(){N=undefined;if(t.length){t=r(t,"binary",h)}e.emit("field",l,t,false,s,C,c);--S;checkFinished()}}A._readableState.sync=false;A.on("data",D);A.on("end",U)})).on("error",(function(e){if(F){F.emit("error",e)}}))})).on("error",(function(A){e.emit("error",A)})).on("finish",(function(){U=true;checkFinished()}))}Multipart.prototype.write=function(e,A){const t=this.parser.write(e);if(t&&!this._pause){A()}else{this._needDrain=!t;this._cb=A}};Multipart.prototype.end=function(){const e=this;if(e.parser.writable){e.parser.end()}else if(!e._boy._done){process.nextTick((function(){e._boy._done=true;e._boy.emit("finish")}))}};function skipPart(e){e.resume()}function FileStream(e){s.call(this,e);this.bytesRead=0;this.truncated=false}n(FileStream,s);FileStream.prototype._read=function(e){};e.exports=Multipart},8306:(e,A,t)=>{"use strict";const s=t(7100);const n=t(4619);const i=t(1467);const o=/^charset$/i;UrlEncoded.detect=/^application\/x-www-form-urlencoded/i;function UrlEncoded(e,A){const t=A.limits;const n=A.parsedConType;this.boy=e;this.fieldSizeLimit=i(t,"fieldSize",1*1024*1024);this.fieldNameSizeLimit=i(t,"fieldNameSize",100);this.fieldsLimit=i(t,"fields",Infinity);let r;for(var a=0,c=n.length;ao){this._key+=this.decoder.write(e.toString("binary",o,t))}this._state="val";this._hitLimit=false;this._checkingBytes=true;this._val="";this._bytesVal=0;this._valTrunc=false;this.decoder.reset();o=t+1}else if(s!==undefined){++this._fields;let t;const i=this._keyTrunc;if(s>o){t=this._key+=this.decoder.write(e.toString("binary",o,s))}else{t=this._key}this._hitLimit=false;this._checkingBytes=true;this._key="";this._bytesKey=0;this._keyTrunc=false;this.decoder.reset();if(t.length){this.boy.emit("field",n(t,"binary",this.charset),"",i,false)}o=s+1;if(this._fields===this.fieldsLimit){return A()}}else if(this._hitLimit){if(i>o){this._key+=this.decoder.write(e.toString("binary",o,i))}o=i;if((this._bytesKey=this._key.length)===this.fieldNameSizeLimit){this._checkingBytes=false;this._keyTrunc=true}}else{if(oo){this._val+=this.decoder.write(e.toString("binary",o,s))}this.boy.emit("field",n(this._key,"binary",this.charset),n(this._val,"binary",this.charset),this._keyTrunc,this._valTrunc);this._state="key";this._hitLimit=false;this._checkingBytes=true;this._key="";this._bytesKey=0;this._keyTrunc=false;this.decoder.reset();o=s+1;if(this._fields===this.fieldsLimit){return A()}}else if(this._hitLimit){if(i>o){this._val+=this.decoder.write(e.toString("binary",o,i))}o=i;if(this._val===""&&this.fieldSizeLimit===0||(this._bytesVal=this._val.length)===this.fieldSizeLimit){this._checkingBytes=false;this._valTrunc=true}}else{if(o0){this.boy.emit("field",n(this._key,"binary",this.charset),"",this._keyTrunc,false)}else if(this._state==="val"){this.boy.emit("field",n(this._key,"binary",this.charset),n(this._val,"binary",this.charset),this._keyTrunc,this._valTrunc)}this.boy._done=true;this.boy.emit("finish")};e.exports=UrlEncoded},7100:e=>{"use strict";const A=/\+/g;const t=[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,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,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,1,1,1,1,1,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];function Decoder(){this.buffer=undefined}Decoder.prototype.write=function(e){e=e.replace(A," ");let s="";let n=0;let i=0;const o=e.length;for(;ni){s+=e.substring(i,n);i=n}this.buffer="";++i}}if(i{"use strict";e.exports=function basename(e){if(typeof e!=="string"){return""}for(var A=e.length-1;A>=0;--A){switch(e.charCodeAt(A)){case 47:case 92:e=e.slice(A+1);return e===".."||e==="."?"":e}}return e===".."||e==="."?"":e}},4619:function(e){"use strict";const A=new TextDecoder("utf-8");const t=new Map([["utf-8",A],["utf8",A]]);function getDecoder(e){let A;while(true){switch(e){case"utf-8":case"utf8":return s.utf8;case"latin1":case"ascii":case"us-ascii":case"iso-8859-1":case"iso8859-1":case"iso88591":case"iso_8859-1":case"windows-1252":case"iso_8859-1:1987":case"cp1252":case"x-cp1252":return s.latin1;case"utf16le":case"utf-16le":case"ucs2":case"ucs-2":return s.utf16le;case"base64":return s.base64;default:if(A===undefined){A=true;e=e.toLowerCase();continue}return s.other.bind(e)}}}const s={utf8:(e,A)=>{if(e.length===0){return""}if(typeof e==="string"){e=Buffer.from(e,A)}return e.utf8Slice(0,e.length)},latin1:(e,A)=>{if(e.length===0){return""}if(typeof e==="string"){return e}return e.latin1Slice(0,e.length)},utf16le:(e,A)=>{if(e.length===0){return""}if(typeof e==="string"){e=Buffer.from(e,A)}return e.ucs2Slice(0,e.length)},base64:(e,A)=>{if(e.length===0){return""}if(typeof e==="string"){e=Buffer.from(e,A)}return e.base64Slice(0,e.length)},other:(e,A)=>{if(e.length===0){return""}if(typeof e==="string"){e=Buffer.from(e,A)}if(t.has(this.toString())){try{return t.get(this).decode(e)}catch{}}return typeof e==="string"?e:e.toString()}};function decodeText(e,A,t){if(e){return getDecoder(t)(e,A)}return e}e.exports=decodeText},1467:e=>{"use strict";e.exports=function getLimit(e,A,t){if(!e||e[A]===undefined||e[A]===null){return t}if(typeof e[A]!=="number"||isNaN(e[A])){throw new TypeError("Limit "+A+" is not a valid number")}return e[A]}},1854:(e,A,t)=>{"use strict";const s=t(4619);const n=/%[a-fA-F0-9][a-fA-F0-9]/g;const i={"%00":"\0","%01":"","%02":"","%03":"","%04":"","%05":"","%06":"","%07":"","%08":"\b","%09":"\t","%0a":"\n","%0A":"\n","%0b":"\v","%0B":"\v","%0c":"\f","%0C":"\f","%0d":"\r","%0D":"\r","%0e":"","%0E":"","%0f":"","%0F":"","%10":"","%11":"","%12":"","%13":"","%14":"","%15":"","%16":"","%17":"","%18":"","%19":"","%1a":"","%1A":"","%1b":"","%1B":"","%1c":"","%1C":"","%1d":"","%1D":"","%1e":"","%1E":"","%1f":"","%1F":"","%20":" ","%21":"!","%22":'"',"%23":"#","%24":"$","%25":"%","%26":"&","%27":"'","%28":"(","%29":")","%2a":"*","%2A":"*","%2b":"+","%2B":"+","%2c":",","%2C":",","%2d":"-","%2D":"-","%2e":".","%2E":".","%2f":"/","%2F":"/","%30":"0","%31":"1","%32":"2","%33":"3","%34":"4","%35":"5","%36":"6","%37":"7","%38":"8","%39":"9","%3a":":","%3A":":","%3b":";","%3B":";","%3c":"<","%3C":"<","%3d":"=","%3D":"=","%3e":">","%3E":">","%3f":"?","%3F":"?","%40":"@","%41":"A","%42":"B","%43":"C","%44":"D","%45":"E","%46":"F","%47":"G","%48":"H","%49":"I","%4a":"J","%4A":"J","%4b":"K","%4B":"K","%4c":"L","%4C":"L","%4d":"M","%4D":"M","%4e":"N","%4E":"N","%4f":"O","%4F":"O","%50":"P","%51":"Q","%52":"R","%53":"S","%54":"T","%55":"U","%56":"V","%57":"W","%58":"X","%59":"Y","%5a":"Z","%5A":"Z","%5b":"[","%5B":"[","%5c":"\\","%5C":"\\","%5d":"]","%5D":"]","%5e":"^","%5E":"^","%5f":"_","%5F":"_","%60":"`","%61":"a","%62":"b","%63":"c","%64":"d","%65":"e","%66":"f","%67":"g","%68":"h","%69":"i","%6a":"j","%6A":"j","%6b":"k","%6B":"k","%6c":"l","%6C":"l","%6d":"m","%6D":"m","%6e":"n","%6E":"n","%6f":"o","%6F":"o","%70":"p","%71":"q","%72":"r","%73":"s","%74":"t","%75":"u","%76":"v","%77":"w","%78":"x","%79":"y","%7a":"z","%7A":"z","%7b":"{","%7B":"{","%7c":"|","%7C":"|","%7d":"}","%7D":"}","%7e":"~","%7E":"~","%7f":"","%7F":"","%80":"€","%81":"","%82":"‚","%83":"ƒ","%84":"„","%85":"…","%86":"†","%87":"‡","%88":"ˆ","%89":"‰","%8a":"Š","%8A":"Š","%8b":"‹","%8B":"‹","%8c":"Œ","%8C":"Œ","%8d":"","%8D":"","%8e":"Ž","%8E":"Ž","%8f":"","%8F":"","%90":"","%91":"‘","%92":"’","%93":"“","%94":"”","%95":"•","%96":"–","%97":"—","%98":"˜","%99":"™","%9a":"š","%9A":"š","%9b":"›","%9B":"›","%9c":"œ","%9C":"œ","%9d":"","%9D":"","%9e":"ž","%9E":"ž","%9f":"Ÿ","%9F":"Ÿ","%a0":" ","%A0":" ","%a1":"¡","%A1":"¡","%a2":"¢","%A2":"¢","%a3":"£","%A3":"£","%a4":"¤","%A4":"¤","%a5":"¥","%A5":"¥","%a6":"¦","%A6":"¦","%a7":"§","%A7":"§","%a8":"¨","%A8":"¨","%a9":"©","%A9":"©","%aa":"ª","%Aa":"ª","%aA":"ª","%AA":"ª","%ab":"«","%Ab":"«","%aB":"«","%AB":"«","%ac":"¬","%Ac":"¬","%aC":"¬","%AC":"¬","%ad":"­","%Ad":"­","%aD":"­","%AD":"­","%ae":"®","%Ae":"®","%aE":"®","%AE":"®","%af":"¯","%Af":"¯","%aF":"¯","%AF":"¯","%b0":"°","%B0":"°","%b1":"±","%B1":"±","%b2":"²","%B2":"²","%b3":"³","%B3":"³","%b4":"´","%B4":"´","%b5":"µ","%B5":"µ","%b6":"¶","%B6":"¶","%b7":"·","%B7":"·","%b8":"¸","%B8":"¸","%b9":"¹","%B9":"¹","%ba":"º","%Ba":"º","%bA":"º","%BA":"º","%bb":"»","%Bb":"»","%bB":"»","%BB":"»","%bc":"¼","%Bc":"¼","%bC":"¼","%BC":"¼","%bd":"½","%Bd":"½","%bD":"½","%BD":"½","%be":"¾","%Be":"¾","%bE":"¾","%BE":"¾","%bf":"¿","%Bf":"¿","%bF":"¿","%BF":"¿","%c0":"À","%C0":"À","%c1":"Á","%C1":"Á","%c2":"Â","%C2":"Â","%c3":"Ã","%C3":"Ã","%c4":"Ä","%C4":"Ä","%c5":"Å","%C5":"Å","%c6":"Æ","%C6":"Æ","%c7":"Ç","%C7":"Ç","%c8":"È","%C8":"È","%c9":"É","%C9":"É","%ca":"Ê","%Ca":"Ê","%cA":"Ê","%CA":"Ê","%cb":"Ë","%Cb":"Ë","%cB":"Ë","%CB":"Ë","%cc":"Ì","%Cc":"Ì","%cC":"Ì","%CC":"Ì","%cd":"Í","%Cd":"Í","%cD":"Í","%CD":"Í","%ce":"Î","%Ce":"Î","%cE":"Î","%CE":"Î","%cf":"Ï","%Cf":"Ï","%cF":"Ï","%CF":"Ï","%d0":"Ð","%D0":"Ð","%d1":"Ñ","%D1":"Ñ","%d2":"Ò","%D2":"Ò","%d3":"Ó","%D3":"Ó","%d4":"Ô","%D4":"Ô","%d5":"Õ","%D5":"Õ","%d6":"Ö","%D6":"Ö","%d7":"×","%D7":"×","%d8":"Ø","%D8":"Ø","%d9":"Ù","%D9":"Ù","%da":"Ú","%Da":"Ú","%dA":"Ú","%DA":"Ú","%db":"Û","%Db":"Û","%dB":"Û","%DB":"Û","%dc":"Ü","%Dc":"Ü","%dC":"Ü","%DC":"Ü","%dd":"Ý","%Dd":"Ý","%dD":"Ý","%DD":"Ý","%de":"Þ","%De":"Þ","%dE":"Þ","%DE":"Þ","%df":"ß","%Df":"ß","%dF":"ß","%DF":"ß","%e0":"à","%E0":"à","%e1":"á","%E1":"á","%e2":"â","%E2":"â","%e3":"ã","%E3":"ã","%e4":"ä","%E4":"ä","%e5":"å","%E5":"å","%e6":"æ","%E6":"æ","%e7":"ç","%E7":"ç","%e8":"è","%E8":"è","%e9":"é","%E9":"é","%ea":"ê","%Ea":"ê","%eA":"ê","%EA":"ê","%eb":"ë","%Eb":"ë","%eB":"ë","%EB":"ë","%ec":"ì","%Ec":"ì","%eC":"ì","%EC":"ì","%ed":"í","%Ed":"í","%eD":"í","%ED":"í","%ee":"î","%Ee":"î","%eE":"î","%EE":"î","%ef":"ï","%Ef":"ï","%eF":"ï","%EF":"ï","%f0":"ð","%F0":"ð","%f1":"ñ","%F1":"ñ","%f2":"ò","%F2":"ò","%f3":"ó","%F3":"ó","%f4":"ô","%F4":"ô","%f5":"õ","%F5":"õ","%f6":"ö","%F6":"ö","%f7":"÷","%F7":"÷","%f8":"ø","%F8":"ø","%f9":"ù","%F9":"ù","%fa":"ú","%Fa":"ú","%fA":"ú","%FA":"ú","%fb":"û","%Fb":"û","%fB":"û","%FB":"û","%fc":"ü","%Fc":"ü","%fC":"ü","%FC":"ü","%fd":"ý","%Fd":"ý","%fD":"ý","%FD":"ý","%fe":"þ","%Fe":"þ","%fE":"þ","%FE":"þ","%ff":"ÿ","%Ff":"ÿ","%fF":"ÿ","%FF":"ÿ"};function encodedReplacer(e){return i[e]}const o=0;const r=1;const a=2;const c=3;function parseParams(e){const A=[];let t=o;let i="";let l=false;let u=false;let p=0;let g="";const d=e.length;for(var E=0;E{"use strict"; +/*! Axios v1.13.6 Copyright (c) 2026 Matt Zabriskie and contributors */const s=t(4334);const n=t(6113);const i=t(7310);const o=t(3329);const r=t(3685);const a=t(5687);const c=t(5158);const l=t(3837);const u=t(7707);const p=t(9796);const g=t(2781);const d=t(2361);function _interopDefaultLegacy(e){return e&&typeof e==="object"&&"default"in e?e:{default:e}}const E=_interopDefaultLegacy(s);const h=_interopDefaultLegacy(n);const Q=_interopDefaultLegacy(i);const C=_interopDefaultLegacy(o);const B=_interopDefaultLegacy(r);const f=_interopDefaultLegacy(a);const I=_interopDefaultLegacy(c);const m=_interopDefaultLegacy(l);const y=_interopDefaultLegacy(u);const b=_interopDefaultLegacy(p);const w=_interopDefaultLegacy(g);function bind(e,A){return function wrap(){return e.apply(A,arguments)}}const{toString:R}=Object.prototype;const{getPrototypeOf:x}=Object;const{iterator:D,toStringTag:v}=Symbol;const k=(e=>A=>{const t=R.call(A);return e[t]||(e[t]=t.slice(8,-1).toLowerCase())})(Object.create(null));const kindOfTest=e=>{e=e.toLowerCase();return A=>k(A)===e};const typeOfTest=e=>A=>typeof A===e;const{isArray:S}=Array;const F=typeOfTest("undefined");function isBuffer(e){return e!==null&&!F(e)&&e.constructor!==null&&!F(e.constructor)&&L(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const N=kindOfTest("ArrayBuffer");function isArrayBufferView(e){let A;if(typeof ArrayBuffer!=="undefined"&&ArrayBuffer.isView){A=ArrayBuffer.isView(e)}else{A=e&&e.buffer&&N(e.buffer)}return A}const U=typeOfTest("string");const L=typeOfTest("function");const M=typeOfTest("number");const isObject=e=>e!==null&&typeof e==="object";const isBoolean=e=>e===true||e===false;const isPlainObject=e=>{if(k(e)!=="object"){return false}const A=x(e);return(A===null||A===Object.prototype||Object.getPrototypeOf(A)===null)&&!(v in e)&&!(D in e)};const isEmptyObject=e=>{if(!isObject(e)||isBuffer(e)){return false}try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch(e){return false}};const T=kindOfTest("Date");const H=kindOfTest("File");const isReactNativeBlob=e=>!!(e&&typeof e.uri!=="undefined");const isReactNative=e=>e&&typeof e.getParts!=="undefined";const Y=kindOfTest("Blob");const J=kindOfTest("FileList");const isStream=e=>isObject(e)&&L(e.pipe);function getGlobal(){if(typeof globalThis!=="undefined")return globalThis;if(typeof self!=="undefined")return self;if(typeof window!=="undefined")return window;if(typeof global!=="undefined")return global;return{}}const G=getGlobal();const O=typeof G.FormData!=="undefined"?G.FormData:undefined;const isFormData=e=>{let A;return e&&(O&&e instanceof O||L(e.append)&&((A=k(e))==="formdata"||A==="object"&&L(e.toString)&&e.toString()==="[object FormData]"))};const V=kindOfTest("URLSearchParams");const[P,_,q,W]=["ReadableStream","Request","Response","Headers"].map(kindOfTest);const trim=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function forEach(e,A,{allOwnKeys:t=false}={}){if(e===null||typeof e==="undefined"){return}let s;let n;if(typeof e!=="object"){e=[e]}if(S(e)){for(s=0,n=e.length;s0){n=t[s];if(A===n.toLowerCase()){return n}}return null}const j=(()=>{if(typeof globalThis!=="undefined")return globalThis;return typeof self!=="undefined"?self:typeof window!=="undefined"?window:global})();const isContextDefined=e=>!F(e)&&e!==j;function merge(){const{caseless:e,skipUndefined:A}=isContextDefined(this)&&this||{};const t={};const assignValue=(s,n)=>{if(n==="__proto__"||n==="constructor"||n==="prototype"){return}const i=e&&findKey(t,n)||n;if(isPlainObject(t[i])&&isPlainObject(s)){t[i]=merge(t[i],s)}else if(isPlainObject(s)){t[i]=merge({},s)}else if(S(s)){t[i]=s.slice()}else if(!A||!F(s)){t[i]=s}};for(let e=0,A=arguments.length;e{forEach(A,((A,s)=>{if(t&&L(A)){Object.defineProperty(e,s,{value:bind(A,t),writable:true,enumerable:true,configurable:true})}else{Object.defineProperty(e,s,{value:A,writable:true,enumerable:true,configurable:true})}}),{allOwnKeys:s});return e};const stripBOM=e=>{if(e.charCodeAt(0)===65279){e=e.slice(1)}return e};const inherits=(e,A,t,s)=>{e.prototype=Object.create(A.prototype,s);Object.defineProperty(e.prototype,"constructor",{value:e,writable:true,enumerable:false,configurable:true});Object.defineProperty(e,"super",{value:A.prototype});t&&Object.assign(e.prototype,t)};const toFlatObject=(e,A,t,s)=>{let n;let i;let o;const r={};A=A||{};if(e==null)return A;do{n=Object.getOwnPropertyNames(e);i=n.length;while(i-- >0){o=n[i];if((!s||s(o,e,A))&&!r[o]){A[o]=e[o];r[o]=true}}e=t!==false&&x(e)}while(e&&(!t||t(e,A))&&e!==Object.prototype);return A};const endsWith=(e,A,t)=>{e=String(e);if(t===undefined||t>e.length){t=e.length}t-=A.length;const s=e.indexOf(A,t);return s!==-1&&s===t};const toArray=e=>{if(!e)return null;if(S(e))return e;let A=e.length;if(!M(A))return null;const t=new Array(A);while(A-- >0){t[A]=e[A]}return t};const z=(e=>A=>e&&A instanceof e)(typeof Uint8Array!=="undefined"&&x(Uint8Array));const forEachEntry=(e,A)=>{const t=e&&e[D];const s=t.call(e);let n;while((n=s.next())&&!n.done){const t=n.value;A.call(e,t[0],t[1])}};const matchAll=(e,A)=>{let t;const s=[];while((t=e.exec(A))!==null){s.push(t)}return s};const Z=kindOfTest("HTMLFormElement");const toCamelCase=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function replacer(e,A,t){return A.toUpperCase()+t}));const X=(({hasOwnProperty:e})=>(A,t)=>e.call(A,t))(Object.prototype);const K=kindOfTest("RegExp");const reduceDescriptors=(e,A)=>{const t=Object.getOwnPropertyDescriptors(e);const s={};forEach(t,((t,n)=>{let i;if((i=A(t,n,e))!==false){s[n]=i||t}}));Object.defineProperties(e,s)};const freezeMethods=e=>{reduceDescriptors(e,((A,t)=>{if(L(e)&&["arguments","caller","callee"].indexOf(t)!==-1){return false}const s=e[t];if(!L(s))return;A.enumerable=false;if("writable"in A){A.writable=false;return}if(!A.set){A.set=()=>{throw Error("Can not rewrite read-only method '"+t+"'")}}}))};const toObjectSet=(e,A)=>{const t={};const define=e=>{e.forEach((e=>{t[e]=true}))};S(e)?define(e):define(String(e).split(A));return t};const noop=()=>{};const toFiniteNumber=(e,A)=>e!=null&&Number.isFinite(e=+e)?e:A;function isSpecCompliantForm(e){return!!(e&&L(e.append)&&e[v]==="FormData"&&e[D])}const toJSONObject=e=>{const A=new Array(10);const visit=(e,t)=>{if(isObject(e)){if(A.indexOf(e)>=0){return}if(isBuffer(e)){return e}if(!("toJSON"in e)){A[t]=e;const s=S(e)?[]:{};forEach(e,((e,A)=>{const n=visit(e,t+1);!F(n)&&(s[A]=n)}));A[t]=undefined;return s}}return e};return visit(e,0)};const $=kindOfTest("AsyncFunction");const isThenable=e=>e&&(isObject(e)||L(e))&&L(e.then)&&L(e.catch);const ee=((e,A)=>{if(e){return setImmediate}return A?((e,A)=>{j.addEventListener("message",(({source:t,data:s})=>{if(t===j&&s===e){A.length&&A.shift()()}}),false);return t=>{A.push(t);j.postMessage(e,"*")}})(`axios@${Math.random()}`,[]):e=>setTimeout(e)})(typeof setImmediate==="function",L(j.postMessage));const Ae=typeof queueMicrotask!=="undefined"?queueMicrotask.bind(j):typeof process!=="undefined"&&process.nextTick||ee;const isIterable=e=>e!=null&&L(e[D]);const te={isArray:S,isArrayBuffer:N,isBuffer:isBuffer,isFormData:isFormData,isArrayBufferView:isArrayBufferView,isString:U,isNumber:M,isBoolean:isBoolean,isObject:isObject,isPlainObject:isPlainObject,isEmptyObject:isEmptyObject,isReadableStream:P,isRequest:_,isResponse:q,isHeaders:W,isUndefined:F,isDate:T,isFile:H,isReactNativeBlob:isReactNativeBlob,isReactNative:isReactNative,isBlob:Y,isRegExp:K,isFunction:L,isStream:isStream,isURLSearchParams:V,isTypedArray:z,isFileList:J,forEach:forEach,merge:merge,extend:extend,trim:trim,stripBOM:stripBOM,inherits:inherits,toFlatObject:toFlatObject,kindOf:k,kindOfTest:kindOfTest,endsWith:endsWith,toArray:toArray,forEachEntry:forEachEntry,matchAll:matchAll,isHTMLForm:Z,hasOwnProperty:X,hasOwnProp:X,reduceDescriptors:reduceDescriptors,freezeMethods:freezeMethods,toObjectSet:toObjectSet,toCamelCase:toCamelCase,noop:noop,toFiniteNumber:toFiniteNumber,findKey:findKey,global:j,isContextDefined:isContextDefined,isSpecCompliantForm:isSpecCompliantForm,toJSONObject:toJSONObject,isAsyncFn:$,isThenable:isThenable,setImmediate:ee,asap:Ae,isIterable:isIterable};class AxiosError extends Error{static from(e,A,t,s,n,i){const o=new AxiosError(e.message,A||e.code,t,s,n);o.cause=e;o.name=e.name;if(e.status!=null&&o.status==null){o.status=e.status}i&&Object.assign(o,i);return o}constructor(e,A,t,s,n){super(e);Object.defineProperty(this,"message",{value:e,enumerable:true,writable:true,configurable:true});this.name="AxiosError";this.isAxiosError=true;A&&(this.code=A);t&&(this.config=t);s&&(this.request=s);if(n){this.response=n;this.status=n.status}}toJSON(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:te.toJSONObject(this.config),code:this.code,status:this.status}}}AxiosError.ERR_BAD_OPTION_VALUE="ERR_BAD_OPTION_VALUE";AxiosError.ERR_BAD_OPTION="ERR_BAD_OPTION";AxiosError.ECONNABORTED="ECONNABORTED";AxiosError.ETIMEDOUT="ETIMEDOUT";AxiosError.ERR_NETWORK="ERR_NETWORK";AxiosError.ERR_FR_TOO_MANY_REDIRECTS="ERR_FR_TOO_MANY_REDIRECTS";AxiosError.ERR_DEPRECATED="ERR_DEPRECATED";AxiosError.ERR_BAD_RESPONSE="ERR_BAD_RESPONSE";AxiosError.ERR_BAD_REQUEST="ERR_BAD_REQUEST";AxiosError.ERR_CANCELED="ERR_CANCELED";AxiosError.ERR_NOT_SUPPORT="ERR_NOT_SUPPORT";AxiosError.ERR_INVALID_URL="ERR_INVALID_URL";const se=AxiosError;function isVisitable(e){return te.isPlainObject(e)||te.isArray(e)}function removeBrackets(e){return te.endsWith(e,"[]")?e.slice(0,-2):e}function renderKey(e,A,t){if(!e)return A;return e.concat(A).map((function each(e,A){e=removeBrackets(e);return!t&&A?"["+e+"]":e})).join(t?".":"")}function isFlatArray(e){return te.isArray(e)&&!e.some(isVisitable)}const ne=te.toFlatObject(te,{},null,(function filter(e){return/^is[A-Z]/.test(e)}));function toFormData(e,A,t){if(!te.isObject(e)){throw new TypeError("target must be an object")}A=A||new(E["default"]||FormData);t=te.toFlatObject(t,{metaTokens:true,dots:false,indexes:false},false,(function defined(e,A){return!te.isUndefined(A[e])}));const s=t.metaTokens;const n=t.visitor||defaultVisitor;const i=t.dots;const o=t.indexes;const r=t.Blob||typeof Blob!=="undefined"&&Blob;const a=r&&te.isSpecCompliantForm(A);if(!te.isFunction(n)){throw new TypeError("visitor must be a function")}function convertValue(e){if(e===null)return"";if(te.isDate(e)){return e.toISOString()}if(te.isBoolean(e)){return e.toString()}if(!a&&te.isBlob(e)){throw new se("Blob is not supported. Use a Buffer instead.")}if(te.isArrayBuffer(e)||te.isTypedArray(e)){return a&&typeof Blob==="function"?new Blob([e]):Buffer.from(e)}return e}function defaultVisitor(e,t,n){let r=e;if(te.isReactNative(A)&&te.isReactNativeBlob(e)){A.append(renderKey(n,t,i),convertValue(e));return false}if(e&&!n&&typeof e==="object"){if(te.endsWith(t,"{}")){t=s?t:t.slice(0,-2);e=JSON.stringify(e)}else if(te.isArray(e)&&isFlatArray(e)||(te.isFileList(e)||te.endsWith(t,"[]"))&&(r=te.toArray(e))){t=removeBrackets(t);r.forEach((function each(e,s){!(te.isUndefined(e)||e===null)&&A.append(o===true?renderKey([t],s,i):o===null?t:t+"[]",convertValue(e))}));return false}}if(isVisitable(e)){return true}A.append(renderKey(n,t,i),convertValue(e));return false}const c=[];const l=Object.assign(ne,{defaultVisitor:defaultVisitor,convertValue:convertValue,isVisitable:isVisitable});function build(e,t){if(te.isUndefined(e))return;if(c.indexOf(e)!==-1){throw Error("Circular reference detected in "+t.join("."))}c.push(e);te.forEach(e,(function each(e,s){const i=!(te.isUndefined(e)||e===null)&&n.call(A,e,te.isString(s)?s.trim():s,t,l);if(i===true){build(e,t?t.concat(s):[s])}}));c.pop()}if(!te.isObject(e)){throw new TypeError("data must be an object")}build(e);return A}function encode$1(e){const A={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function replacer(e){return A[e]}))}function AxiosURLSearchParams(e,A){this._pairs=[];e&&toFormData(e,this,A)}const ie=AxiosURLSearchParams.prototype;ie.append=function append(e,A){this._pairs.push([e,A])};ie.toString=function toString(e){const A=e?function(A){return e.call(this,A,encode$1)}:encode$1;return this._pairs.map((function each(e){return A(e[0])+"="+A(e[1])}),"").join("&")};function encode(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function buildURL(e,A,t){if(!A){return e}const s=t&&t.encode||encode;const n=te.isFunction(t)?{serialize:t}:t;const i=n&&n.serialize;let o;if(i){o=i(A,n)}else{o=te.isURLSearchParams(A)?A.toString():new AxiosURLSearchParams(A,n).toString(s)}if(o){const A=e.indexOf("#");if(A!==-1){e=e.slice(0,A)}e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class InterceptorManager{constructor(){this.handlers=[]}use(e,A,t){this.handlers.push({fulfilled:e,rejected:A,synchronous:t?t.synchronous:false,runWhen:t?t.runWhen:null});return this.handlers.length-1}eject(e){if(this.handlers[e]){this.handlers[e]=null}}clear(){if(this.handlers){this.handlers=[]}}forEach(e){te.forEach(this.handlers,(function forEachHandler(A){if(A!==null){e(A)}}))}}const oe=InterceptorManager;const re={silentJSONParsing:true,forcedJSONParsing:true,clarifyTimeoutError:false,legacyInterceptorReqResOrdering:true};const ae=Q["default"].URLSearchParams;const ce="abcdefghijklmnopqrstuvwxyz";const le="0123456789";const ue={DIGIT:le,ALPHA:ce,ALPHA_DIGIT:ce+ce.toUpperCase()+le};const generateString=(e=16,A=ue.ALPHA_DIGIT)=>{let t="";const{length:s}=A;const n=new Uint32Array(e);h["default"].randomFillSync(n);for(let i=0;itypeof WorkerGlobalScope!=="undefined"&&self instanceof WorkerGlobalScope&&typeof self.importScripts==="function")();const Qe=ge&&window.location.href||"http://localhost";const Ce=Object.freeze({__proto__:null,hasBrowserEnv:ge,hasStandardBrowserWebWorkerEnv:he,hasStandardBrowserEnv:Ee,navigator:de,origin:Qe});const Be={...Ce,...pe};function toURLEncodedForm(e,A){return toFormData(e,new Be.classes.URLSearchParams,{visitor:function(e,A,t,s){if(Be.isNode&&te.isBuffer(e)){this.append(A,e.toString("base64"));return false}return s.defaultVisitor.apply(this,arguments)},...A})}function parsePropPath(e){return te.matchAll(/\w+|\[(\w*)]/g,e).map((e=>e[0]==="[]"?"":e[1]||e[0]))}function arrayToObject(e){const A={};const t=Object.keys(e);let s;const n=t.length;let i;for(s=0;s=e.length;n=!n&&te.isArray(t)?t.length:n;if(o){if(te.hasOwnProp(t,n)){t[n]=[t[n],A]}else{t[n]=A}return!i}if(!t[n]||!te.isObject(t[n])){t[n]=[]}const r=buildPath(e,A,t[n],s);if(r&&te.isArray(t[n])){t[n]=arrayToObject(t[n])}return!i}if(te.isFormData(e)&&te.isFunction(e.entries)){const A={};te.forEachEntry(e,((e,t)=>{buildPath(parsePropPath(e),t,A,0)}));return A}return null}function stringifySafely(e,A,t){if(te.isString(e)){try{(A||JSON.parse)(e);return te.trim(e)}catch(e){if(e.name!=="SyntaxError"){throw e}}}return(t||JSON.stringify)(e)}const fe={transitional:re,adapter:["xhr","http","fetch"],transformRequest:[function transformRequest(e,A){const t=A.getContentType()||"";const s=t.indexOf("application/json")>-1;const n=te.isObject(e);if(n&&te.isHTMLForm(e)){e=new FormData(e)}const i=te.isFormData(e);if(i){return s?JSON.stringify(formDataToJSON(e)):e}if(te.isArrayBuffer(e)||te.isBuffer(e)||te.isStream(e)||te.isFile(e)||te.isBlob(e)||te.isReadableStream(e)){return e}if(te.isArrayBufferView(e)){return e.buffer}if(te.isURLSearchParams(e)){A.setContentType("application/x-www-form-urlencoded;charset=utf-8",false);return e.toString()}let o;if(n){if(t.indexOf("application/x-www-form-urlencoded")>-1){return toURLEncodedForm(e,this.formSerializer).toString()}if((o=te.isFileList(e))||t.indexOf("multipart/form-data")>-1){const A=this.env&&this.env.FormData;return toFormData(o?{"files[]":e}:e,A&&new A,this.formSerializer)}}if(n||s){A.setContentType("application/json",false);return stringifySafely(e)}return e}],transformResponse:[function transformResponse(e){const A=this.transitional||fe.transitional;const t=A&&A.forcedJSONParsing;const s=this.responseType==="json";if(te.isResponse(e)||te.isReadableStream(e)){return e}if(e&&te.isString(e)&&(t&&!this.responseType||s)){const t=A&&A.silentJSONParsing;const n=!t&&s;try{return JSON.parse(e,this.parseReviver)}catch(e){if(n){if(e.name==="SyntaxError"){throw se.from(e,se.ERR_BAD_RESPONSE,this,null,this.response)}throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Be.classes.FormData,Blob:Be.classes.Blob},validateStatus:function validateStatus(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":undefined}}};te.forEach(["delete","get","head","post","put","patch"],(e=>{fe.headers[e]={}}));const Ie=fe;const me=te.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);const parseHeaders=e=>{const A={};let t;let s;let n;e&&e.split("\n").forEach((function parser(e){n=e.indexOf(":");t=e.substring(0,n).trim().toLowerCase();s=e.substring(n+1).trim();if(!t||A[t]&&me[t]){return}if(t==="set-cookie"){if(A[t]){A[t].push(s)}else{A[t]=[s]}}else{A[t]=A[t]?A[t]+", "+s:s}}));return A};const ye=Symbol("internals");function normalizeHeader(e){return e&&String(e).trim().toLowerCase()}function normalizeValue(e){if(e===false||e==null){return e}return te.isArray(e)?e.map(normalizeValue):String(e)}function parseTokens(e){const A=Object.create(null);const t=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let s;while(s=t.exec(e)){A[s[1]]=s[2]}return A}const isValidHeaderName=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function matchHeaderValue(e,A,t,s,n){if(te.isFunction(s)){return s.call(this,A,t)}if(n){A=t}if(!te.isString(A))return;if(te.isString(s)){return A.indexOf(s)!==-1}if(te.isRegExp(s)){return s.test(A)}}function formatHeader(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((e,A,t)=>A.toUpperCase()+t))}function buildAccessors(e,A){const t=te.toCamelCase(" "+A);["get","set","has"].forEach((s=>{Object.defineProperty(e,s+t,{value:function(e,t,n){return this[s].call(this,A,e,t,n)},configurable:true})}))}class AxiosHeaders{constructor(e){e&&this.set(e)}set(e,A,t){const s=this;function setHeader(e,A,t){const n=normalizeHeader(A);if(!n){throw new Error("header name must be a non-empty string")}const i=te.findKey(s,n);if(!i||s[i]===undefined||t===true||t===undefined&&s[i]!==false){s[i||A]=normalizeValue(e)}}const setHeaders=(e,A)=>te.forEach(e,((e,t)=>setHeader(e,t,A)));if(te.isPlainObject(e)||e instanceof this.constructor){setHeaders(e,A)}else if(te.isString(e)&&(e=e.trim())&&!isValidHeaderName(e)){setHeaders(parseHeaders(e),A)}else if(te.isObject(e)&&te.isIterable(e)){let t={},s,n;for(const A of e){if(!te.isArray(A)){throw TypeError("Object iterator must return a key-value pair")}t[n=A[0]]=(s=t[n])?te.isArray(s)?[...s,A[1]]:[s,A[1]]:A[1]}setHeaders(t,A)}else{e!=null&&setHeader(A,e,t)}return this}get(e,A){e=normalizeHeader(e);if(e){const t=te.findKey(this,e);if(t){const e=this[t];if(!A){return e}if(A===true){return parseTokens(e)}if(te.isFunction(A)){return A.call(this,e,t)}if(te.isRegExp(A)){return A.exec(e)}throw new TypeError("parser must be boolean|regexp|function")}}}has(e,A){e=normalizeHeader(e);if(e){const t=te.findKey(this,e);return!!(t&&this[t]!==undefined&&(!A||matchHeaderValue(this,this[t],t,A)))}return false}delete(e,A){const t=this;let s=false;function deleteHeader(e){e=normalizeHeader(e);if(e){const n=te.findKey(t,e);if(n&&(!A||matchHeaderValue(t,t[n],n,A))){delete t[n];s=true}}}if(te.isArray(e)){e.forEach(deleteHeader)}else{deleteHeader(e)}return s}clear(e){const A=Object.keys(this);let t=A.length;let s=false;while(t--){const n=A[t];if(!e||matchHeaderValue(this,this[n],n,e,true)){delete this[n];s=true}}return s}normalize(e){const A=this;const t={};te.forEach(this,((s,n)=>{const i=te.findKey(t,n);if(i){A[i]=normalizeValue(s);delete A[n];return}const o=e?formatHeader(n):String(n).trim();if(o!==n){delete A[n]}A[o]=normalizeValue(s);t[o]=true}));return this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const A=Object.create(null);te.forEach(this,((t,s)=>{t!=null&&t!==false&&(A[s]=e&&te.isArray(t)?t.join(", "):t)}));return A}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([e,A])=>e+": "+A)).join("\n")}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...A){const t=new this(e);A.forEach((e=>t.set(e)));return t}static accessor(e){const A=this[ye]=this[ye]={accessors:{}};const t=A.accessors;const s=this.prototype;function defineAccessor(e){const A=normalizeHeader(e);if(!t[A]){buildAccessors(s,e);t[A]=true}}te.isArray(e)?e.forEach(defineAccessor):defineAccessor(e);return this}}AxiosHeaders.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);te.reduceDescriptors(AxiosHeaders.prototype,(({value:e},A)=>{let t=A[0].toUpperCase()+A.slice(1);return{get:()=>e,set(e){this[t]=e}}}));te.freezeMethods(AxiosHeaders);const be=AxiosHeaders;function transformData(e,A){const t=this||Ie;const s=A||t;const n=be.from(s.headers);let i=s.data;te.forEach(e,(function transform(e){i=e.call(t,i,n.normalize(),A?A.status:undefined)}));n.normalize();return i}function isCancel(e){return!!(e&&e.__CANCEL__)}class CanceledError extends se{constructor(e,A,t){super(e==null?"canceled":e,se.ERR_CANCELED,A,t);this.name="CanceledError";this.__CANCEL__=true}}const we=CanceledError;function settle(e,A,t){const s=t.config.validateStatus;if(!t.status||!s||s(t.status)){e(t)}else{A(new se("Request failed with status code "+t.status,[se.ERR_BAD_REQUEST,se.ERR_BAD_RESPONSE][Math.floor(t.status/100)-4],t.config,t.request,t))}}function isAbsoluteURL(e){if(typeof e!=="string"){return false}return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function combineURLs(e,A){return A?e.replace(/\/?\/$/,"")+"/"+A.replace(/^\/+/,""):e}function buildFullPath(e,A,t){let s=!isAbsoluteURL(A);if(e&&(s||t==false)){return combineURLs(e,A)}return A}const Re="1.13.6";function parseProtocol(e){const A=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return A&&A[1]||""}const xe=/^(?:([^;]+);)?(?:[^;]+;)?(base64|),([\s\S]*)$/;function fromDataURI(e,A,t){const s=t&&t.Blob||Be.classes.Blob;const n=parseProtocol(e);if(A===undefined&&s){A=true}if(n==="data"){e=n.length?e.slice(n.length+1):e;const t=xe.exec(e);if(!t){throw new se("Invalid URL",se.ERR_INVALID_URL)}const i=t[1];const o=t[2];const r=t[3];const a=Buffer.from(decodeURIComponent(r),o?"base64":"utf8");if(A){if(!s){throw new se("Blob is not supported",se.ERR_NOT_SUPPORT)}return new s([a],{type:i})}return a}throw new se("Unsupported protocol "+n,se.ERR_NOT_SUPPORT)}const De=Symbol("internals");class AxiosTransformStream extends w["default"].Transform{constructor(e){e=te.toFlatObject(e,{maxRate:0,chunkSize:64*1024,minChunkSize:100,timeWindow:500,ticksRate:2,samplesCount:15},null,((e,A)=>!te.isUndefined(A[e])));super({readableHighWaterMark:e.chunkSize});const A=this[De]={timeWindow:e.timeWindow,chunkSize:e.chunkSize,maxRate:e.maxRate,minChunkSize:e.minChunkSize,bytesSeen:0,isCaptured:false,notifiedBytesLoaded:0,ts:Date.now(),bytes:0,onReadCallback:null};this.on("newListener",(e=>{if(e==="progress"){if(!A.isCaptured){A.isCaptured=true}}}))}_read(e){const A=this[De];if(A.onReadCallback){A.onReadCallback()}return super._read(e)}_transform(e,A,t){const s=this[De];const n=s.maxRate;const i=this.readableHighWaterMark;const o=s.timeWindow;const r=1e3/o;const a=n/r;const c=s.minChunkSize!==false?Math.max(s.minChunkSize,a*.01):0;const pushChunk=(e,A)=>{const t=Buffer.byteLength(e);s.bytesSeen+=t;s.bytes+=t;s.isCaptured&&this.emit("progress",s.bytesSeen);if(this.push(e)){process.nextTick(A)}else{s.onReadCallback=()=>{s.onReadCallback=null;process.nextTick(A)}}};const transformChunk=(e,A)=>{const t=Buffer.byteLength(e);let r=null;let l=i;let u;let p=0;if(n){const e=Date.now();if(!s.ts||(p=e-s.ts)>=o){s.ts=e;u=a-s.bytes;s.bytes=u<0?-u:0;p=0}u=a-s.bytes}if(n){if(u<=0){return setTimeout((()=>{A(null,e)}),o-p)}if(ul&&t-l>c){r=e.subarray(l);e=e.subarray(0,l)}pushChunk(e,r?()=>{process.nextTick(A,null,r)}:A)};transformChunk(e,(function transformNextChunk(e,A){if(e){return t(e)}if(A){transformChunk(A,transformNextChunk)}else{t(null)}}))}}const ve=AxiosTransformStream;const{asyncIterator:ke}=Symbol;const readBlob=async function*(e){if(e.stream){yield*e.stream()}else if(e.arrayBuffer){yield await e.arrayBuffer()}else if(e[ke]){yield*e[ke]()}else{yield e}};const Se=readBlob;const Fe=Be.ALPHABET.ALPHA_DIGIT+"-_";const Ne=typeof TextEncoder==="function"?new TextEncoder:new m["default"].TextEncoder;const Ue="\r\n";const Le=Ne.encode(Ue);const Me=2;class FormDataPart{constructor(e,A){const{escapeName:t}=this.constructor;const s=te.isString(A);let n=`Content-Disposition: form-data; name="${t(e)}"${!s&&A.name?`; filename="${t(A.name)}"`:""}${Ue}`;if(s){A=Ne.encode(String(A).replace(/\r?\n|\r\n?/g,Ue))}else{n+=`Content-Type: ${A.type||"application/octet-stream"}${Ue}`}this.headers=Ne.encode(n+Ue);this.contentLength=s?A.byteLength:A.size;this.size=this.headers.byteLength+this.contentLength+Me;this.name=e;this.value=A}async*encode(){yield this.headers;const{value:e}=this;if(te.isTypedArray(e)){yield e}else{yield*Se(e)}yield Le}static escapeName(e){return String(e).replace(/[\r\n"]/g,(e=>({"\r":"%0D","\n":"%0A",'"':"%22"}[e])))}}const formDataToStream=(e,A,t)=>{const{tag:s="form-data-boundary",size:n=25,boundary:i=s+"-"+Be.generateString(n,Fe)}=t||{};if(!te.isFormData(e)){throw TypeError("FormData instance required")}if(i.length<1||i.length>70){throw Error("boundary must be 10-70 characters long")}const o=Ne.encode("--"+i+Ue);const r=Ne.encode("--"+i+"--"+Ue);let a=r.byteLength;const c=Array.from(e.entries()).map((([e,A])=>{const t=new FormDataPart(e,A);a+=t.size;return t}));a+=o.byteLength*c.length;a=te.toFiniteNumber(a);const l={"Content-Type":`multipart/form-data; boundary=${i}`};if(Number.isFinite(a)){l["Content-Length"]=a}A&&A(l);return g.Readable.from(async function*(){for(const e of c){yield o;yield*e.encode()}yield r}())};const Te=formDataToStream;class ZlibHeaderTransformStream extends w["default"].Transform{__transform(e,A,t){this.push(e);t()}_transform(e,A,t){if(e.length!==0){this._transform=this.__transform;if(e[0]!==120){const e=Buffer.alloc(2);e[0]=120;e[1]=156;this.push(e,A)}}this.__transform(e,A,t)}}const He=ZlibHeaderTransformStream;const callbackify=(e,A)=>te.isAsyncFn(e)?function(...t){const s=t.pop();e.apply(this,t).then((e=>{try{A?s(null,...A(e)):s(null,e)}catch(e){s(e)}}),s)}:e;const Ye=callbackify;function speedometer(e,A){e=e||10;const t=new Array(e);const s=new Array(e);let n=0;let i=0;let o;A=A!==undefined?A:1e3;return function push(r){const a=Date.now();const c=s[i];if(!o){o=a}t[n]=r;s[n]=a;let l=i;let u=0;while(l!==n){u+=t[l++];l=l%e}n=(n+1)%e;if(n===i){i=(i+1)%e}if(a-o{t=s;n=null;if(i){clearTimeout(i);i=null}e(...A)};const throttled=(...e)=>{const A=Date.now();const o=A-t;if(o>=s){invoke(e,A)}else{n=e;if(!i){i=setTimeout((()=>{i=null;invoke(n)}),s-o)}}};const flush=()=>n&&invoke(n);return[throttled,flush]}const progressEventReducer=(e,A,t=3)=>{let s=0;const n=speedometer(50,250);return throttle((t=>{const i=t.loaded;const o=t.lengthComputable?t.total:undefined;const r=i-s;const a=n(r);const c=i<=o;s=i;const l={loaded:i,total:o,progress:o?i/o:undefined,bytes:r,rate:a?a:undefined,estimated:a&&o&&c?(o-i)/a:undefined,event:t,lengthComputable:o!=null,[A?"download":"upload"]:true};e(l)}),t)};const progressEventDecorator=(e,A)=>{const t=e!=null;return[s=>A[0]({lengthComputable:t,total:e,loaded:s}),A[1]]};const asyncDecorator=e=>(...A)=>te.asap((()=>e(...A)));function estimateDataURLDecodedBytes(e){if(!e||typeof e!=="string")return 0;if(!e.startsWith("data:"))return 0;const A=e.indexOf(",");if(A<0)return 0;const t=e.slice(5,A);const s=e.slice(A+1);const n=/;base64/i.test(t);if(n){let e=s.length;const A=s.length;for(let t=0;t=48&&A<=57||A>=65&&A<=70||A>=97&&A<=102)&&(n>=48&&n<=57||n>=65&&n<=70||n>=97&&n<=102);if(i){e-=2;t+=2}}}let t=0;let n=A-1;const tailIsPct3D=e=>e>=2&&s.charCodeAt(e-2)===37&&s.charCodeAt(e-1)===51&&(s.charCodeAt(e)===68||s.charCodeAt(e)===100);if(n>=0){if(s.charCodeAt(n)===61){t++;n--}else if(tailIsPct3D(n)){t++;n-=3}}if(t===1&&n>=0){if(s.charCodeAt(n)===61){t++}else if(tailIsPct3D(n)){t++}}const i=Math.floor(e/4);const o=i*3-(t||0);return o>0?o:0}return Buffer.byteLength(s,"utf8")}const Je={flush:b["default"].constants.Z_SYNC_FLUSH,finishFlush:b["default"].constants.Z_SYNC_FLUSH};const Ge={flush:b["default"].constants.BROTLI_OPERATION_FLUSH,finishFlush:b["default"].constants.BROTLI_OPERATION_FLUSH};const Oe=te.isFunction(b["default"].createBrotliDecompress);const{http:Ve,https:Pe}=y["default"];const _e=/https:?/;const qe=Be.protocols.map((e=>e+":"));const flushOnFinish=(e,[A,t])=>{e.on("end",t).on("error",t);return A};class Http2Sessions{constructor(){this.sessions=Object.create(null)}getSession(e,A){A=Object.assign({sessionTimeout:1e3},A);let t=this.sessions[e];if(t){let e=t.length;for(let s=0;s{if(n){return}n=true;let A=t,i=A.length,o=i;while(o--){if(A[o][0]===s){if(i===1){delete this.sessions[e]}else{A.splice(o,1)}return}}};const i=s.request;const{sessionTimeout:o}=A;if(o!=null){let e;let A=0;s.request=function(){const t=i.apply(this,arguments);A++;if(e){clearTimeout(e);e=null}t.once("close",(()=>{if(!--A){e=setTimeout((()=>{e=null;removeSession()}),o)}}));return t}}s.once("close",removeSession);let r=[s,A];t?t.push(r):t=this.sessions[e]=[r];return s}}const We=new Http2Sessions;function dispatchBeforeRedirect(e,A){if(e.beforeRedirects.proxy){e.beforeRedirects.proxy(e)}if(e.beforeRedirects.config){e.beforeRedirects.config(e,A)}}function setProxy(e,A,t){let s=A;if(!s&&s!==false){const e=C["default"].getProxyForUrl(t);if(e){s=new URL(e)}}if(s){if(s.username){s.auth=(s.username||"")+":"+(s.password||"")}if(s.auth){const A=Boolean(s.auth.username||s.auth.password);if(A){s.auth=(s.auth.username||"")+":"+(s.auth.password||"")}else if(typeof s.auth==="object"){throw new se("Invalid proxy authorization",se.ERR_BAD_OPTION,{proxy:s})}const t=Buffer.from(s.auth,"utf8").toString("base64");e.headers["Proxy-Authorization"]="Basic "+t}e.headers.host=e.hostname+(e.port?":"+e.port:"");const A=s.hostname||s.host;e.hostname=A;e.host=A;e.port=s.port;e.path=t;if(s.protocol){e.protocol=s.protocol.includes(":")?s.protocol:`${s.protocol}:`}}e.beforeRedirects.proxy=function beforeRedirect(e){setProxy(e,A,e.href)}}const je=typeof process!=="undefined"&&te.kindOf(process)==="process";const wrapAsync=e=>new Promise(((A,t)=>{let s;let n;const done=(e,A)=>{if(n)return;n=true;s&&s(e,A)};const _resolve=e=>{done(e);A(e)};const _reject=e=>{done(e,true);t(e)};e(_resolve,_reject,(e=>s=e)).catch(_reject)}));const resolveFamily=({address:e,family:A})=>{if(!te.isString(e)){throw TypeError("address must be a string")}return{address:e,family:A||(e.indexOf(".")<0?6:4)}};const buildAddressEntry=(e,A)=>resolveFamily(te.isObject(e)?e:{address:e,family:A});const ze={request(e,A){const t=e.protocol+"//"+e.hostname+":"+(e.port||(e.protocol==="https:"?443:80));const{http2Options:s,headers:n}=e;const i=We.getSession(t,s);const{HTTP2_HEADER_SCHEME:o,HTTP2_HEADER_METHOD:r,HTTP2_HEADER_PATH:a,HTTP2_HEADER_STATUS:c}=I["default"].constants;const l={[o]:e.protocol.replace(":",""),[r]:e.method,[a]:e.path};te.forEach(n,((e,A)=>{A.charAt(0)!==":"&&(l[A]=e)}));const u=i.request(l);u.once("response",(e=>{const t=u;e=Object.assign({},e);const s=e[c];delete e[c];t.headers=e;t.statusCode=+s;A(t)}));return u}};const Ze=je&&function httpAdapter(e){return wrapAsync((async function dispatchHttpRequest(A,t,s){let{data:n,lookup:i,family:o,httpVersion:r=1,http2Options:a}=e;const{responseType:c,responseEncoding:l}=e;const u=e.method.toUpperCase();let p;let g=false;let E;r=+r;if(Number.isNaN(r)){throw TypeError(`Invalid protocol version: '${e.httpVersion}' is not a number`)}if(r!==1&&r!==2){throw TypeError(`Unsupported protocol version '${r}'`)}const h=r===2;if(i){const e=Ye(i,(e=>te.isArray(e)?e:[e]));i=(A,t,s)=>{e(A,t,((e,A,n)=>{if(e){return s(e)}const i=te.isArray(A)?A.map((e=>buildAddressEntry(e))):[buildAddressEntry(A,n)];t.all?s(e,i):s(e,i[0].address,i[0].family)}))}}const Q=new d.EventEmitter;function abort(A){try{Q.emit("abort",!A||A.type?new we(null,e,E):A)}catch(e){console.warn("emit error",e)}}Q.once("abort",t);const onFinished=()=>{if(e.cancelToken){e.cancelToken.unsubscribe(abort)}if(e.signal){e.signal.removeEventListener("abort",abort)}Q.removeAllListeners()};if(e.cancelToken||e.signal){e.cancelToken&&e.cancelToken.subscribe(abort);if(e.signal){e.signal.aborted?abort():e.signal.addEventListener("abort",abort)}}s(((e,A)=>{p=true;if(A){g=true;onFinished();return}const{data:t}=e;if(t instanceof w["default"].Readable||t instanceof w["default"].Duplex){const e=w["default"].finished(t,(()=>{e();onFinished()}))}else{onFinished()}}));const C=buildFullPath(e.baseURL,e.url,e.allowAbsoluteUrls);const I=new URL(C,Be.hasBrowserEnv?Be.origin:undefined);const y=I.protocol||qe[0];if(y==="data:"){if(e.maxContentLength>-1){const A=String(e.url||C||"");const s=estimateDataURLDecodedBytes(A);if(s>e.maxContentLength){return t(new se("maxContentLength size of "+e.maxContentLength+" exceeded",se.ERR_BAD_RESPONSE,e))}}let s;if(u!=="GET"){return settle(A,t,{status:405,statusText:"method not allowed",headers:{},config:e})}try{s=fromDataURI(e.url,c==="blob",{Blob:e.env&&e.env.Blob})}catch(A){throw se.from(A,se.ERR_BAD_REQUEST,e)}if(c==="text"){s=s.toString(l);if(!l||l==="utf8"){s=te.stripBOM(s)}}else if(c==="stream"){s=w["default"].Readable.from(s)}return settle(A,t,{data:s,status:200,statusText:"OK",headers:new be,config:e})}if(qe.indexOf(y)===-1){return t(new se("Unsupported protocol "+y,se.ERR_BAD_REQUEST,e))}const R=be.from(e.headers).normalize();R.set("User-Agent","axios/"+Re,false);const{onUploadProgress:x,onDownloadProgress:D}=e;const v=e.maxRate;let k=undefined;let S=undefined;if(te.isSpecCompliantForm(n)){const e=R.getContentType(/boundary=([-_\w\d]{10,70})/i);n=Te(n,(e=>{R.set(e)}),{tag:`axios-${Re}-boundary`,boundary:e&&e[1]||undefined})}else if(te.isFormData(n)&&te.isFunction(n.getHeaders)){R.set(n.getHeaders());if(!R.hasContentLength()){try{const e=await m["default"].promisify(n.getLength).call(n);Number.isFinite(e)&&e>=0&&R.setContentLength(e)}catch(e){}}}else if(te.isBlob(n)||te.isFile(n)){n.size&&R.setContentType(n.type||"application/octet-stream");R.setContentLength(n.size||0);n=w["default"].Readable.from(Se(n))}else if(n&&!te.isStream(n)){if(Buffer.isBuffer(n));else if(te.isArrayBuffer(n)){n=Buffer.from(new Uint8Array(n))}else if(te.isString(n)){n=Buffer.from(n,"utf-8")}else{return t(new se("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",se.ERR_BAD_REQUEST,e))}R.setContentLength(n.length,false);if(e.maxBodyLength>-1&&n.length>e.maxBodyLength){return t(new se("Request body larger than maxBodyLength limit",se.ERR_BAD_REQUEST,e))}}const F=te.toFiniteNumber(R.getContentLength());if(te.isArray(v)){k=v[0];S=v[1]}else{k=S=v}if(n&&(x||k)){if(!te.isStream(n)){n=w["default"].Readable.from(n,{objectMode:false})}n=w["default"].pipeline([n,new ve({maxRate:te.toFiniteNumber(k)})],te.noop);x&&n.on("progress",flushOnFinish(n,progressEventDecorator(F,progressEventReducer(asyncDecorator(x),false,3))))}let N=undefined;if(e.auth){const A=e.auth.username||"";const t=e.auth.password||"";N=A+":"+t}if(!N&&I.username){const e=I.username;const A=I.password;N=e+":"+A}N&&R.delete("authorization");let U;try{U=buildURL(I.pathname+I.search,e.params,e.paramsSerializer).replace(/^\?/,"")}catch(A){const s=new Error(A.message);s.config=e;s.url=e.url;s.exists=true;return t(s)}R.set("Accept-Encoding","gzip, compress, deflate"+(Oe?", br":""),false);const L={path:U,method:u,headers:R.toJSON(),agents:{http:e.httpAgent,https:e.httpsAgent},auth:N,protocol:y,family:o,beforeRedirect:dispatchBeforeRedirect,beforeRedirects:{},http2Options:a};!te.isUndefined(i)&&(L.lookup=i);if(e.socketPath){L.socketPath=e.socketPath}else{L.hostname=I.hostname.startsWith("[")?I.hostname.slice(1,-1):I.hostname;L.port=I.port;setProxy(L,e.proxy,y+"//"+I.hostname+(I.port?":"+I.port:"")+L.path)}let M;const T=_e.test(L.protocol);L.agent=T?e.httpsAgent:e.httpAgent;if(h){M=ze}else{if(e.transport){M=e.transport}else if(e.maxRedirects===0){M=T?f["default"]:B["default"]}else{if(e.maxRedirects){L.maxRedirects=e.maxRedirects}if(e.beforeRedirect){L.beforeRedirects.config=e.beforeRedirect}M=T?Pe:Ve}}if(e.maxBodyLength>-1){L.maxBodyLength=e.maxBodyLength}else{L.maxBodyLength=Infinity}if(e.insecureHTTPParser){L.insecureHTTPParser=e.insecureHTTPParser}E=M.request(L,(function handleResponse(s){if(E.destroyed)return;const n=[s];const i=te.toFiniteNumber(s.headers["content-length"]);if(D||S){const e=new ve({maxRate:te.toFiniteNumber(S)});D&&e.on("progress",flushOnFinish(e,progressEventDecorator(i,progressEventReducer(asyncDecorator(D),true,3))));n.push(e)}let o=s;const r=s.req||E;if(e.decompress!==false&&s.headers["content-encoding"]){if(u==="HEAD"||s.statusCode===204){delete s.headers["content-encoding"]}switch((s.headers["content-encoding"]||"").toLowerCase()){case"gzip":case"x-gzip":case"compress":case"x-compress":n.push(b["default"].createUnzip(Je));delete s.headers["content-encoding"];break;case"deflate":n.push(new He);n.push(b["default"].createUnzip(Je));delete s.headers["content-encoding"];break;case"br":if(Oe){n.push(b["default"].createBrotliDecompress(Ge));delete s.headers["content-encoding"]}}}o=n.length>1?w["default"].pipeline(n,te.noop):n[0];const a={status:s.statusCode,statusText:s.statusMessage,headers:new be(s.headers),config:e,request:r};if(c==="stream"){a.data=o;settle(A,t,a)}else{const s=[];let n=0;o.on("data",(function handleStreamData(A){s.push(A);n+=A.length;if(e.maxContentLength>-1&&n>e.maxContentLength){g=true;o.destroy();abort(new se("maxContentLength size of "+e.maxContentLength+" exceeded",se.ERR_BAD_RESPONSE,e,r))}}));o.on("aborted",(function handlerStreamAborted(){if(g){return}const A=new se("stream has been aborted",se.ERR_BAD_RESPONSE,e,r);o.destroy(A);t(A)}));o.on("error",(function handleStreamError(A){if(E.destroyed)return;t(se.from(A,null,e,r))}));o.on("end",(function handleStreamEnd(){try{let e=s.length===1?s[0]:Buffer.concat(s);if(c!=="arraybuffer"){e=e.toString(l);if(!l||l==="utf8"){e=te.stripBOM(e)}}a.data=e}catch(A){return t(se.from(A,null,e,a.request,a))}settle(A,t,a)}))}Q.once("abort",(e=>{if(!o.destroyed){o.emit("error",e);o.destroy()}}))}));Q.once("abort",(e=>{if(E.close){E.close()}else{E.destroy(e)}}));E.on("error",(function handleRequestError(A){t(se.from(A,null,e,E))}));E.on("socket",(function handleRequestSocket(e){e.setKeepAlive(true,1e3*60)}));if(e.timeout){const A=parseInt(e.timeout,10);if(Number.isNaN(A)){abort(new se("error trying to parse `config.timeout` to int",se.ERR_BAD_OPTION_VALUE,e,E));return}E.setTimeout(A,(function handleRequestTimeout(){if(p)return;let A=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded";const t=e.transitional||re;if(e.timeoutErrorMessage){A=e.timeoutErrorMessage}abort(new se(A,t.clarifyTimeoutError?se.ETIMEDOUT:se.ECONNABORTED,e,E))}))}else{E.setTimeout(0)}if(te.isStream(n)){let A=false;let t=false;n.on("end",(()=>{A=true}));n.once("error",(e=>{t=true;E.destroy(e)}));n.on("close",(()=>{if(!A&&!t){abort(new we("Request stream has been aborted",e,E))}}));n.pipe(E)}else{n&&E.write(n);E.end()}}))};const Xe=Be.hasStandardBrowserEnv?((e,A)=>t=>{t=new URL(t,Be.origin);return e.protocol===t.protocol&&e.host===t.host&&(A||e.port===t.port)})(new URL(Be.origin),Be.navigator&&/(msie|trident)/i.test(Be.navigator.userAgent)):()=>true;const Ke=Be.hasStandardBrowserEnv?{write(e,A,t,s,n,i,o){if(typeof document==="undefined")return;const r=[`${e}=${encodeURIComponent(A)}`];if(te.isNumber(t)){r.push(`expires=${new Date(t).toUTCString()}`)}if(te.isString(s)){r.push(`path=${s}`)}if(te.isString(n)){r.push(`domain=${n}`)}if(i===true){r.push("secure")}if(te.isString(o)){r.push(`SameSite=${o}`)}document.cookie=r.join("; ")},read(e){if(typeof document==="undefined")return null;const A=document.cookie.match(new RegExp("(?:^|; )"+e+"=([^;]*)"));return A?decodeURIComponent(A[1]):null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};const headersToObject=e=>e instanceof be?{...e}:e;function mergeConfig(e,A){A=A||{};const t={};function getMergedValue(e,A,t,s){if(te.isPlainObject(e)&&te.isPlainObject(A)){return te.merge.call({caseless:s},e,A)}else if(te.isPlainObject(A)){return te.merge({},A)}else if(te.isArray(A)){return A.slice()}return A}function mergeDeepProperties(e,A,t,s){if(!te.isUndefined(A)){return getMergedValue(e,A,t,s)}else if(!te.isUndefined(e)){return getMergedValue(undefined,e,t,s)}}function valueFromConfig2(e,A){if(!te.isUndefined(A)){return getMergedValue(undefined,A)}}function defaultToConfig2(e,A){if(!te.isUndefined(A)){return getMergedValue(undefined,A)}else if(!te.isUndefined(e)){return getMergedValue(undefined,e)}}function mergeDirectKeys(t,s,n){if(n in A){return getMergedValue(t,s)}else if(n in e){return getMergedValue(undefined,t)}}const s={url:valueFromConfig2,method:valueFromConfig2,data:valueFromConfig2,baseURL:defaultToConfig2,transformRequest:defaultToConfig2,transformResponse:defaultToConfig2,paramsSerializer:defaultToConfig2,timeout:defaultToConfig2,timeoutMessage:defaultToConfig2,withCredentials:defaultToConfig2,withXSRFToken:defaultToConfig2,adapter:defaultToConfig2,responseType:defaultToConfig2,xsrfCookieName:defaultToConfig2,xsrfHeaderName:defaultToConfig2,onUploadProgress:defaultToConfig2,onDownloadProgress:defaultToConfig2,decompress:defaultToConfig2,maxContentLength:defaultToConfig2,maxBodyLength:defaultToConfig2,beforeRedirect:defaultToConfig2,transport:defaultToConfig2,httpAgent:defaultToConfig2,httpsAgent:defaultToConfig2,cancelToken:defaultToConfig2,socketPath:defaultToConfig2,responseEncoding:defaultToConfig2,validateStatus:mergeDirectKeys,headers:(e,A,t)=>mergeDeepProperties(headersToObject(e),headersToObject(A),t,true)};te.forEach(Object.keys({...e,...A}),(function computeConfigValue(n){if(n==="__proto__"||n==="constructor"||n==="prototype")return;const i=te.hasOwnProp(s,n)?s[n]:mergeDeepProperties;const o=i(e[n],A[n],n);te.isUndefined(o)&&i!==mergeDirectKeys||(t[n]=o)}));return t}const resolveConfig=e=>{const A=mergeConfig({},e);let{data:t,withXSRFToken:s,xsrfHeaderName:n,xsrfCookieName:i,headers:o,auth:r}=A;A.headers=o=be.from(o);A.url=buildURL(buildFullPath(A.baseURL,A.url,A.allowAbsoluteUrls),e.params,e.paramsSerializer);if(r){o.set("Authorization","Basic "+btoa((r.username||"")+":"+(r.password?unescape(encodeURIComponent(r.password)):"")))}if(te.isFormData(t)){if(Be.hasStandardBrowserEnv||Be.hasStandardBrowserWebWorkerEnv){o.setContentType(undefined)}else if(te.isFunction(t.getHeaders)){const e=t.getHeaders();const A=["content-type","content-length"];Object.entries(e).forEach((([e,t])=>{if(A.includes(e.toLowerCase())){o.set(e,t)}}))}}if(Be.hasStandardBrowserEnv){s&&te.isFunction(s)&&(s=s(A));if(s||s!==false&&Xe(A.url)){const e=n&&i&&Ke.read(i);if(e){o.set(n,e)}}}return A};const $e=typeof XMLHttpRequest!=="undefined";const eA=$e&&function(e){return new Promise((function dispatchXhrRequest(A,t){const s=resolveConfig(e);let n=s.data;const i=be.from(s.headers).normalize();let{responseType:o,onUploadProgress:r,onDownloadProgress:a}=s;let c;let l,u;let p,g;function done(){p&&p();g&&g();s.cancelToken&&s.cancelToken.unsubscribe(c);s.signal&&s.signal.removeEventListener("abort",c)}let d=new XMLHttpRequest;d.open(s.method.toUpperCase(),s.url,true);d.timeout=s.timeout;function onloadend(){if(!d){return}const s=be.from("getAllResponseHeaders"in d&&d.getAllResponseHeaders());const n=!o||o==="text"||o==="json"?d.responseText:d.response;const i={data:n,status:d.status,statusText:d.statusText,headers:s,config:e,request:d};settle((function _resolve(e){A(e);done()}),(function _reject(e){t(e);done()}),i);d=null}if("onloadend"in d){d.onloadend=onloadend}else{d.onreadystatechange=function handleLoad(){if(!d||d.readyState!==4){return}if(d.status===0&&!(d.responseURL&&d.responseURL.indexOf("file:")===0)){return}setTimeout(onloadend)}}d.onabort=function handleAbort(){if(!d){return}t(new se("Request aborted",se.ECONNABORTED,e,d));d=null};d.onerror=function handleError(A){const s=A&&A.message?A.message:"Network Error";const n=new se(s,se.ERR_NETWORK,e,d);n.event=A||null;t(n);d=null};d.ontimeout=function handleTimeout(){let A=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const n=s.transitional||re;if(s.timeoutErrorMessage){A=s.timeoutErrorMessage}t(new se(A,n.clarifyTimeoutError?se.ETIMEDOUT:se.ECONNABORTED,e,d));d=null};n===undefined&&i.setContentType(null);if("setRequestHeader"in d){te.forEach(i.toJSON(),(function setRequestHeader(e,A){d.setRequestHeader(A,e)}))}if(!te.isUndefined(s.withCredentials)){d.withCredentials=!!s.withCredentials}if(o&&o!=="json"){d.responseType=s.responseType}if(a){[u,g]=progressEventReducer(a,true);d.addEventListener("progress",u)}if(r&&d.upload){[l,p]=progressEventReducer(r);d.upload.addEventListener("progress",l);d.upload.addEventListener("loadend",p)}if(s.cancelToken||s.signal){c=A=>{if(!d){return}t(!A||A.type?new we(null,e,d):A);d.abort();d=null};s.cancelToken&&s.cancelToken.subscribe(c);if(s.signal){s.signal.aborted?c():s.signal.addEventListener("abort",c)}}const E=parseProtocol(s.url);if(E&&Be.protocols.indexOf(E)===-1){t(new se("Unsupported protocol "+E+":",se.ERR_BAD_REQUEST,e));return}d.send(n||null)}))};const composeSignals=(e,A)=>{const{length:t}=e=e?e.filter(Boolean):[];if(A||t){let t=new AbortController;let s;const onabort=function(e){if(!s){s=true;unsubscribe();const A=e instanceof Error?e:this.reason;t.abort(A instanceof se?A:new we(A instanceof Error?A.message:A))}};let n=A&&setTimeout((()=>{n=null;onabort(new se(`timeout of ${A}ms exceeded`,se.ETIMEDOUT))}),A);const unsubscribe=()=>{if(e){n&&clearTimeout(n);n=null;e.forEach((e=>{e.unsubscribe?e.unsubscribe(onabort):e.removeEventListener("abort",onabort)}));e=null}};e.forEach((e=>e.addEventListener("abort",onabort)));const{signal:i}=t;i.unsubscribe=()=>te.asap(unsubscribe);return i}};const AA=composeSignals;const streamChunk=function*(e,A){let t=e.byteLength;if(!A||t{const n=readBytes(e,A);let i=0;let o;let _onFinish=e=>{if(!o){o=true;s&&s(e)}};return new ReadableStream({async pull(e){try{const{done:A,value:s}=await n.next();if(A){_onFinish();e.close();return}let o=s.byteLength;if(t){let e=i+=o;t(e)}e.enqueue(new Uint8Array(s))}catch(e){_onFinish(e);throw e}},cancel(e){_onFinish(e);return n.return()}},{highWaterMark:2})};const tA=64*1024;const{isFunction:sA}=te;const nA=(({Request:e,Response:A})=>({Request:e,Response:A}))(te.global);const{ReadableStream:iA,TextEncoder:oA}=te.global;const test=(e,...A)=>{try{return!!e(...A)}catch(e){return false}};const factory=e=>{e=te.merge.call({skipUndefined:true},nA,e);const{fetch:A,Request:t,Response:s}=e;const n=A?sA(A):typeof fetch==="function";const i=sA(t);const o=sA(s);if(!n){return false}const r=n&&sA(iA);const a=n&&(typeof oA==="function"?(e=>A=>e.encode(A))(new oA):async e=>new Uint8Array(await new t(e).arrayBuffer()));const c=i&&r&&test((()=>{let e=false;const A=new t(Be.origin,{body:new iA,method:"POST",get duplex(){e=true;return"half"}}).headers.has("Content-Type");return e&&!A}));const l=o&&r&&test((()=>te.isReadableStream(new s("").body)));const u={stream:l&&(e=>e.body)};n&&(()=>{["text","arrayBuffer","blob","formData","stream"].forEach((e=>{!u[e]&&(u[e]=(A,t)=>{let s=A&&A[e];if(s){return s.call(A)}throw new se(`Response type '${e}' is not supported`,se.ERR_NOT_SUPPORT,t)})}))})();const getBodyLength=async e=>{if(e==null){return 0}if(te.isBlob(e)){return e.size}if(te.isSpecCompliantForm(e)){const A=new t(Be.origin,{method:"POST",body:e});return(await A.arrayBuffer()).byteLength}if(te.isArrayBufferView(e)||te.isArrayBuffer(e)){return e.byteLength}if(te.isURLSearchParams(e)){e=e+""}if(te.isString(e)){return(await a(e)).byteLength}};const resolveBodyLength=async(e,A)=>{const t=te.toFiniteNumber(e.getContentLength());return t==null?getBodyLength(A):t};return async e=>{let{url:n,method:o,data:r,signal:a,cancelToken:p,timeout:g,onDownloadProgress:d,onUploadProgress:E,responseType:h,headers:Q,withCredentials:C="same-origin",fetchOptions:B}=resolveConfig(e);let f=A||fetch;h=h?(h+"").toLowerCase():"text";let I=AA([a,p&&p.toAbortSignal()],g);let m=null;const y=I&&I.unsubscribe&&(()=>{I.unsubscribe()});let b;try{if(E&&c&&o!=="get"&&o!=="head"&&(b=await resolveBodyLength(Q,r))!==0){let e=new t(n,{method:"POST",body:r,duplex:"half"});let A;if(te.isFormData(r)&&(A=e.headers.get("content-type"))){Q.setContentType(A)}if(e.body){const[A,t]=progressEventDecorator(b,progressEventReducer(asyncDecorator(E)));r=trackStream(e.body,tA,A,t)}}if(!te.isString(C)){C=C?"include":"omit"}const A=i&&"credentials"in t.prototype;const a={...B,signal:I,method:o.toUpperCase(),headers:Q.normalize().toJSON(),body:r,duplex:"half",credentials:A?C:undefined};m=i&&new t(n,a);let p=await(i?f(m,B):f(n,a));const g=l&&(h==="stream"||h==="response");if(l&&(d||g&&y)){const e={};["status","statusText","headers"].forEach((A=>{e[A]=p[A]}));const A=te.toFiniteNumber(p.headers.get("content-length"));const[t,n]=d&&progressEventDecorator(A,progressEventReducer(asyncDecorator(d),true))||[];p=new s(trackStream(p.body,tA,t,(()=>{n&&n();y&&y()})),e)}h=h||"text";let w=await u[te.findKey(u,h)||"text"](p,e);!g&&y&&y();return await new Promise(((A,t)=>{settle(A,t,{data:w,headers:be.from(p.headers),status:p.status,statusText:p.statusText,config:e,request:m})}))}catch(A){y&&y();if(A&&A.name==="TypeError"&&/Load failed|fetch/i.test(A.message)){throw Object.assign(new se("Network Error",se.ERR_NETWORK,e,m,A&&A.response),{cause:A.cause||A})}throw se.from(A,A&&A.code,e,m,A&&A.response)}}};const rA=new Map;const getFetch=e=>{let A=e&&e.env||{};const{fetch:t,Request:s,Response:n}=A;const i=[s,n,t];let o=i.length,r=o,a,c,l=rA;while(r--){a=i[r];c=l.get(a);c===undefined&&l.set(a,c=r?new Map:factory(A));l=c}return c};getFetch();const aA={http:Ze,xhr:eA,fetch:{get:getFetch}};te.forEach(aA,((e,A)=>{if(e){try{Object.defineProperty(e,"name",{value:A})}catch(e){}Object.defineProperty(e,"adapterName",{value:A})}}));const renderReason=e=>`- ${e}`;const isResolvedHandle=e=>te.isFunction(e)||e===null||e===false;function getAdapter(e,A){e=te.isArray(e)?e:[e];const{length:t}=e;let s;let n;const i={};for(let o=0;o`adapter ${e} `+(A===false?"is not supported by the environment":"is not available in the build")));let A=t?e.length>1?"since :\n"+e.map(renderReason).join("\n"):" "+renderReason(e[0]):"as no adapter specified";throw new se(`There is no suitable adapter to dispatch the request `+A,"ERR_NOT_SUPPORT")}return n}const cA={getAdapter:getAdapter,adapters:aA};function throwIfCancellationRequested(e){if(e.cancelToken){e.cancelToken.throwIfRequested()}if(e.signal&&e.signal.aborted){throw new we(null,e)}}function dispatchRequest(e){throwIfCancellationRequested(e);e.headers=be.from(e.headers);e.data=transformData.call(e,e.transformRequest);if(["post","put","patch"].indexOf(e.method)!==-1){e.headers.setContentType("application/x-www-form-urlencoded",false)}const A=cA.getAdapter(e.adapter||Ie.adapter,e);return A(e).then((function onAdapterResolution(A){throwIfCancellationRequested(e);A.data=transformData.call(e,e.transformResponse,A);A.headers=be.from(A.headers);return A}),(function onAdapterRejection(A){if(!isCancel(A)){throwIfCancellationRequested(e);if(A&&A.response){A.response.data=transformData.call(e,e.transformResponse,A.response);A.response.headers=be.from(A.response.headers)}}return Promise.reject(A)}))}const lA={};["object","boolean","number","function","string","symbol"].forEach(((e,A)=>{lA[e]=function validator(t){return typeof t===e||"a"+(A<1?"n ":" ")+e}}));const uA={};lA.transitional=function transitional(e,A,t){function formatMessage(e,A){return"[Axios v"+Re+"] Transitional option '"+e+"'"+A+(t?". "+t:"")}return(t,s,n)=>{if(e===false){throw new se(formatMessage(s," has been removed"+(A?" in "+A:"")),se.ERR_DEPRECATED)}if(A&&!uA[s]){uA[s]=true;console.warn(formatMessage(s," has been deprecated since v"+A+" and will be removed in the near future"))}return e?e(t,s,n):true}};lA.spelling=function spelling(e){return(A,t)=>{console.warn(`${t} is likely a misspelling of ${e}`);return true}};function assertOptions(e,A,t){if(typeof e!=="object"){throw new se("options must be an object",se.ERR_BAD_OPTION_VALUE)}const s=Object.keys(e);let n=s.length;while(n-- >0){const i=s[n];const o=A[i];if(o){const A=e[i];const t=A===undefined||o(A,i,e);if(t!==true){throw new se("option "+i+" must be "+t,se.ERR_BAD_OPTION_VALUE)}continue}if(t!==true){throw new se("Unknown option "+i,se.ERR_BAD_OPTION)}}}const pA={assertOptions:assertOptions,validators:lA};const gA=pA.validators;class Axios{constructor(e){this.defaults=e||{};this.interceptors={request:new oe,response:new oe}}async request(e,A){try{return await this._request(e,A)}catch(e){if(e instanceof Error){let A={};Error.captureStackTrace?Error.captureStackTrace(A):A=new Error;const t=A.stack?A.stack.replace(/^.+\n/,""):"";try{if(!e.stack){e.stack=t}else if(t&&!String(e.stack).endsWith(t.replace(/^.+\n.+\n/,""))){e.stack+="\n"+t}}catch(e){}}throw e}}_request(e,A){if(typeof e==="string"){A=A||{};A.url=e}else{A=e||{}}A=mergeConfig(this.defaults,A);const{transitional:t,paramsSerializer:s,headers:n}=A;if(t!==undefined){pA.assertOptions(t,{silentJSONParsing:gA.transitional(gA.boolean),forcedJSONParsing:gA.transitional(gA.boolean),clarifyTimeoutError:gA.transitional(gA.boolean),legacyInterceptorReqResOrdering:gA.transitional(gA.boolean)},false)}if(s!=null){if(te.isFunction(s)){A.paramsSerializer={serialize:s}}else{pA.assertOptions(s,{encode:gA.function,serialize:gA.function},true)}}if(A.allowAbsoluteUrls!==undefined);else if(this.defaults.allowAbsoluteUrls!==undefined){A.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls}else{A.allowAbsoluteUrls=true}pA.assertOptions(A,{baseUrl:gA.spelling("baseURL"),withXsrfToken:gA.spelling("withXSRFToken")},true);A.method=(A.method||this.defaults.method||"get").toLowerCase();let i=n&&te.merge(n.common,n[A.method]);n&&te.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete n[e]}));A.headers=be.concat(i,n);const o=[];let r=true;this.interceptors.request.forEach((function unshiftRequestInterceptors(e){if(typeof e.runWhen==="function"&&e.runWhen(A)===false){return}r=r&&e.synchronous;const t=A.transitional||re;const s=t&&t.legacyInterceptorReqResOrdering;if(s){o.unshift(e.fulfilled,e.rejected)}else{o.push(e.fulfilled,e.rejected)}}));const a=[];this.interceptors.response.forEach((function pushResponseInterceptors(e){a.push(e.fulfilled,e.rejected)}));let c;let l=0;let u;if(!r){const e=[dispatchRequest.bind(this),undefined];e.unshift(...o);e.push(...a);u=e.length;c=Promise.resolve(A);while(l{if(!t._listeners)return;let A=t._listeners.length;while(A-- >0){t._listeners[A](e)}t._listeners=null}));this.promise.then=e=>{let A;const s=new Promise((e=>{t.subscribe(e);A=e})).then(e);s.cancel=function reject(){t.unsubscribe(A)};return s};e((function cancel(e,s,n){if(t.reason){return}t.reason=new we(e,s,n);A(t.reason)}))}throwIfRequested(){if(this.reason){throw this.reason}}subscribe(e){if(this.reason){e(this.reason);return}if(this._listeners){this._listeners.push(e)}else{this._listeners=[e]}}unsubscribe(e){if(!this._listeners){return}const A=this._listeners.indexOf(e);if(A!==-1){this._listeners.splice(A,1)}}toAbortSignal(){const e=new AbortController;const abort=A=>{e.abort(A)};this.subscribe(abort);e.signal.unsubscribe=()=>this.unsubscribe(abort);return e.signal}static source(){let e;const A=new CancelToken((function executor(A){e=A}));return{token:A,cancel:e}}}const EA=CancelToken;function spread(e){return function wrap(A){return e.apply(null,A)}}function isAxiosError(e){return te.isObject(e)&&e.isAxiosError===true}const hA={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(hA).forEach((([e,A])=>{hA[A]=e}));const QA=hA;function createInstance(e){const A=new dA(e);const t=bind(dA.prototype.request,A);te.extend(t,dA.prototype,A,{allOwnKeys:true});te.extend(t,A,null,{allOwnKeys:true});t.create=function create(A){return createInstance(mergeConfig(e,A))};return t}const CA=createInstance(Ie);CA.Axios=dA;CA.CanceledError=we;CA.CancelToken=EA;CA.isCancel=isCancel;CA.VERSION=Re;CA.toFormData=toFormData;CA.AxiosError=se;CA.Cancel=CA.CanceledError;CA.all=function all(e){return Promise.all(e)};CA.spread=spread;CA.isAxiosError=isAxiosError;CA.mergeConfig=mergeConfig;CA.AxiosHeaders=be;CA.formToJSON=e=>formDataToJSON(te.isHTMLForm(e)?new FormData(e):e);CA.getAdapter=cA.getAdapter;CA.HttpStatusCode=QA;CA.default=CA;e.exports=CA},3765:e=>{"use strict";e.exports=JSON.parse('{"application/1d-interleaved-parityfec":{"source":"iana"},"application/3gpdash-qoe-report+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/3gpp-ims+xml":{"source":"iana","compressible":true},"application/3gpphal+json":{"source":"iana","compressible":true},"application/3gpphalforms+json":{"source":"iana","compressible":true},"application/a2l":{"source":"iana"},"application/ace+cbor":{"source":"iana"},"application/activemessage":{"source":"iana"},"application/activity+json":{"source":"iana","compressible":true},"application/alto-costmap+json":{"source":"iana","compressible":true},"application/alto-costmapfilter+json":{"source":"iana","compressible":true},"application/alto-directory+json":{"source":"iana","compressible":true},"application/alto-endpointcost+json":{"source":"iana","compressible":true},"application/alto-endpointcostparams+json":{"source":"iana","compressible":true},"application/alto-endpointprop+json":{"source":"iana","compressible":true},"application/alto-endpointpropparams+json":{"source":"iana","compressible":true},"application/alto-error+json":{"source":"iana","compressible":true},"application/alto-networkmap+json":{"source":"iana","compressible":true},"application/alto-networkmapfilter+json":{"source":"iana","compressible":true},"application/alto-updatestreamcontrol+json":{"source":"iana","compressible":true},"application/alto-updatestreamparams+json":{"source":"iana","compressible":true},"application/aml":{"source":"iana"},"application/andrew-inset":{"source":"iana","extensions":["ez"]},"application/applefile":{"source":"iana"},"application/applixware":{"source":"apache","extensions":["aw"]},"application/at+jwt":{"source":"iana"},"application/atf":{"source":"iana"},"application/atfx":{"source":"iana"},"application/atom+xml":{"source":"iana","compressible":true,"extensions":["atom"]},"application/atomcat+xml":{"source":"iana","compressible":true,"extensions":["atomcat"]},"application/atomdeleted+xml":{"source":"iana","compressible":true,"extensions":["atomdeleted"]},"application/atomicmail":{"source":"iana"},"application/atomsvc+xml":{"source":"iana","compressible":true,"extensions":["atomsvc"]},"application/atsc-dwd+xml":{"source":"iana","compressible":true,"extensions":["dwd"]},"application/atsc-dynamic-event-message":{"source":"iana"},"application/atsc-held+xml":{"source":"iana","compressible":true,"extensions":["held"]},"application/atsc-rdt+json":{"source":"iana","compressible":true},"application/atsc-rsat+xml":{"source":"iana","compressible":true,"extensions":["rsat"]},"application/atxml":{"source":"iana"},"application/auth-policy+xml":{"source":"iana","compressible":true},"application/bacnet-xdd+zip":{"source":"iana","compressible":false},"application/batch-smtp":{"source":"iana"},"application/bdoc":{"compressible":false,"extensions":["bdoc"]},"application/beep+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/calendar+json":{"source":"iana","compressible":true},"application/calendar+xml":{"source":"iana","compressible":true,"extensions":["xcs"]},"application/call-completion":{"source":"iana"},"application/cals-1840":{"source":"iana"},"application/captive+json":{"source":"iana","compressible":true},"application/cbor":{"source":"iana"},"application/cbor-seq":{"source":"iana"},"application/cccex":{"source":"iana"},"application/ccmp+xml":{"source":"iana","compressible":true},"application/ccxml+xml":{"source":"iana","compressible":true,"extensions":["ccxml"]},"application/cdfx+xml":{"source":"iana","compressible":true,"extensions":["cdfx"]},"application/cdmi-capability":{"source":"iana","extensions":["cdmia"]},"application/cdmi-container":{"source":"iana","extensions":["cdmic"]},"application/cdmi-domain":{"source":"iana","extensions":["cdmid"]},"application/cdmi-object":{"source":"iana","extensions":["cdmio"]},"application/cdmi-queue":{"source":"iana","extensions":["cdmiq"]},"application/cdni":{"source":"iana"},"application/cea":{"source":"iana"},"application/cea-2018+xml":{"source":"iana","compressible":true},"application/cellml+xml":{"source":"iana","compressible":true},"application/cfw":{"source":"iana"},"application/city+json":{"source":"iana","compressible":true},"application/clr":{"source":"iana"},"application/clue+xml":{"source":"iana","compressible":true},"application/clue_info+xml":{"source":"iana","compressible":true},"application/cms":{"source":"iana"},"application/cnrp+xml":{"source":"iana","compressible":true},"application/coap-group+json":{"source":"iana","compressible":true},"application/coap-payload":{"source":"iana"},"application/commonground":{"source":"iana"},"application/conference-info+xml":{"source":"iana","compressible":true},"application/cose":{"source":"iana"},"application/cose-key":{"source":"iana"},"application/cose-key-set":{"source":"iana"},"application/cpl+xml":{"source":"iana","compressible":true,"extensions":["cpl"]},"application/csrattrs":{"source":"iana"},"application/csta+xml":{"source":"iana","compressible":true},"application/cstadata+xml":{"source":"iana","compressible":true},"application/csvm+json":{"source":"iana","compressible":true},"application/cu-seeme":{"source":"apache","extensions":["cu"]},"application/cwt":{"source":"iana"},"application/cybercash":{"source":"iana"},"application/dart":{"compressible":true},"application/dash+xml":{"source":"iana","compressible":true,"extensions":["mpd"]},"application/dash-patch+xml":{"source":"iana","compressible":true,"extensions":["mpp"]},"application/dashdelta":{"source":"iana"},"application/davmount+xml":{"source":"iana","compressible":true,"extensions":["davmount"]},"application/dca-rft":{"source":"iana"},"application/dcd":{"source":"iana"},"application/dec-dx":{"source":"iana"},"application/dialog-info+xml":{"source":"iana","compressible":true},"application/dicom":{"source":"iana"},"application/dicom+json":{"source":"iana","compressible":true},"application/dicom+xml":{"source":"iana","compressible":true},"application/dii":{"source":"iana"},"application/dit":{"source":"iana"},"application/dns":{"source":"iana"},"application/dns+json":{"source":"iana","compressible":true},"application/dns-message":{"source":"iana"},"application/docbook+xml":{"source":"apache","compressible":true,"extensions":["dbk"]},"application/dots+cbor":{"source":"iana"},"application/dskpp+xml":{"source":"iana","compressible":true},"application/dssc+der":{"source":"iana","extensions":["dssc"]},"application/dssc+xml":{"source":"iana","compressible":true,"extensions":["xdssc"]},"application/dvcs":{"source":"iana"},"application/ecmascript":{"source":"iana","compressible":true,"extensions":["es","ecma"]},"application/edi-consent":{"source":"iana"},"application/edi-x12":{"source":"iana","compressible":false},"application/edifact":{"source":"iana","compressible":false},"application/efi":{"source":"iana"},"application/elm+json":{"source":"iana","charset":"UTF-8","compressible":true},"application/elm+xml":{"source":"iana","compressible":true},"application/emergencycalldata.cap+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/emergencycalldata.comment+xml":{"source":"iana","compressible":true},"application/emergencycalldata.control+xml":{"source":"iana","compressible":true},"application/emergencycalldata.deviceinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.ecall.msd":{"source":"iana"},"application/emergencycalldata.providerinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.serviceinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.subscriberinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.veds+xml":{"source":"iana","compressible":true},"application/emma+xml":{"source":"iana","compressible":true,"extensions":["emma"]},"application/emotionml+xml":{"source":"iana","compressible":true,"extensions":["emotionml"]},"application/encaprtp":{"source":"iana"},"application/epp+xml":{"source":"iana","compressible":true},"application/epub+zip":{"source":"iana","compressible":false,"extensions":["epub"]},"application/eshop":{"source":"iana"},"application/exi":{"source":"iana","extensions":["exi"]},"application/expect-ct-report+json":{"source":"iana","compressible":true},"application/express":{"source":"iana","extensions":["exp"]},"application/fastinfoset":{"source":"iana"},"application/fastsoap":{"source":"iana"},"application/fdt+xml":{"source":"iana","compressible":true,"extensions":["fdt"]},"application/fhir+json":{"source":"iana","charset":"UTF-8","compressible":true},"application/fhir+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/fido.trusted-apps+json":{"compressible":true},"application/fits":{"source":"iana"},"application/flexfec":{"source":"iana"},"application/font-sfnt":{"source":"iana"},"application/font-tdpfr":{"source":"iana","extensions":["pfr"]},"application/font-woff":{"source":"iana","compressible":false},"application/framework-attributes+xml":{"source":"iana","compressible":true},"application/geo+json":{"source":"iana","compressible":true,"extensions":["geojson"]},"application/geo+json-seq":{"source":"iana"},"application/geopackage+sqlite3":{"source":"iana"},"application/geoxacml+xml":{"source":"iana","compressible":true},"application/gltf-buffer":{"source":"iana"},"application/gml+xml":{"source":"iana","compressible":true,"extensions":["gml"]},"application/gpx+xml":{"source":"apache","compressible":true,"extensions":["gpx"]},"application/gxf":{"source":"apache","extensions":["gxf"]},"application/gzip":{"source":"iana","compressible":false,"extensions":["gz"]},"application/h224":{"source":"iana"},"application/held+xml":{"source":"iana","compressible":true},"application/hjson":{"extensions":["hjson"]},"application/http":{"source":"iana"},"application/hyperstudio":{"source":"iana","extensions":["stk"]},"application/ibe-key-request+xml":{"source":"iana","compressible":true},"application/ibe-pkg-reply+xml":{"source":"iana","compressible":true},"application/ibe-pp-data":{"source":"iana"},"application/iges":{"source":"iana"},"application/im-iscomposing+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/index":{"source":"iana"},"application/index.cmd":{"source":"iana"},"application/index.obj":{"source":"iana"},"application/index.response":{"source":"iana"},"application/index.vnd":{"source":"iana"},"application/inkml+xml":{"source":"iana","compressible":true,"extensions":["ink","inkml"]},"application/iotp":{"source":"iana"},"application/ipfix":{"source":"iana","extensions":["ipfix"]},"application/ipp":{"source":"iana"},"application/isup":{"source":"iana"},"application/its+xml":{"source":"iana","compressible":true,"extensions":["its"]},"application/java-archive":{"source":"apache","compressible":false,"extensions":["jar","war","ear"]},"application/java-serialized-object":{"source":"apache","compressible":false,"extensions":["ser"]},"application/java-vm":{"source":"apache","compressible":false,"extensions":["class"]},"application/javascript":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["js","mjs"]},"application/jf2feed+json":{"source":"iana","compressible":true},"application/jose":{"source":"iana"},"application/jose+json":{"source":"iana","compressible":true},"application/jrd+json":{"source":"iana","compressible":true},"application/jscalendar+json":{"source":"iana","compressible":true},"application/json":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["json","map"]},"application/json-patch+json":{"source":"iana","compressible":true},"application/json-seq":{"source":"iana"},"application/json5":{"extensions":["json5"]},"application/jsonml+json":{"source":"apache","compressible":true,"extensions":["jsonml"]},"application/jwk+json":{"source":"iana","compressible":true},"application/jwk-set+json":{"source":"iana","compressible":true},"application/jwt":{"source":"iana"},"application/kpml-request+xml":{"source":"iana","compressible":true},"application/kpml-response+xml":{"source":"iana","compressible":true},"application/ld+json":{"source":"iana","compressible":true,"extensions":["jsonld"]},"application/lgr+xml":{"source":"iana","compressible":true,"extensions":["lgr"]},"application/link-format":{"source":"iana"},"application/load-control+xml":{"source":"iana","compressible":true},"application/lost+xml":{"source":"iana","compressible":true,"extensions":["lostxml"]},"application/lostsync+xml":{"source":"iana","compressible":true},"application/lpf+zip":{"source":"iana","compressible":false},"application/lxf":{"source":"iana"},"application/mac-binhex40":{"source":"iana","extensions":["hqx"]},"application/mac-compactpro":{"source":"apache","extensions":["cpt"]},"application/macwriteii":{"source":"iana"},"application/mads+xml":{"source":"iana","compressible":true,"extensions":["mads"]},"application/manifest+json":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["webmanifest"]},"application/marc":{"source":"iana","extensions":["mrc"]},"application/marcxml+xml":{"source":"iana","compressible":true,"extensions":["mrcx"]},"application/mathematica":{"source":"iana","extensions":["ma","nb","mb"]},"application/mathml+xml":{"source":"iana","compressible":true,"extensions":["mathml"]},"application/mathml-content+xml":{"source":"iana","compressible":true},"application/mathml-presentation+xml":{"source":"iana","compressible":true},"application/mbms-associated-procedure-description+xml":{"source":"iana","compressible":true},"application/mbms-deregister+xml":{"source":"iana","compressible":true},"application/mbms-envelope+xml":{"source":"iana","compressible":true},"application/mbms-msk+xml":{"source":"iana","compressible":true},"application/mbms-msk-response+xml":{"source":"iana","compressible":true},"application/mbms-protection-description+xml":{"source":"iana","compressible":true},"application/mbms-reception-report+xml":{"source":"iana","compressible":true},"application/mbms-register+xml":{"source":"iana","compressible":true},"application/mbms-register-response+xml":{"source":"iana","compressible":true},"application/mbms-schedule+xml":{"source":"iana","compressible":true},"application/mbms-user-service-description+xml":{"source":"iana","compressible":true},"application/mbox":{"source":"iana","extensions":["mbox"]},"application/media-policy-dataset+xml":{"source":"iana","compressible":true,"extensions":["mpf"]},"application/media_control+xml":{"source":"iana","compressible":true},"application/mediaservercontrol+xml":{"source":"iana","compressible":true,"extensions":["mscml"]},"application/merge-patch+json":{"source":"iana","compressible":true},"application/metalink+xml":{"source":"apache","compressible":true,"extensions":["metalink"]},"application/metalink4+xml":{"source":"iana","compressible":true,"extensions":["meta4"]},"application/mets+xml":{"source":"iana","compressible":true,"extensions":["mets"]},"application/mf4":{"source":"iana"},"application/mikey":{"source":"iana"},"application/mipc":{"source":"iana"},"application/missing-blocks+cbor-seq":{"source":"iana"},"application/mmt-aei+xml":{"source":"iana","compressible":true,"extensions":["maei"]},"application/mmt-usd+xml":{"source":"iana","compressible":true,"extensions":["musd"]},"application/mods+xml":{"source":"iana","compressible":true,"extensions":["mods"]},"application/moss-keys":{"source":"iana"},"application/moss-signature":{"source":"iana"},"application/mosskey-data":{"source":"iana"},"application/mosskey-request":{"source":"iana"},"application/mp21":{"source":"iana","extensions":["m21","mp21"]},"application/mp4":{"source":"iana","extensions":["mp4s","m4p"]},"application/mpeg4-generic":{"source":"iana"},"application/mpeg4-iod":{"source":"iana"},"application/mpeg4-iod-xmt":{"source":"iana"},"application/mrb-consumer+xml":{"source":"iana","compressible":true},"application/mrb-publish+xml":{"source":"iana","compressible":true},"application/msc-ivr+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/msc-mixer+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/msword":{"source":"iana","compressible":false,"extensions":["doc","dot"]},"application/mud+json":{"source":"iana","compressible":true},"application/multipart-core":{"source":"iana"},"application/mxf":{"source":"iana","extensions":["mxf"]},"application/n-quads":{"source":"iana","extensions":["nq"]},"application/n-triples":{"source":"iana","extensions":["nt"]},"application/nasdata":{"source":"iana"},"application/news-checkgroups":{"source":"iana","charset":"US-ASCII"},"application/news-groupinfo":{"source":"iana","charset":"US-ASCII"},"application/news-transmission":{"source":"iana"},"application/nlsml+xml":{"source":"iana","compressible":true},"application/node":{"source":"iana","extensions":["cjs"]},"application/nss":{"source":"iana"},"application/oauth-authz-req+jwt":{"source":"iana"},"application/oblivious-dns-message":{"source":"iana"},"application/ocsp-request":{"source":"iana"},"application/ocsp-response":{"source":"iana"},"application/octet-stream":{"source":"iana","compressible":false,"extensions":["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"]},"application/oda":{"source":"iana","extensions":["oda"]},"application/odm+xml":{"source":"iana","compressible":true},"application/odx":{"source":"iana"},"application/oebps-package+xml":{"source":"iana","compressible":true,"extensions":["opf"]},"application/ogg":{"source":"iana","compressible":false,"extensions":["ogx"]},"application/omdoc+xml":{"source":"apache","compressible":true,"extensions":["omdoc"]},"application/onenote":{"source":"apache","extensions":["onetoc","onetoc2","onetmp","onepkg"]},"application/opc-nodeset+xml":{"source":"iana","compressible":true},"application/oscore":{"source":"iana"},"application/oxps":{"source":"iana","extensions":["oxps"]},"application/p21":{"source":"iana"},"application/p21+zip":{"source":"iana","compressible":false},"application/p2p-overlay+xml":{"source":"iana","compressible":true,"extensions":["relo"]},"application/parityfec":{"source":"iana"},"application/passport":{"source":"iana"},"application/patch-ops-error+xml":{"source":"iana","compressible":true,"extensions":["xer"]},"application/pdf":{"source":"iana","compressible":false,"extensions":["pdf"]},"application/pdx":{"source":"iana"},"application/pem-certificate-chain":{"source":"iana"},"application/pgp-encrypted":{"source":"iana","compressible":false,"extensions":["pgp"]},"application/pgp-keys":{"source":"iana","extensions":["asc"]},"application/pgp-signature":{"source":"iana","extensions":["asc","sig"]},"application/pics-rules":{"source":"apache","extensions":["prf"]},"application/pidf+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/pidf-diff+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/pkcs10":{"source":"iana","extensions":["p10"]},"application/pkcs12":{"source":"iana"},"application/pkcs7-mime":{"source":"iana","extensions":["p7m","p7c"]},"application/pkcs7-signature":{"source":"iana","extensions":["p7s"]},"application/pkcs8":{"source":"iana","extensions":["p8"]},"application/pkcs8-encrypted":{"source":"iana"},"application/pkix-attr-cert":{"source":"iana","extensions":["ac"]},"application/pkix-cert":{"source":"iana","extensions":["cer"]},"application/pkix-crl":{"source":"iana","extensions":["crl"]},"application/pkix-pkipath":{"source":"iana","extensions":["pkipath"]},"application/pkixcmp":{"source":"iana","extensions":["pki"]},"application/pls+xml":{"source":"iana","compressible":true,"extensions":["pls"]},"application/poc-settings+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/postscript":{"source":"iana","compressible":true,"extensions":["ai","eps","ps"]},"application/ppsp-tracker+json":{"source":"iana","compressible":true},"application/problem+json":{"source":"iana","compressible":true},"application/problem+xml":{"source":"iana","compressible":true},"application/provenance+xml":{"source":"iana","compressible":true,"extensions":["provx"]},"application/prs.alvestrand.titrax-sheet":{"source":"iana"},"application/prs.cww":{"source":"iana","extensions":["cww"]},"application/prs.cyn":{"source":"iana","charset":"7-BIT"},"application/prs.hpub+zip":{"source":"iana","compressible":false},"application/prs.nprend":{"source":"iana"},"application/prs.plucker":{"source":"iana"},"application/prs.rdf-xml-crypt":{"source":"iana"},"application/prs.xsf+xml":{"source":"iana","compressible":true},"application/pskc+xml":{"source":"iana","compressible":true,"extensions":["pskcxml"]},"application/pvd+json":{"source":"iana","compressible":true},"application/qsig":{"source":"iana"},"application/raml+yaml":{"compressible":true,"extensions":["raml"]},"application/raptorfec":{"source":"iana"},"application/rdap+json":{"source":"iana","compressible":true},"application/rdf+xml":{"source":"iana","compressible":true,"extensions":["rdf","owl"]},"application/reginfo+xml":{"source":"iana","compressible":true,"extensions":["rif"]},"application/relax-ng-compact-syntax":{"source":"iana","extensions":["rnc"]},"application/remote-printing":{"source":"iana"},"application/reputon+json":{"source":"iana","compressible":true},"application/resource-lists+xml":{"source":"iana","compressible":true,"extensions":["rl"]},"application/resource-lists-diff+xml":{"source":"iana","compressible":true,"extensions":["rld"]},"application/rfc+xml":{"source":"iana","compressible":true},"application/riscos":{"source":"iana"},"application/rlmi+xml":{"source":"iana","compressible":true},"application/rls-services+xml":{"source":"iana","compressible":true,"extensions":["rs"]},"application/route-apd+xml":{"source":"iana","compressible":true,"extensions":["rapd"]},"application/route-s-tsid+xml":{"source":"iana","compressible":true,"extensions":["sls"]},"application/route-usd+xml":{"source":"iana","compressible":true,"extensions":["rusd"]},"application/rpki-ghostbusters":{"source":"iana","extensions":["gbr"]},"application/rpki-manifest":{"source":"iana","extensions":["mft"]},"application/rpki-publication":{"source":"iana"},"application/rpki-roa":{"source":"iana","extensions":["roa"]},"application/rpki-updown":{"source":"iana"},"application/rsd+xml":{"source":"apache","compressible":true,"extensions":["rsd"]},"application/rss+xml":{"source":"apache","compressible":true,"extensions":["rss"]},"application/rtf":{"source":"iana","compressible":true,"extensions":["rtf"]},"application/rtploopback":{"source":"iana"},"application/rtx":{"source":"iana"},"application/samlassertion+xml":{"source":"iana","compressible":true},"application/samlmetadata+xml":{"source":"iana","compressible":true},"application/sarif+json":{"source":"iana","compressible":true},"application/sarif-external-properties+json":{"source":"iana","compressible":true},"application/sbe":{"source":"iana"},"application/sbml+xml":{"source":"iana","compressible":true,"extensions":["sbml"]},"application/scaip+xml":{"source":"iana","compressible":true},"application/scim+json":{"source":"iana","compressible":true},"application/scvp-cv-request":{"source":"iana","extensions":["scq"]},"application/scvp-cv-response":{"source":"iana","extensions":["scs"]},"application/scvp-vp-request":{"source":"iana","extensions":["spq"]},"application/scvp-vp-response":{"source":"iana","extensions":["spp"]},"application/sdp":{"source":"iana","extensions":["sdp"]},"application/secevent+jwt":{"source":"iana"},"application/senml+cbor":{"source":"iana"},"application/senml+json":{"source":"iana","compressible":true},"application/senml+xml":{"source":"iana","compressible":true,"extensions":["senmlx"]},"application/senml-etch+cbor":{"source":"iana"},"application/senml-etch+json":{"source":"iana","compressible":true},"application/senml-exi":{"source":"iana"},"application/sensml+cbor":{"source":"iana"},"application/sensml+json":{"source":"iana","compressible":true},"application/sensml+xml":{"source":"iana","compressible":true,"extensions":["sensmlx"]},"application/sensml-exi":{"source":"iana"},"application/sep+xml":{"source":"iana","compressible":true},"application/sep-exi":{"source":"iana"},"application/session-info":{"source":"iana"},"application/set-payment":{"source":"iana"},"application/set-payment-initiation":{"source":"iana","extensions":["setpay"]},"application/set-registration":{"source":"iana"},"application/set-registration-initiation":{"source":"iana","extensions":["setreg"]},"application/sgml":{"source":"iana"},"application/sgml-open-catalog":{"source":"iana"},"application/shf+xml":{"source":"iana","compressible":true,"extensions":["shf"]},"application/sieve":{"source":"iana","extensions":["siv","sieve"]},"application/simple-filter+xml":{"source":"iana","compressible":true},"application/simple-message-summary":{"source":"iana"},"application/simplesymbolcontainer":{"source":"iana"},"application/sipc":{"source":"iana"},"application/slate":{"source":"iana"},"application/smil":{"source":"iana"},"application/smil+xml":{"source":"iana","compressible":true,"extensions":["smi","smil"]},"application/smpte336m":{"source":"iana"},"application/soap+fastinfoset":{"source":"iana"},"application/soap+xml":{"source":"iana","compressible":true},"application/sparql-query":{"source":"iana","extensions":["rq"]},"application/sparql-results+xml":{"source":"iana","compressible":true,"extensions":["srx"]},"application/spdx+json":{"source":"iana","compressible":true},"application/spirits-event+xml":{"source":"iana","compressible":true},"application/sql":{"source":"iana"},"application/srgs":{"source":"iana","extensions":["gram"]},"application/srgs+xml":{"source":"iana","compressible":true,"extensions":["grxml"]},"application/sru+xml":{"source":"iana","compressible":true,"extensions":["sru"]},"application/ssdl+xml":{"source":"apache","compressible":true,"extensions":["ssdl"]},"application/ssml+xml":{"source":"iana","compressible":true,"extensions":["ssml"]},"application/stix+json":{"source":"iana","compressible":true},"application/swid+xml":{"source":"iana","compressible":true,"extensions":["swidtag"]},"application/tamp-apex-update":{"source":"iana"},"application/tamp-apex-update-confirm":{"source":"iana"},"application/tamp-community-update":{"source":"iana"},"application/tamp-community-update-confirm":{"source":"iana"},"application/tamp-error":{"source":"iana"},"application/tamp-sequence-adjust":{"source":"iana"},"application/tamp-sequence-adjust-confirm":{"source":"iana"},"application/tamp-status-query":{"source":"iana"},"application/tamp-status-response":{"source":"iana"},"application/tamp-update":{"source":"iana"},"application/tamp-update-confirm":{"source":"iana"},"application/tar":{"compressible":true},"application/taxii+json":{"source":"iana","compressible":true},"application/td+json":{"source":"iana","compressible":true},"application/tei+xml":{"source":"iana","compressible":true,"extensions":["tei","teicorpus"]},"application/tetra_isi":{"source":"iana"},"application/thraud+xml":{"source":"iana","compressible":true,"extensions":["tfi"]},"application/timestamp-query":{"source":"iana"},"application/timestamp-reply":{"source":"iana"},"application/timestamped-data":{"source":"iana","extensions":["tsd"]},"application/tlsrpt+gzip":{"source":"iana"},"application/tlsrpt+json":{"source":"iana","compressible":true},"application/tnauthlist":{"source":"iana"},"application/token-introspection+jwt":{"source":"iana"},"application/toml":{"compressible":true,"extensions":["toml"]},"application/trickle-ice-sdpfrag":{"source":"iana"},"application/trig":{"source":"iana","extensions":["trig"]},"application/ttml+xml":{"source":"iana","compressible":true,"extensions":["ttml"]},"application/tve-trigger":{"source":"iana"},"application/tzif":{"source":"iana"},"application/tzif-leap":{"source":"iana"},"application/ubjson":{"compressible":false,"extensions":["ubj"]},"application/ulpfec":{"source":"iana"},"application/urc-grpsheet+xml":{"source":"iana","compressible":true},"application/urc-ressheet+xml":{"source":"iana","compressible":true,"extensions":["rsheet"]},"application/urc-targetdesc+xml":{"source":"iana","compressible":true,"extensions":["td"]},"application/urc-uisocketdesc+xml":{"source":"iana","compressible":true},"application/vcard+json":{"source":"iana","compressible":true},"application/vcard+xml":{"source":"iana","compressible":true},"application/vemmi":{"source":"iana"},"application/vividence.scriptfile":{"source":"apache"},"application/vnd.1000minds.decision-model+xml":{"source":"iana","compressible":true,"extensions":["1km"]},"application/vnd.3gpp-prose+xml":{"source":"iana","compressible":true},"application/vnd.3gpp-prose-pc3ch+xml":{"source":"iana","compressible":true},"application/vnd.3gpp-v2x-local-service-information":{"source":"iana"},"application/vnd.3gpp.5gnas":{"source":"iana"},"application/vnd.3gpp.access-transfer-events+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.bsf+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.gmop+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.gtpc":{"source":"iana"},"application/vnd.3gpp.interworking-data":{"source":"iana"},"application/vnd.3gpp.lpp":{"source":"iana"},"application/vnd.3gpp.mc-signalling-ear":{"source":"iana"},"application/vnd.3gpp.mcdata-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-payload":{"source":"iana"},"application/vnd.3gpp.mcdata-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-signalling":{"source":"iana"},"application/vnd.3gpp.mcdata-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-floor-request+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-location-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-mbms-usage-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-signed+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-ue-init-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-affiliation-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-location-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-mbms-usage-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-transmission-request+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mid-call+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.ngap":{"source":"iana"},"application/vnd.3gpp.pfcp":{"source":"iana"},"application/vnd.3gpp.pic-bw-large":{"source":"iana","extensions":["plb"]},"application/vnd.3gpp.pic-bw-small":{"source":"iana","extensions":["psb"]},"application/vnd.3gpp.pic-bw-var":{"source":"iana","extensions":["pvb"]},"application/vnd.3gpp.s1ap":{"source":"iana"},"application/vnd.3gpp.sms":{"source":"iana"},"application/vnd.3gpp.sms+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.srvcc-ext+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.srvcc-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.state-and-event-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.ussd+xml":{"source":"iana","compressible":true},"application/vnd.3gpp2.bcmcsinfo+xml":{"source":"iana","compressible":true},"application/vnd.3gpp2.sms":{"source":"iana"},"application/vnd.3gpp2.tcap":{"source":"iana","extensions":["tcap"]},"application/vnd.3lightssoftware.imagescal":{"source":"iana"},"application/vnd.3m.post-it-notes":{"source":"iana","extensions":["pwn"]},"application/vnd.accpac.simply.aso":{"source":"iana","extensions":["aso"]},"application/vnd.accpac.simply.imp":{"source":"iana","extensions":["imp"]},"application/vnd.acucobol":{"source":"iana","extensions":["acu"]},"application/vnd.acucorp":{"source":"iana","extensions":["atc","acutc"]},"application/vnd.adobe.air-application-installer-package+zip":{"source":"apache","compressible":false,"extensions":["air"]},"application/vnd.adobe.flash.movie":{"source":"iana"},"application/vnd.adobe.formscentral.fcdt":{"source":"iana","extensions":["fcdt"]},"application/vnd.adobe.fxp":{"source":"iana","extensions":["fxp","fxpl"]},"application/vnd.adobe.partial-upload":{"source":"iana"},"application/vnd.adobe.xdp+xml":{"source":"iana","compressible":true,"extensions":["xdp"]},"application/vnd.adobe.xfdf":{"source":"iana","extensions":["xfdf"]},"application/vnd.aether.imp":{"source":"iana"},"application/vnd.afpc.afplinedata":{"source":"iana"},"application/vnd.afpc.afplinedata-pagedef":{"source":"iana"},"application/vnd.afpc.cmoca-cmresource":{"source":"iana"},"application/vnd.afpc.foca-charset":{"source":"iana"},"application/vnd.afpc.foca-codedfont":{"source":"iana"},"application/vnd.afpc.foca-codepage":{"source":"iana"},"application/vnd.afpc.modca":{"source":"iana"},"application/vnd.afpc.modca-cmtable":{"source":"iana"},"application/vnd.afpc.modca-formdef":{"source":"iana"},"application/vnd.afpc.modca-mediummap":{"source":"iana"},"application/vnd.afpc.modca-objectcontainer":{"source":"iana"},"application/vnd.afpc.modca-overlay":{"source":"iana"},"application/vnd.afpc.modca-pagesegment":{"source":"iana"},"application/vnd.age":{"source":"iana","extensions":["age"]},"application/vnd.ah-barcode":{"source":"iana"},"application/vnd.ahead.space":{"source":"iana","extensions":["ahead"]},"application/vnd.airzip.filesecure.azf":{"source":"iana","extensions":["azf"]},"application/vnd.airzip.filesecure.azs":{"source":"iana","extensions":["azs"]},"application/vnd.amadeus+json":{"source":"iana","compressible":true},"application/vnd.amazon.ebook":{"source":"apache","extensions":["azw"]},"application/vnd.amazon.mobi8-ebook":{"source":"iana"},"application/vnd.americandynamics.acc":{"source":"iana","extensions":["acc"]},"application/vnd.amiga.ami":{"source":"iana","extensions":["ami"]},"application/vnd.amundsen.maze+xml":{"source":"iana","compressible":true},"application/vnd.android.ota":{"source":"iana"},"application/vnd.android.package-archive":{"source":"apache","compressible":false,"extensions":["apk"]},"application/vnd.anki":{"source":"iana"},"application/vnd.anser-web-certificate-issue-initiation":{"source":"iana","extensions":["cii"]},"application/vnd.anser-web-funds-transfer-initiation":{"source":"apache","extensions":["fti"]},"application/vnd.antix.game-component":{"source":"iana","extensions":["atx"]},"application/vnd.apache.arrow.file":{"source":"iana"},"application/vnd.apache.arrow.stream":{"source":"iana"},"application/vnd.apache.thrift.binary":{"source":"iana"},"application/vnd.apache.thrift.compact":{"source":"iana"},"application/vnd.apache.thrift.json":{"source":"iana"},"application/vnd.api+json":{"source":"iana","compressible":true},"application/vnd.aplextor.warrp+json":{"source":"iana","compressible":true},"application/vnd.apothekende.reservation+json":{"source":"iana","compressible":true},"application/vnd.apple.installer+xml":{"source":"iana","compressible":true,"extensions":["mpkg"]},"application/vnd.apple.keynote":{"source":"iana","extensions":["key"]},"application/vnd.apple.mpegurl":{"source":"iana","extensions":["m3u8"]},"application/vnd.apple.numbers":{"source":"iana","extensions":["numbers"]},"application/vnd.apple.pages":{"source":"iana","extensions":["pages"]},"application/vnd.apple.pkpass":{"compressible":false,"extensions":["pkpass"]},"application/vnd.arastra.swi":{"source":"iana"},"application/vnd.aristanetworks.swi":{"source":"iana","extensions":["swi"]},"application/vnd.artisan+json":{"source":"iana","compressible":true},"application/vnd.artsquare":{"source":"iana"},"application/vnd.astraea-software.iota":{"source":"iana","extensions":["iota"]},"application/vnd.audiograph":{"source":"iana","extensions":["aep"]},"application/vnd.autopackage":{"source":"iana"},"application/vnd.avalon+json":{"source":"iana","compressible":true},"application/vnd.avistar+xml":{"source":"iana","compressible":true},"application/vnd.balsamiq.bmml+xml":{"source":"iana","compressible":true,"extensions":["bmml"]},"application/vnd.balsamiq.bmpr":{"source":"iana"},"application/vnd.banana-accounting":{"source":"iana"},"application/vnd.bbf.usp.error":{"source":"iana"},"application/vnd.bbf.usp.msg":{"source":"iana"},"application/vnd.bbf.usp.msg+json":{"source":"iana","compressible":true},"application/vnd.bekitzur-stech+json":{"source":"iana","compressible":true},"application/vnd.bint.med-content":{"source":"iana"},"application/vnd.biopax.rdf+xml":{"source":"iana","compressible":true},"application/vnd.blink-idb-value-wrapper":{"source":"iana"},"application/vnd.blueice.multipass":{"source":"iana","extensions":["mpm"]},"application/vnd.bluetooth.ep.oob":{"source":"iana"},"application/vnd.bluetooth.le.oob":{"source":"iana"},"application/vnd.bmi":{"source":"iana","extensions":["bmi"]},"application/vnd.bpf":{"source":"iana"},"application/vnd.bpf3":{"source":"iana"},"application/vnd.businessobjects":{"source":"iana","extensions":["rep"]},"application/vnd.byu.uapi+json":{"source":"iana","compressible":true},"application/vnd.cab-jscript":{"source":"iana"},"application/vnd.canon-cpdl":{"source":"iana"},"application/vnd.canon-lips":{"source":"iana"},"application/vnd.capasystems-pg+json":{"source":"iana","compressible":true},"application/vnd.cendio.thinlinc.clientconf":{"source":"iana"},"application/vnd.century-systems.tcp_stream":{"source":"iana"},"application/vnd.chemdraw+xml":{"source":"iana","compressible":true,"extensions":["cdxml"]},"application/vnd.chess-pgn":{"source":"iana"},"application/vnd.chipnuts.karaoke-mmd":{"source":"iana","extensions":["mmd"]},"application/vnd.ciedi":{"source":"iana"},"application/vnd.cinderella":{"source":"iana","extensions":["cdy"]},"application/vnd.cirpack.isdn-ext":{"source":"iana"},"application/vnd.citationstyles.style+xml":{"source":"iana","compressible":true,"extensions":["csl"]},"application/vnd.claymore":{"source":"iana","extensions":["cla"]},"application/vnd.cloanto.rp9":{"source":"iana","extensions":["rp9"]},"application/vnd.clonk.c4group":{"source":"iana","extensions":["c4g","c4d","c4f","c4p","c4u"]},"application/vnd.cluetrust.cartomobile-config":{"source":"iana","extensions":["c11amc"]},"application/vnd.cluetrust.cartomobile-config-pkg":{"source":"iana","extensions":["c11amz"]},"application/vnd.coffeescript":{"source":"iana"},"application/vnd.collabio.xodocuments.document":{"source":"iana"},"application/vnd.collabio.xodocuments.document-template":{"source":"iana"},"application/vnd.collabio.xodocuments.presentation":{"source":"iana"},"application/vnd.collabio.xodocuments.presentation-template":{"source":"iana"},"application/vnd.collabio.xodocuments.spreadsheet":{"source":"iana"},"application/vnd.collabio.xodocuments.spreadsheet-template":{"source":"iana"},"application/vnd.collection+json":{"source":"iana","compressible":true},"application/vnd.collection.doc+json":{"source":"iana","compressible":true},"application/vnd.collection.next+json":{"source":"iana","compressible":true},"application/vnd.comicbook+zip":{"source":"iana","compressible":false},"application/vnd.comicbook-rar":{"source":"iana"},"application/vnd.commerce-battelle":{"source":"iana"},"application/vnd.commonspace":{"source":"iana","extensions":["csp"]},"application/vnd.contact.cmsg":{"source":"iana","extensions":["cdbcmsg"]},"application/vnd.coreos.ignition+json":{"source":"iana","compressible":true},"application/vnd.cosmocaller":{"source":"iana","extensions":["cmc"]},"application/vnd.crick.clicker":{"source":"iana","extensions":["clkx"]},"application/vnd.crick.clicker.keyboard":{"source":"iana","extensions":["clkk"]},"application/vnd.crick.clicker.palette":{"source":"iana","extensions":["clkp"]},"application/vnd.crick.clicker.template":{"source":"iana","extensions":["clkt"]},"application/vnd.crick.clicker.wordbank":{"source":"iana","extensions":["clkw"]},"application/vnd.criticaltools.wbs+xml":{"source":"iana","compressible":true,"extensions":["wbs"]},"application/vnd.cryptii.pipe+json":{"source":"iana","compressible":true},"application/vnd.crypto-shade-file":{"source":"iana"},"application/vnd.cryptomator.encrypted":{"source":"iana"},"application/vnd.cryptomator.vault":{"source":"iana"},"application/vnd.ctc-posml":{"source":"iana","extensions":["pml"]},"application/vnd.ctct.ws+xml":{"source":"iana","compressible":true},"application/vnd.cups-pdf":{"source":"iana"},"application/vnd.cups-postscript":{"source":"iana"},"application/vnd.cups-ppd":{"source":"iana","extensions":["ppd"]},"application/vnd.cups-raster":{"source":"iana"},"application/vnd.cups-raw":{"source":"iana"},"application/vnd.curl":{"source":"iana"},"application/vnd.curl.car":{"source":"apache","extensions":["car"]},"application/vnd.curl.pcurl":{"source":"apache","extensions":["pcurl"]},"application/vnd.cyan.dean.root+xml":{"source":"iana","compressible":true},"application/vnd.cybank":{"source":"iana"},"application/vnd.cyclonedx+json":{"source":"iana","compressible":true},"application/vnd.cyclonedx+xml":{"source":"iana","compressible":true},"application/vnd.d2l.coursepackage1p0+zip":{"source":"iana","compressible":false},"application/vnd.d3m-dataset":{"source":"iana"},"application/vnd.d3m-problem":{"source":"iana"},"application/vnd.dart":{"source":"iana","compressible":true,"extensions":["dart"]},"application/vnd.data-vision.rdz":{"source":"iana","extensions":["rdz"]},"application/vnd.datapackage+json":{"source":"iana","compressible":true},"application/vnd.dataresource+json":{"source":"iana","compressible":true},"application/vnd.dbf":{"source":"iana","extensions":["dbf"]},"application/vnd.debian.binary-package":{"source":"iana"},"application/vnd.dece.data":{"source":"iana","extensions":["uvf","uvvf","uvd","uvvd"]},"application/vnd.dece.ttml+xml":{"source":"iana","compressible":true,"extensions":["uvt","uvvt"]},"application/vnd.dece.unspecified":{"source":"iana","extensions":["uvx","uvvx"]},"application/vnd.dece.zip":{"source":"iana","extensions":["uvz","uvvz"]},"application/vnd.denovo.fcselayout-link":{"source":"iana","extensions":["fe_launch"]},"application/vnd.desmume.movie":{"source":"iana"},"application/vnd.dir-bi.plate-dl-nosuffix":{"source":"iana"},"application/vnd.dm.delegation+xml":{"source":"iana","compressible":true},"application/vnd.dna":{"source":"iana","extensions":["dna"]},"application/vnd.document+json":{"source":"iana","compressible":true},"application/vnd.dolby.mlp":{"source":"apache","extensions":["mlp"]},"application/vnd.dolby.mobile.1":{"source":"iana"},"application/vnd.dolby.mobile.2":{"source":"iana"},"application/vnd.doremir.scorecloud-binary-document":{"source":"iana"},"application/vnd.dpgraph":{"source":"iana","extensions":["dpg"]},"application/vnd.dreamfactory":{"source":"iana","extensions":["dfac"]},"application/vnd.drive+json":{"source":"iana","compressible":true},"application/vnd.ds-keypoint":{"source":"apache","extensions":["kpxx"]},"application/vnd.dtg.local":{"source":"iana"},"application/vnd.dtg.local.flash":{"source":"iana"},"application/vnd.dtg.local.html":{"source":"iana"},"application/vnd.dvb.ait":{"source":"iana","extensions":["ait"]},"application/vnd.dvb.dvbisl+xml":{"source":"iana","compressible":true},"application/vnd.dvb.dvbj":{"source":"iana"},"application/vnd.dvb.esgcontainer":{"source":"iana"},"application/vnd.dvb.ipdcdftnotifaccess":{"source":"iana"},"application/vnd.dvb.ipdcesgaccess":{"source":"iana"},"application/vnd.dvb.ipdcesgaccess2":{"source":"iana"},"application/vnd.dvb.ipdcesgpdd":{"source":"iana"},"application/vnd.dvb.ipdcroaming":{"source":"iana"},"application/vnd.dvb.iptv.alfec-base":{"source":"iana"},"application/vnd.dvb.iptv.alfec-enhancement":{"source":"iana"},"application/vnd.dvb.notif-aggregate-root+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-container+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-generic+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-msglist+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-registration-request+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-registration-response+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-init+xml":{"source":"iana","compressible":true},"application/vnd.dvb.pfr":{"source":"iana"},"application/vnd.dvb.service":{"source":"iana","extensions":["svc"]},"application/vnd.dxr":{"source":"iana"},"application/vnd.dynageo":{"source":"iana","extensions":["geo"]},"application/vnd.dzr":{"source":"iana"},"application/vnd.easykaraoke.cdgdownload":{"source":"iana"},"application/vnd.ecdis-update":{"source":"iana"},"application/vnd.ecip.rlp":{"source":"iana"},"application/vnd.eclipse.ditto+json":{"source":"iana","compressible":true},"application/vnd.ecowin.chart":{"source":"iana","extensions":["mag"]},"application/vnd.ecowin.filerequest":{"source":"iana"},"application/vnd.ecowin.fileupdate":{"source":"iana"},"application/vnd.ecowin.series":{"source":"iana"},"application/vnd.ecowin.seriesrequest":{"source":"iana"},"application/vnd.ecowin.seriesupdate":{"source":"iana"},"application/vnd.efi.img":{"source":"iana"},"application/vnd.efi.iso":{"source":"iana"},"application/vnd.emclient.accessrequest+xml":{"source":"iana","compressible":true},"application/vnd.enliven":{"source":"iana","extensions":["nml"]},"application/vnd.enphase.envoy":{"source":"iana"},"application/vnd.eprints.data+xml":{"source":"iana","compressible":true},"application/vnd.epson.esf":{"source":"iana","extensions":["esf"]},"application/vnd.epson.msf":{"source":"iana","extensions":["msf"]},"application/vnd.epson.quickanime":{"source":"iana","extensions":["qam"]},"application/vnd.epson.salt":{"source":"iana","extensions":["slt"]},"application/vnd.epson.ssf":{"source":"iana","extensions":["ssf"]},"application/vnd.ericsson.quickcall":{"source":"iana"},"application/vnd.espass-espass+zip":{"source":"iana","compressible":false},"application/vnd.eszigno3+xml":{"source":"iana","compressible":true,"extensions":["es3","et3"]},"application/vnd.etsi.aoc+xml":{"source":"iana","compressible":true},"application/vnd.etsi.asic-e+zip":{"source":"iana","compressible":false},"application/vnd.etsi.asic-s+zip":{"source":"iana","compressible":false},"application/vnd.etsi.cug+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvcommand+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvdiscovery+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvprofile+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-bc+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-cod+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-npvr+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvservice+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsync+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvueprofile+xml":{"source":"iana","compressible":true},"application/vnd.etsi.mcid+xml":{"source":"iana","compressible":true},"application/vnd.etsi.mheg5":{"source":"iana"},"application/vnd.etsi.overload-control-policy-dataset+xml":{"source":"iana","compressible":true},"application/vnd.etsi.pstn+xml":{"source":"iana","compressible":true},"application/vnd.etsi.sci+xml":{"source":"iana","compressible":true},"application/vnd.etsi.simservs+xml":{"source":"iana","compressible":true},"application/vnd.etsi.timestamp-token":{"source":"iana"},"application/vnd.etsi.tsl+xml":{"source":"iana","compressible":true},"application/vnd.etsi.tsl.der":{"source":"iana"},"application/vnd.eu.kasparian.car+json":{"source":"iana","compressible":true},"application/vnd.eudora.data":{"source":"iana"},"application/vnd.evolv.ecig.profile":{"source":"iana"},"application/vnd.evolv.ecig.settings":{"source":"iana"},"application/vnd.evolv.ecig.theme":{"source":"iana"},"application/vnd.exstream-empower+zip":{"source":"iana","compressible":false},"application/vnd.exstream-package":{"source":"iana"},"application/vnd.ezpix-album":{"source":"iana","extensions":["ez2"]},"application/vnd.ezpix-package":{"source":"iana","extensions":["ez3"]},"application/vnd.f-secure.mobile":{"source":"iana"},"application/vnd.familysearch.gedcom+zip":{"source":"iana","compressible":false},"application/vnd.fastcopy-disk-image":{"source":"iana"},"application/vnd.fdf":{"source":"iana","extensions":["fdf"]},"application/vnd.fdsn.mseed":{"source":"iana","extensions":["mseed"]},"application/vnd.fdsn.seed":{"source":"iana","extensions":["seed","dataless"]},"application/vnd.ffsns":{"source":"iana"},"application/vnd.ficlab.flb+zip":{"source":"iana","compressible":false},"application/vnd.filmit.zfc":{"source":"iana"},"application/vnd.fints":{"source":"iana"},"application/vnd.firemonkeys.cloudcell":{"source":"iana"},"application/vnd.flographit":{"source":"iana","extensions":["gph"]},"application/vnd.fluxtime.clip":{"source":"iana","extensions":["ftc"]},"application/vnd.font-fontforge-sfd":{"source":"iana"},"application/vnd.framemaker":{"source":"iana","extensions":["fm","frame","maker","book"]},"application/vnd.frogans.fnc":{"source":"iana","extensions":["fnc"]},"application/vnd.frogans.ltf":{"source":"iana","extensions":["ltf"]},"application/vnd.fsc.weblaunch":{"source":"iana","extensions":["fsc"]},"application/vnd.fujifilm.fb.docuworks":{"source":"iana"},"application/vnd.fujifilm.fb.docuworks.binder":{"source":"iana"},"application/vnd.fujifilm.fb.docuworks.container":{"source":"iana"},"application/vnd.fujifilm.fb.jfi+xml":{"source":"iana","compressible":true},"application/vnd.fujitsu.oasys":{"source":"iana","extensions":["oas"]},"application/vnd.fujitsu.oasys2":{"source":"iana","extensions":["oa2"]},"application/vnd.fujitsu.oasys3":{"source":"iana","extensions":["oa3"]},"application/vnd.fujitsu.oasysgp":{"source":"iana","extensions":["fg5"]},"application/vnd.fujitsu.oasysprs":{"source":"iana","extensions":["bh2"]},"application/vnd.fujixerox.art-ex":{"source":"iana"},"application/vnd.fujixerox.art4":{"source":"iana"},"application/vnd.fujixerox.ddd":{"source":"iana","extensions":["ddd"]},"application/vnd.fujixerox.docuworks":{"source":"iana","extensions":["xdw"]},"application/vnd.fujixerox.docuworks.binder":{"source":"iana","extensions":["xbd"]},"application/vnd.fujixerox.docuworks.container":{"source":"iana"},"application/vnd.fujixerox.hbpl":{"source":"iana"},"application/vnd.fut-misnet":{"source":"iana"},"application/vnd.futoin+cbor":{"source":"iana"},"application/vnd.futoin+json":{"source":"iana","compressible":true},"application/vnd.fuzzysheet":{"source":"iana","extensions":["fzs"]},"application/vnd.genomatix.tuxedo":{"source":"iana","extensions":["txd"]},"application/vnd.gentics.grd+json":{"source":"iana","compressible":true},"application/vnd.geo+json":{"source":"iana","compressible":true},"application/vnd.geocube+xml":{"source":"iana","compressible":true},"application/vnd.geogebra.file":{"source":"iana","extensions":["ggb"]},"application/vnd.geogebra.slides":{"source":"iana"},"application/vnd.geogebra.tool":{"source":"iana","extensions":["ggt"]},"application/vnd.geometry-explorer":{"source":"iana","extensions":["gex","gre"]},"application/vnd.geonext":{"source":"iana","extensions":["gxt"]},"application/vnd.geoplan":{"source":"iana","extensions":["g2w"]},"application/vnd.geospace":{"source":"iana","extensions":["g3w"]},"application/vnd.gerber":{"source":"iana"},"application/vnd.globalplatform.card-content-mgt":{"source":"iana"},"application/vnd.globalplatform.card-content-mgt-response":{"source":"iana"},"application/vnd.gmx":{"source":"iana","extensions":["gmx"]},"application/vnd.google-apps.document":{"compressible":false,"extensions":["gdoc"]},"application/vnd.google-apps.presentation":{"compressible":false,"extensions":["gslides"]},"application/vnd.google-apps.spreadsheet":{"compressible":false,"extensions":["gsheet"]},"application/vnd.google-earth.kml+xml":{"source":"iana","compressible":true,"extensions":["kml"]},"application/vnd.google-earth.kmz":{"source":"iana","compressible":false,"extensions":["kmz"]},"application/vnd.gov.sk.e-form+xml":{"source":"iana","compressible":true},"application/vnd.gov.sk.e-form+zip":{"source":"iana","compressible":false},"application/vnd.gov.sk.xmldatacontainer+xml":{"source":"iana","compressible":true},"application/vnd.grafeq":{"source":"iana","extensions":["gqf","gqs"]},"application/vnd.gridmp":{"source":"iana"},"application/vnd.groove-account":{"source":"iana","extensions":["gac"]},"application/vnd.groove-help":{"source":"iana","extensions":["ghf"]},"application/vnd.groove-identity-message":{"source":"iana","extensions":["gim"]},"application/vnd.groove-injector":{"source":"iana","extensions":["grv"]},"application/vnd.groove-tool-message":{"source":"iana","extensions":["gtm"]},"application/vnd.groove-tool-template":{"source":"iana","extensions":["tpl"]},"application/vnd.groove-vcard":{"source":"iana","extensions":["vcg"]},"application/vnd.hal+json":{"source":"iana","compressible":true},"application/vnd.hal+xml":{"source":"iana","compressible":true,"extensions":["hal"]},"application/vnd.handheld-entertainment+xml":{"source":"iana","compressible":true,"extensions":["zmm"]},"application/vnd.hbci":{"source":"iana","extensions":["hbci"]},"application/vnd.hc+json":{"source":"iana","compressible":true},"application/vnd.hcl-bireports":{"source":"iana"},"application/vnd.hdt":{"source":"iana"},"application/vnd.heroku+json":{"source":"iana","compressible":true},"application/vnd.hhe.lesson-player":{"source":"iana","extensions":["les"]},"application/vnd.hl7cda+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.hl7v2+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.hp-hpgl":{"source":"iana","extensions":["hpgl"]},"application/vnd.hp-hpid":{"source":"iana","extensions":["hpid"]},"application/vnd.hp-hps":{"source":"iana","extensions":["hps"]},"application/vnd.hp-jlyt":{"source":"iana","extensions":["jlt"]},"application/vnd.hp-pcl":{"source":"iana","extensions":["pcl"]},"application/vnd.hp-pclxl":{"source":"iana","extensions":["pclxl"]},"application/vnd.httphone":{"source":"iana"},"application/vnd.hydrostatix.sof-data":{"source":"iana","extensions":["sfd-hdstx"]},"application/vnd.hyper+json":{"source":"iana","compressible":true},"application/vnd.hyper-item+json":{"source":"iana","compressible":true},"application/vnd.hyperdrive+json":{"source":"iana","compressible":true},"application/vnd.hzn-3d-crossword":{"source":"iana"},"application/vnd.ibm.afplinedata":{"source":"iana"},"application/vnd.ibm.electronic-media":{"source":"iana"},"application/vnd.ibm.minipay":{"source":"iana","extensions":["mpy"]},"application/vnd.ibm.modcap":{"source":"iana","extensions":["afp","listafp","list3820"]},"application/vnd.ibm.rights-management":{"source":"iana","extensions":["irm"]},"application/vnd.ibm.secure-container":{"source":"iana","extensions":["sc"]},"application/vnd.iccprofile":{"source":"iana","extensions":["icc","icm"]},"application/vnd.ieee.1905":{"source":"iana"},"application/vnd.igloader":{"source":"iana","extensions":["igl"]},"application/vnd.imagemeter.folder+zip":{"source":"iana","compressible":false},"application/vnd.imagemeter.image+zip":{"source":"iana","compressible":false},"application/vnd.immervision-ivp":{"source":"iana","extensions":["ivp"]},"application/vnd.immervision-ivu":{"source":"iana","extensions":["ivu"]},"application/vnd.ims.imsccv1p1":{"source":"iana"},"application/vnd.ims.imsccv1p2":{"source":"iana"},"application/vnd.ims.imsccv1p3":{"source":"iana"},"application/vnd.ims.lis.v2.result+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolconsumerprofile+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolproxy+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolproxy.id+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolsettings+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolsettings.simple+json":{"source":"iana","compressible":true},"application/vnd.informedcontrol.rms+xml":{"source":"iana","compressible":true},"application/vnd.informix-visionary":{"source":"iana"},"application/vnd.infotech.project":{"source":"iana"},"application/vnd.infotech.project+xml":{"source":"iana","compressible":true},"application/vnd.innopath.wamp.notification":{"source":"iana"},"application/vnd.insors.igm":{"source":"iana","extensions":["igm"]},"application/vnd.intercon.formnet":{"source":"iana","extensions":["xpw","xpx"]},"application/vnd.intergeo":{"source":"iana","extensions":["i2g"]},"application/vnd.intertrust.digibox":{"source":"iana"},"application/vnd.intertrust.nncp":{"source":"iana"},"application/vnd.intu.qbo":{"source":"iana","extensions":["qbo"]},"application/vnd.intu.qfx":{"source":"iana","extensions":["qfx"]},"application/vnd.iptc.g2.catalogitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.conceptitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.knowledgeitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.newsitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.newsmessage+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.packageitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.planningitem+xml":{"source":"iana","compressible":true},"application/vnd.ipunplugged.rcprofile":{"source":"iana","extensions":["rcprofile"]},"application/vnd.irepository.package+xml":{"source":"iana","compressible":true,"extensions":["irp"]},"application/vnd.is-xpr":{"source":"iana","extensions":["xpr"]},"application/vnd.isac.fcs":{"source":"iana","extensions":["fcs"]},"application/vnd.iso11783-10+zip":{"source":"iana","compressible":false},"application/vnd.jam":{"source":"iana","extensions":["jam"]},"application/vnd.japannet-directory-service":{"source":"iana"},"application/vnd.japannet-jpnstore-wakeup":{"source":"iana"},"application/vnd.japannet-payment-wakeup":{"source":"iana"},"application/vnd.japannet-registration":{"source":"iana"},"application/vnd.japannet-registration-wakeup":{"source":"iana"},"application/vnd.japannet-setstore-wakeup":{"source":"iana"},"application/vnd.japannet-verification":{"source":"iana"},"application/vnd.japannet-verification-wakeup":{"source":"iana"},"application/vnd.jcp.javame.midlet-rms":{"source":"iana","extensions":["rms"]},"application/vnd.jisp":{"source":"iana","extensions":["jisp"]},"application/vnd.joost.joda-archive":{"source":"iana","extensions":["joda"]},"application/vnd.jsk.isdn-ngn":{"source":"iana"},"application/vnd.kahootz":{"source":"iana","extensions":["ktz","ktr"]},"application/vnd.kde.karbon":{"source":"iana","extensions":["karbon"]},"application/vnd.kde.kchart":{"source":"iana","extensions":["chrt"]},"application/vnd.kde.kformula":{"source":"iana","extensions":["kfo"]},"application/vnd.kde.kivio":{"source":"iana","extensions":["flw"]},"application/vnd.kde.kontour":{"source":"iana","extensions":["kon"]},"application/vnd.kde.kpresenter":{"source":"iana","extensions":["kpr","kpt"]},"application/vnd.kde.kspread":{"source":"iana","extensions":["ksp"]},"application/vnd.kde.kword":{"source":"iana","extensions":["kwd","kwt"]},"application/vnd.kenameaapp":{"source":"iana","extensions":["htke"]},"application/vnd.kidspiration":{"source":"iana","extensions":["kia"]},"application/vnd.kinar":{"source":"iana","extensions":["kne","knp"]},"application/vnd.koan":{"source":"iana","extensions":["skp","skd","skt","skm"]},"application/vnd.kodak-descriptor":{"source":"iana","extensions":["sse"]},"application/vnd.las":{"source":"iana"},"application/vnd.las.las+json":{"source":"iana","compressible":true},"application/vnd.las.las+xml":{"source":"iana","compressible":true,"extensions":["lasxml"]},"application/vnd.laszip":{"source":"iana"},"application/vnd.leap+json":{"source":"iana","compressible":true},"application/vnd.liberty-request+xml":{"source":"iana","compressible":true},"application/vnd.llamagraphics.life-balance.desktop":{"source":"iana","extensions":["lbd"]},"application/vnd.llamagraphics.life-balance.exchange+xml":{"source":"iana","compressible":true,"extensions":["lbe"]},"application/vnd.logipipe.circuit+zip":{"source":"iana","compressible":false},"application/vnd.loom":{"source":"iana"},"application/vnd.lotus-1-2-3":{"source":"iana","extensions":["123"]},"application/vnd.lotus-approach":{"source":"iana","extensions":["apr"]},"application/vnd.lotus-freelance":{"source":"iana","extensions":["pre"]},"application/vnd.lotus-notes":{"source":"iana","extensions":["nsf"]},"application/vnd.lotus-organizer":{"source":"iana","extensions":["org"]},"application/vnd.lotus-screencam":{"source":"iana","extensions":["scm"]},"application/vnd.lotus-wordpro":{"source":"iana","extensions":["lwp"]},"application/vnd.macports.portpkg":{"source":"iana","extensions":["portpkg"]},"application/vnd.mapbox-vector-tile":{"source":"iana","extensions":["mvt"]},"application/vnd.marlin.drm.actiontoken+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.conftoken+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.license+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.mdcf":{"source":"iana"},"application/vnd.mason+json":{"source":"iana","compressible":true},"application/vnd.maxar.archive.3tz+zip":{"source":"iana","compressible":false},"application/vnd.maxmind.maxmind-db":{"source":"iana"},"application/vnd.mcd":{"source":"iana","extensions":["mcd"]},"application/vnd.medcalcdata":{"source":"iana","extensions":["mc1"]},"application/vnd.mediastation.cdkey":{"source":"iana","extensions":["cdkey"]},"application/vnd.meridian-slingshot":{"source":"iana"},"application/vnd.mfer":{"source":"iana","extensions":["mwf"]},"application/vnd.mfmp":{"source":"iana","extensions":["mfm"]},"application/vnd.micro+json":{"source":"iana","compressible":true},"application/vnd.micrografx.flo":{"source":"iana","extensions":["flo"]},"application/vnd.micrografx.igx":{"source":"iana","extensions":["igx"]},"application/vnd.microsoft.portable-executable":{"source":"iana"},"application/vnd.microsoft.windows.thumbnail-cache":{"source":"iana"},"application/vnd.miele+json":{"source":"iana","compressible":true},"application/vnd.mif":{"source":"iana","extensions":["mif"]},"application/vnd.minisoft-hp3000-save":{"source":"iana"},"application/vnd.mitsubishi.misty-guard.trustweb":{"source":"iana"},"application/vnd.mobius.daf":{"source":"iana","extensions":["daf"]},"application/vnd.mobius.dis":{"source":"iana","extensions":["dis"]},"application/vnd.mobius.mbk":{"source":"iana","extensions":["mbk"]},"application/vnd.mobius.mqy":{"source":"iana","extensions":["mqy"]},"application/vnd.mobius.msl":{"source":"iana","extensions":["msl"]},"application/vnd.mobius.plc":{"source":"iana","extensions":["plc"]},"application/vnd.mobius.txf":{"source":"iana","extensions":["txf"]},"application/vnd.mophun.application":{"source":"iana","extensions":["mpn"]},"application/vnd.mophun.certificate":{"source":"iana","extensions":["mpc"]},"application/vnd.motorola.flexsuite":{"source":"iana"},"application/vnd.motorola.flexsuite.adsi":{"source":"iana"},"application/vnd.motorola.flexsuite.fis":{"source":"iana"},"application/vnd.motorola.flexsuite.gotap":{"source":"iana"},"application/vnd.motorola.flexsuite.kmr":{"source":"iana"},"application/vnd.motorola.flexsuite.ttc":{"source":"iana"},"application/vnd.motorola.flexsuite.wem":{"source":"iana"},"application/vnd.motorola.iprm":{"source":"iana"},"application/vnd.mozilla.xul+xml":{"source":"iana","compressible":true,"extensions":["xul"]},"application/vnd.ms-3mfdocument":{"source":"iana"},"application/vnd.ms-artgalry":{"source":"iana","extensions":["cil"]},"application/vnd.ms-asf":{"source":"iana"},"application/vnd.ms-cab-compressed":{"source":"iana","extensions":["cab"]},"application/vnd.ms-color.iccprofile":{"source":"apache"},"application/vnd.ms-excel":{"source":"iana","compressible":false,"extensions":["xls","xlm","xla","xlc","xlt","xlw"]},"application/vnd.ms-excel.addin.macroenabled.12":{"source":"iana","extensions":["xlam"]},"application/vnd.ms-excel.sheet.binary.macroenabled.12":{"source":"iana","extensions":["xlsb"]},"application/vnd.ms-excel.sheet.macroenabled.12":{"source":"iana","extensions":["xlsm"]},"application/vnd.ms-excel.template.macroenabled.12":{"source":"iana","extensions":["xltm"]},"application/vnd.ms-fontobject":{"source":"iana","compressible":true,"extensions":["eot"]},"application/vnd.ms-htmlhelp":{"source":"iana","extensions":["chm"]},"application/vnd.ms-ims":{"source":"iana","extensions":["ims"]},"application/vnd.ms-lrm":{"source":"iana","extensions":["lrm"]},"application/vnd.ms-office.activex+xml":{"source":"iana","compressible":true},"application/vnd.ms-officetheme":{"source":"iana","extensions":["thmx"]},"application/vnd.ms-opentype":{"source":"apache","compressible":true},"application/vnd.ms-outlook":{"compressible":false,"extensions":["msg"]},"application/vnd.ms-package.obfuscated-opentype":{"source":"apache"},"application/vnd.ms-pki.seccat":{"source":"apache","extensions":["cat"]},"application/vnd.ms-pki.stl":{"source":"apache","extensions":["stl"]},"application/vnd.ms-playready.initiator+xml":{"source":"iana","compressible":true},"application/vnd.ms-powerpoint":{"source":"iana","compressible":false,"extensions":["ppt","pps","pot"]},"application/vnd.ms-powerpoint.addin.macroenabled.12":{"source":"iana","extensions":["ppam"]},"application/vnd.ms-powerpoint.presentation.macroenabled.12":{"source":"iana","extensions":["pptm"]},"application/vnd.ms-powerpoint.slide.macroenabled.12":{"source":"iana","extensions":["sldm"]},"application/vnd.ms-powerpoint.slideshow.macroenabled.12":{"source":"iana","extensions":["ppsm"]},"application/vnd.ms-powerpoint.template.macroenabled.12":{"source":"iana","extensions":["potm"]},"application/vnd.ms-printdevicecapabilities+xml":{"source":"iana","compressible":true},"application/vnd.ms-printing.printticket+xml":{"source":"apache","compressible":true},"application/vnd.ms-printschematicket+xml":{"source":"iana","compressible":true},"application/vnd.ms-project":{"source":"iana","extensions":["mpp","mpt"]},"application/vnd.ms-tnef":{"source":"iana"},"application/vnd.ms-windows.devicepairing":{"source":"iana"},"application/vnd.ms-windows.nwprinting.oob":{"source":"iana"},"application/vnd.ms-windows.printerpairing":{"source":"iana"},"application/vnd.ms-windows.wsd.oob":{"source":"iana"},"application/vnd.ms-wmdrm.lic-chlg-req":{"source":"iana"},"application/vnd.ms-wmdrm.lic-resp":{"source":"iana"},"application/vnd.ms-wmdrm.meter-chlg-req":{"source":"iana"},"application/vnd.ms-wmdrm.meter-resp":{"source":"iana"},"application/vnd.ms-word.document.macroenabled.12":{"source":"iana","extensions":["docm"]},"application/vnd.ms-word.template.macroenabled.12":{"source":"iana","extensions":["dotm"]},"application/vnd.ms-works":{"source":"iana","extensions":["wps","wks","wcm","wdb"]},"application/vnd.ms-wpl":{"source":"iana","extensions":["wpl"]},"application/vnd.ms-xpsdocument":{"source":"iana","compressible":false,"extensions":["xps"]},"application/vnd.msa-disk-image":{"source":"iana"},"application/vnd.mseq":{"source":"iana","extensions":["mseq"]},"application/vnd.msign":{"source":"iana"},"application/vnd.multiad.creator":{"source":"iana"},"application/vnd.multiad.creator.cif":{"source":"iana"},"application/vnd.music-niff":{"source":"iana"},"application/vnd.musician":{"source":"iana","extensions":["mus"]},"application/vnd.muvee.style":{"source":"iana","extensions":["msty"]},"application/vnd.mynfc":{"source":"iana","extensions":["taglet"]},"application/vnd.nacamar.ybrid+json":{"source":"iana","compressible":true},"application/vnd.ncd.control":{"source":"iana"},"application/vnd.ncd.reference":{"source":"iana"},"application/vnd.nearst.inv+json":{"source":"iana","compressible":true},"application/vnd.nebumind.line":{"source":"iana"},"application/vnd.nervana":{"source":"iana"},"application/vnd.netfpx":{"source":"iana"},"application/vnd.neurolanguage.nlu":{"source":"iana","extensions":["nlu"]},"application/vnd.nimn":{"source":"iana"},"application/vnd.nintendo.nitro.rom":{"source":"iana"},"application/vnd.nintendo.snes.rom":{"source":"iana"},"application/vnd.nitf":{"source":"iana","extensions":["ntf","nitf"]},"application/vnd.noblenet-directory":{"source":"iana","extensions":["nnd"]},"application/vnd.noblenet-sealer":{"source":"iana","extensions":["nns"]},"application/vnd.noblenet-web":{"source":"iana","extensions":["nnw"]},"application/vnd.nokia.catalogs":{"source":"iana"},"application/vnd.nokia.conml+wbxml":{"source":"iana"},"application/vnd.nokia.conml+xml":{"source":"iana","compressible":true},"application/vnd.nokia.iptv.config+xml":{"source":"iana","compressible":true},"application/vnd.nokia.isds-radio-presets":{"source":"iana"},"application/vnd.nokia.landmark+wbxml":{"source":"iana"},"application/vnd.nokia.landmark+xml":{"source":"iana","compressible":true},"application/vnd.nokia.landmarkcollection+xml":{"source":"iana","compressible":true},"application/vnd.nokia.n-gage.ac+xml":{"source":"iana","compressible":true,"extensions":["ac"]},"application/vnd.nokia.n-gage.data":{"source":"iana","extensions":["ngdat"]},"application/vnd.nokia.n-gage.symbian.install":{"source":"iana","extensions":["n-gage"]},"application/vnd.nokia.ncd":{"source":"iana"},"application/vnd.nokia.pcd+wbxml":{"source":"iana"},"application/vnd.nokia.pcd+xml":{"source":"iana","compressible":true},"application/vnd.nokia.radio-preset":{"source":"iana","extensions":["rpst"]},"application/vnd.nokia.radio-presets":{"source":"iana","extensions":["rpss"]},"application/vnd.novadigm.edm":{"source":"iana","extensions":["edm"]},"application/vnd.novadigm.edx":{"source":"iana","extensions":["edx"]},"application/vnd.novadigm.ext":{"source":"iana","extensions":["ext"]},"application/vnd.ntt-local.content-share":{"source":"iana"},"application/vnd.ntt-local.file-transfer":{"source":"iana"},"application/vnd.ntt-local.ogw_remote-access":{"source":"iana"},"application/vnd.ntt-local.sip-ta_remote":{"source":"iana"},"application/vnd.ntt-local.sip-ta_tcp_stream":{"source":"iana"},"application/vnd.oasis.opendocument.chart":{"source":"iana","extensions":["odc"]},"application/vnd.oasis.opendocument.chart-template":{"source":"iana","extensions":["otc"]},"application/vnd.oasis.opendocument.database":{"source":"iana","extensions":["odb"]},"application/vnd.oasis.opendocument.formula":{"source":"iana","extensions":["odf"]},"application/vnd.oasis.opendocument.formula-template":{"source":"iana","extensions":["odft"]},"application/vnd.oasis.opendocument.graphics":{"source":"iana","compressible":false,"extensions":["odg"]},"application/vnd.oasis.opendocument.graphics-template":{"source":"iana","extensions":["otg"]},"application/vnd.oasis.opendocument.image":{"source":"iana","extensions":["odi"]},"application/vnd.oasis.opendocument.image-template":{"source":"iana","extensions":["oti"]},"application/vnd.oasis.opendocument.presentation":{"source":"iana","compressible":false,"extensions":["odp"]},"application/vnd.oasis.opendocument.presentation-template":{"source":"iana","extensions":["otp"]},"application/vnd.oasis.opendocument.spreadsheet":{"source":"iana","compressible":false,"extensions":["ods"]},"application/vnd.oasis.opendocument.spreadsheet-template":{"source":"iana","extensions":["ots"]},"application/vnd.oasis.opendocument.text":{"source":"iana","compressible":false,"extensions":["odt"]},"application/vnd.oasis.opendocument.text-master":{"source":"iana","extensions":["odm"]},"application/vnd.oasis.opendocument.text-template":{"source":"iana","extensions":["ott"]},"application/vnd.oasis.opendocument.text-web":{"source":"iana","extensions":["oth"]},"application/vnd.obn":{"source":"iana"},"application/vnd.ocf+cbor":{"source":"iana"},"application/vnd.oci.image.manifest.v1+json":{"source":"iana","compressible":true},"application/vnd.oftn.l10n+json":{"source":"iana","compressible":true},"application/vnd.oipf.contentaccessdownload+xml":{"source":"iana","compressible":true},"application/vnd.oipf.contentaccessstreaming+xml":{"source":"iana","compressible":true},"application/vnd.oipf.cspg-hexbinary":{"source":"iana"},"application/vnd.oipf.dae.svg+xml":{"source":"iana","compressible":true},"application/vnd.oipf.dae.xhtml+xml":{"source":"iana","compressible":true},"application/vnd.oipf.mippvcontrolmessage+xml":{"source":"iana","compressible":true},"application/vnd.oipf.pae.gem":{"source":"iana"},"application/vnd.oipf.spdiscovery+xml":{"source":"iana","compressible":true},"application/vnd.oipf.spdlist+xml":{"source":"iana","compressible":true},"application/vnd.oipf.ueprofile+xml":{"source":"iana","compressible":true},"application/vnd.oipf.userprofile+xml":{"source":"iana","compressible":true},"application/vnd.olpc-sugar":{"source":"iana","extensions":["xo"]},"application/vnd.oma-scws-config":{"source":"iana"},"application/vnd.oma-scws-http-request":{"source":"iana"},"application/vnd.oma-scws-http-response":{"source":"iana"},"application/vnd.oma.bcast.associated-procedure-parameter+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.drm-trigger+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.imd+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.ltkm":{"source":"iana"},"application/vnd.oma.bcast.notification+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.provisioningtrigger":{"source":"iana"},"application/vnd.oma.bcast.sgboot":{"source":"iana"},"application/vnd.oma.bcast.sgdd+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.sgdu":{"source":"iana"},"application/vnd.oma.bcast.simple-symbol-container":{"source":"iana"},"application/vnd.oma.bcast.smartcard-trigger+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.sprov+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.stkm":{"source":"iana"},"application/vnd.oma.cab-address-book+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-feature-handler+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-pcc+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-subs-invite+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-user-prefs+xml":{"source":"iana","compressible":true},"application/vnd.oma.dcd":{"source":"iana"},"application/vnd.oma.dcdc":{"source":"iana"},"application/vnd.oma.dd2+xml":{"source":"iana","compressible":true,"extensions":["dd2"]},"application/vnd.oma.drm.risd+xml":{"source":"iana","compressible":true},"application/vnd.oma.group-usage-list+xml":{"source":"iana","compressible":true},"application/vnd.oma.lwm2m+cbor":{"source":"iana"},"application/vnd.oma.lwm2m+json":{"source":"iana","compressible":true},"application/vnd.oma.lwm2m+tlv":{"source":"iana"},"application/vnd.oma.pal+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.detailed-progress-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.final-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.groups+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.invocation-descriptor+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.optimized-progress-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.push":{"source":"iana"},"application/vnd.oma.scidm.messages+xml":{"source":"iana","compressible":true},"application/vnd.oma.xcap-directory+xml":{"source":"iana","compressible":true},"application/vnd.omads-email+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omads-file+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omads-folder+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omaloc-supl-init":{"source":"iana"},"application/vnd.onepager":{"source":"iana"},"application/vnd.onepagertamp":{"source":"iana"},"application/vnd.onepagertamx":{"source":"iana"},"application/vnd.onepagertat":{"source":"iana"},"application/vnd.onepagertatp":{"source":"iana"},"application/vnd.onepagertatx":{"source":"iana"},"application/vnd.openblox.game+xml":{"source":"iana","compressible":true,"extensions":["obgx"]},"application/vnd.openblox.game-binary":{"source":"iana"},"application/vnd.openeye.oeb":{"source":"iana"},"application/vnd.openofficeorg.extension":{"source":"apache","extensions":["oxt"]},"application/vnd.openstreetmap.data+xml":{"source":"iana","compressible":true,"extensions":["osm"]},"application/vnd.opentimestamps.ots":{"source":"iana"},"application/vnd.openxmlformats-officedocument.custom-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.customxmlproperties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawing+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.chart+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.extended-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.presentation":{"source":"iana","compressible":false,"extensions":["pptx"]},"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slide":{"source":"iana","extensions":["sldx"]},"application/vnd.openxmlformats-officedocument.presentationml.slide+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slideshow":{"source":"iana","extensions":["ppsx"]},"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.tags+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.template":{"source":"iana","extensions":["potx"]},"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{"source":"iana","compressible":false,"extensions":["xlsx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.template":{"source":"iana","extensions":["xltx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.theme+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.themeoverride+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.vmldrawing":{"source":"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{"source":"iana","compressible":false,"extensions":["docx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.template":{"source":"iana","extensions":["dotx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.core-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.relationships+xml":{"source":"iana","compressible":true},"application/vnd.oracle.resource+json":{"source":"iana","compressible":true},"application/vnd.orange.indata":{"source":"iana"},"application/vnd.osa.netdeploy":{"source":"iana"},"application/vnd.osgeo.mapguide.package":{"source":"iana","extensions":["mgp"]},"application/vnd.osgi.bundle":{"source":"iana"},"application/vnd.osgi.dp":{"source":"iana","extensions":["dp"]},"application/vnd.osgi.subsystem":{"source":"iana","extensions":["esa"]},"application/vnd.otps.ct-kip+xml":{"source":"iana","compressible":true},"application/vnd.oxli.countgraph":{"source":"iana"},"application/vnd.pagerduty+json":{"source":"iana","compressible":true},"application/vnd.palm":{"source":"iana","extensions":["pdb","pqa","oprc"]},"application/vnd.panoply":{"source":"iana"},"application/vnd.paos.xml":{"source":"iana"},"application/vnd.patentdive":{"source":"iana"},"application/vnd.patientecommsdoc":{"source":"iana"},"application/vnd.pawaafile":{"source":"iana","extensions":["paw"]},"application/vnd.pcos":{"source":"iana"},"application/vnd.pg.format":{"source":"iana","extensions":["str"]},"application/vnd.pg.osasli":{"source":"iana","extensions":["ei6"]},"application/vnd.piaccess.application-licence":{"source":"iana"},"application/vnd.picsel":{"source":"iana","extensions":["efif"]},"application/vnd.pmi.widget":{"source":"iana","extensions":["wg"]},"application/vnd.poc.group-advertisement+xml":{"source":"iana","compressible":true},"application/vnd.pocketlearn":{"source":"iana","extensions":["plf"]},"application/vnd.powerbuilder6":{"source":"iana","extensions":["pbd"]},"application/vnd.powerbuilder6-s":{"source":"iana"},"application/vnd.powerbuilder7":{"source":"iana"},"application/vnd.powerbuilder7-s":{"source":"iana"},"application/vnd.powerbuilder75":{"source":"iana"},"application/vnd.powerbuilder75-s":{"source":"iana"},"application/vnd.preminet":{"source":"iana"},"application/vnd.previewsystems.box":{"source":"iana","extensions":["box"]},"application/vnd.proteus.magazine":{"source":"iana","extensions":["mgz"]},"application/vnd.psfs":{"source":"iana"},"application/vnd.publishare-delta-tree":{"source":"iana","extensions":["qps"]},"application/vnd.pvi.ptid1":{"source":"iana","extensions":["ptid"]},"application/vnd.pwg-multiplexed":{"source":"iana"},"application/vnd.pwg-xhtml-print+xml":{"source":"iana","compressible":true},"application/vnd.qualcomm.brew-app-res":{"source":"iana"},"application/vnd.quarantainenet":{"source":"iana"},"application/vnd.quark.quarkxpress":{"source":"iana","extensions":["qxd","qxt","qwd","qwt","qxl","qxb"]},"application/vnd.quobject-quoxdocument":{"source":"iana"},"application/vnd.radisys.moml+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-conf+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-conn+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-dialog+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-stream+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-conf+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-base+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-fax-detect+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-fax-sendrecv+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-group+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-speech+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-transform+xml":{"source":"iana","compressible":true},"application/vnd.rainstor.data":{"source":"iana"},"application/vnd.rapid":{"source":"iana"},"application/vnd.rar":{"source":"iana","extensions":["rar"]},"application/vnd.realvnc.bed":{"source":"iana","extensions":["bed"]},"application/vnd.recordare.musicxml":{"source":"iana","extensions":["mxl"]},"application/vnd.recordare.musicxml+xml":{"source":"iana","compressible":true,"extensions":["musicxml"]},"application/vnd.renlearn.rlprint":{"source":"iana"},"application/vnd.resilient.logic":{"source":"iana"},"application/vnd.restful+json":{"source":"iana","compressible":true},"application/vnd.rig.cryptonote":{"source":"iana","extensions":["cryptonote"]},"application/vnd.rim.cod":{"source":"apache","extensions":["cod"]},"application/vnd.rn-realmedia":{"source":"apache","extensions":["rm"]},"application/vnd.rn-realmedia-vbr":{"source":"apache","extensions":["rmvb"]},"application/vnd.route66.link66+xml":{"source":"iana","compressible":true,"extensions":["link66"]},"application/vnd.rs-274x":{"source":"iana"},"application/vnd.ruckus.download":{"source":"iana"},"application/vnd.s3sms":{"source":"iana"},"application/vnd.sailingtracker.track":{"source":"iana","extensions":["st"]},"application/vnd.sar":{"source":"iana"},"application/vnd.sbm.cid":{"source":"iana"},"application/vnd.sbm.mid2":{"source":"iana"},"application/vnd.scribus":{"source":"iana"},"application/vnd.sealed.3df":{"source":"iana"},"application/vnd.sealed.csf":{"source":"iana"},"application/vnd.sealed.doc":{"source":"iana"},"application/vnd.sealed.eml":{"source":"iana"},"application/vnd.sealed.mht":{"source":"iana"},"application/vnd.sealed.net":{"source":"iana"},"application/vnd.sealed.ppt":{"source":"iana"},"application/vnd.sealed.tiff":{"source":"iana"},"application/vnd.sealed.xls":{"source":"iana"},"application/vnd.sealedmedia.softseal.html":{"source":"iana"},"application/vnd.sealedmedia.softseal.pdf":{"source":"iana"},"application/vnd.seemail":{"source":"iana","extensions":["see"]},"application/vnd.seis+json":{"source":"iana","compressible":true},"application/vnd.sema":{"source":"iana","extensions":["sema"]},"application/vnd.semd":{"source":"iana","extensions":["semd"]},"application/vnd.semf":{"source":"iana","extensions":["semf"]},"application/vnd.shade-save-file":{"source":"iana"},"application/vnd.shana.informed.formdata":{"source":"iana","extensions":["ifm"]},"application/vnd.shana.informed.formtemplate":{"source":"iana","extensions":["itp"]},"application/vnd.shana.informed.interchange":{"source":"iana","extensions":["iif"]},"application/vnd.shana.informed.package":{"source":"iana","extensions":["ipk"]},"application/vnd.shootproof+json":{"source":"iana","compressible":true},"application/vnd.shopkick+json":{"source":"iana","compressible":true},"application/vnd.shp":{"source":"iana"},"application/vnd.shx":{"source":"iana"},"application/vnd.sigrok.session":{"source":"iana"},"application/vnd.simtech-mindmapper":{"source":"iana","extensions":["twd","twds"]},"application/vnd.siren+json":{"source":"iana","compressible":true},"application/vnd.smaf":{"source":"iana","extensions":["mmf"]},"application/vnd.smart.notebook":{"source":"iana"},"application/vnd.smart.teacher":{"source":"iana","extensions":["teacher"]},"application/vnd.snesdev-page-table":{"source":"iana"},"application/vnd.software602.filler.form+xml":{"source":"iana","compressible":true,"extensions":["fo"]},"application/vnd.software602.filler.form-xml-zip":{"source":"iana"},"application/vnd.solent.sdkm+xml":{"source":"iana","compressible":true,"extensions":["sdkm","sdkd"]},"application/vnd.spotfire.dxp":{"source":"iana","extensions":["dxp"]},"application/vnd.spotfire.sfs":{"source":"iana","extensions":["sfs"]},"application/vnd.sqlite3":{"source":"iana"},"application/vnd.sss-cod":{"source":"iana"},"application/vnd.sss-dtf":{"source":"iana"},"application/vnd.sss-ntf":{"source":"iana"},"application/vnd.stardivision.calc":{"source":"apache","extensions":["sdc"]},"application/vnd.stardivision.draw":{"source":"apache","extensions":["sda"]},"application/vnd.stardivision.impress":{"source":"apache","extensions":["sdd"]},"application/vnd.stardivision.math":{"source":"apache","extensions":["smf"]},"application/vnd.stardivision.writer":{"source":"apache","extensions":["sdw","vor"]},"application/vnd.stardivision.writer-global":{"source":"apache","extensions":["sgl"]},"application/vnd.stepmania.package":{"source":"iana","extensions":["smzip"]},"application/vnd.stepmania.stepchart":{"source":"iana","extensions":["sm"]},"application/vnd.street-stream":{"source":"iana"},"application/vnd.sun.wadl+xml":{"source":"iana","compressible":true,"extensions":["wadl"]},"application/vnd.sun.xml.calc":{"source":"apache","extensions":["sxc"]},"application/vnd.sun.xml.calc.template":{"source":"apache","extensions":["stc"]},"application/vnd.sun.xml.draw":{"source":"apache","extensions":["sxd"]},"application/vnd.sun.xml.draw.template":{"source":"apache","extensions":["std"]},"application/vnd.sun.xml.impress":{"source":"apache","extensions":["sxi"]},"application/vnd.sun.xml.impress.template":{"source":"apache","extensions":["sti"]},"application/vnd.sun.xml.math":{"source":"apache","extensions":["sxm"]},"application/vnd.sun.xml.writer":{"source":"apache","extensions":["sxw"]},"application/vnd.sun.xml.writer.global":{"source":"apache","extensions":["sxg"]},"application/vnd.sun.xml.writer.template":{"source":"apache","extensions":["stw"]},"application/vnd.sus-calendar":{"source":"iana","extensions":["sus","susp"]},"application/vnd.svd":{"source":"iana","extensions":["svd"]},"application/vnd.swiftview-ics":{"source":"iana"},"application/vnd.sycle+xml":{"source":"iana","compressible":true},"application/vnd.syft+json":{"source":"iana","compressible":true},"application/vnd.symbian.install":{"source":"apache","extensions":["sis","sisx"]},"application/vnd.syncml+xml":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["xsm"]},"application/vnd.syncml.dm+wbxml":{"source":"iana","charset":"UTF-8","extensions":["bdm"]},"application/vnd.syncml.dm+xml":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["xdm"]},"application/vnd.syncml.dm.notification":{"source":"iana"},"application/vnd.syncml.dmddf+wbxml":{"source":"iana"},"application/vnd.syncml.dmddf+xml":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["ddf"]},"application/vnd.syncml.dmtnds+wbxml":{"source":"iana"},"application/vnd.syncml.dmtnds+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.syncml.ds.notification":{"source":"iana"},"application/vnd.tableschema+json":{"source":"iana","compressible":true},"application/vnd.tao.intent-module-archive":{"source":"iana","extensions":["tao"]},"application/vnd.tcpdump.pcap":{"source":"iana","extensions":["pcap","cap","dmp"]},"application/vnd.think-cell.ppttc+json":{"source":"iana","compressible":true},"application/vnd.tmd.mediaflex.api+xml":{"source":"iana","compressible":true},"application/vnd.tml":{"source":"iana"},"application/vnd.tmobile-livetv":{"source":"iana","extensions":["tmo"]},"application/vnd.tri.onesource":{"source":"iana"},"application/vnd.trid.tpt":{"source":"iana","extensions":["tpt"]},"application/vnd.triscape.mxs":{"source":"iana","extensions":["mxs"]},"application/vnd.trueapp":{"source":"iana","extensions":["tra"]},"application/vnd.truedoc":{"source":"iana"},"application/vnd.ubisoft.webplayer":{"source":"iana"},"application/vnd.ufdl":{"source":"iana","extensions":["ufd","ufdl"]},"application/vnd.uiq.theme":{"source":"iana","extensions":["utz"]},"application/vnd.umajin":{"source":"iana","extensions":["umj"]},"application/vnd.unity":{"source":"iana","extensions":["unityweb"]},"application/vnd.uoml+xml":{"source":"iana","compressible":true,"extensions":["uoml"]},"application/vnd.uplanet.alert":{"source":"iana"},"application/vnd.uplanet.alert-wbxml":{"source":"iana"},"application/vnd.uplanet.bearer-choice":{"source":"iana"},"application/vnd.uplanet.bearer-choice-wbxml":{"source":"iana"},"application/vnd.uplanet.cacheop":{"source":"iana"},"application/vnd.uplanet.cacheop-wbxml":{"source":"iana"},"application/vnd.uplanet.channel":{"source":"iana"},"application/vnd.uplanet.channel-wbxml":{"source":"iana"},"application/vnd.uplanet.list":{"source":"iana"},"application/vnd.uplanet.list-wbxml":{"source":"iana"},"application/vnd.uplanet.listcmd":{"source":"iana"},"application/vnd.uplanet.listcmd-wbxml":{"source":"iana"},"application/vnd.uplanet.signal":{"source":"iana"},"application/vnd.uri-map":{"source":"iana"},"application/vnd.valve.source.material":{"source":"iana"},"application/vnd.vcx":{"source":"iana","extensions":["vcx"]},"application/vnd.vd-study":{"source":"iana"},"application/vnd.vectorworks":{"source":"iana"},"application/vnd.vel+json":{"source":"iana","compressible":true},"application/vnd.verimatrix.vcas":{"source":"iana"},"application/vnd.veritone.aion+json":{"source":"iana","compressible":true},"application/vnd.veryant.thin":{"source":"iana"},"application/vnd.ves.encrypted":{"source":"iana"},"application/vnd.vidsoft.vidconference":{"source":"iana"},"application/vnd.visio":{"source":"iana","extensions":["vsd","vst","vss","vsw"]},"application/vnd.visionary":{"source":"iana","extensions":["vis"]},"application/vnd.vividence.scriptfile":{"source":"iana"},"application/vnd.vsf":{"source":"iana","extensions":["vsf"]},"application/vnd.wap.sic":{"source":"iana"},"application/vnd.wap.slc":{"source":"iana"},"application/vnd.wap.wbxml":{"source":"iana","charset":"UTF-8","extensions":["wbxml"]},"application/vnd.wap.wmlc":{"source":"iana","extensions":["wmlc"]},"application/vnd.wap.wmlscriptc":{"source":"iana","extensions":["wmlsc"]},"application/vnd.webturbo":{"source":"iana","extensions":["wtb"]},"application/vnd.wfa.dpp":{"source":"iana"},"application/vnd.wfa.p2p":{"source":"iana"},"application/vnd.wfa.wsc":{"source":"iana"},"application/vnd.windows.devicepairing":{"source":"iana"},"application/vnd.wmc":{"source":"iana"},"application/vnd.wmf.bootstrap":{"source":"iana"},"application/vnd.wolfram.mathematica":{"source":"iana"},"application/vnd.wolfram.mathematica.package":{"source":"iana"},"application/vnd.wolfram.player":{"source":"iana","extensions":["nbp"]},"application/vnd.wordperfect":{"source":"iana","extensions":["wpd"]},"application/vnd.wqd":{"source":"iana","extensions":["wqd"]},"application/vnd.wrq-hp3000-labelled":{"source":"iana"},"application/vnd.wt.stf":{"source":"iana","extensions":["stf"]},"application/vnd.wv.csp+wbxml":{"source":"iana"},"application/vnd.wv.csp+xml":{"source":"iana","compressible":true},"application/vnd.wv.ssp+xml":{"source":"iana","compressible":true},"application/vnd.xacml+json":{"source":"iana","compressible":true},"application/vnd.xara":{"source":"iana","extensions":["xar"]},"application/vnd.xfdl":{"source":"iana","extensions":["xfdl"]},"application/vnd.xfdl.webform":{"source":"iana"},"application/vnd.xmi+xml":{"source":"iana","compressible":true},"application/vnd.xmpie.cpkg":{"source":"iana"},"application/vnd.xmpie.dpkg":{"source":"iana"},"application/vnd.xmpie.plan":{"source":"iana"},"application/vnd.xmpie.ppkg":{"source":"iana"},"application/vnd.xmpie.xlim":{"source":"iana"},"application/vnd.yamaha.hv-dic":{"source":"iana","extensions":["hvd"]},"application/vnd.yamaha.hv-script":{"source":"iana","extensions":["hvs"]},"application/vnd.yamaha.hv-voice":{"source":"iana","extensions":["hvp"]},"application/vnd.yamaha.openscoreformat":{"source":"iana","extensions":["osf"]},"application/vnd.yamaha.openscoreformat.osfpvg+xml":{"source":"iana","compressible":true,"extensions":["osfpvg"]},"application/vnd.yamaha.remote-setup":{"source":"iana"},"application/vnd.yamaha.smaf-audio":{"source":"iana","extensions":["saf"]},"application/vnd.yamaha.smaf-phrase":{"source":"iana","extensions":["spf"]},"application/vnd.yamaha.through-ngn":{"source":"iana"},"application/vnd.yamaha.tunnel-udpencap":{"source":"iana"},"application/vnd.yaoweme":{"source":"iana"},"application/vnd.yellowriver-custom-menu":{"source":"iana","extensions":["cmp"]},"application/vnd.youtube.yt":{"source":"iana"},"application/vnd.zul":{"source":"iana","extensions":["zir","zirz"]},"application/vnd.zzazz.deck+xml":{"source":"iana","compressible":true,"extensions":["zaz"]},"application/voicexml+xml":{"source":"iana","compressible":true,"extensions":["vxml"]},"application/voucher-cms+json":{"source":"iana","compressible":true},"application/vq-rtcpxr":{"source":"iana"},"application/wasm":{"source":"iana","compressible":true,"extensions":["wasm"]},"application/watcherinfo+xml":{"source":"iana","compressible":true,"extensions":["wif"]},"application/webpush-options+json":{"source":"iana","compressible":true},"application/whoispp-query":{"source":"iana"},"application/whoispp-response":{"source":"iana"},"application/widget":{"source":"iana","extensions":["wgt"]},"application/winhlp":{"source":"apache","extensions":["hlp"]},"application/wita":{"source":"iana"},"application/wordperfect5.1":{"source":"iana"},"application/wsdl+xml":{"source":"iana","compressible":true,"extensions":["wsdl"]},"application/wspolicy+xml":{"source":"iana","compressible":true,"extensions":["wspolicy"]},"application/x-7z-compressed":{"source":"apache","compressible":false,"extensions":["7z"]},"application/x-abiword":{"source":"apache","extensions":["abw"]},"application/x-ace-compressed":{"source":"apache","extensions":["ace"]},"application/x-amf":{"source":"apache"},"application/x-apple-diskimage":{"source":"apache","extensions":["dmg"]},"application/x-arj":{"compressible":false,"extensions":["arj"]},"application/x-authorware-bin":{"source":"apache","extensions":["aab","x32","u32","vox"]},"application/x-authorware-map":{"source":"apache","extensions":["aam"]},"application/x-authorware-seg":{"source":"apache","extensions":["aas"]},"application/x-bcpio":{"source":"apache","extensions":["bcpio"]},"application/x-bdoc":{"compressible":false,"extensions":["bdoc"]},"application/x-bittorrent":{"source":"apache","extensions":["torrent"]},"application/x-blorb":{"source":"apache","extensions":["blb","blorb"]},"application/x-bzip":{"source":"apache","compressible":false,"extensions":["bz"]},"application/x-bzip2":{"source":"apache","compressible":false,"extensions":["bz2","boz"]},"application/x-cbr":{"source":"apache","extensions":["cbr","cba","cbt","cbz","cb7"]},"application/x-cdlink":{"source":"apache","extensions":["vcd"]},"application/x-cfs-compressed":{"source":"apache","extensions":["cfs"]},"application/x-chat":{"source":"apache","extensions":["chat"]},"application/x-chess-pgn":{"source":"apache","extensions":["pgn"]},"application/x-chrome-extension":{"extensions":["crx"]},"application/x-cocoa":{"source":"nginx","extensions":["cco"]},"application/x-compress":{"source":"apache"},"application/x-conference":{"source":"apache","extensions":["nsc"]},"application/x-cpio":{"source":"apache","extensions":["cpio"]},"application/x-csh":{"source":"apache","extensions":["csh"]},"application/x-deb":{"compressible":false},"application/x-debian-package":{"source":"apache","extensions":["deb","udeb"]},"application/x-dgc-compressed":{"source":"apache","extensions":["dgc"]},"application/x-director":{"source":"apache","extensions":["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"]},"application/x-doom":{"source":"apache","extensions":["wad"]},"application/x-dtbncx+xml":{"source":"apache","compressible":true,"extensions":["ncx"]},"application/x-dtbook+xml":{"source":"apache","compressible":true,"extensions":["dtb"]},"application/x-dtbresource+xml":{"source":"apache","compressible":true,"extensions":["res"]},"application/x-dvi":{"source":"apache","compressible":false,"extensions":["dvi"]},"application/x-envoy":{"source":"apache","extensions":["evy"]},"application/x-eva":{"source":"apache","extensions":["eva"]},"application/x-font-bdf":{"source":"apache","extensions":["bdf"]},"application/x-font-dos":{"source":"apache"},"application/x-font-framemaker":{"source":"apache"},"application/x-font-ghostscript":{"source":"apache","extensions":["gsf"]},"application/x-font-libgrx":{"source":"apache"},"application/x-font-linux-psf":{"source":"apache","extensions":["psf"]},"application/x-font-pcf":{"source":"apache","extensions":["pcf"]},"application/x-font-snf":{"source":"apache","extensions":["snf"]},"application/x-font-speedo":{"source":"apache"},"application/x-font-sunos-news":{"source":"apache"},"application/x-font-type1":{"source":"apache","extensions":["pfa","pfb","pfm","afm"]},"application/x-font-vfont":{"source":"apache"},"application/x-freearc":{"source":"apache","extensions":["arc"]},"application/x-futuresplash":{"source":"apache","extensions":["spl"]},"application/x-gca-compressed":{"source":"apache","extensions":["gca"]},"application/x-glulx":{"source":"apache","extensions":["ulx"]},"application/x-gnumeric":{"source":"apache","extensions":["gnumeric"]},"application/x-gramps-xml":{"source":"apache","extensions":["gramps"]},"application/x-gtar":{"source":"apache","extensions":["gtar"]},"application/x-gzip":{"source":"apache"},"application/x-hdf":{"source":"apache","extensions":["hdf"]},"application/x-httpd-php":{"compressible":true,"extensions":["php"]},"application/x-install-instructions":{"source":"apache","extensions":["install"]},"application/x-iso9660-image":{"source":"apache","extensions":["iso"]},"application/x-iwork-keynote-sffkey":{"extensions":["key"]},"application/x-iwork-numbers-sffnumbers":{"extensions":["numbers"]},"application/x-iwork-pages-sffpages":{"extensions":["pages"]},"application/x-java-archive-diff":{"source":"nginx","extensions":["jardiff"]},"application/x-java-jnlp-file":{"source":"apache","compressible":false,"extensions":["jnlp"]},"application/x-javascript":{"compressible":true},"application/x-keepass2":{"extensions":["kdbx"]},"application/x-latex":{"source":"apache","compressible":false,"extensions":["latex"]},"application/x-lua-bytecode":{"extensions":["luac"]},"application/x-lzh-compressed":{"source":"apache","extensions":["lzh","lha"]},"application/x-makeself":{"source":"nginx","extensions":["run"]},"application/x-mie":{"source":"apache","extensions":["mie"]},"application/x-mobipocket-ebook":{"source":"apache","extensions":["prc","mobi"]},"application/x-mpegurl":{"compressible":false},"application/x-ms-application":{"source":"apache","extensions":["application"]},"application/x-ms-shortcut":{"source":"apache","extensions":["lnk"]},"application/x-ms-wmd":{"source":"apache","extensions":["wmd"]},"application/x-ms-wmz":{"source":"apache","extensions":["wmz"]},"application/x-ms-xbap":{"source":"apache","extensions":["xbap"]},"application/x-msaccess":{"source":"apache","extensions":["mdb"]},"application/x-msbinder":{"source":"apache","extensions":["obd"]},"application/x-mscardfile":{"source":"apache","extensions":["crd"]},"application/x-msclip":{"source":"apache","extensions":["clp"]},"application/x-msdos-program":{"extensions":["exe"]},"application/x-msdownload":{"source":"apache","extensions":["exe","dll","com","bat","msi"]},"application/x-msmediaview":{"source":"apache","extensions":["mvb","m13","m14"]},"application/x-msmetafile":{"source":"apache","extensions":["wmf","wmz","emf","emz"]},"application/x-msmoney":{"source":"apache","extensions":["mny"]},"application/x-mspublisher":{"source":"apache","extensions":["pub"]},"application/x-msschedule":{"source":"apache","extensions":["scd"]},"application/x-msterminal":{"source":"apache","extensions":["trm"]},"application/x-mswrite":{"source":"apache","extensions":["wri"]},"application/x-netcdf":{"source":"apache","extensions":["nc","cdf"]},"application/x-ns-proxy-autoconfig":{"compressible":true,"extensions":["pac"]},"application/x-nzb":{"source":"apache","extensions":["nzb"]},"application/x-perl":{"source":"nginx","extensions":["pl","pm"]},"application/x-pilot":{"source":"nginx","extensions":["prc","pdb"]},"application/x-pkcs12":{"source":"apache","compressible":false,"extensions":["p12","pfx"]},"application/x-pkcs7-certificates":{"source":"apache","extensions":["p7b","spc"]},"application/x-pkcs7-certreqresp":{"source":"apache","extensions":["p7r"]},"application/x-pki-message":{"source":"iana"},"application/x-rar-compressed":{"source":"apache","compressible":false,"extensions":["rar"]},"application/x-redhat-package-manager":{"source":"nginx","extensions":["rpm"]},"application/x-research-info-systems":{"source":"apache","extensions":["ris"]},"application/x-sea":{"source":"nginx","extensions":["sea"]},"application/x-sh":{"source":"apache","compressible":true,"extensions":["sh"]},"application/x-shar":{"source":"apache","extensions":["shar"]},"application/x-shockwave-flash":{"source":"apache","compressible":false,"extensions":["swf"]},"application/x-silverlight-app":{"source":"apache","extensions":["xap"]},"application/x-sql":{"source":"apache","extensions":["sql"]},"application/x-stuffit":{"source":"apache","compressible":false,"extensions":["sit"]},"application/x-stuffitx":{"source":"apache","extensions":["sitx"]},"application/x-subrip":{"source":"apache","extensions":["srt"]},"application/x-sv4cpio":{"source":"apache","extensions":["sv4cpio"]},"application/x-sv4crc":{"source":"apache","extensions":["sv4crc"]},"application/x-t3vm-image":{"source":"apache","extensions":["t3"]},"application/x-tads":{"source":"apache","extensions":["gam"]},"application/x-tar":{"source":"apache","compressible":true,"extensions":["tar"]},"application/x-tcl":{"source":"apache","extensions":["tcl","tk"]},"application/x-tex":{"source":"apache","extensions":["tex"]},"application/x-tex-tfm":{"source":"apache","extensions":["tfm"]},"application/x-texinfo":{"source":"apache","extensions":["texinfo","texi"]},"application/x-tgif":{"source":"apache","extensions":["obj"]},"application/x-ustar":{"source":"apache","extensions":["ustar"]},"application/x-virtualbox-hdd":{"compressible":true,"extensions":["hdd"]},"application/x-virtualbox-ova":{"compressible":true,"extensions":["ova"]},"application/x-virtualbox-ovf":{"compressible":true,"extensions":["ovf"]},"application/x-virtualbox-vbox":{"compressible":true,"extensions":["vbox"]},"application/x-virtualbox-vbox-extpack":{"compressible":false,"extensions":["vbox-extpack"]},"application/x-virtualbox-vdi":{"compressible":true,"extensions":["vdi"]},"application/x-virtualbox-vhd":{"compressible":true,"extensions":["vhd"]},"application/x-virtualbox-vmdk":{"compressible":true,"extensions":["vmdk"]},"application/x-wais-source":{"source":"apache","extensions":["src"]},"application/x-web-app-manifest+json":{"compressible":true,"extensions":["webapp"]},"application/x-www-form-urlencoded":{"source":"iana","compressible":true},"application/x-x509-ca-cert":{"source":"iana","extensions":["der","crt","pem"]},"application/x-x509-ca-ra-cert":{"source":"iana"},"application/x-x509-next-ca-cert":{"source":"iana"},"application/x-xfig":{"source":"apache","extensions":["fig"]},"application/x-xliff+xml":{"source":"apache","compressible":true,"extensions":["xlf"]},"application/x-xpinstall":{"source":"apache","compressible":false,"extensions":["xpi"]},"application/x-xz":{"source":"apache","extensions":["xz"]},"application/x-zmachine":{"source":"apache","extensions":["z1","z2","z3","z4","z5","z6","z7","z8"]},"application/x400-bp":{"source":"iana"},"application/xacml+xml":{"source":"iana","compressible":true},"application/xaml+xml":{"source":"apache","compressible":true,"extensions":["xaml"]},"application/xcap-att+xml":{"source":"iana","compressible":true,"extensions":["xav"]},"application/xcap-caps+xml":{"source":"iana","compressible":true,"extensions":["xca"]},"application/xcap-diff+xml":{"source":"iana","compressible":true,"extensions":["xdf"]},"application/xcap-el+xml":{"source":"iana","compressible":true,"extensions":["xel"]},"application/xcap-error+xml":{"source":"iana","compressible":true},"application/xcap-ns+xml":{"source":"iana","compressible":true,"extensions":["xns"]},"application/xcon-conference-info+xml":{"source":"iana","compressible":true},"application/xcon-conference-info-diff+xml":{"source":"iana","compressible":true},"application/xenc+xml":{"source":"iana","compressible":true,"extensions":["xenc"]},"application/xhtml+xml":{"source":"iana","compressible":true,"extensions":["xhtml","xht"]},"application/xhtml-voice+xml":{"source":"apache","compressible":true},"application/xliff+xml":{"source":"iana","compressible":true,"extensions":["xlf"]},"application/xml":{"source":"iana","compressible":true,"extensions":["xml","xsl","xsd","rng"]},"application/xml-dtd":{"source":"iana","compressible":true,"extensions":["dtd"]},"application/xml-external-parsed-entity":{"source":"iana"},"application/xml-patch+xml":{"source":"iana","compressible":true},"application/xmpp+xml":{"source":"iana","compressible":true},"application/xop+xml":{"source":"iana","compressible":true,"extensions":["xop"]},"application/xproc+xml":{"source":"apache","compressible":true,"extensions":["xpl"]},"application/xslt+xml":{"source":"iana","compressible":true,"extensions":["xsl","xslt"]},"application/xspf+xml":{"source":"apache","compressible":true,"extensions":["xspf"]},"application/xv+xml":{"source":"iana","compressible":true,"extensions":["mxml","xhvml","xvml","xvm"]},"application/yang":{"source":"iana","extensions":["yang"]},"application/yang-data+json":{"source":"iana","compressible":true},"application/yang-data+xml":{"source":"iana","compressible":true},"application/yang-patch+json":{"source":"iana","compressible":true},"application/yang-patch+xml":{"source":"iana","compressible":true},"application/yin+xml":{"source":"iana","compressible":true,"extensions":["yin"]},"application/zip":{"source":"iana","compressible":false,"extensions":["zip"]},"application/zlib":{"source":"iana"},"application/zstd":{"source":"iana"},"audio/1d-interleaved-parityfec":{"source":"iana"},"audio/32kadpcm":{"source":"iana"},"audio/3gpp":{"source":"iana","compressible":false,"extensions":["3gpp"]},"audio/3gpp2":{"source":"iana"},"audio/aac":{"source":"iana"},"audio/ac3":{"source":"iana"},"audio/adpcm":{"source":"apache","extensions":["adp"]},"audio/amr":{"source":"iana","extensions":["amr"]},"audio/amr-wb":{"source":"iana"},"audio/amr-wb+":{"source":"iana"},"audio/aptx":{"source":"iana"},"audio/asc":{"source":"iana"},"audio/atrac-advanced-lossless":{"source":"iana"},"audio/atrac-x":{"source":"iana"},"audio/atrac3":{"source":"iana"},"audio/basic":{"source":"iana","compressible":false,"extensions":["au","snd"]},"audio/bv16":{"source":"iana"},"audio/bv32":{"source":"iana"},"audio/clearmode":{"source":"iana"},"audio/cn":{"source":"iana"},"audio/dat12":{"source":"iana"},"audio/dls":{"source":"iana"},"audio/dsr-es201108":{"source":"iana"},"audio/dsr-es202050":{"source":"iana"},"audio/dsr-es202211":{"source":"iana"},"audio/dsr-es202212":{"source":"iana"},"audio/dv":{"source":"iana"},"audio/dvi4":{"source":"iana"},"audio/eac3":{"source":"iana"},"audio/encaprtp":{"source":"iana"},"audio/evrc":{"source":"iana"},"audio/evrc-qcp":{"source":"iana"},"audio/evrc0":{"source":"iana"},"audio/evrc1":{"source":"iana"},"audio/evrcb":{"source":"iana"},"audio/evrcb0":{"source":"iana"},"audio/evrcb1":{"source":"iana"},"audio/evrcnw":{"source":"iana"},"audio/evrcnw0":{"source":"iana"},"audio/evrcnw1":{"source":"iana"},"audio/evrcwb":{"source":"iana"},"audio/evrcwb0":{"source":"iana"},"audio/evrcwb1":{"source":"iana"},"audio/evs":{"source":"iana"},"audio/flexfec":{"source":"iana"},"audio/fwdred":{"source":"iana"},"audio/g711-0":{"source":"iana"},"audio/g719":{"source":"iana"},"audio/g722":{"source":"iana"},"audio/g7221":{"source":"iana"},"audio/g723":{"source":"iana"},"audio/g726-16":{"source":"iana"},"audio/g726-24":{"source":"iana"},"audio/g726-32":{"source":"iana"},"audio/g726-40":{"source":"iana"},"audio/g728":{"source":"iana"},"audio/g729":{"source":"iana"},"audio/g7291":{"source":"iana"},"audio/g729d":{"source":"iana"},"audio/g729e":{"source":"iana"},"audio/gsm":{"source":"iana"},"audio/gsm-efr":{"source":"iana"},"audio/gsm-hr-08":{"source":"iana"},"audio/ilbc":{"source":"iana"},"audio/ip-mr_v2.5":{"source":"iana"},"audio/isac":{"source":"apache"},"audio/l16":{"source":"iana"},"audio/l20":{"source":"iana"},"audio/l24":{"source":"iana","compressible":false},"audio/l8":{"source":"iana"},"audio/lpc":{"source":"iana"},"audio/melp":{"source":"iana"},"audio/melp1200":{"source":"iana"},"audio/melp2400":{"source":"iana"},"audio/melp600":{"source":"iana"},"audio/mhas":{"source":"iana"},"audio/midi":{"source":"apache","extensions":["mid","midi","kar","rmi"]},"audio/mobile-xmf":{"source":"iana","extensions":["mxmf"]},"audio/mp3":{"compressible":false,"extensions":["mp3"]},"audio/mp4":{"source":"iana","compressible":false,"extensions":["m4a","mp4a"]},"audio/mp4a-latm":{"source":"iana"},"audio/mpa":{"source":"iana"},"audio/mpa-robust":{"source":"iana"},"audio/mpeg":{"source":"iana","compressible":false,"extensions":["mpga","mp2","mp2a","mp3","m2a","m3a"]},"audio/mpeg4-generic":{"source":"iana"},"audio/musepack":{"source":"apache"},"audio/ogg":{"source":"iana","compressible":false,"extensions":["oga","ogg","spx","opus"]},"audio/opus":{"source":"iana"},"audio/parityfec":{"source":"iana"},"audio/pcma":{"source":"iana"},"audio/pcma-wb":{"source":"iana"},"audio/pcmu":{"source":"iana"},"audio/pcmu-wb":{"source":"iana"},"audio/prs.sid":{"source":"iana"},"audio/qcelp":{"source":"iana"},"audio/raptorfec":{"source":"iana"},"audio/red":{"source":"iana"},"audio/rtp-enc-aescm128":{"source":"iana"},"audio/rtp-midi":{"source":"iana"},"audio/rtploopback":{"source":"iana"},"audio/rtx":{"source":"iana"},"audio/s3m":{"source":"apache","extensions":["s3m"]},"audio/scip":{"source":"iana"},"audio/silk":{"source":"apache","extensions":["sil"]},"audio/smv":{"source":"iana"},"audio/smv-qcp":{"source":"iana"},"audio/smv0":{"source":"iana"},"audio/sofa":{"source":"iana"},"audio/sp-midi":{"source":"iana"},"audio/speex":{"source":"iana"},"audio/t140c":{"source":"iana"},"audio/t38":{"source":"iana"},"audio/telephone-event":{"source":"iana"},"audio/tetra_acelp":{"source":"iana"},"audio/tetra_acelp_bb":{"source":"iana"},"audio/tone":{"source":"iana"},"audio/tsvcis":{"source":"iana"},"audio/uemclip":{"source":"iana"},"audio/ulpfec":{"source":"iana"},"audio/usac":{"source":"iana"},"audio/vdvi":{"source":"iana"},"audio/vmr-wb":{"source":"iana"},"audio/vnd.3gpp.iufp":{"source":"iana"},"audio/vnd.4sb":{"source":"iana"},"audio/vnd.audiokoz":{"source":"iana"},"audio/vnd.celp":{"source":"iana"},"audio/vnd.cisco.nse":{"source":"iana"},"audio/vnd.cmles.radio-events":{"source":"iana"},"audio/vnd.cns.anp1":{"source":"iana"},"audio/vnd.cns.inf1":{"source":"iana"},"audio/vnd.dece.audio":{"source":"iana","extensions":["uva","uvva"]},"audio/vnd.digital-winds":{"source":"iana","extensions":["eol"]},"audio/vnd.dlna.adts":{"source":"iana"},"audio/vnd.dolby.heaac.1":{"source":"iana"},"audio/vnd.dolby.heaac.2":{"source":"iana"},"audio/vnd.dolby.mlp":{"source":"iana"},"audio/vnd.dolby.mps":{"source":"iana"},"audio/vnd.dolby.pl2":{"source":"iana"},"audio/vnd.dolby.pl2x":{"source":"iana"},"audio/vnd.dolby.pl2z":{"source":"iana"},"audio/vnd.dolby.pulse.1":{"source":"iana"},"audio/vnd.dra":{"source":"iana","extensions":["dra"]},"audio/vnd.dts":{"source":"iana","extensions":["dts"]},"audio/vnd.dts.hd":{"source":"iana","extensions":["dtshd"]},"audio/vnd.dts.uhd":{"source":"iana"},"audio/vnd.dvb.file":{"source":"iana"},"audio/vnd.everad.plj":{"source":"iana"},"audio/vnd.hns.audio":{"source":"iana"},"audio/vnd.lucent.voice":{"source":"iana","extensions":["lvp"]},"audio/vnd.ms-playready.media.pya":{"source":"iana","extensions":["pya"]},"audio/vnd.nokia.mobile-xmf":{"source":"iana"},"audio/vnd.nortel.vbk":{"source":"iana"},"audio/vnd.nuera.ecelp4800":{"source":"iana","extensions":["ecelp4800"]},"audio/vnd.nuera.ecelp7470":{"source":"iana","extensions":["ecelp7470"]},"audio/vnd.nuera.ecelp9600":{"source":"iana","extensions":["ecelp9600"]},"audio/vnd.octel.sbc":{"source":"iana"},"audio/vnd.presonus.multitrack":{"source":"iana"},"audio/vnd.qcelp":{"source":"iana"},"audio/vnd.rhetorex.32kadpcm":{"source":"iana"},"audio/vnd.rip":{"source":"iana","extensions":["rip"]},"audio/vnd.rn-realaudio":{"compressible":false},"audio/vnd.sealedmedia.softseal.mpeg":{"source":"iana"},"audio/vnd.vmx.cvsd":{"source":"iana"},"audio/vnd.wave":{"compressible":false},"audio/vorbis":{"source":"iana","compressible":false},"audio/vorbis-config":{"source":"iana"},"audio/wav":{"compressible":false,"extensions":["wav"]},"audio/wave":{"compressible":false,"extensions":["wav"]},"audio/webm":{"source":"apache","compressible":false,"extensions":["weba"]},"audio/x-aac":{"source":"apache","compressible":false,"extensions":["aac"]},"audio/x-aiff":{"source":"apache","extensions":["aif","aiff","aifc"]},"audio/x-caf":{"source":"apache","compressible":false,"extensions":["caf"]},"audio/x-flac":{"source":"apache","extensions":["flac"]},"audio/x-m4a":{"source":"nginx","extensions":["m4a"]},"audio/x-matroska":{"source":"apache","extensions":["mka"]},"audio/x-mpegurl":{"source":"apache","extensions":["m3u"]},"audio/x-ms-wax":{"source":"apache","extensions":["wax"]},"audio/x-ms-wma":{"source":"apache","extensions":["wma"]},"audio/x-pn-realaudio":{"source":"apache","extensions":["ram","ra"]},"audio/x-pn-realaudio-plugin":{"source":"apache","extensions":["rmp"]},"audio/x-realaudio":{"source":"nginx","extensions":["ra"]},"audio/x-tta":{"source":"apache"},"audio/x-wav":{"source":"apache","extensions":["wav"]},"audio/xm":{"source":"apache","extensions":["xm"]},"chemical/x-cdx":{"source":"apache","extensions":["cdx"]},"chemical/x-cif":{"source":"apache","extensions":["cif"]},"chemical/x-cmdf":{"source":"apache","extensions":["cmdf"]},"chemical/x-cml":{"source":"apache","extensions":["cml"]},"chemical/x-csml":{"source":"apache","extensions":["csml"]},"chemical/x-pdb":{"source":"apache"},"chemical/x-xyz":{"source":"apache","extensions":["xyz"]},"font/collection":{"source":"iana","extensions":["ttc"]},"font/otf":{"source":"iana","compressible":true,"extensions":["otf"]},"font/sfnt":{"source":"iana"},"font/ttf":{"source":"iana","compressible":true,"extensions":["ttf"]},"font/woff":{"source":"iana","extensions":["woff"]},"font/woff2":{"source":"iana","extensions":["woff2"]},"image/aces":{"source":"iana","extensions":["exr"]},"image/apng":{"compressible":false,"extensions":["apng"]},"image/avci":{"source":"iana","extensions":["avci"]},"image/avcs":{"source":"iana","extensions":["avcs"]},"image/avif":{"source":"iana","compressible":false,"extensions":["avif"]},"image/bmp":{"source":"iana","compressible":true,"extensions":["bmp"]},"image/cgm":{"source":"iana","extensions":["cgm"]},"image/dicom-rle":{"source":"iana","extensions":["drle"]},"image/emf":{"source":"iana","extensions":["emf"]},"image/fits":{"source":"iana","extensions":["fits"]},"image/g3fax":{"source":"iana","extensions":["g3"]},"image/gif":{"source":"iana","compressible":false,"extensions":["gif"]},"image/heic":{"source":"iana","extensions":["heic"]},"image/heic-sequence":{"source":"iana","extensions":["heics"]},"image/heif":{"source":"iana","extensions":["heif"]},"image/heif-sequence":{"source":"iana","extensions":["heifs"]},"image/hej2k":{"source":"iana","extensions":["hej2"]},"image/hsj2":{"source":"iana","extensions":["hsj2"]},"image/ief":{"source":"iana","extensions":["ief"]},"image/jls":{"source":"iana","extensions":["jls"]},"image/jp2":{"source":"iana","compressible":false,"extensions":["jp2","jpg2"]},"image/jpeg":{"source":"iana","compressible":false,"extensions":["jpeg","jpg","jpe"]},"image/jph":{"source":"iana","extensions":["jph"]},"image/jphc":{"source":"iana","extensions":["jhc"]},"image/jpm":{"source":"iana","compressible":false,"extensions":["jpm"]},"image/jpx":{"source":"iana","compressible":false,"extensions":["jpx","jpf"]},"image/jxr":{"source":"iana","extensions":["jxr"]},"image/jxra":{"source":"iana","extensions":["jxra"]},"image/jxrs":{"source":"iana","extensions":["jxrs"]},"image/jxs":{"source":"iana","extensions":["jxs"]},"image/jxsc":{"source":"iana","extensions":["jxsc"]},"image/jxsi":{"source":"iana","extensions":["jxsi"]},"image/jxss":{"source":"iana","extensions":["jxss"]},"image/ktx":{"source":"iana","extensions":["ktx"]},"image/ktx2":{"source":"iana","extensions":["ktx2"]},"image/naplps":{"source":"iana"},"image/pjpeg":{"compressible":false},"image/png":{"source":"iana","compressible":false,"extensions":["png"]},"image/prs.btif":{"source":"iana","extensions":["btif"]},"image/prs.pti":{"source":"iana","extensions":["pti"]},"image/pwg-raster":{"source":"iana"},"image/sgi":{"source":"apache","extensions":["sgi"]},"image/svg+xml":{"source":"iana","compressible":true,"extensions":["svg","svgz"]},"image/t38":{"source":"iana","extensions":["t38"]},"image/tiff":{"source":"iana","compressible":false,"extensions":["tif","tiff"]},"image/tiff-fx":{"source":"iana","extensions":["tfx"]},"image/vnd.adobe.photoshop":{"source":"iana","compressible":true,"extensions":["psd"]},"image/vnd.airzip.accelerator.azv":{"source":"iana","extensions":["azv"]},"image/vnd.cns.inf2":{"source":"iana"},"image/vnd.dece.graphic":{"source":"iana","extensions":["uvi","uvvi","uvg","uvvg"]},"image/vnd.djvu":{"source":"iana","extensions":["djvu","djv"]},"image/vnd.dvb.subtitle":{"source":"iana","extensions":["sub"]},"image/vnd.dwg":{"source":"iana","extensions":["dwg"]},"image/vnd.dxf":{"source":"iana","extensions":["dxf"]},"image/vnd.fastbidsheet":{"source":"iana","extensions":["fbs"]},"image/vnd.fpx":{"source":"iana","extensions":["fpx"]},"image/vnd.fst":{"source":"iana","extensions":["fst"]},"image/vnd.fujixerox.edmics-mmr":{"source":"iana","extensions":["mmr"]},"image/vnd.fujixerox.edmics-rlc":{"source":"iana","extensions":["rlc"]},"image/vnd.globalgraphics.pgb":{"source":"iana"},"image/vnd.microsoft.icon":{"source":"iana","compressible":true,"extensions":["ico"]},"image/vnd.mix":{"source":"iana"},"image/vnd.mozilla.apng":{"source":"iana"},"image/vnd.ms-dds":{"compressible":true,"extensions":["dds"]},"image/vnd.ms-modi":{"source":"iana","extensions":["mdi"]},"image/vnd.ms-photo":{"source":"apache","extensions":["wdp"]},"image/vnd.net-fpx":{"source":"iana","extensions":["npx"]},"image/vnd.pco.b16":{"source":"iana","extensions":["b16"]},"image/vnd.radiance":{"source":"iana"},"image/vnd.sealed.png":{"source":"iana"},"image/vnd.sealedmedia.softseal.gif":{"source":"iana"},"image/vnd.sealedmedia.softseal.jpg":{"source":"iana"},"image/vnd.svf":{"source":"iana"},"image/vnd.tencent.tap":{"source":"iana","extensions":["tap"]},"image/vnd.valve.source.texture":{"source":"iana","extensions":["vtf"]},"image/vnd.wap.wbmp":{"source":"iana","extensions":["wbmp"]},"image/vnd.xiff":{"source":"iana","extensions":["xif"]},"image/vnd.zbrush.pcx":{"source":"iana","extensions":["pcx"]},"image/webp":{"source":"apache","extensions":["webp"]},"image/wmf":{"source":"iana","extensions":["wmf"]},"image/x-3ds":{"source":"apache","extensions":["3ds"]},"image/x-cmu-raster":{"source":"apache","extensions":["ras"]},"image/x-cmx":{"source":"apache","extensions":["cmx"]},"image/x-freehand":{"source":"apache","extensions":["fh","fhc","fh4","fh5","fh7"]},"image/x-icon":{"source":"apache","compressible":true,"extensions":["ico"]},"image/x-jng":{"source":"nginx","extensions":["jng"]},"image/x-mrsid-image":{"source":"apache","extensions":["sid"]},"image/x-ms-bmp":{"source":"nginx","compressible":true,"extensions":["bmp"]},"image/x-pcx":{"source":"apache","extensions":["pcx"]},"image/x-pict":{"source":"apache","extensions":["pic","pct"]},"image/x-portable-anymap":{"source":"apache","extensions":["pnm"]},"image/x-portable-bitmap":{"source":"apache","extensions":["pbm"]},"image/x-portable-graymap":{"source":"apache","extensions":["pgm"]},"image/x-portable-pixmap":{"source":"apache","extensions":["ppm"]},"image/x-rgb":{"source":"apache","extensions":["rgb"]},"image/x-tga":{"source":"apache","extensions":["tga"]},"image/x-xbitmap":{"source":"apache","extensions":["xbm"]},"image/x-xcf":{"compressible":false},"image/x-xpixmap":{"source":"apache","extensions":["xpm"]},"image/x-xwindowdump":{"source":"apache","extensions":["xwd"]},"message/cpim":{"source":"iana"},"message/delivery-status":{"source":"iana"},"message/disposition-notification":{"source":"iana","extensions":["disposition-notification"]},"message/external-body":{"source":"iana"},"message/feedback-report":{"source":"iana"},"message/global":{"source":"iana","extensions":["u8msg"]},"message/global-delivery-status":{"source":"iana","extensions":["u8dsn"]},"message/global-disposition-notification":{"source":"iana","extensions":["u8mdn"]},"message/global-headers":{"source":"iana","extensions":["u8hdr"]},"message/http":{"source":"iana","compressible":false},"message/imdn+xml":{"source":"iana","compressible":true},"message/news":{"source":"iana"},"message/partial":{"source":"iana","compressible":false},"message/rfc822":{"source":"iana","compressible":true,"extensions":["eml","mime"]},"message/s-http":{"source":"iana"},"message/sip":{"source":"iana"},"message/sipfrag":{"source":"iana"},"message/tracking-status":{"source":"iana"},"message/vnd.si.simp":{"source":"iana"},"message/vnd.wfa.wsc":{"source":"iana","extensions":["wsc"]},"model/3mf":{"source":"iana","extensions":["3mf"]},"model/e57":{"source":"iana"},"model/gltf+json":{"source":"iana","compressible":true,"extensions":["gltf"]},"model/gltf-binary":{"source":"iana","compressible":true,"extensions":["glb"]},"model/iges":{"source":"iana","compressible":false,"extensions":["igs","iges"]},"model/mesh":{"source":"iana","compressible":false,"extensions":["msh","mesh","silo"]},"model/mtl":{"source":"iana","extensions":["mtl"]},"model/obj":{"source":"iana","extensions":["obj"]},"model/step":{"source":"iana"},"model/step+xml":{"source":"iana","compressible":true,"extensions":["stpx"]},"model/step+zip":{"source":"iana","compressible":false,"extensions":["stpz"]},"model/step-xml+zip":{"source":"iana","compressible":false,"extensions":["stpxz"]},"model/stl":{"source":"iana","extensions":["stl"]},"model/vnd.collada+xml":{"source":"iana","compressible":true,"extensions":["dae"]},"model/vnd.dwf":{"source":"iana","extensions":["dwf"]},"model/vnd.flatland.3dml":{"source":"iana"},"model/vnd.gdl":{"source":"iana","extensions":["gdl"]},"model/vnd.gs-gdl":{"source":"apache"},"model/vnd.gs.gdl":{"source":"iana"},"model/vnd.gtw":{"source":"iana","extensions":["gtw"]},"model/vnd.moml+xml":{"source":"iana","compressible":true},"model/vnd.mts":{"source":"iana","extensions":["mts"]},"model/vnd.opengex":{"source":"iana","extensions":["ogex"]},"model/vnd.parasolid.transmit.binary":{"source":"iana","extensions":["x_b"]},"model/vnd.parasolid.transmit.text":{"source":"iana","extensions":["x_t"]},"model/vnd.pytha.pyox":{"source":"iana"},"model/vnd.rosette.annotated-data-model":{"source":"iana"},"model/vnd.sap.vds":{"source":"iana","extensions":["vds"]},"model/vnd.usdz+zip":{"source":"iana","compressible":false,"extensions":["usdz"]},"model/vnd.valve.source.compiled-map":{"source":"iana","extensions":["bsp"]},"model/vnd.vtu":{"source":"iana","extensions":["vtu"]},"model/vrml":{"source":"iana","compressible":false,"extensions":["wrl","vrml"]},"model/x3d+binary":{"source":"apache","compressible":false,"extensions":["x3db","x3dbz"]},"model/x3d+fastinfoset":{"source":"iana","extensions":["x3db"]},"model/x3d+vrml":{"source":"apache","compressible":false,"extensions":["x3dv","x3dvz"]},"model/x3d+xml":{"source":"iana","compressible":true,"extensions":["x3d","x3dz"]},"model/x3d-vrml":{"source":"iana","extensions":["x3dv"]},"multipart/alternative":{"source":"iana","compressible":false},"multipart/appledouble":{"source":"iana"},"multipart/byteranges":{"source":"iana"},"multipart/digest":{"source":"iana"},"multipart/encrypted":{"source":"iana","compressible":false},"multipart/form-data":{"source":"iana","compressible":false},"multipart/header-set":{"source":"iana"},"multipart/mixed":{"source":"iana"},"multipart/multilingual":{"source":"iana"},"multipart/parallel":{"source":"iana"},"multipart/related":{"source":"iana","compressible":false},"multipart/report":{"source":"iana"},"multipart/signed":{"source":"iana","compressible":false},"multipart/vnd.bint.med-plus":{"source":"iana"},"multipart/voice-message":{"source":"iana"},"multipart/x-mixed-replace":{"source":"iana"},"text/1d-interleaved-parityfec":{"source":"iana"},"text/cache-manifest":{"source":"iana","compressible":true,"extensions":["appcache","manifest"]},"text/calendar":{"source":"iana","extensions":["ics","ifb"]},"text/calender":{"compressible":true},"text/cmd":{"compressible":true},"text/coffeescript":{"extensions":["coffee","litcoffee"]},"text/cql":{"source":"iana"},"text/cql-expression":{"source":"iana"},"text/cql-identifier":{"source":"iana"},"text/css":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["css"]},"text/csv":{"source":"iana","compressible":true,"extensions":["csv"]},"text/csv-schema":{"source":"iana"},"text/directory":{"source":"iana"},"text/dns":{"source":"iana"},"text/ecmascript":{"source":"iana"},"text/encaprtp":{"source":"iana"},"text/enriched":{"source":"iana"},"text/fhirpath":{"source":"iana"},"text/flexfec":{"source":"iana"},"text/fwdred":{"source":"iana"},"text/gff3":{"source":"iana"},"text/grammar-ref-list":{"source":"iana"},"text/html":{"source":"iana","compressible":true,"extensions":["html","htm","shtml"]},"text/jade":{"extensions":["jade"]},"text/javascript":{"source":"iana","compressible":true},"text/jcr-cnd":{"source":"iana"},"text/jsx":{"compressible":true,"extensions":["jsx"]},"text/less":{"compressible":true,"extensions":["less"]},"text/markdown":{"source":"iana","compressible":true,"extensions":["markdown","md"]},"text/mathml":{"source":"nginx","extensions":["mml"]},"text/mdx":{"compressible":true,"extensions":["mdx"]},"text/mizar":{"source":"iana"},"text/n3":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["n3"]},"text/parameters":{"source":"iana","charset":"UTF-8"},"text/parityfec":{"source":"iana"},"text/plain":{"source":"iana","compressible":true,"extensions":["txt","text","conf","def","list","log","in","ini"]},"text/provenance-notation":{"source":"iana","charset":"UTF-8"},"text/prs.fallenstein.rst":{"source":"iana"},"text/prs.lines.tag":{"source":"iana","extensions":["dsc"]},"text/prs.prop.logic":{"source":"iana"},"text/raptorfec":{"source":"iana"},"text/red":{"source":"iana"},"text/rfc822-headers":{"source":"iana"},"text/richtext":{"source":"iana","compressible":true,"extensions":["rtx"]},"text/rtf":{"source":"iana","compressible":true,"extensions":["rtf"]},"text/rtp-enc-aescm128":{"source":"iana"},"text/rtploopback":{"source":"iana"},"text/rtx":{"source":"iana"},"text/sgml":{"source":"iana","extensions":["sgml","sgm"]},"text/shaclc":{"source":"iana"},"text/shex":{"source":"iana","extensions":["shex"]},"text/slim":{"extensions":["slim","slm"]},"text/spdx":{"source":"iana","extensions":["spdx"]},"text/strings":{"source":"iana"},"text/stylus":{"extensions":["stylus","styl"]},"text/t140":{"source":"iana"},"text/tab-separated-values":{"source":"iana","compressible":true,"extensions":["tsv"]},"text/troff":{"source":"iana","extensions":["t","tr","roff","man","me","ms"]},"text/turtle":{"source":"iana","charset":"UTF-8","extensions":["ttl"]},"text/ulpfec":{"source":"iana"},"text/uri-list":{"source":"iana","compressible":true,"extensions":["uri","uris","urls"]},"text/vcard":{"source":"iana","compressible":true,"extensions":["vcard"]},"text/vnd.a":{"source":"iana"},"text/vnd.abc":{"source":"iana"},"text/vnd.ascii-art":{"source":"iana"},"text/vnd.curl":{"source":"iana","extensions":["curl"]},"text/vnd.curl.dcurl":{"source":"apache","extensions":["dcurl"]},"text/vnd.curl.mcurl":{"source":"apache","extensions":["mcurl"]},"text/vnd.curl.scurl":{"source":"apache","extensions":["scurl"]},"text/vnd.debian.copyright":{"source":"iana","charset":"UTF-8"},"text/vnd.dmclientscript":{"source":"iana"},"text/vnd.dvb.subtitle":{"source":"iana","extensions":["sub"]},"text/vnd.esmertec.theme-descriptor":{"source":"iana","charset":"UTF-8"},"text/vnd.familysearch.gedcom":{"source":"iana","extensions":["ged"]},"text/vnd.ficlab.flt":{"source":"iana"},"text/vnd.fly":{"source":"iana","extensions":["fly"]},"text/vnd.fmi.flexstor":{"source":"iana","extensions":["flx"]},"text/vnd.gml":{"source":"iana"},"text/vnd.graphviz":{"source":"iana","extensions":["gv"]},"text/vnd.hans":{"source":"iana"},"text/vnd.hgl":{"source":"iana"},"text/vnd.in3d.3dml":{"source":"iana","extensions":["3dml"]},"text/vnd.in3d.spot":{"source":"iana","extensions":["spot"]},"text/vnd.iptc.newsml":{"source":"iana"},"text/vnd.iptc.nitf":{"source":"iana"},"text/vnd.latex-z":{"source":"iana"},"text/vnd.motorola.reflex":{"source":"iana"},"text/vnd.ms-mediapackage":{"source":"iana"},"text/vnd.net2phone.commcenter.command":{"source":"iana"},"text/vnd.radisys.msml-basic-layout":{"source":"iana"},"text/vnd.senx.warpscript":{"source":"iana"},"text/vnd.si.uricatalogue":{"source":"iana"},"text/vnd.sosi":{"source":"iana"},"text/vnd.sun.j2me.app-descriptor":{"source":"iana","charset":"UTF-8","extensions":["jad"]},"text/vnd.trolltech.linguist":{"source":"iana","charset":"UTF-8"},"text/vnd.wap.si":{"source":"iana"},"text/vnd.wap.sl":{"source":"iana"},"text/vnd.wap.wml":{"source":"iana","extensions":["wml"]},"text/vnd.wap.wmlscript":{"source":"iana","extensions":["wmls"]},"text/vtt":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["vtt"]},"text/x-asm":{"source":"apache","extensions":["s","asm"]},"text/x-c":{"source":"apache","extensions":["c","cc","cxx","cpp","h","hh","dic"]},"text/x-component":{"source":"nginx","extensions":["htc"]},"text/x-fortran":{"source":"apache","extensions":["f","for","f77","f90"]},"text/x-gwt-rpc":{"compressible":true},"text/x-handlebars-template":{"extensions":["hbs"]},"text/x-java-source":{"source":"apache","extensions":["java"]},"text/x-jquery-tmpl":{"compressible":true},"text/x-lua":{"extensions":["lua"]},"text/x-markdown":{"compressible":true,"extensions":["mkd"]},"text/x-nfo":{"source":"apache","extensions":["nfo"]},"text/x-opml":{"source":"apache","extensions":["opml"]},"text/x-org":{"compressible":true,"extensions":["org"]},"text/x-pascal":{"source":"apache","extensions":["p","pas"]},"text/x-processing":{"compressible":true,"extensions":["pde"]},"text/x-sass":{"extensions":["sass"]},"text/x-scss":{"extensions":["scss"]},"text/x-setext":{"source":"apache","extensions":["etx"]},"text/x-sfv":{"source":"apache","extensions":["sfv"]},"text/x-suse-ymp":{"compressible":true,"extensions":["ymp"]},"text/x-uuencode":{"source":"apache","extensions":["uu"]},"text/x-vcalendar":{"source":"apache","extensions":["vcs"]},"text/x-vcard":{"source":"apache","extensions":["vcf"]},"text/xml":{"source":"iana","compressible":true,"extensions":["xml"]},"text/xml-external-parsed-entity":{"source":"iana"},"text/yaml":{"compressible":true,"extensions":["yaml","yml"]},"video/1d-interleaved-parityfec":{"source":"iana"},"video/3gpp":{"source":"iana","extensions":["3gp","3gpp"]},"video/3gpp-tt":{"source":"iana"},"video/3gpp2":{"source":"iana","extensions":["3g2"]},"video/av1":{"source":"iana"},"video/bmpeg":{"source":"iana"},"video/bt656":{"source":"iana"},"video/celb":{"source":"iana"},"video/dv":{"source":"iana"},"video/encaprtp":{"source":"iana"},"video/ffv1":{"source":"iana"},"video/flexfec":{"source":"iana"},"video/h261":{"source":"iana","extensions":["h261"]},"video/h263":{"source":"iana","extensions":["h263"]},"video/h263-1998":{"source":"iana"},"video/h263-2000":{"source":"iana"},"video/h264":{"source":"iana","extensions":["h264"]},"video/h264-rcdo":{"source":"iana"},"video/h264-svc":{"source":"iana"},"video/h265":{"source":"iana"},"video/iso.segment":{"source":"iana","extensions":["m4s"]},"video/jpeg":{"source":"iana","extensions":["jpgv"]},"video/jpeg2000":{"source":"iana"},"video/jpm":{"source":"apache","extensions":["jpm","jpgm"]},"video/jxsv":{"source":"iana"},"video/mj2":{"source":"iana","extensions":["mj2","mjp2"]},"video/mp1s":{"source":"iana"},"video/mp2p":{"source":"iana"},"video/mp2t":{"source":"iana","extensions":["ts"]},"video/mp4":{"source":"iana","compressible":false,"extensions":["mp4","mp4v","mpg4"]},"video/mp4v-es":{"source":"iana"},"video/mpeg":{"source":"iana","compressible":false,"extensions":["mpeg","mpg","mpe","m1v","m2v"]},"video/mpeg4-generic":{"source":"iana"},"video/mpv":{"source":"iana"},"video/nv":{"source":"iana"},"video/ogg":{"source":"iana","compressible":false,"extensions":["ogv"]},"video/parityfec":{"source":"iana"},"video/pointer":{"source":"iana"},"video/quicktime":{"source":"iana","compressible":false,"extensions":["qt","mov"]},"video/raptorfec":{"source":"iana"},"video/raw":{"source":"iana"},"video/rtp-enc-aescm128":{"source":"iana"},"video/rtploopback":{"source":"iana"},"video/rtx":{"source":"iana"},"video/scip":{"source":"iana"},"video/smpte291":{"source":"iana"},"video/smpte292m":{"source":"iana"},"video/ulpfec":{"source":"iana"},"video/vc1":{"source":"iana"},"video/vc2":{"source":"iana"},"video/vnd.cctv":{"source":"iana"},"video/vnd.dece.hd":{"source":"iana","extensions":["uvh","uvvh"]},"video/vnd.dece.mobile":{"source":"iana","extensions":["uvm","uvvm"]},"video/vnd.dece.mp4":{"source":"iana"},"video/vnd.dece.pd":{"source":"iana","extensions":["uvp","uvvp"]},"video/vnd.dece.sd":{"source":"iana","extensions":["uvs","uvvs"]},"video/vnd.dece.video":{"source":"iana","extensions":["uvv","uvvv"]},"video/vnd.directv.mpeg":{"source":"iana"},"video/vnd.directv.mpeg-tts":{"source":"iana"},"video/vnd.dlna.mpeg-tts":{"source":"iana"},"video/vnd.dvb.file":{"source":"iana","extensions":["dvb"]},"video/vnd.fvt":{"source":"iana","extensions":["fvt"]},"video/vnd.hns.video":{"source":"iana"},"video/vnd.iptvforum.1dparityfec-1010":{"source":"iana"},"video/vnd.iptvforum.1dparityfec-2005":{"source":"iana"},"video/vnd.iptvforum.2dparityfec-1010":{"source":"iana"},"video/vnd.iptvforum.2dparityfec-2005":{"source":"iana"},"video/vnd.iptvforum.ttsavc":{"source":"iana"},"video/vnd.iptvforum.ttsmpeg2":{"source":"iana"},"video/vnd.motorola.video":{"source":"iana"},"video/vnd.motorola.videop":{"source":"iana"},"video/vnd.mpegurl":{"source":"iana","extensions":["mxu","m4u"]},"video/vnd.ms-playready.media.pyv":{"source":"iana","extensions":["pyv"]},"video/vnd.nokia.interleaved-multimedia":{"source":"iana"},"video/vnd.nokia.mp4vr":{"source":"iana"},"video/vnd.nokia.videovoip":{"source":"iana"},"video/vnd.objectvideo":{"source":"iana"},"video/vnd.radgamettools.bink":{"source":"iana"},"video/vnd.radgamettools.smacker":{"source":"iana"},"video/vnd.sealed.mpeg1":{"source":"iana"},"video/vnd.sealed.mpeg4":{"source":"iana"},"video/vnd.sealed.swf":{"source":"iana"},"video/vnd.sealedmedia.softseal.mov":{"source":"iana"},"video/vnd.uvvu.mp4":{"source":"iana","extensions":["uvu","uvvu"]},"video/vnd.vivo":{"source":"iana","extensions":["viv"]},"video/vnd.youtube.yt":{"source":"iana"},"video/vp8":{"source":"iana"},"video/vp9":{"source":"iana"},"video/webm":{"source":"apache","compressible":false,"extensions":["webm"]},"video/x-f4v":{"source":"apache","extensions":["f4v"]},"video/x-fli":{"source":"apache","extensions":["fli"]},"video/x-flv":{"source":"apache","compressible":false,"extensions":["flv"]},"video/x-m4v":{"source":"apache","extensions":["m4v"]},"video/x-matroska":{"source":"apache","compressible":false,"extensions":["mkv","mk3d","mks"]},"video/x-mng":{"source":"apache","extensions":["mng"]},"video/x-ms-asf":{"source":"apache","extensions":["asf","asx"]},"video/x-ms-vob":{"source":"apache","extensions":["vob"]},"video/x-ms-wm":{"source":"apache","extensions":["wm"]},"video/x-ms-wmv":{"source":"apache","compressible":false,"extensions":["wmv"]},"video/x-ms-wmx":{"source":"apache","extensions":["wmx"]},"video/x-ms-wvx":{"source":"apache","extensions":["wvx"]},"video/x-msvideo":{"source":"apache","extensions":["avi"]},"video/x-sgi-movie":{"source":"apache","extensions":["movie"]},"video/x-smv":{"source":"apache","extensions":["smv"]},"x-conference/x-cooltalk":{"source":"apache","extensions":["ice"]},"x-shader/x-fragment":{"compressible":true},"x-shader/x-vertex":{"compressible":true}}')}};var __webpack_module_cache__={};function __nccwpck_require__(e){var A=__webpack_module_cache__[e];if(A!==undefined){return A.exports}var t=__webpack_module_cache__[e]={exports:{}};var s=true;try{__webpack_modules__[e].call(t.exports,t,t.exports,__nccwpck_require__);s=false}finally{if(s)delete __webpack_module_cache__[e]}return t.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var __webpack_exports__=__nccwpck_require__(4351);module.exports=__webpack_exports__})(); \ No newline at end of file diff --git a/qa-bundle-upload/package.json b/qa-bundle-upload/package.json new file mode 100644 index 0000000..d5ef320 --- /dev/null +++ b/qa-bundle-upload/package.json @@ -0,0 +1,20 @@ +{ + "name": "qa-bundle-upload", + "version": "1.0.0", + "description": "Upload JS Bundle ZIP to Utility server for QA verification", + "main": "index.js", + "scripts": { + "build": "ncc build src/index.js -m -o ./dist/", + "test": "node --test 'test/**/*.test.js'" + }, + "dependencies": { + "@actions/core": "^1.10.1", + "axios": "^1.6.7", + "form-data": "^4.0.0" + }, + "devDependencies": { + "@vercel/ncc": "^0.34.0" + }, + "author": "", + "license": "MIT" +} diff --git a/qa-bundle-upload/src/index.js b/qa-bundle-upload/src/index.js new file mode 100644 index 0000000..21ea702 --- /dev/null +++ b/qa-bundle-upload/src/index.js @@ -0,0 +1,288 @@ +const fs = require('fs'); +const path = require('path'); +const crypto = require('crypto'); +const core = require('@actions/core'); +const axios = require('axios'); +const FormData = require('form-data'); + +const UPLOAD_PATH = '/utility/v1/app-update/bundles/upload'; +const REQUEST_TIMEOUT_MS = 5 * 60 * 1000; +const VALID_PLATFORMS = ['android', 'ios', 'electron']; +const ZIP_MAGIC = [0x50, 0x4b, 0x03, 0x04]; +const INFO_REQUIRED_FIELDS = ['appVersion', 'appType', 'sha256']; + +function scanBundleDir(dirPath) { + if (!fs.existsSync(dirPath) || !fs.statSync(dirPath).isDirectory()) { + throw new Error(`bundle-dir not found or not a directory: ${dirPath}`); + } + + const entries = fs.readdirSync(dirPath); + const zipFiles = entries.filter((f) => f.endsWith('-bundle.zip')); + + if (zipFiles.length === 0) { + throw new Error(`No bundle ZIP files found in ${dirPath}`); + } + + return zipFiles.map((zipName) => { + const baseName = zipName.replace(/-bundle\.zip$/, ''); + const candidates = [`${baseName}-bundle.zip.info`, `${baseName}-bundle.json.info`]; + const infoName = candidates.find((c) => entries.includes(c)); + + if (!infoName) { + throw new Error(`${zipName}: no matching .info file (tried ${candidates.join(', ')})`); + } + + return { + zipPath: path.join(dirPath, zipName), + infoPath: path.join(dirPath, infoName), + }; + }); +} + +function parseInfoFile(infoPath) { + let raw; + let content; + try { + content = fs.readFileSync(infoPath, 'utf8'); + } catch (e) { + throw new Error(`${path.basename(infoPath)}: cannot read file — ${e.message}`); + } + try { + raw = JSON.parse(content); + } catch (e) { + throw new Error(`${path.basename(infoPath)}: invalid JSON — ${e.message}`); + } + + for (const field of INFO_REQUIRED_FIELDS) { + if (!raw[field]) { + throw new Error(`${path.basename(infoPath)}: missing required field "${field}"`); + } + } + + if (!/^[0-9a-f]{64}$/i.test(raw.sha256)) { + throw new Error(`${path.basename(infoPath)}: invalid sha256 format`); + } + + if (!/^\d+\.\d+\.\d+$/.test(raw.appVersion)) { + throw new Error(`${path.basename(infoPath)}: invalid appVersion format "${raw.appVersion}" (expected x.y.z)`); + } + + if (!VALID_PLATFORMS.includes(raw.appType)) { + throw new Error( + `${path.basename(infoPath)}: invalid appType "${raw.appType}" (expected: ${VALID_PLATFORMS.join(', ')})` + ); + } + + return { + appVersion: raw.appVersion, + platform: raw.appType, + sha256: raw.sha256, + fileName: raw.fileName, + size: raw.size, + buildNumber: raw.buildNumber || '', + bundleVersion: raw.bundleVersion || '', + }; +} + +function validateZipMagic(fileBuffer, label) { + if (!ZIP_MAGIC.every((b, i) => fileBuffer[i] === b)) { + throw new Error(`${label}: not a valid ZIP archive`); + } +} + +function computeSignature(fileHash, secret) { + const timestamp = Math.floor(Date.now() / 1000).toString(); + const signature = crypto + .createHmac('sha256', secret) + .update(`${timestamp}:${fileHash}`) + .digest('hex'); + return { timestamp, signature }; +} + +function buildFormData(fileBuffer, fileName, fields) { + const form = new FormData(); + form.append('file', fileBuffer, { + filename: fileName, + contentType: 'application/zip', + }); + form.append('appVersion', fields.appVersion); + form.append('platform', fields.platform); + if (fields.commitHash) { + form.append('commitHash', fields.commitHash); + } + if (fields.branch) { + form.append('branch', fields.branch); + } + if (fields.prTitle) { + form.append('prTitle', fields.prTitle); + } + if (fields.buildNumber) { + form.append('buildNumber', fields.buildNumber); + } + if (fields.bundleVersion) { + form.append('bundleVersion', fields.bundleVersion); + } + return form; +} + +async function uploadWithRetry({ url, fileBuffer, fileName, fields, fileHash, secret, maxRetries, label }) { + let lastError; + + for (let attempt = 1; attempt <= maxRetries; attempt++) { + try { + core.info(`[${label}] Upload attempt ${attempt}/${maxRetries}...`); + + const { timestamp, signature } = computeSignature(fileHash, secret); + const form = buildFormData(fileBuffer, fileName, fields); + + const requestHeaders = { + ...form.getHeaders(), + 'X-Bundle-Timestamp': timestamp, + 'X-Bundle-Signature': signature, + }; + + core.info(`[${label}] Request URL: ${url}`); + const safeHeaders = { ...requestHeaders, 'X-Bundle-Signature': requestHeaders['X-Bundle-Signature'].slice(0, 8) + '...' }; + core.info(`[${label}] Request headers: ${JSON.stringify(safeHeaders, null, 2)}`); + + const response = await axios.post(url, form, { + headers: requestHeaders, + timeout: REQUEST_TIMEOUT_MS, + maxContentLength: Infinity, + maxBodyLength: Infinity, + }); + return { data: response.data }; + } catch (error) { + lastError = error; + const status = error.response?.status; + const isRetryable = !status || status >= 500; + + if (!isRetryable || attempt === maxRetries) { + throw error; + } + + const delay = Math.pow(2, attempt) * 1000; + core.warning( + `[${label}] Attempt ${attempt} failed (${status || error.code || error.message}), retrying in ${delay / 1000}s...` + ); + await new Promise((resolve) => setTimeout(resolve, delay)); + } + } + + throw lastError; +} + +async function run() { + try { + const serverUrl = core.getInput('server-url', { required: true }).replace(/\/$/, ''); + const secret = core.getInput('upload-secret', { required: true }); + core.setSecret(secret); + const bundleDir = core.getInput('bundle-dir', { required: true }); + const commitHash = core.getInput('commit-hash') || process.env.GITHUB_SHA; + const branch = core.getInput('branch') || ''; + const prTitle = core.getInput('pr-title') || ''; + const maxRetries = parseInt(core.getInput('max-retries') || '3', 10); + + if (Number.isNaN(maxRetries) || maxRetries < 1) { + throw new Error(`Invalid max-retries: "${core.getInput('max-retries')}" (expected positive integer)`); + } + + core.info(`Scanning ${bundleDir} for bundles...`); + const bundles = scanBundleDir(bundleDir); + core.info(`Found ${bundles.length} bundle(s): ${bundles.map((b) => path.basename(b.zipPath)).join(', ')}`); + + const uploadUrl = `${serverUrl}${UPLOAD_PATH}`; + const results = []; + let hasFailure = false; + + for (const bundle of bundles) { + let meta; + try { + meta = parseInfoFile(bundle.infoPath); + } catch (error) { + hasFailure = true; + core.error(`[${path.basename(bundle.infoPath)}] ${error.message}`); + continue; + } + const label = meta.platform; + + try { + const fileBuffer = fs.readFileSync(bundle.zipPath); + validateZipMagic(fileBuffer, label); + + const fileSizeMB = (fileBuffer.length / (1024 * 1024)).toFixed(2); + core.info(`[${label}] Uploading ${path.basename(bundle.zipPath)} (${fileSizeMB} MB, v${meta.appVersion})...`); + + const computedHash = crypto.createHash('sha256').update(fileBuffer).digest('hex'); + if (computedHash !== meta.sha256.toLowerCase()) { + throw new Error(`SHA256 mismatch: computed ${computedHash}, .info says ${meta.sha256}`); + } + core.info(`[${label}] SHA256: ${computedHash}`); + + const { data: responseBody } = await uploadWithRetry({ + url: uploadUrl, + fileBuffer, + fileName: path.basename(bundle.zipPath), + fields: { + appVersion: meta.appVersion, + platform: meta.platform, + commitHash, + branch, + prTitle, + buildNumber: meta.buildNumber, + bundleVersion: meta.bundleVersion, + }, + fileHash: computedHash, + secret, + maxRetries, + label, + }); + + if (responseBody.code !== 0) { + throw new Error(`Server returned error: ${JSON.stringify(responseBody)}`); + } + + const result = responseBody.data; + if (!result || !result.bundleVersion || !result.downloadUrl) { + throw new Error(`Server response missing required fields: ${JSON.stringify(responseBody)}`); + } + + const entry = { + platform: meta.platform, + bundleVersion: String(result.bundleVersion), + downloadUrl: result.downloadUrl, + sha256: result.sha256 || computedHash, + fileSize: String(result.fileSize || fileBuffer.length), + }; + results.push(entry); + + core.info(`[${label}] Upload successful! Bundle version: ${entry.bundleVersion}`); + core.info(`[${label}] Download URL: ${entry.downloadUrl}`); + } catch (error) { + hasFailure = true; + const status = error.response?.status; + const body = error.response?.data; + if (status) { + core.error(`[${label}] Server responded with ${status}: ${JSON.stringify(body)}`); + } + core.error(`[${label}] Upload failed: ${error.message}`); + } + } + + core.setOutput('results', JSON.stringify(results)); + + if (hasFailure) { + core.setFailed(`One or more bundles failed to upload. ${results.length}/${bundles.length} succeeded.`); + } else { + core.info(`All ${results.length} bundle(s) uploaded successfully.`); + } + } catch (error) { + core.setFailed(`Upload failed: ${error.message}`); + } +} + +module.exports = { scanBundleDir, parseInfoFile, validateZipMagic }; + +if (require.main === module) { + run(); +} diff --git a/qa-bundle-upload/test/create-fixtures.js b/qa-bundle-upload/test/create-fixtures.js new file mode 100644 index 0000000..8378353 --- /dev/null +++ b/qa-bundle-upload/test/create-fixtures.js @@ -0,0 +1,69 @@ +const fs = require('fs'); +const path = require('path'); +const crypto = require('crypto'); + +// Minimal valid ZIP: local file header + central directory + end record +const ZIP_HEADER = Buffer.from([ + 0x50, 0x4b, 0x03, 0x04, // local file header signature + 0x14, 0x00, 0x00, 0x00, 0x08, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, + 0x78, + 0x03, 0x00, + 0x50, 0x4b, 0x01, 0x02, + 0x14, 0x00, 0x14, 0x00, 0x00, 0x00, 0x08, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x78, + 0x50, 0x4b, 0x05, 0x06, + 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x01, 0x00, + 0x2f, 0x00, 0x00, 0x00, + 0x25, 0x00, 0x00, 0x00, + 0x00, 0x00, +]); + +function createBundle(dir, name, platform) { + const zipPath = path.join(dir, `${name}-bundle.zip`); + const content = Buffer.concat([ZIP_HEADER, Buffer.from(platform)]); + fs.writeFileSync(zipPath, content); + + const sha256 = crypto.createHash('sha256').update(content).digest('hex'); + + const infoSuffix = platform === 'electron' ? '.json.info' : '.zip.info'; + const infoPath = path.join(dir, `${name}-bundle${infoSuffix}`); + const info = { + fileName: `${name}-bundle.zip`, + sha256, + size: content.length, + generatedAt: new Date().toISOString(), + appType: platform, + appVersion: '6.1.0', + buildNumber: '2026030235', + bundleVersion: '2', + }; + fs.writeFileSync(infoPath, JSON.stringify(info, null, 2)); + console.log(`Created ${zipPath} (${content.length} bytes, sha256: ${sha256.slice(0, 12)}...)`); + console.log(`Created ${infoPath}`); +} + +const nativeDir = path.join(__dirname, 'fixtures/native-bundles'); +const desktopDir = path.join(__dirname, 'fixtures/desktop-bundle'); + +fs.mkdirSync(nativeDir, { recursive: true }); +fs.mkdirSync(desktopDir, { recursive: true }); + +createBundle(nativeDir, 'android', 'android'); +createBundle(nativeDir, 'ios', 'ios'); +createBundle(desktopDir, 'electron', 'electron'); + +console.log('\nFixtures created successfully.'); diff --git a/qa-bundle-upload/test/fixtures/desktop-bundle/electron-bundle.json.info b/qa-bundle-upload/test/fixtures/desktop-bundle/electron-bundle.json.info new file mode 100644 index 0000000..b2e5be2 --- /dev/null +++ b/qa-bundle-upload/test/fixtures/desktop-bundle/electron-bundle.json.info @@ -0,0 +1,10 @@ +{ + "fileName": "electron-bundle.zip", + "sha256": "ae060b9b72c8613192dcd0a5711d32d08d2a0d5cdf8e684505cf86e4f51c627d", + "size": 108, + "generatedAt": "2026-03-03T05:58:01.923Z", + "appType": "electron", + "appVersion": "6.1.0", + "buildNumber": "2026030235", + "bundleVersion": "2" +} \ No newline at end of file diff --git a/qa-bundle-upload/test/fixtures/desktop-bundle/electron-bundle.zip b/qa-bundle-upload/test/fixtures/desktop-bundle/electron-bundle.zip new file mode 100644 index 0000000..2e6b5ed Binary files /dev/null and b/qa-bundle-upload/test/fixtures/desktop-bundle/electron-bundle.zip differ diff --git a/qa-bundle-upload/test/fixtures/native-bundles/android-bundle.zip b/qa-bundle-upload/test/fixtures/native-bundles/android-bundle.zip new file mode 100644 index 0000000..6f92b45 Binary files /dev/null and b/qa-bundle-upload/test/fixtures/native-bundles/android-bundle.zip differ diff --git a/qa-bundle-upload/test/fixtures/native-bundles/android-bundle.zip.info b/qa-bundle-upload/test/fixtures/native-bundles/android-bundle.zip.info new file mode 100644 index 0000000..885dc98 --- /dev/null +++ b/qa-bundle-upload/test/fixtures/native-bundles/android-bundle.zip.info @@ -0,0 +1,10 @@ +{ + "fileName": "android-bundle.zip", + "sha256": "506d55db48f8140ef0e9e6217fdce6147e59f6a3ebfd85d7251af9be1c31fc08", + "size": 107, + "generatedAt": "2026-03-03T05:58:01.922Z", + "appType": "android", + "appVersion": "6.1.0", + "buildNumber": "2026030235", + "bundleVersion": "2" +} \ No newline at end of file diff --git a/qa-bundle-upload/test/fixtures/native-bundles/ios-bundle.zip b/qa-bundle-upload/test/fixtures/native-bundles/ios-bundle.zip new file mode 100644 index 0000000..ab147b1 Binary files /dev/null and b/qa-bundle-upload/test/fixtures/native-bundles/ios-bundle.zip differ diff --git a/qa-bundle-upload/test/fixtures/native-bundles/ios-bundle.zip.info b/qa-bundle-upload/test/fixtures/native-bundles/ios-bundle.zip.info new file mode 100644 index 0000000..857693f --- /dev/null +++ b/qa-bundle-upload/test/fixtures/native-bundles/ios-bundle.zip.info @@ -0,0 +1,10 @@ +{ + "fileName": "ios-bundle.zip", + "sha256": "8764005413c30594305b92b801c6757603fc585fcd78edce4ff4f57969bfb18c", + "size": 103, + "generatedAt": "2026-03-03T05:58:01.923Z", + "appType": "ios", + "appVersion": "6.1.0", + "buildNumber": "2026030235", + "bundleVersion": "2" +} \ No newline at end of file diff --git a/qa-bundle-upload/test/scan.test.js b/qa-bundle-upload/test/scan.test.js new file mode 100644 index 0000000..49b7bed --- /dev/null +++ b/qa-bundle-upload/test/scan.test.js @@ -0,0 +1,110 @@ +const { describe, it } = require('node:test'); +const assert = require('node:assert/strict'); +const path = require('path'); +const fs = require('fs'); +const { scanBundleDir, parseInfoFile, validateZipMagic } = require('../src/index.js'); + +describe('test fixtures', () => { + const nativeDir = path.join(__dirname, 'fixtures/native-bundles'); + const desktopDir = path.join(__dirname, 'fixtures/desktop-bundle'); + + it('native dir has android + ios bundles with .info', () => { + assert.ok(fs.existsSync(path.join(nativeDir, 'android-bundle.zip'))); + assert.ok(fs.existsSync(path.join(nativeDir, 'android-bundle.zip.info'))); + assert.ok(fs.existsSync(path.join(nativeDir, 'ios-bundle.zip'))); + assert.ok(fs.existsSync(path.join(nativeDir, 'ios-bundle.zip.info'))); + }); + + it('desktop dir has electron bundle with .json.info', () => { + assert.ok(fs.existsSync(path.join(desktopDir, 'electron-bundle.zip'))); + assert.ok(fs.existsSync(path.join(desktopDir, 'electron-bundle.json.info'))); + }); + + it('ZIP files start with magic bytes', () => { + const buf = fs.readFileSync(path.join(nativeDir, 'android-bundle.zip')); + assert.equal(buf[0], 0x50); + assert.equal(buf[1], 0x4b); + assert.equal(buf[2], 0x03); + assert.equal(buf[3], 0x04); + }); + + it('.info files contain valid JSON with required fields', () => { + const info = JSON.parse(fs.readFileSync(path.join(nativeDir, 'android-bundle.zip.info'), 'utf8')); + assert.ok(info.appVersion); + assert.ok(info.appType); + assert.ok(info.sha256); + assert.ok(info.fileName); + }); +}); + +describe('scanBundleDir', () => { + const nativeDir = path.join(__dirname, 'fixtures/native-bundles'); + const desktopDir = path.join(__dirname, 'fixtures/desktop-bundle'); + + it('finds android + ios bundles in native dir', () => { + const bundles = scanBundleDir(nativeDir); + assert.equal(bundles.length, 2); + const names = bundles.map((b) => path.basename(b.zipPath)).sort(); + assert.deepEqual(names, ['android-bundle.zip', 'ios-bundle.zip']); + }); + + it('finds electron bundle in desktop dir', () => { + const bundles = scanBundleDir(desktopDir); + assert.equal(bundles.length, 1); + assert.equal(path.basename(bundles[0].zipPath), 'electron-bundle.zip'); + }); + + it('each bundle has matching infoPath', () => { + const bundles = scanBundleDir(nativeDir); + for (const b of bundles) { + assert.ok(fs.existsSync(b.infoPath), `infoPath should exist: ${b.infoPath}`); + } + }); + + it('throws on non-existent directory', () => { + assert.throws(() => scanBundleDir('/tmp/does-not-exist-xyz'), /not found/i); + }); + + it('throws on directory with no bundles', () => { + const emptyDir = path.join(__dirname, 'fixtures'); + assert.throws(() => scanBundleDir(emptyDir), /no bundle/i); + }); +}); + +describe('parseInfoFile', () => { + const nativeDir = path.join(__dirname, 'fixtures/native-bundles'); + const desktopDir = path.join(__dirname, 'fixtures/desktop-bundle'); + + it('parses valid .info and returns metadata', () => { + const infoPath = path.join(nativeDir, 'android-bundle.zip.info'); + const meta = parseInfoFile(infoPath); + assert.equal(meta.appVersion, '6.1.0'); + assert.equal(meta.platform, 'android'); + assert.ok(meta.sha256); + }); + + it('maps appType to platform', () => { + const infoPath = path.join(nativeDir, 'ios-bundle.zip.info'); + const meta = parseInfoFile(infoPath); + assert.equal(meta.platform, 'ios'); + }); + + it('handles electron .json.info format', () => { + const infoPath = path.join(desktopDir, 'electron-bundle.json.info'); + const meta = parseInfoFile(infoPath); + assert.equal(meta.platform, 'electron'); + assert.equal(meta.appVersion, '6.1.0'); + }); +}); + +describe('validateZipMagic', () => { + it('accepts valid ZIP buffer', () => { + const buf = fs.readFileSync(path.join(__dirname, 'fixtures/native-bundles/android-bundle.zip')); + assert.doesNotThrow(() => validateZipMagic(buf, 'android')); + }); + + it('rejects non-ZIP buffer', () => { + const buf = Buffer.from('not a zip file'); + assert.throws(() => validateZipMagic(buf, 'test'), /not a valid ZIP/); + }); +}); diff --git a/qa-bundle-upload/yarn.lock b/qa-bundle-upload/yarn.lock new file mode 100644 index 0000000..ae90b87 --- /dev/null +++ b/qa-bundle-upload/yarn.lock @@ -0,0 +1,214 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@actions/core@^1.10.1": + version "1.11.1" + resolved "https://registry.npmjs.org/@actions/core/-/core-1.11.1.tgz" + integrity sha512-hXJCSrkwfA46Vd9Z3q4cpEpHB1rL5NG04+/rbqW9d3+CSvtB1tYe8UTpAlixa1vj0m/ULglfEK2UKxMGxCxv5A== + dependencies: + "@actions/exec" "^1.1.1" + "@actions/http-client" "^2.0.1" + +"@actions/exec@^1.1.1": + version "1.1.1" + resolved "https://registry.npmjs.org/@actions/exec/-/exec-1.1.1.tgz" + integrity sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w== + dependencies: + "@actions/io" "^1.0.1" + +"@actions/http-client@^2.0.1": + version "2.2.3" + resolved "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.3.tgz" + integrity sha512-mx8hyJi/hjFvbPokCg4uRd4ZX78t+YyRPtnKWwIl+RzNaVuFpQHfmlGVfsKEJN8LwTCvL+DfVgAM04XaHkm6bA== + dependencies: + tunnel "^0.0.6" + undici "^5.25.4" + +"@actions/io@^1.0.1": + version "1.1.3" + resolved "https://registry.npmjs.org/@actions/io/-/io-1.1.3.tgz" + integrity sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q== + +"@fastify/busboy@^2.0.0": + version "2.1.1" + resolved "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz" + integrity sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA== + +"@vercel/ncc@^0.34.0": + version "0.34.0" + resolved "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.34.0.tgz" + integrity sha512-G9h5ZLBJ/V57Ou9vz5hI8pda/YQX5HQszCs3AmIus3XzsmRn/0Ptic5otD3xVST8QLKk7AMk7AqpsyQGN7MZ9A== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +axios@^1.6.7: + version "1.13.6" + resolved "https://registry.npmjs.org/axios/-/axios-1.13.6.tgz" + integrity sha512-ChTCHMouEe2kn713WHbQGcuYrr6fXTBiu460OTwWrWob16g1bXn4vtz07Ope7ewMozJAnEquLk5lWQWtBig9DQ== + dependencies: + follow-redirects "^1.15.11" + form-data "^4.0.5" + proxy-from-env "^1.1.0" + +call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz" + integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +dunder-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz" + integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== + dependencies: + call-bind-apply-helpers "^1.0.1" + es-errors "^1.3.0" + gopd "^1.2.0" + +es-define-property@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz" + integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz" + integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== + dependencies: + es-errors "^1.3.0" + +es-set-tostringtag@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz" + integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA== + dependencies: + es-errors "^1.3.0" + get-intrinsic "^1.2.6" + has-tostringtag "^1.0.2" + hasown "^2.0.2" + +follow-redirects@^1.15.11: + version "1.15.11" + resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz" + integrity sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ== + +form-data@^4.0.0, form-data@^4.0.5: + version "4.0.5" + resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz" + integrity sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + es-set-tostringtag "^2.1.0" + hasown "^2.0.2" + mime-types "^2.1.12" + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +get-intrinsic@^1.2.6: + version "1.3.0" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz" + integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== + dependencies: + call-bind-apply-helpers "^1.0.2" + es-define-property "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.1.1" + function-bind "^1.1.2" + get-proto "^1.0.1" + gopd "^1.2.0" + has-symbols "^1.1.0" + hasown "^2.0.2" + math-intrinsics "^1.1.0" + +get-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz" + integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== + dependencies: + dunder-proto "^1.0.1" + es-object-atoms "^1.0.0" + +gopd@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz" + integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== + +has-symbols@^1.0.3, has-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz" + integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== + +has-tostringtag@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== + dependencies: + has-symbols "^1.0.3" + +hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + +math-intrinsics@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz" + integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12: + version "2.1.35" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + +tunnel@^0.0.6: + version "0.0.6" + resolved "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz" + integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== + +undici@^5.25.4: + version "5.29.0" + resolved "https://registry.npmjs.org/undici/-/undici-5.29.0.tgz" + integrity sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg== + dependencies: + "@fastify/busboy" "^2.0.0"