@campnetwork/origin 1.3.0-alpha.0 → 1.3.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  'use client';
2
2
  import React, { createContext, useState, useContext, useEffect, useLayoutEffect, useRef, useSyncExternalStore } from 'react';
3
- import { custom, createWalletClient, createPublicClient, http, encodeFunctionData, checksumAddress, zeroAddress, keccak256, toBytes, erc20Abi, getAbiItem, formatEther, formatUnits, parseEther } from 'viem';
3
+ import { custom, createWalletClient, createPublicClient, http, encodeFunctionData, checksumAddress, zeroAddress, keccak256, toBytes, toHex, erc20Abi, getAbiItem, formatEther, formatUnits, parseEther } from 'viem';
4
4
  import { toAccount } from 'viem/accounts';
5
5
  import { createSiweMessage } from 'viem/siwe';
6
6
  import axios from 'axios';
@@ -5694,16 +5694,16 @@ var constants = {
5694
5694
  const ENVIRONMENTS = {
5695
5695
  DEVELOPMENT: {
5696
5696
  NAME: "DEVELOPMENT",
5697
- AUTH_HUB_BASE_API: "https://wv2h4to5qa.execute-api.us-east-2.amazonaws.com/dev",
5698
- AUTH_ENDPOINT: "auth-testnet",
5697
+ AUTH_HUB_BASE_API: "https://origin-backend-iota.vercel.app",
5699
5698
  ORIGIN_DASHBOARD: "https://origin.campnetwork.xyz",
5700
- DATANFT_CONTRACT_ADDRESS: "0xB53F5723Dd4E46da32e1769Bd36A5aD880e707A5",
5701
- MARKETPLACE_CONTRACT_ADDRESS: "0x97b0A18B2888e904940fFd19E480a28aeec3F055",
5699
+ DATANFT_CONTRACT_ADDRESS: "0x4d9aF5800701A4A686Df6b096A27B81486de36eB",
5700
+ MARKETPLACE_CONTRACT_ADDRESS: "0x68B202caA162C418d3A2DF92F29fA1CAF90C58c1",
5702
5701
  BATCH_PURCHASE_CONTRACT_ADDRESS: "0xaF0cF04DBfeeAcEdC77Dc68A91381AFB967B8518",
5703
- // TODO: Add actual contract addresses when deployed
5704
- DISPUTE_CONTRACT_ADDRESS: "",
5702
+ DISPUTE_CONTRACT_ADDRESS: "0x45719337b1450b0D105cA671972be4263E6A9380",
5703
+ APP_REGISTRY_CONTRACT_ADDRESS: "0x2096eb980Dd590DDF690Cb698572b80552B6F9Bb",
5704
+ // TODO: Add actual contract addresse when deployed
5705
5705
  FRACTIONALIZER_CONTRACT_ADDRESS: "",
5706
- APP_REGISTRY_CONTRACT_ADDRESS: "",
5706
+ USDC_CONTRACT_ADDRESS: "0x8a2B28364102Bea189D99A475C494330Ef2bDD0B",
5707
5707
  CHAIN: testnet,
5708
5708
  IPNFT_ABI: ipnftMainnetAbi,
5709
5709
  MARKETPLACE_ABI: marketplaceMainnetAbi,
@@ -5716,7 +5716,6 @@ const ENVIRONMENTS = {
5716
5716
  PRODUCTION: {
5717
5717
  NAME: "PRODUCTION",
5718
5718
  AUTH_HUB_BASE_API: "https://wv2h4to5qa.execute-api.us-east-2.amazonaws.com/dev",
5719
- AUTH_ENDPOINT: "auth-mainnet",
5720
5719
  ORIGIN_DASHBOARD: "https://origin.campnetwork.xyz",
5721
5720
  DATANFT_CONTRACT_ADDRESS: "0x39EeE1C3989f0dD543Dee60f8582F7F81F522C38",
5722
5721
  MARKETPLACE_CONTRACT_ADDRESS: "0xc69BAa987757d054455fC0f2d9797684E9FB8b9C",
@@ -5725,6 +5724,7 @@ const ENVIRONMENTS = {
5725
5724
  DISPUTE_CONTRACT_ADDRESS: "",
5726
5725
  FRACTIONALIZER_CONTRACT_ADDRESS: "",
5727
5726
  APP_REGISTRY_CONTRACT_ADDRESS: "",
5727
+ USDC_CONTRACT_ADDRESS: "",
5728
5728
  CHAIN: mainnet,
5729
5729
  IPNFT_ABI: ipnftMainnetAbi,
5730
5730
  MARKETPLACE_ABI: marketplaceMainnetAbi,
@@ -5775,36 +5775,104 @@ const SECONDS_IN_HOUR = 3600;
5775
5775
  const SECONDS_IN_DAY = 86400;
5776
5776
  const SECONDS_IN_WEEK = 604800;
5777
5777
  /**
5778
- * Uploads a file to a specified URL with progress tracking.
5778
+ * Uploads chunks to respective presigned URLs with progress tracking.
5779
5779
  * Falls back to a simple fetch request if XMLHttpRequest is not available.
5780
- * @param {File} file - The file to upload.
5781
- * @param {string} url - The URL to upload the file to.
5780
+ * @param {Blob[]} chunks - The file to upload.
5781
+ * @param {string[]} urls - The URL to upload the file to.
5782
5782
  * @param {UploadProgressCallback} onProgress - A callback function to track upload progress.
5783
5783
  * @returns {Promise<string>} - A promise that resolves with the response from the server.
5784
5784
  */
5785
- const uploadWithProgress = (file, url, onProgress) => {
5785
+ const uploadWithProgress = (chunks, urls, onProgress) => {
5786
+ const MAX_RETRIES = 3;
5787
+ const CONCURRENCY_LIMIT = 4; // Parallel uploads for performance
5788
+ const parts = [];
5789
+ let failedParts = [];
5790
+ let isAborted = false;
5791
+ let completedChunks = 0;
5792
+ const totalChunks = chunks.length;
5786
5793
  return new Promise((resolve, reject) => {
5787
- axios
5788
- .put(url, file, Object.assign({ headers: {
5789
- "Content-Type": file.type,
5790
- } }, (typeof window !== "undefined" && typeof onProgress === "function"
5791
- ? {
5792
- onUploadProgress: (progressEvent) => {
5793
- if (progressEvent.total) {
5794
- const percent = (progressEvent.loaded / progressEvent.total) * 100;
5795
- onProgress(percent);
5794
+ function updateProgress() {
5795
+ const progress = (completedChunks / totalChunks) * 100;
5796
+ onProgress(progress);
5797
+ }
5798
+ function uploadPart(blob_1, url_1, partNumber_1) {
5799
+ return __awaiter(this, arguments, void 0, function* (blob, url, partNumber, retryCount = 0) {
5800
+ var _a;
5801
+ try {
5802
+ const response = yield axios.put(url, blob, {
5803
+ headers: { "Content-Type": blob.type || "application/octet-stream" },
5804
+ timeout: 300000, // 5 minutes per part
5805
+ });
5806
+ const etag = (_a = response.headers.etag) === null || _a === void 0 ? void 0 : _a.replace(/"/g, "");
5807
+ if (!etag) {
5808
+ throw new Error(`Missing ETag for part ${partNumber}`);
5796
5809
  }
5797
- },
5798
- }
5799
- : {})))
5800
- .then((res) => {
5801
- resolve(res.data);
5802
- })
5803
- .catch((error) => {
5804
- var _a;
5805
- const message = ((_a = error === null || error === void 0 ? void 0 : error.response) === null || _a === void 0 ? void 0 : _a.data) || (error === null || error === void 0 ? void 0 : error.message) || "Upload failed";
5806
- reject(message);
5807
- });
5810
+ return { ETag: etag, PartNumber: partNumber };
5811
+ }
5812
+ catch (error) {
5813
+ if (retryCount < MAX_RETRIES) {
5814
+ const delay = 1000 * Math.pow(2, retryCount); // Exponential backoff
5815
+ yield new Promise((resolve) => setTimeout(resolve, delay));
5816
+ return uploadPart(blob, url, partNumber, retryCount + 1);
5817
+ }
5818
+ throw new Error(`Part ${partNumber} failed after ${MAX_RETRIES} retries: ${error.message}`);
5819
+ }
5820
+ });
5821
+ }
5822
+ function uploadAllParts() {
5823
+ return __awaiter(this, void 0, void 0, function* () {
5824
+ const uploadPromises = [];
5825
+ for (let i = 0; i < totalChunks; i++) {
5826
+ if (isAborted)
5827
+ break;
5828
+ const uploadPromise = (() => __awaiter(this, void 0, void 0, function* () {
5829
+ try {
5830
+ if (failedParts.includes(i))
5831
+ return;
5832
+ const result = yield uploadPart(chunks[i], urls[i], i + 1);
5833
+ parts.push(result);
5834
+ completedChunks++;
5835
+ updateProgress();
5836
+ }
5837
+ catch (error) {
5838
+ console.error(`Part ${i + 1} failed:`, error);
5839
+ failedParts.push(i);
5840
+ if (failedParts.length > totalChunks * 0.1) {
5841
+ // Fail fast if >10% fail
5842
+ throw error;
5843
+ }
5844
+ }
5845
+ }))();
5846
+ uploadPromises.push(uploadPromise);
5847
+ // Limit concurrency
5848
+ if (uploadPromises.length >= CONCURRENCY_LIMIT) {
5849
+ yield Promise.race(uploadPromises);
5850
+ // Remove settled promises to continue
5851
+ uploadPromises.splice(0, uploadPromises.length, ...(yield Promise.allSettled(uploadPromises))
5852
+ .map((_, idx) => uploadPromises[idx])
5853
+ .filter(Boolean));
5854
+ }
5855
+ }
5856
+ yield Promise.allSettled(uploadPromises);
5857
+ if (isAborted) {
5858
+ reject(new Error("Upload aborted by user"));
5859
+ return;
5860
+ }
5861
+ if (failedParts.length > 0) {
5862
+ reject(new Error(`Failed to upload ${failedParts.length}/${totalChunks} parts: ${failedParts.join(", ")}`));
5863
+ return;
5864
+ }
5865
+ parts.sort((a, b) => a.PartNumber - b.PartNumber);
5866
+ resolve(parts);
5867
+ });
5868
+ }
5869
+ // Expose abort method
5870
+ uploadWithProgress.abort = () => {
5871
+ isAborted = true;
5872
+ axios.isCancel("Upload aborted");
5873
+ };
5874
+ updateProgress(); // Initial 0%
5875
+ uploadAllParts().catch(reject);
5808
5876
  });
5809
5877
  };
5810
5878
  const toSeconds = (duration, licenseDurationUnit) => {
@@ -5866,6 +5934,19 @@ const validateRoyaltyBps = (royaltyBps) => {
5866
5934
  return false;
5867
5935
  }
5868
5936
  };
5937
+ const splitFileIntoChunks = (file, chunkSize) => {
5938
+ const chunks = [];
5939
+ let start = 0;
5940
+ while (start < file.size) {
5941
+ chunks.push(file.slice(start, start + chunkSize));
5942
+ start += chunkSize;
5943
+ }
5944
+ return chunks;
5945
+ };
5946
+ const getBaseApiUrl = (environment) => {
5947
+ const authEndpoint = environment.NAME === "PRODUCTION" ? "/auth-mainnet" : "";
5948
+ return environment.AUTH_HUB_BASE_API + authEndpoint;
5949
+ };
5869
5950
 
5870
5951
  /**
5871
5952
  * Mints a Data NFT with a signature.
@@ -5878,13 +5959,13 @@ const validateRoyaltyBps = (royaltyBps) => {
5878
5959
  * @param licenseTerms The terms of the license for the NFT.
5879
5960
  * @param deadline The deadline for the minting operation.
5880
5961
  * @param signature The signature for the minting operation.
5881
- * @param appId Optional app ID for the minting operation. Defaults to the SDK's appId (clientId).
5962
+ * @param appId Optional app ID for the minting operation.
5882
5963
  * @returns A promise that resolves when the minting is complete.
5883
5964
  */
5884
5965
  function mintWithSignature(to, tokenId, parents, isIp, hash, uri, licenseTerms, deadline, signature, appId) {
5885
5966
  return __awaiter(this, void 0, void 0, function* () {
5886
5967
  var _a;
5887
- // use provided appId, or fall back to SDK's appId, or use empty string
5968
+ // use provided appId, else use instance appId, else default to empty string
5888
5969
  const effectiveAppId = (_a = appId !== null && appId !== void 0 ? appId : this.appId) !== null && _a !== void 0 ? _a : "";
5889
5970
  return yield this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS, this.environment.IPNFT_ABI, "mintWithSignature", [
5890
5971
  to,
@@ -5910,8 +5991,10 @@ function mintWithSignature(to, tokenId, parents, isIp, hash, uri, licenseTerms,
5910
5991
  * @param parents The IDs of the parent NFTs, if applicable.
5911
5992
  * @return A promise that resolves with the registration data.
5912
5993
  */
5913
- function registerIpNFT(source, deadline, licenseTerms, metadata, fileKey, parents) {
5994
+ function registerIpNFT(source, deadline, licenseTerms, metadata, isIp, fileKey, parents, appId) {
5914
5995
  return __awaiter(this, void 0, void 0, function* () {
5996
+ var _a;
5997
+ const effectiveAppId = (_a = appId !== null && appId !== void 0 ? appId : this.appId) !== null && _a !== void 0 ? _a : "";
5915
5998
  const body = {
5916
5999
  source,
5917
6000
  deadline: Number(deadline),
@@ -5922,13 +6005,15 @@ function registerIpNFT(source, deadline, licenseTerms, metadata, fileKey, parent
5922
6005
  paymentToken: licenseTerms.paymentToken,
5923
6006
  licenseType: licenseTerms.licenseType,
5924
6007
  },
6008
+ appId: effectiveAppId,
6009
+ isIp,
5925
6010
  metadata,
5926
6011
  parentId: parents ? parents.map((p) => p.toString()) : [],
5927
6012
  };
5928
6013
  if (fileKey !== undefined) {
5929
6014
  body.fileKey = fileKey;
5930
6015
  }
5931
- const res = yield fetch(`${this.environment.AUTH_HUB_BASE_API}/${this.environment.AUTH_ENDPOINT}/origin/register`, {
6016
+ const res = yield fetch(`${this.environment.AUTH_HUB_BASE_API}/origin/register`, {
5932
6017
  method: "POST",
5933
6018
  headers: {
5934
6019
  Authorization: `Bearer ${this.getJwt()}`,
@@ -6541,7 +6626,7 @@ const X402_INTENT_TYPES = {
6541
6626
  };
6542
6627
 
6543
6628
  const fetchTokenData = (origin, tokenId, headers) => __awaiter(void 0, void 0, void 0, function* () {
6544
- const response = yield fetch(`${origin.environment.AUTH_HUB_BASE_API}/${origin.environment.AUTH_ENDPOINT}/origin/data/${tokenId}`, {
6629
+ const response = yield fetch(`${origin.environment.AUTH_HUB_BASE_API}/origin/data/${tokenId}`, {
6545
6630
  method: "GET",
6546
6631
  headers: Object.assign({ "Content-Type": "application/json" }, headers),
6547
6632
  });
@@ -6726,6 +6811,46 @@ function raiseDispute(targetIpId, evidenceHash, disputeTag) {
6726
6811
  });
6727
6812
  }
6728
6813
 
6814
+ /**
6815
+ * Raises a dispute with automatic evidence upload to IPFS.
6816
+ * Uploads evidence JSON to IPFS, hashes the CID to bytes32 for on-chain storage,
6817
+ * and calls raiseDispute.
6818
+ *
6819
+ * @param targetIpId The token ID of the IP NFT to dispute.
6820
+ * @param evidence The evidence JSON object to upload to IPFS.
6821
+ * @param disputeTag A tag identifying the type of dispute.
6822
+ * @returns A promise that resolves with the transaction result, IPFS CID, and evidence hash.
6823
+ *
6824
+ * @example
6825
+ * ```typescript
6826
+ * const result = await origin.raiseDisputeSmart(
6827
+ * 1n,
6828
+ * { reason: "copyright", details: "Unauthorized use of copyrighted material" },
6829
+ * "0x696e6672696e67656d656e74..." // dispute tag
6830
+ * );
6831
+ *
6832
+ * // Store the CID for evidence retrieval
6833
+ * console.log("Evidence CID:", result.evidenceCid);
6834
+ *
6835
+ * // Fetch evidence later via IPFS gateway
6836
+ * // https://ipfs.io/ipfs/{result.evidenceCid}
6837
+ *
6838
+ * // Verify evidence hash matches on-chain: keccak256(toHex(evidenceCid)) === evidenceHash
6839
+ * ```
6840
+ */
6841
+ function raiseDisputeSmart(targetIpId, evidence, disputeTag) {
6842
+ return __awaiter(this, void 0, void 0, function* () {
6843
+ const cid = yield this.uploadJSONToIPFS(evidence);
6844
+ const evidenceHash = keccak256(toHex(cid));
6845
+ const transactionResult = yield this.raiseDispute(targetIpId, evidenceHash, disputeTag);
6846
+ return {
6847
+ transactionResult,
6848
+ evidenceCid: cid,
6849
+ evidenceHash,
6850
+ };
6851
+ });
6852
+ }
6853
+
6729
6854
  /**
6730
6855
  * Asserts a dispute as the IP owner with counter-evidence.
6731
6856
  * Must be called by the owner of the disputed IP within the cooldown period.
@@ -7715,6 +7840,8 @@ class Origin {
7715
7840
  typeof environment === "string"
7716
7841
  ? ENVIRONMENTS[environment]
7717
7842
  : environment || ENVIRONMENTS["DEVELOPMENT"];
7843
+ this.environment.AUTH_HUB_BASE_API +=
7844
+ environment === "PRODUCTION" ? "/auth-mainnet" : "";
7718
7845
  this.baseParentId = baseParentId;
7719
7846
  this.appId = appId;
7720
7847
  // DataNFT methods
@@ -7748,6 +7875,7 @@ class Origin {
7748
7875
  this.checkActiveStatus = checkActiveStatus.bind(this);
7749
7876
  // Dispute module methods
7750
7877
  this.raiseDispute = raiseDispute.bind(this);
7878
+ this.raiseDisputeSmart = raiseDisputeSmart.bind(this);
7751
7879
  this.disputeAssertion = disputeAssertion.bind(this);
7752
7880
  this.voteOnDispute = voteOnDispute.bind(this);
7753
7881
  this.resolveDispute = resolveDispute.bind(this);
@@ -7773,6 +7901,25 @@ class Origin {
7773
7901
  setViemClient(client) {
7774
7902
  this.viemClient = client;
7775
7903
  }
7904
+ /**
7905
+ * Uploads a JSON object to IPFS and returns the resulting CID.
7906
+ * @param data The JSON object to upload.
7907
+ * @returns The CID of the uploaded JSON.
7908
+ * @throws {APIError} If the upload fails.
7909
+ */
7910
+ uploadJSONToIPFS(data) {
7911
+ return __awaiter(this, void 0, void 0, function* () {
7912
+ const jsonString = JSON.stringify(data);
7913
+ const file = new File([jsonString], "evidence.json", {
7914
+ type: "application/json",
7915
+ });
7916
+ const cid = yield __classPrivateFieldGet(this, _Origin_instances, "m", _Origin_uploadToIPFS).call(this, file);
7917
+ if (!cid) {
7918
+ throw new APIError("Failed to upload evidence to IPFS");
7919
+ }
7920
+ return cid;
7921
+ });
7922
+ }
7776
7923
  /**
7777
7924
  * Mints a file-based IpNFT.
7778
7925
  * @param file The file to mint.
@@ -7826,10 +7973,12 @@ class Origin {
7826
7973
  }
7827
7974
  let registration;
7828
7975
  try {
7829
- registration = yield this.registerIpNFT("file", deadline, license, metadata, info.key, parents);
7976
+ registration = yield this.registerIpNFT("file", deadline, license, metadata, true, // isIp
7977
+ info.key, // fileKey
7978
+ parents, this.appId);
7830
7979
  }
7831
7980
  catch (error) {
7832
- yield __classPrivateFieldGet(this, _Origin_instances, "m", _Origin_setOriginStatus).call(this, info.key, "failed");
7981
+ yield __classPrivateFieldGet(this, _Origin_instances, "m", _Origin_setOriginStatus).call(this, info.key, info.uploadId, []);
7833
7982
  throw new Error(`Failed to register IpNFT: ${error instanceof Error ? error.message : String(error)}`);
7834
7983
  }
7835
7984
  const { tokenId, signerAddress, creatorContentHash, signature, uri } = registration;
@@ -7841,14 +7990,14 @@ class Origin {
7841
7990
  throw new Error("Failed to register IpNFT: Missing required fields in registration response.");
7842
7991
  }
7843
7992
  try {
7844
- const mintResult = yield this.mintWithSignature(account, tokenId, parents || [], true, creatorContentHash, uri, license, deadline, signature);
7993
+ const mintResult = yield this.mintWithSignature(account, tokenId, parents || [], true, creatorContentHash, uri, license, deadline, signature, this.appId);
7845
7994
  if (["0x1", "success"].indexOf(mintResult.receipt.status) === -1) {
7846
- yield __classPrivateFieldGet(this, _Origin_instances, "m", _Origin_setOriginStatus).call(this, info.key, "failed");
7995
+ yield __classPrivateFieldGet(this, _Origin_instances, "m", _Origin_setOriginStatus).call(this, info.key, info.uploadId, []);
7847
7996
  throw new Error(`Minting failed with status: ${mintResult.receipt.status}`);
7848
7997
  }
7849
7998
  }
7850
7999
  catch (error) {
7851
- yield __classPrivateFieldGet(this, _Origin_instances, "m", _Origin_setOriginStatus).call(this, info.key, "failed");
8000
+ yield __classPrivateFieldGet(this, _Origin_instances, "m", _Origin_setOriginStatus).call(this, info.key, info.uploadId, []);
7852
8001
  throw new Error(`Minting transaction failed: ${error instanceof Error ? error.message : String(error)}`);
7853
8002
  }
7854
8003
  return tokenId.toString();
@@ -7875,7 +8024,9 @@ class Origin {
7875
8024
  let parents = this.baseParentId ? [this.baseParentId] : [];
7876
8025
  let registration;
7877
8026
  try {
7878
- registration = yield this.registerIpNFT(source, deadline, license, metadata, undefined, parents);
8027
+ registration = yield this.registerIpNFT(source, deadline, license, metadata, true, // isIp
8028
+ undefined, // fileKey
8029
+ parents, this.appId);
7879
8030
  }
7880
8031
  catch (error) {
7881
8032
  throw new Error(`Failed to register Social IpNFT: ${error instanceof Error ? error.message : String(error)}`);
@@ -7889,7 +8040,7 @@ class Origin {
7889
8040
  throw new Error("Failed to register Social IpNFT: Missing required fields in registration response.");
7890
8041
  }
7891
8042
  try {
7892
- const mintResult = yield this.mintWithSignature(account, tokenId, parents, true, creatorContentHash, uri, license, deadline, signature);
8043
+ const mintResult = yield this.mintWithSignature(account, tokenId, parents, true, creatorContentHash, uri, license, deadline, signature, this.appId);
7893
8044
  if (["0x1", "success"].indexOf(mintResult.receipt.status) === -1) {
7894
8045
  throw new Error(`Minting Social IpNFT failed with status: ${mintResult.receipt.status}`);
7895
8046
  }
@@ -8118,7 +8269,7 @@ class Origin {
8118
8269
  */
8119
8270
  getData(tokenId) {
8120
8271
  return __awaiter(this, void 0, void 0, function* () {
8121
- const response = yield fetch(`${this.environment.AUTH_HUB_BASE_API}/${this.environment.AUTH_ENDPOINT}/origin/data/${tokenId}`, {
8272
+ const response = yield fetch(`${this.environment.AUTH_HUB_BASE_API}/origin/data/${tokenId}`, {
8122
8273
  method: "GET",
8123
8274
  headers: {
8124
8275
  Authorization: `Bearer ${this.jwt}`,
@@ -8280,14 +8431,15 @@ class Origin {
8280
8431
  });
8281
8432
  }
8282
8433
  }
8283
- _Origin_instances = new WeakSet(), _Origin_generateURL = function _Origin_generateURL(file) {
8434
+ _Origin_instances = new WeakSet(), _Origin_generateURL = function _Origin_generateURL(file, partCount) {
8284
8435
  return __awaiter(this, void 0, void 0, function* () {
8285
8436
  try {
8286
- const uploadRes = yield fetch(`${this.environment.AUTH_HUB_BASE_API}/${this.environment.AUTH_ENDPOINT}/origin/upload-url`, {
8437
+ const uploadRes = yield fetch(`${this.environment.AUTH_HUB_BASE_API}/origin/upload-url`, {
8287
8438
  method: "POST",
8288
8439
  body: JSON.stringify({
8289
8440
  name: file.name,
8290
8441
  type: file.type,
8442
+ partCount,
8291
8443
  }),
8292
8444
  headers: {
8293
8445
  Authorization: `Bearer ${this.jwt}`,
@@ -8308,14 +8460,15 @@ _Origin_instances = new WeakSet(), _Origin_generateURL = function _Origin_genera
8308
8460
  throw error;
8309
8461
  }
8310
8462
  });
8311
- }, _Origin_setOriginStatus = function _Origin_setOriginStatus(key, status) {
8463
+ }, _Origin_setOriginStatus = function _Origin_setOriginStatus(key, uploadId, parts) {
8312
8464
  return __awaiter(this, void 0, void 0, function* () {
8313
8465
  try {
8314
- const res = yield fetch(`${this.environment.AUTH_HUB_BASE_API}/${this.environment.AUTH_ENDPOINT}/origin/update-status`, {
8466
+ const res = yield fetch(`${this.environment.AUTH_HUB_BASE_API}/origin/update-status`, {
8315
8467
  method: "PATCH",
8316
8468
  body: JSON.stringify({
8317
- status,
8318
8469
  fileKey: key,
8470
+ uploadId,
8471
+ parts,
8319
8472
  }),
8320
8473
  headers: {
8321
8474
  Authorization: `Bearer ${this.jwt}`,
@@ -8339,7 +8492,7 @@ _Origin_instances = new WeakSet(), _Origin_generateURL = function _Origin_genera
8339
8492
  if (!image)
8340
8493
  return null;
8341
8494
  try {
8342
- const presignedResponse = yield fetch(`${this.environment.AUTH_HUB_BASE_API}/${this.environment.AUTH_ENDPOINT}/origin/upload-url-ipfs`, {
8495
+ const presignedResponse = yield fetch(`${this.environment.AUTH_HUB_BASE_API}/origin/upload-url-ipfs`, {
8343
8496
  method: "POST",
8344
8497
  headers: {
8345
8498
  "Content-Type": "application/json",
@@ -8388,8 +8541,11 @@ _Origin_instances = new WeakSet(), _Origin_generateURL = function _Origin_genera
8388
8541
  }, _Origin_uploadFile = function _Origin_uploadFile(file, options) {
8389
8542
  return __awaiter(this, void 0, void 0, function* () {
8390
8543
  let uploadInfo;
8544
+ let chunks;
8545
+ const CHUNK_SIZE = 10 * 1024 * 1024;
8391
8546
  try {
8392
- uploadInfo = yield __classPrivateFieldGet(this, _Origin_instances, "m", _Origin_generateURL).call(this, file);
8547
+ chunks = splitFileIntoChunks(file, CHUNK_SIZE);
8548
+ uploadInfo = yield __classPrivateFieldGet(this, _Origin_instances, "m", _Origin_generateURL).call(this, file, chunks.length);
8393
8549
  }
8394
8550
  catch (error) {
8395
8551
  console.error("Failed to generate upload URL:", error);
@@ -8398,12 +8554,13 @@ _Origin_instances = new WeakSet(), _Origin_generateURL = function _Origin_genera
8398
8554
  if (!uploadInfo) {
8399
8555
  throw new Error("Failed to generate upload URL: No upload info returned");
8400
8556
  }
8557
+ let uploadResult;
8401
8558
  try {
8402
- yield uploadWithProgress(file, uploadInfo.url, (options === null || options === void 0 ? void 0 : options.progressCallback) || (() => { }));
8559
+ uploadResult = yield uploadWithProgress(chunks, uploadInfo.urls, (options === null || options === void 0 ? void 0 : options.progressCallback) || (() => { }));
8403
8560
  }
8404
8561
  catch (error) {
8405
8562
  try {
8406
- yield __classPrivateFieldGet(this, _Origin_instances, "m", _Origin_setOriginStatus).call(this, uploadInfo.key, "failed");
8563
+ yield __classPrivateFieldGet(this, _Origin_instances, "m", _Origin_setOriginStatus).call(this, uploadInfo.key, uploadInfo.uploadId, uploadResult || []);
8407
8564
  }
8408
8565
  catch (statusError) {
8409
8566
  console.error("Failed to update status to failed:", statusError);
@@ -8412,7 +8569,7 @@ _Origin_instances = new WeakSet(), _Origin_generateURL = function _Origin_genera
8412
8569
  throw new Error(`Failed to upload file: ${errorMessage}`);
8413
8570
  }
8414
8571
  try {
8415
- yield __classPrivateFieldGet(this, _Origin_instances, "m", _Origin_setOriginStatus).call(this, uploadInfo.key, "success");
8572
+ yield __classPrivateFieldGet(this, _Origin_instances, "m", _Origin_setOriginStatus).call(this, uploadInfo.key, uploadInfo.uploadId, uploadResult);
8416
8573
  }
8417
8574
  catch (statusError) {
8418
8575
  console.error("Failed to update status to success:", statusError);
@@ -8676,7 +8833,7 @@ class Auth {
8676
8833
  * @param {StorageAdapter} [options.storage] Custom storage adapter. Defaults to localStorage in browser, memory storage in Node.js.
8677
8834
  * @throws {APIError} - Throws an error if the clientId is not provided.
8678
8835
  */
8679
- constructor({ clientId, redirectUri, environment = "DEVELOPMENT", baseParentId, storage, }) {
8836
+ constructor({ clientId, appId, redirectUri, environment = "DEVELOPMENT", baseParentId, storage, }) {
8680
8837
  _Auth_instances.add(this);
8681
8838
  _Auth_triggers.set(this, void 0);
8682
8839
  _Auth_isNodeEnvironment.set(this, void 0);
@@ -8685,6 +8842,9 @@ class Auth {
8685
8842
  if (!clientId) {
8686
8843
  throw new ValidationError("clientId is required");
8687
8844
  }
8845
+ if (!appId) {
8846
+ throw new ValidationError("appId is required");
8847
+ }
8688
8848
  if (["PRODUCTION", "DEVELOPMENT"].indexOf(environment) === -1) {
8689
8849
  throw new ValidationError(`Invalid environment "${environment}". Must be "DEVELOPMENT" or "PRODUCTION"`);
8690
8850
  }
@@ -8693,9 +8853,12 @@ class Auth {
8693
8853
  (__classPrivateFieldGet(this, _Auth_isNodeEnvironment, "f") ? new MemoryStorage() : new BrowserStorage()), "f");
8694
8854
  this.viem = null;
8695
8855
  this.environment = ENVIRONMENTS[environment];
8856
+ this.environment.AUTH_HUB_BASE_API +=
8857
+ environment === "PRODUCTION" ? "/auth-mainnet" : "";
8696
8858
  this.baseParentId = baseParentId;
8697
8859
  this.redirectUri = createRedirectUriObject(redirectUri);
8698
8860
  this.clientId = clientId;
8861
+ this.appId = appId;
8699
8862
  this.isAuthenticated = false;
8700
8863
  this.jwt = null;
8701
8864
  this.origin = null;
@@ -8924,7 +9087,7 @@ class Auth {
8924
9087
  this.isAuthenticated = true;
8925
9088
  this.userId = res.userId;
8926
9089
  this.jwt = res.token;
8927
- this.origin = new Origin(this.environment, this.jwt, this.viem, this.baseParentId, this.clientId);
9090
+ this.origin = new Origin(this.environment, this.jwt, this.viem, this.baseParentId, this.appId);
8928
9091
  yield __classPrivateFieldGet(this, _Auth_storage, "f").setItem("camp-sdk:jwt", this.jwt);
8929
9092
  yield __classPrivateFieldGet(this, _Auth_storage, "f").setItem("camp-sdk:wallet-address", this.walletAddress);
8930
9093
  yield __classPrivateFieldGet(this, _Auth_storage, "f").setItem("camp-sdk:user-id", this.userId);
@@ -8988,7 +9151,7 @@ class Auth {
8988
9151
  this.isAuthenticated = true;
8989
9152
  this.userId = res.userId;
8990
9153
  this.jwt = res.token;
8991
- this.origin = new Origin(this.environment, this.jwt, this.viem, this.baseParentId, this.clientId);
9154
+ this.origin = new Origin(this.environment, this.jwt, this.viem, this.baseParentId, this.appId);
8992
9155
  yield __classPrivateFieldGet(this, _Auth_storage, "f").setItem("camp-sdk:jwt", this.jwt);
8993
9156
  yield __classPrivateFieldGet(this, _Auth_storage, "f").setItem("camp-sdk:wallet-address", this.walletAddress);
8994
9157
  yield __classPrivateFieldGet(this, _Auth_storage, "f").setItem("camp-sdk:user-id", this.userId);
@@ -9030,7 +9193,7 @@ class Auth {
9030
9193
  if (!this.isAuthenticated) {
9031
9194
  throw new AuthenticationError("User must be authenticated to get linked social accounts");
9032
9195
  }
9033
- const connections = yield fetch(`${this.environment.AUTH_HUB_BASE_API}/${this.environment.AUTH_ENDPOINT}/client-user/connections-sdk`, {
9196
+ const connections = yield fetch(`${this.environment.AUTH_HUB_BASE_API}/client-user/connections-sdk`, {
9034
9197
  method: "GET",
9035
9198
  headers: {
9036
9199
  Authorization: `Bearer ${this.jwt}`,
@@ -9384,7 +9547,7 @@ _Auth_triggers = new WeakMap(), _Auth_isNodeEnvironment = new WeakMap(), _Auth_s
9384
9547
  this.walletAddress = walletAddress;
9385
9548
  this.userId = userId;
9386
9549
  this.jwt = jwt;
9387
- this.origin = new Origin(this.environment, this.jwt, this.viem, this.baseParentId, this.clientId);
9550
+ this.origin = new Origin(this.environment, this.jwt, this.viem, this.baseParentId, this.appId);
9388
9551
  this.isAuthenticated = true;
9389
9552
  if (provider) {
9390
9553
  this.setProvider({
@@ -9418,7 +9581,7 @@ _Auth_triggers = new WeakMap(), _Auth_isNodeEnvironment = new WeakMap(), _Auth_s
9418
9581
  }, _Auth_fetchNonce = function _Auth_fetchNonce() {
9419
9582
  return __awaiter(this, void 0, void 0, function* () {
9420
9583
  try {
9421
- const res = yield fetch(`${this.environment.AUTH_HUB_BASE_API}/${this.environment.AUTH_ENDPOINT}/client-user/nonce`, {
9584
+ const res = yield fetch(`${this.environment.AUTH_HUB_BASE_API}/client-user/nonce`, {
9422
9585
  method: "POST",
9423
9586
  headers: {
9424
9587
  "Content-Type": "application/json",
@@ -9441,7 +9604,7 @@ _Auth_triggers = new WeakMap(), _Auth_isNodeEnvironment = new WeakMap(), _Auth_s
9441
9604
  }, _Auth_verifySignature = function _Auth_verifySignature(message, signature) {
9442
9605
  return __awaiter(this, void 0, void 0, function* () {
9443
9606
  try {
9444
- const res = yield fetch(`${this.environment.AUTH_HUB_BASE_API}/${this.environment.AUTH_ENDPOINT}/client-user/verify`, {
9607
+ const res = yield fetch(`${this.environment.AUTH_HUB_BASE_API}/client-user/verify`, {
9445
9608
  method: "POST",
9446
9609
  headers: {
9447
9610
  "Content-Type": "application/json",
@@ -9536,6 +9699,7 @@ const UserProvider = ({ children }) => {
9536
9699
  var _a, _b, _c;
9537
9700
  const { authenticated } = useAuthState();
9538
9701
  const { auth, environment } = useContext(CampContext);
9702
+ const apiUrl = getBaseApiUrl(environment);
9539
9703
  if (!auth && typeof window !== "undefined") {
9540
9704
  throw new Error("Auth instance is not available");
9541
9705
  }
@@ -9544,7 +9708,7 @@ const UserProvider = ({ children }) => {
9544
9708
  queryFn: () => __awaiter(void 0, void 0, void 0, function* () {
9545
9709
  if (!authenticated || !(auth === null || auth === void 0 ? void 0 : auth.jwt))
9546
9710
  return null;
9547
- const response = yield fetch(`${environment.AUTH_HUB_BASE_API}/${environment.AUTH_ENDPOINT}/client-user/user`, {
9711
+ const response = yield fetch(`${apiUrl}/client-user/user`, {
9548
9712
  method: "GET",
9549
9713
  headers: {
9550
9714
  Authorization: `Bearer ${auth.jwt}`,
@@ -9714,6 +9878,10 @@ const BinIcon = ({ w, h }) => (React.createElement("svg", { clipRule: "evenodd",
9714
9878
  const CampIcon = ({ customStyles }) => (React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 571.95 611.12", height: "1rem", width: "1rem", fill: "currentColor", style: customStyles },
9715
9879
  React.createElement("path", { d: "m563.25 431.49-66.17-51.46c-11.11-8.64-27.28-5.06-33.82 7.4-16.24 30.9-41.69 56.36-70.85 73.73l-69.35-69.35c-3.73-3.73-8.79-5.83-14.07-5.83s-10.34 2.1-14.07 5.83l-73.78 73.78c-57.37-30.39-96.55-90.71-96.55-160.03 0-99.79 81.19-180.98 180.98-180.98 60.35 0 118.17 26.28 156.39 89.44 6.85 11.32 21.92 14.33 32.59 6.51l64.21-47.06c9.53-6.98 12.06-20.15 5.78-30.16C508.83 54.41 411.43 0 305.56 0 137.07 0 0 137.07 0 305.56s137.07 305.56 305.56 305.56c57.6 0 113.72-16.13 162.31-46.63A306.573 306.573 0 0 0 568.8 460.8c5.78-9.78 3.42-22.34-5.55-29.31Zm-301.42 49.69 47.15-47.15 44.69 44.69c-15.92 5.1-32.2 7.83-48.1 7.83-15.08 0-29.72-1.87-43.74-5.36Zm42.36-222.47c-.07 1.49-.08 21.29 49.54 55.11 37.02 25.24 19.68 75.52 12.1 92.05a147.07 147.07 0 0 0-20.12-38.91c-12.73-17.59-26.87-28.9-36.74-35.59-10.38 6.36-27.41 18.74-41.07 40.02-8.27 12.89-12.82 25.16-15.42 34.48l-.03-.05c-15.1-40.6-9.75-60.88-1.95-71.9 6.12-8.65 17.24-20.6 17.24-20.6 9.71-9.66 19.96-19.06 29.82-38.17 6.06-11.75 6.59-15.84 6.63-16.45Z", fill: "#000", strokeWidth: "0" }),
9716
9880
  React.createElement("path", { d: "M267.74 313.33s-11.11 11.95-17.24 20.6c-7.8 11.02-13.14 31.3 1.95 71.9-86.02-75.3 2.56-152.15.79-146.3-6.58 21.75 14.49 53.8 14.49 53.8Zm20.98-23.66c3.01-4.27 5.97-9.06 8.8-14.55 6.62-12.83 6.64-16.54 6.64-16.54s-2.09 20.02 49.53 55.21c37.02 25.24 19.68 75.52 12.1 92.05 0 0 43.69-27.86 37.49-74.92-7.45-56.61-38.08-51.5-60.84-93.43-21.23-39.11 15.03-70.44 15.03-70.44s-48.54-2.61-70.76 48.42c-23.42 53.77 2 74.21 2 74.21Z", fill: "#ff6d01", strokeWidth: "0" })));
9881
+ const USDCIcon = ({ customStyles }) => (React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", "data-name": "86977684-12db-4850-8f30-233a7c267d11", viewBox: "0 0 2000 2000", height: "1rem", width: "1rem", style: customStyles },
9882
+ React.createElement("path", { d: "M1000 2000c554.17 0 1000-445.83 1000-1000S1554.17 0 1000 0 0 445.83 0 1000s445.83 1000 1000 1000z", fill: "#2775ca" }),
9883
+ React.createElement("path", { d: "M1275 1158.33c0-145.83-87.5-195.83-262.5-216.66-125-16.67-150-50-150-108.34s41.67-95.83 125-95.83c75 0 116.67 25 137.5 87.5 4.17 12.5 16.67 20.83 29.17 20.83h66.66c16.67 0 29.17-12.5 29.17-29.16v-4.17c-16.67-91.67-91.67-162.5-187.5-170.83v-100c0-16.67-12.5-29.17-33.33-33.34h-62.5c-16.67 0-29.17 12.5-33.34 33.34v95.83c-125 16.67-204.16 100-204.16 204.17 0 137.5 83.33 191.66 258.33 212.5 116.67 20.83 154.17 45.83 154.17 112.5s-58.34 112.5-137.5 112.5c-108.34 0-145.84-45.84-158.34-108.34-4.16-16.66-16.66-25-29.16-25h-70.84c-16.66 0-29.16 12.5-29.16 29.17v4.17c16.66 104.16 83.33 179.16 220.83 200v100c0 16.66 12.5 29.16 33.33 33.33h62.5c16.67 0 29.17-12.5 33.34-33.33v-100c125-20.84 208.33-108.34 208.33-220.84z", fill: "#fff" }),
9884
+ React.createElement("path", { d: "M787.5 1595.83c-325-116.66-491.67-479.16-370.83-800 62.5-175 200-308.33 370.83-370.83 16.67-8.33 25-20.83 25-41.67V325c0-16.67-8.33-29.17-25-33.33-4.17 0-12.5 0-16.67 4.16-395.83 125-612.5 545.84-487.5 941.67 75 233.33 254.17 412.5 487.5 487.5 16.67 8.33 33.34 0 37.5-16.67 4.17-4.16 4.17-8.33 4.17-16.66v-58.34c0-12.5-12.5-29.16-25-37.5zM1229.17 295.83c-16.67-8.33-33.34 0-37.5 16.67-4.17 4.17-4.17 8.33-4.17 16.67v58.33c0 16.67 12.5 33.33 25 41.67 325 116.66 491.67 479.16 370.83 800-62.5 175-200 308.33-370.83 370.83-16.67 8.33-25 20.83-25 41.67V1700c0 16.67 8.33 29.17 25 33.33 4.17 0 12.5 0 16.67-4.16 395.83-125 612.5-545.84 487.5-941.67-75-237.5-258.34-416.67-487.5-491.67z", fill: "#fff" })));
9717
9885
  const DiscordIcon = () => (React.createElement("svg", { viewBox: "0 0 42 32", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
9718
9886
  React.createElement("path", { d: "M41.1302 23.4469V24.2363C41.0328 24.2948 41.0717 24.3923 41.062 24.4702C41.0328 24.8991 40.9938 25.3279 40.9645 25.7568C40.9548 25.9322 40.8866 26.0589 40.7306 26.1661C37.7092 28.3396 34.4247 30.0062 30.8672 31.1173C30.6528 31.1856 30.5358 31.1563 30.3994 30.9711C29.6879 29.977 29.0446 28.9439 28.4696 27.862C28.3624 27.6573 28.4111 27.5989 28.6061 27.5209C29.532 27.17 30.4286 26.7509 31.2961 26.2733C31.8419 25.981 31.8224 25.9907 31.3546 25.5911C31.1109 25.3767 30.9062 25.3474 30.5943 25.4936C27.7971 26.7509 24.8634 27.4624 21.7933 27.5989C18.0507 27.7645 14.4542 27.092 11.0235 25.6008C10.5069 25.3767 10.1463 25.3669 9.75645 25.7763C9.59076 25.9517 9.54202 25.9907 9.77594 26.1271C10.7213 26.6534 11.6862 27.131 12.6999 27.5014C12.963 27.5989 12.963 27.6963 12.8461 27.9205C12.2905 28.9634 11.6667 29.9575 10.9942 30.9224C10.8383 31.1466 10.6921 31.1953 10.429 31.1173C6.91049 29.9965 3.65518 28.3591 0.663021 26.2051C0.497331 26.0784 0.419365 25.9615 0.409619 25.747C0.409619 25.4156 0.360879 25.094 0.341386 24.7626C0.156204 21.9752 0.292661 19.2072 0.789729 16.4489C1.66691 11.5952 3.61619 7.18007 6.33545 3.08656C6.43291 2.94037 6.54012 2.8429 6.69607 2.76493C9.25938 1.61485 11.9202 0.805904 14.6784 0.308836C14.8538 0.279597 14.961 0.308829 15.0488 0.484265C15.3217 1.04956 15.6141 1.6051 15.887 2.17039C15.9844 2.37507 16.0624 2.4628 16.3158 2.42381C19.2397 2.01446 22.1734 2.02421 25.0973 2.42381C25.2923 2.45305 25.3702 2.39457 25.4385 2.22889C25.7114 1.65385 26.0038 1.08854 26.2767 0.513503C26.3644 0.32832 26.4813 0.26985 26.686 0.308836C29.4248 0.805904 32.066 1.61486 34.6099 2.74545C34.7853 2.82342 34.912 2.94037 35.0192 3.10606C38.4305 8.18395 40.5454 13.7297 40.9938 19.8699C41.0133 20.1623 40.9548 20.4742 41.101 20.7666V21.4976C41.0035 21.634 41.0328 21.7997 41.0425 21.9459C41.0718 22.4527 40.9645 22.9693 41.101 23.4761L41.1302 23.4469ZM23.8108 17.063C23.8108 18.0961 24.035 18.9148 24.5223 19.6458C25.8868 21.7218 28.5963 21.9069 30.1655 20.0259C31.53 18.3885 31.4618 15.8349 29.9998 14.2755C28.7815 12.9792 26.8225 12.8038 25.419 13.8856C24.3371 14.7238 23.8595 15.8739 23.8206 17.063H23.8108ZM17.5731 17.3748C17.5731 16.6244 17.4756 16.0103 17.2027 15.4353C16.5595 14.1 15.5361 13.2424 14.0059 13.1936C12.4952 13.1449 11.4328 13.9246 10.7408 15.2111C9.88315 16.829 10.1366 18.7881 11.3549 20.1623C12.5829 21.5463 14.6102 21.7315 16.0526 20.5619C17.0955 19.714 17.5438 18.5737 17.5828 17.3748H17.5731Z", fill: "#5865F2" })));
9719
9887
  const TwitterIcon = () => (React.createElement("svg", { viewBox: "0 0 33 27", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
@@ -9933,7 +10101,7 @@ const CampContext = createContext({
9933
10101
  * @param {string} props.environment The environment to use ("DEVELOPMENT" or "PRODUCTION")
9934
10102
  * @returns {JSX.Element} The CampProvider component
9935
10103
  */
9936
- const CampProvider = ({ clientId, redirectUri, children, environment = "DEVELOPMENT", baseParentId, }) => {
10104
+ const CampProvider = ({ clientId, appId, redirectUri, children, environment = "DEVELOPMENT", baseParentId, }) => {
9937
10105
  const isServer = typeof window === "undefined";
9938
10106
  const normalizedBaseParentId = typeof baseParentId === "string" ? BigInt(baseParentId) : baseParentId;
9939
10107
  const [auth, setAuth] = useState(!isServer
@@ -9946,6 +10114,7 @@ const CampProvider = ({ clientId, redirectUri, children, environment = "DEVELOPM
9946
10114
  : "",
9947
10115
  environment: environment,
9948
10116
  baseParentId: normalizedBaseParentId,
10117
+ appId: appId,
9949
10118
  })
9950
10119
  : null);
9951
10120
  const wagmiContext = typeof window !== "undefined" ? useContext(WagmiContext) : undefined;
@@ -9990,8 +10159,8 @@ const useWalletConnectProvider = (projectId, chain) => {
9990
10159
  return walletConnectProvider;
9991
10160
  };
9992
10161
 
9993
- var css_248z = ".buttons-module_button__4Ogad{background-color:#ff6f00;border:none;border-radius:0;box-shadow:inset 0 2px 0 hsla(0,0%,100%,.15),inset 0 -2px 4px rgba(0,0,0,.05),0 1px 1px rgba(46,54,80,.075);color:#fff;font-family:Geist Mono,monospace;font-size:1rem;font-size:.875rem;font-weight:600;height:2.5rem;margin-bottom:.75rem;margin-top:1rem;padding:1rem;padding-block:0;position:relative;text-transform:uppercase;width:100%}.buttons-module_button__4Ogad:hover{background-color:#cc4e02;cursor:pointer}.buttons-module_button__4Ogad:disabled{background-color:#ccc;cursor:not-allowed}.buttons-module_connect-button__CJhUa{background-color:#ff6f00;border:none;box-shadow:inset 0 2px 0 hsla(0,0%,100%,.15),inset 0 -2px 4px rgba(0,0,0,.05),0 1px 1px rgba(46,54,80,.075);color:#fff;font-family:Geist Mono,monospace;font-size:1rem;font-weight:600;height:2.75rem;line-height:1.333rem;padding-inline:2.5rem;padding-left:5rem;position:relative;text-transform:uppercase;transition:background-color .15s;width:13rem}.buttons-module_connect-button__CJhUa .buttons-module_button-icon__JM4-2{background:hsla(0,0%,100%,.75);box-shadow:inset 0 2px 0 hsla(0,0%,100%,.15),inset 0 -2px 4px rgba(0,0,0,.05);display:grid;height:100%;left:0;margin-right:.5rem;place-items:center;position:absolute;top:50%;transform:translateY(-50%);transition:background-color .15s;width:3rem}.buttons-module_connect-button__CJhUa .buttons-module_button-icon__JM4-2 svg{height:1.25rem;width:1.25rem}.buttons-module_connect-button__CJhUa:hover{background-color:#cc4e02;border-color:#cc4e02;cursor:pointer}.buttons-module_connect-button__CJhUa:hover .buttons-module_button-icon__JM4-2{background:hsla(0,0%,100%,.675)}.buttons-module_connect-button__CJhUa:focus{outline:none}.buttons-module_connect-button__CJhUa:disabled{background-color:#ccc;cursor:not-allowed}.buttons-module_provider-button__6JY7s{align-items:center;border:1px solid #ddd;display:flex;gap:.5rem;justify-content:flex-start;padding:.5rem;position:relative;transition:border-color .15s;width:100%}.buttons-module_provider-button__6JY7s:focus{outline:1px solid #ff6f00;outline-offset:2px}.buttons-module_provider-button__6JY7s:hover{border-color:#ff6f00}.buttons-module_provider-button__6JY7s:hover:not(:disabled){cursor:pointer}.buttons-module_provider-button__6JY7s img{height:2rem;width:2rem}.buttons-module_provider-button__6JY7s .buttons-module_provider-icon__MOhr8{border-radius:.2rem}.buttons-module_provider-button__6JY7s span{line-height:1rem;margin-left:.5rem}.buttons-module_provider-button__6JY7s span.buttons-module_provider-name__tHWO2{color:#333;font-size:.875rem}.buttons-module_provider-button__6JY7s span.buttons-module_provider-label__CEGRr{color:#777;font-family:Geist Mono,monospace;font-size:.7rem;text-transform:uppercase}.buttons-module_link-button-default__EcKUT{background-color:#ff6f00;border:none;box-shadow:inset 0 2px 0 hsla(0,0%,100%,.15),inset 0 -2px 4px rgba(0,0,0,.05),0 1px 1px rgba(46,54,80,.075);box-sizing:border-box;cursor:pointer;height:2.6rem;position:relative;width:7rem}.buttons-module_link-button-default__EcKUT:disabled{background-color:#b8b8b8;cursor:not-allowed}.buttons-module_link-button-default__EcKUT:after{background-color:transparent;border-radius:.75rem;bottom:0;content:\"\";left:0;position:absolute;right:0;top:0;transition:background-color .15s}.buttons-module_link-button-default__EcKUT:disabled:after{background-color:rgba(0,0,0,.35);border-radius:.35rem;color:#fff;content:\"Not connected\";display:grid;font-size:.75rem;height:2rem;left:0;opacity:0;padding:.25rem;place-items:center;position:absolute;right:0;top:-2.7rem;transform:translateY(-.5rem);transition:all .25s;-webkit-user-select:none;-moz-user-select:none;user-select:none;visibility:hidden}.buttons-module_link-button-default__EcKUT:disabled:hover:after{opacity:1;transform:translateY(0);visibility:visible}.buttons-module_link-button-default__EcKUT:not(:disabled):hover:after{background-color:rgba(0,0,0,.1)}.buttons-module_link-button-default__EcKUT:not(:disabled).buttons-module_twitter__9sRaz{background-color:#1da1f2}.buttons-module_link-button-default__EcKUT:not(:disabled).buttons-module_spotify__-fiKQ{background-color:#1db954}.buttons-module_link-button-default__EcKUT:not(:disabled).buttons-module_discord__I-YjZ{background-color:#7289da}.buttons-module_link-button-default__EcKUT:not(:disabled).buttons-module_tiktok__a80-0{background-color:#000}.buttons-module_link-button-default__EcKUT:not(:disabled).buttons-module_telegram__ExOTS{background-color:#08c}.buttons-module_link-button-default__EcKUT .buttons-module_button-container__-oPqd{align-items:center;display:flex;flex-direction:row;gap:.5rem;justify-content:center;padding:.5rem}.buttons-module_button-container__-oPqd .buttons-module_social-icon__DPdPe{align-items:center;color:#fff;display:flex;height:1.5rem;justify-content:center;width:1.5rem}.buttons-module_button-container__-oPqd .buttons-module_social-icon__DPdPe svg{fill:#fff!important;height:1.5rem;width:1.5rem}.buttons-module_button-container__-oPqd .buttons-module_social-icon__DPdPe svg path{fill:#fff!important}.buttons-module_button-container__-oPqd .buttons-module_link-icon__8V8FP{align-items:center;color:hsla(0,0%,100%,.8);display:flex;height:1.25rem;justify-content:center;width:1.25rem}.buttons-module_button-container__-oPqd .buttons-module_camp-logo__slNl0{align-items:center;background-color:#fff;border-radius:50%;box-sizing:border-box;display:flex;height:1.5rem;justify-content:center;padding:.15rem;width:1.5rem}.buttons-module_link-button-default__EcKUT:disabled .buttons-module_button-container__-oPqd .buttons-module_camp-logo__slNl0 svg path{fill:#b8b8b8!important}.buttons-module_link-button-icon__llX8m{background-color:#ff6f00;border:none;box-shadow:inset 0 2px 0 hsla(0,0%,100%,.15),inset 0 -2px 4px rgba(0,0,0,.05),0 1px 1px rgba(46,54,80,.075);box-sizing:border-box;cursor:pointer;height:3rem;min-height:3rem;min-width:3rem;padding:0;position:relative;width:3rem}.buttons-module_link-button-icon__llX8m:disabled{background-color:#b8b8b8;cursor:not-allowed}.buttons-module_link-button-icon__llX8m:disabled:after{background-color:rgba(0,0,0,.35);border-radius:.35rem;box-sizing:border-box;color:#fff;content:\"Not connected\";display:grid;font-size:.75rem;height:-moz-fit-content;height:fit-content;left:-1rem;opacity:0;padding:.25rem;place-items:center;position:absolute;right:-1rem;top:-2.7rem;transform:translateY(-.5rem);transition:all .25s}.buttons-module_link-button-icon__llX8m:disabled:hover:after{opacity:1;transform:translateY(0)}.buttons-module_link-button-icon__llX8m:after{background-color:transparent;border-radius:.75rem;bottom:0;content:\"\";left:0;position:absolute;right:0;top:0;transition:background-color .15s}.buttons-module_link-button-icon__llX8m:not(:disabled):hover:after{background-color:rgba(0,0,0,.1)}.buttons-module_link-button-icon__llX8m:not(:disabled).buttons-module_twitter__9sRaz{background-color:#1da1f2}.buttons-module_link-button-icon__llX8m:not(:disabled).buttons-module_spotify__-fiKQ{background-color:#1db954}.buttons-module_link-button-icon__llX8m:not(:disabled).buttons-module_discord__I-YjZ{background-color:#7289da}.buttons-module_link-button-icon__llX8m:not(:disabled).buttons-module_tiktok__a80-0{background-color:#000}.buttons-module_link-button-icon__llX8m:not(:disabled).buttons-module_telegram__ExOTS{background-color:#08c}.buttons-module_link-button-icon__llX8m .buttons-module_icon-container__Q5bI1{align-items:center;display:flex;flex:1;height:100%;justify-content:center;position:relative;width:100%}.buttons-module_link-button-icon__llX8m .buttons-module_icon-container__Q5bI1>svg{fill:#fff!important;height:1.5rem;width:1.5rem}.buttons-module_link-button-icon__llX8m .buttons-module_icon-container__Q5bI1>svg path{fill:#fff!important}.buttons-module_link-button-icon__llX8m .buttons-module_camp-logo__slNl0{align-items:center;background-color:#fff;border-radius:50%;bottom:-.5rem;box-sizing:border-box;display:flex;height:1.5rem;justify-content:center;position:absolute;right:-.5rem;width:1.5rem}.buttons-module_link-button-icon__llX8m .buttons-module_camp-logo__slNl0 svg{height:1.1rem;width:1.1rem}.buttons-module_link-button-icon__llX8m:disabled .buttons-module_camp-logo__slNl0 svg path,.buttons-module_not-linked__ua4va svg path{fill:#b8b8b8!important}.buttons-module_file-upload-container__le7Cg{align-items:center;border:2px dashed #ccc;box-sizing:border-box;color:#777;cursor:pointer;display:flex;flex-direction:column;justify-content:center;max-width:100%;min-height:12rem;min-width:0;overflow-y:auto;padding:1rem;position:relative;text-align:center;transition:background-color .2s,border-color .2s;width:100%}.buttons-module_file-upload-container__le7Cg:hover{border-color:#e2e2e2}.buttons-module_file-upload-container__le7Cg.buttons-module_dragging__cfggZ{background-color:#f9f9f9;border-color:#ff6f00}.buttons-module_file-upload-container__le7Cg.buttons-module_dragging__cfggZ .buttons-module_file-preview__yuM5i{opacity:.2;transition:opacity .2s}.buttons-module_file-upload-container__le7Cg.buttons-module_file-selected__YY6ms{background-color:#f9f9f9;border:none;padding:0 .5rem 0 0}.buttons-module_file-input__gbD5T{display:none}.buttons-module_selected-file-container__E1AXM{align-items:center;display:flex;flex-direction:column;gap:.25rem;height:100%;justify-content:space-between;max-width:100%;position:relative;width:100%}.buttons-module_remove-file-button__Q1FMa{border:1px solid #ff6f00;color:#fff;color:#ff6f00;cursor:pointer;font-size:.875rem;margin-bottom:.75rem;margin-top:1rem;padding:.5rem;text-align:center;transition:background-color .2s}.buttons-module_remove-file-button__Q1FMa:hover{background-color:#cc4e02;border-color:#cc4e02;color:#fff;cursor:pointer}.buttons-module_remove-file-button__Q1FMa:disabled{background-color:#b8b8b8;border-color:#b8b8b8;color:#fff;cursor:not-allowed}.buttons-module_upload-file-button__vTwWd{background-color:#ff6f00;border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-size:.875rem;padding:.5rem;text-align:center;transition:background-color .2s;width:100%}.buttons-module_upload-file-button__vTwWd:hover{background-color:#cc4e02;cursor:pointer}.buttons-module_upload-file-button__vTwWd:disabled{background-color:#b8b8b8;cursor:not-allowed}.buttons-module_file-preview__yuM5i{max-height:8rem;max-width:100%}audio.buttons-module_file-preview__yuM5i{min-height:4rem}.buttons-module_file-preview-text__80Ju0{color:#333;font-size:.875rem;margin-bottom:.5rem}.buttons-module_file-name__3iskR{color:#333;font-size:.875rem;max-width:100%;min-height:-moz-fit-content;min-height:fit-content;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.buttons-module_upload-buttons__3SAw6{align-items:center;display:flex;gap:.25rem;justify-content:space-between;width:100%}.buttons-module_upload-buttons__3SAw6 .buttons-module_upload-file-button__vTwWd{flex-grow:1}.buttons-module_upload-buttons__3SAw6 .buttons-module_remove-file-button__Q1FMa{flex-grow:0}.buttons-module_accepted-types__Ys-D2{color:#777;font-size:.875rem;font-style:italic;margin-top:.5rem}.buttons-module_loading-bar-container__nrgPX{background-color:#e0e0e0;margin-top:8px;min-height:8px;overflow:hidden;width:100%}.buttons-module_loading-bar__IUAg1{background-color:#ff6f00;min-height:100%;transition:width .3s ease}.buttons-module_date-picker__V6gRM{display:flex;flex-direction:column;font-family:sans-serif;gap:6px;width:100%}.buttons-module_date-picker__V6gRM input{border:1px solid #ccc;border-radius:4px;font-size:14px;padding:6px 10px}.buttons-module_percentage-slider__M84tC{display:flex;flex-direction:row;font-family:sans-serif;gap:8px;justify-content:space-between;width:100%}.buttons-module_percentage-slider__M84tC input[type=range]{width:100%}.buttons-module_percentage-slider__M84tC label{min-width:50px}.buttons-module_fancy-input-container__s-zVw{align-items:center;border:1px solid #ccc;display:flex;font-family:sans-serif;gap:0;min-height:2.5rem;overflow:hidden;position:relative;width:100%}.buttons-module_fancy-input-container__s-zVw textarea.buttons-module_fancy-input__RpSOF{background:transparent;border:none;box-sizing:border-box;color:#222;font-family:inherit;font-size:1rem;line-height:1.4;max-height:12rem;outline:none;overflow-y:auto;padding:10px;resize:none;width:100%}.buttons-module_fancy-input__RpSOF{background:transparent;border:none;flex:1;font-family:sans-serif;outline:none;padding:6px 10px}.buttons-module_fancy-input-label__d-sG7{align-self:flex-start;color:#777;font-family:Geist Mono,monospace;font-size:.8rem;font-weight:500;margin-top:.25rem;padding:0 .25rem;pointer-events:none;text-transform:uppercase}.buttons-module_input-divider__RVasJ{background-color:#ccc;height:24px;margin:0;min-width:1px}.buttons-module_input-icon-container__MUYKL{align-items:center;background-color:#f8f9fa;display:flex;justify-content:center;min-width:40px;padding:6px 10px}.buttons-module_input-icon-container__MUYKL svg{height:16px;width:16px}.buttons-module_duration-input-container__Rh9Na{align-items:stretch;border:1px solid #ccc;box-sizing:border-box;display:flex;font-family:sans-serif;gap:0;min-height:2.5rem;overflow:hidden;width:100%}.buttons-module_duration-input__-gt3p{background:transparent;flex:1;min-width:0}.buttons-module_duration-input__-gt3p,.buttons-module_duration-unit-select__VKFf6{border:none;box-sizing:border-box;font-family:sans-serif;outline:none;padding:6px 10px}.buttons-module_duration-unit-select__VKFf6{background-color:#f8f9fa;border-left:1px solid #ccc;cursor:pointer;flex:0 0 auto;width:auto}.buttons-module_price-input-container__teIRS:focus-within{border-color:#ff6f00;box-shadow:0 0 0 1px #ff6f00}.buttons-module_duration-input-container__Rh9Na:focus-within{border-color:#ff6f00;box-shadow:0 0 0 1px #ff6f00}.buttons-module_duration-input-container__Rh9Na:hover,.buttons-module_price-input-container__teIRS:hover{border-color:#999}.buttons-module_duration-unit-select__VKFf6:focus,.buttons-module_duration-unit-select__VKFf6:hover{background-color:#e9ecef}.buttons-module_preview-option-container__0bzt-{align-items:center;display:flex;margin-top:.5rem;width:100%}.buttons-module_checkbox-label__ODwgG{align-items:center;color:#333;cursor:pointer;display:flex;font-size:.875rem;gap:.5rem;-webkit-user-select:none;-moz-user-select:none;user-select:none}.buttons-module_checkbox-input__FvUIp{accent-color:#ff6f00;cursor:pointer;height:1.125rem;width:1.125rem}.buttons-module_checkbox-label__ODwgG span{line-height:1.2}.buttons-module_preview-image-section__BjtiC{margin-top:.5rem}.buttons-module_preview-image-controls__l6gv5,.buttons-module_preview-image-section__BjtiC{display:flex;flex-direction:column;gap:.5rem;width:100%}.buttons-module_select-preview-button__0HQfm{background-color:#f8f9fa;border:1px solid #ccc;color:#333;cursor:pointer;font-family:Geist Mono,monospace;font-size:.875rem;padding:.75rem;text-transform:uppercase;transition:all .2s;width:100%}.buttons-module_select-preview-button__0HQfm:hover:not(:disabled){background-color:#e9ecef;border-color:#999}.buttons-module_select-preview-button__0HQfm:disabled{background-color:#e9ecef;color:#999;cursor:not-allowed;opacity:.6}.buttons-module_preview-image-preview__c-6n5{align-items:center;background-color:#f8f9fa;border:1px solid #ccc;display:flex;gap:.75rem;padding:.75rem}.buttons-module_preview-thumbnail__fJWXt{flex-shrink:0;height:3rem;-o-object-fit:cover;object-fit:cover;width:3rem}.buttons-module_preview-filename__FW-Gz{color:#333;flex:1;font-size:.875rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.buttons-module_remove-preview-button__Skqgb{align-items:center;background-color:transparent;border:1px solid #ff6f00;color:#ff6f00;cursor:pointer;display:flex;flex-shrink:0;justify-content:center;padding:.5rem;transition:all .2s}.buttons-module_remove-preview-button__Skqgb:hover:not(:disabled){background-color:#cc4e02;border-color:#cc4e02;color:#fff}.buttons-module_remove-preview-button__Skqgb:disabled{border-color:#ccc;color:#ccc;cursor:not-allowed;opacity:.6}.buttons-module_percentage-icon__MxmJh{color:#555;font-size:.875rem;font-weight:600}\n/*# sourceMappingURL=data:application/json;base64,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QVBuQiw0QkFBNkIsQ0FDN0Isd0JBQXlCLENBQ3pCLGFBQWMsQ0FDZCxjQUFlLENBR2YsWUFBYSxDQURiLGFBQWMsQ0FHZCxzQkFBdUIsQ0FUdkIsYUFBZSxDQUtmLGtCQUtGLENBRUEsa0VBQ0Usd0JBQXlCLENBQ3pCLG9CQUFxQixDQUNyQixVQUNGLENBRUEsc0RBQ0UsaUJBQWtCLENBQ2xCLFVBQVcsQ0FDWCxrQkFBbUIsQ0FDbkIsVUFDRixDQUVBLHVDQUdFLFVBQVcsQ0FGWCxpQkFBbUIsQ0FDbkIsZUFFRiIsImZpbGUiOiJidXR0b25zLm1vZHVsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuYnV0dG9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY2ZjAwO1xuICBjb2xvcjogd2hpdGU7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgcGFkZGluZzogMXJlbTtcbiAgcGFkZGluZy1ibG9jazogMDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMC43NXJlbTtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbiAgaGVpZ2h0OiAyLjVyZW07XG4gIGJveC1zaGFkb3c6IGhzbGEoMCwgMCUsIDEwMCUsIDAuMTUpIDAgMnB4IDAgaW5zZXQsXG4gICAgcmdiYSgwLCAwLCAwLCAwLjA1KSAwIC0ycHggNHB4IGluc2V0LCByZ2JhKDQ2LCA1NCwgODAsIDAuMDc1KSAwIDFweCAxcHg7XG5cbiAgZm9udC1mYW1pbHk6IFwiR2Vpc3QgTW9ub1wiLCBtb25vc3BhY2U7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG59XG5cbi5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2M0ZTAyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5idXR0b246ZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4uY29ubmVjdC1idXR0b24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjZmMDA7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyOiBub25lO1xuICAvKiBib3JkZXItcmFkaXVzOiAwLjc1cmVtOyAqL1xuICBwYWRkaW5nLWlubGluZTogMi41cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDVyZW07XG4gIGhlaWdodDogMi43NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMzMzcmVtO1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHdpZHRoOiAxM3JlbTtcbiAgZm9udC1mYW1pbHk6IFwiR2Vpc3QgTW9ub1wiLCBtb25vc3BhY2U7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGJveC1zaGFkb3c6IGhzbGEoMCwgMCUsIDEwMCUsIDAuMTUpIDAgMnB4IDAgaW5zZXQsXG4gICAgcmdiYSgwLCAwLCAwLCAwLjA1KSAwIC0ycHggNHB4IGluc2V0LCByZ2JhKDQ2LCA1NCwgODAsIDAuMDc1KSAwIDFweCAxcHg7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNXM7XG59XG5cbi5jb25uZWN0LWJ1dHRvbiAuYnV0dG9uLWljb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIHdpZHRoOiAzcmVtO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzUpO1xuICBib3gtc2hhZG93OiBoc2xhKDAsIDAlLCAxMDAlLCAwLjE1KSAwIDJweCAwIGluc2V0LFxuICAgIHJnYmEoMCwgMCwgMCwgMC4wNSkgMCAtMnB4IDRweCBpbnNldDtcbiAgZGlzcGxheTogZ3JpZDtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cztcbiAgLyogYm9yZGVyLXJhZGl1czogMC43NXJlbSAwIDAgMC43NXJlbTsgKi9cbn1cblxuLmNvbm5lY3QtYnV0dG9uIC5idXR0b24taWNvbiBzdmcge1xuICB3aWR0aDogMS4yNXJlbTtcbiAgaGVpZ2h0OiAxLjI1cmVtO1xufVxuXG4uY29ubmVjdC1idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2M0ZTAyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlci1jb2xvcjogI2NjNGUwMjtcbn1cblxuLmNvbm5lY3QtYnV0dG9uOmhvdmVyIC5idXR0b24taWNvbiB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42NzUpO1xufVxuXG4uY29ubmVjdC1idXR0b246Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4uY29ubmVjdC1idXR0b246ZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4ucHJvdmlkZXItYnV0dG9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBwYWRkaW5nOiAwLjVyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gIC8qIGJvcmRlci1yYWRpdXM6IDAuNXJlbTsgKi9cbiAgLyogYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTsgKi9cbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBnYXA6IDAuNXJlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE1cztcbn1cblxuLnByb3ZpZGVyLWJ1dHRvbjpmb2N1cyB7XG4gIG91dGxpbmU6IDFweCBzb2xpZCAjZmY2ZjAwO1xuICBvdXRsaW5lLW9mZnNldDogMnB4O1xufVxuXG4ucHJvdmlkZXItYnV0dG9uOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjZmY2ZjAwO1xuICAvKiBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlOyAqL1xufVxuXG4ucHJvdmlkZXItYnV0dG9uOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgLyogYmFja2dyb3VuZC1jb2xvcjogI2RkZDsgKi9cbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ucHJvdmlkZXItYnV0dG9uIGltZyB7XG4gIHdpZHRoOiAycmVtO1xuICBoZWlnaHQ6IDJyZW07XG59XG5cbi5wcm92aWRlci1idXR0b24gLnByb3ZpZGVyLWljb24ge1xuICBib3JkZXItcmFkaXVzOiAwLjJyZW07XG59XG5cbi5wcm92aWRlci1idXR0b24gc3BhbiB7XG4gIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxcmVtO1xufVxuXG4ucHJvdmlkZXItYnV0dG9uIHNwYW4ucHJvdmlkZXItbmFtZSB7XG4gIGNvbG9yOiAjMzMzO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xufVxuXG4ucHJvdmlkZXItYnV0dG9uIHNwYW4ucHJvdmlkZXItbGFiZWwge1xuICBjb2xvcjogIzc3NztcbiAgZm9udC1zaXplOiAwLjdyZW07XG4gIGZvbnQtZmFtaWx5OiBcIkdlaXN0IE1vbm9cIiwgbW9ub3NwYWNlO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4vKiBcImRlZmF1bHRcIiB2YXJpYW50ICovXG4ubGluay1idXR0b24tZGVmYXVsdCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm9yZGVyOiBub25lO1xuICB3aWR0aDogN3JlbTtcbiAgaGVpZ2h0OiAyLjZyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjZmMDA7XG4gIC8qIGJvcmRlci1yYWRpdXM6IDAuNzVyZW07ICovXG4gIGJveC1zaGFkb3c6IGhzbGEoMCwgMCUsIDEwMCUsIDAuMTUpIDAgMnB4IDAgaW5zZXQsXG4gICAgcmdiYSgwLCAwLCAwLCAwLjA1KSAwIC0ycHggNHB4IGluc2V0LCByZ2JhKDQ2LCA1NCwgODAsIDAuMDc1KSAwIDFweCAxcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmxpbmstYnV0dG9uLWRlZmF1bHQ6ZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjhiOGI4O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4ubGluay1idXR0b24tZGVmYXVsdDo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cztcbn1cblxuLmxpbmstYnV0dG9uLWRlZmF1bHQ6ZGlzYWJsZWQ6OmFmdGVyIHtcbiAgY29udGVudDogXCJOb3QgY29ubmVjdGVkXCI7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0yLjdyZW07XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IDJyZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuMzVyZW07XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zNSk7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZGlzcGxheTogZ3JpZDtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBwYWRkaW5nOiAwLjI1cmVtO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4yNXM7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMC41cmVtKTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi5saW5rLWJ1dHRvbi1kZWZhdWx0OmRpc2FibGVkOmhvdmVyOjphZnRlciB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbn1cblxuLmxpbmstYnV0dG9uLWRlZmF1bHQ6bm90KDpkaXNhYmxlZCk6aG92ZXI6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuXG4ubGluay1idXR0b24tZGVmYXVsdDpub3QoOmRpc2FibGVkKS50d2l0dGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFkYTFmMjtcbn1cblxuLmxpbmstYnV0dG9uLWRlZmF1bHQ6bm90KDpkaXNhYmxlZCkuc3BvdGlmeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxZGI5NTQ7XG59XG5cbi5saW5rLWJ1dHRvbi1kZWZhdWx0Om5vdCg6ZGlzYWJsZWQpLmRpc2NvcmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzI4OWRhO1xufVxuXG4ubGluay1idXR0b24tZGVmYXVsdDpub3QoOmRpc2FibGVkKS50aWt0b2sge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwO1xufVxuXG4ubGluay1idXR0b24tZGVmYXVsdDpub3QoOmRpc2FibGVkKS50ZWxlZ3JhbSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDg4Y2M7XG59XG5cbi5saW5rLWJ1dHRvbi1kZWZhdWx0IC5idXR0b24tY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZ2FwOiAwLjVyZW07XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAwLjVyZW07XG59XG5cbi5idXR0b24tY29udGFpbmVyIC5zb2NpYWwtaWNvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxLjVyZW07XG4gIGhlaWdodDogMS41cmVtO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4uYnV0dG9uLWNvbnRhaW5lciAuc29jaWFsLWljb24gc3ZnIHtcbiAgd2lkdGg6IDEuNXJlbTtcbiAgaGVpZ2h0OiAxLjVyZW07XG4gIGZpbGw6IHdoaXRlICFpbXBvcnRhbnQ7XG59XG5cbi5idXR0b24tY29udGFpbmVyIC5zb2NpYWwtaWNvbiBzdmcgcGF0aCB7XG4gIGZpbGw6IHdoaXRlICFpbXBvcnRhbnQ7XG59XG5cbi5idXR0b24tY29udGFpbmVyIC5saW5rLWljb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMS4yNXJlbTtcbiAgaGVpZ2h0OiAxLjI1cmVtO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbn1cblxuLmJ1dHRvbi1jb250YWluZXIgLmNhbXAtbG9nbyB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxLjVyZW07XG4gIGhlaWdodDogMS41cmVtO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgcGFkZGluZzogMC4xNXJlbTtcbn1cblxuLmxpbmstYnV0dG9uLWRlZmF1bHQ6ZGlzYWJsZWQgLmJ1dHRvbi1jb250YWluZXIgLmNhbXAtbG9nbyBzdmcgcGF0aCB7XG4gIGZpbGw6ICNiOGI4YjggIWltcG9ydGFudDtcbn1cblxuLyogXCJpY29uXCIgdmFyaWFudCAqL1xuLmxpbmstYnV0dG9uLWljb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1pbi13aWR0aDogM3JlbTtcbiAgbWluLWhlaWdodDogM3JlbTtcbiAgd2lkdGg6IDNyZW07XG4gIGhlaWdodDogM3JlbTtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwcmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY2ZjAwO1xuICAvKiBib3JkZXItcmFkaXVzOiAwLjc1cmVtOyAqL1xuICBib3gtc2hhZG93OiBoc2xhKDAsIDAlLCAxMDAlLCAwLjE1KSAwIDJweCAwIGluc2V0LFxuICAgIHJnYmEoMCwgMCwgMCwgMC4wNSkgMCAtMnB4IDRweCBpbnNldCwgcmdiYSg0NiwgNTQsIDgwLCAwLjA3NSkgMCAxcHggMXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5saW5rLWJ1dHRvbi1pY29uOmRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2I4YjhiODtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLmxpbmstYnV0dG9uLWljb246ZGlzYWJsZWQ6OmFmdGVyIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgY29udGVudDogXCJOb3QgY29ubmVjdGVkXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtMi43cmVtO1xuICBsZWZ0OiAtMXJlbTtcbiAgcmlnaHQ6IC0xcmVtO1xuICBoZWlnaHQ6IGZpdC1jb250ZW50O1xuICBib3JkZXItcmFkaXVzOiAwLjM1cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzUpO1xuICBjb2xvcjogd2hpdGU7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgcGFkZGluZzogMC4yNXJlbTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMjVzO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTAuNXJlbSk7XG59XG5cbi5saW5rLWJ1dHRvbi1pY29uOmRpc2FibGVkOmhvdmVyOjphZnRlciB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbn1cblxuLmxpbmstYnV0dG9uLWljb246OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGJvcmRlci1yYWRpdXM6IDAuNzVyZW07XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNXM7XG59XG5cbi5saW5rLWJ1dHRvbi1pY29uOm5vdCg6ZGlzYWJsZWQpOmhvdmVyOjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cblxuLmxpbmstYnV0dG9uLWljb246bm90KDpkaXNhYmxlZCkudHdpdHRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxZGExZjI7XG59XG5cbi5saW5rLWJ1dHRvbi1pY29uOm5vdCg6ZGlzYWJsZWQpLnNwb3RpZnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWRiOTU0O1xufVxuXG4ubGluay1idXR0b24taWNvbjpub3QoOmRpc2FibGVkKS5kaXNjb3JkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzcyODlkYTtcbn1cblxuLmxpbmstYnV0dG9uLWljb246bm90KDpkaXNhYmxlZCkudGlrdG9rIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbn1cblxuLmxpbmstYnV0dG9uLWljb246bm90KDpkaXNhYmxlZCkudGVsZWdyYW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA4OGNjO1xufVxuXG4ubGluay1idXR0b24taWNvbiAuaWNvbi1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGZsZXg6IDE7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4ubGluay1idXR0b24taWNvbiAuaWNvbi1jb250YWluZXIgPiBzdmcge1xuICB3aWR0aDogMS41cmVtO1xuICBoZWlnaHQ6IDEuNXJlbTtcbiAgZmlsbDogd2hpdGUgIWltcG9ydGFudDtcbn1cblxuLmxpbmstYnV0dG9uLWljb24gLmljb24tY29udGFpbmVyID4gc3ZnIHBhdGgge1xuICBmaWxsOiB3aGl0ZSAhaW1wb3J0YW50O1xufVxuXG4ubGluay1idXR0b24taWNvbiAuY2FtcC1sb2dvIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMS41cmVtO1xuICBoZWlnaHQ6IDEuNXJlbTtcbiAgcmlnaHQ6IC0wLjVyZW07XG4gIGJvdHRvbTogLTAuNXJlbTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG59XG5cbi5saW5rLWJ1dHRvbi1pY29uIC5jYW1wLWxvZ28gc3ZnIHtcbiAgd2lkdGg6IDEuMXJlbTtcbiAgaGVpZ2h0OiAxLjFyZW07XG59XG5cbi5saW5rLWJ1dHRvbi1pY29uOmRpc2FibGVkIC5jYW1wLWxvZ28gc3ZnIHBhdGgge1xuICBmaWxsOiAjYjhiOGI4ICFpbXBvcnRhbnQ7XG59XG5cbi5ub3QtbGlua2VkIHN2ZyBwYXRoIHtcbiAgZmlsbDogI2I4YjhiOCAhaW1wb3J0YW50O1xufVxuXG4uZmlsZS11cGxvYWQtY29udGFpbmVyIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm9yZGVyOiAycHggZGFzaGVkICNjY2M7XG4gIC8qIGJvcmRlci1yYWRpdXM6IDAuNzVyZW07ICovXG4gIHBhZGRpbmc6IDFyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICM3Nzc7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzLCBib3JkZXItY29sb3IgMC4ycztcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogMDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiAxMnJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgLyogaGVpZ2h0OiAzMDBweDsgKi9cbn1cblxuLmZpbGUtdXBsb2FkLWNvbnRhaW5lcjpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogI2UyZTJlMjtcbn1cblxuLmZpbGUtdXBsb2FkLWNvbnRhaW5lci5kcmFnZ2luZyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG4gIGJvcmRlci1jb2xvcjogI2ZmNmYwMDtcbn1cblxuLmZpbGUtdXBsb2FkLWNvbnRhaW5lci5kcmFnZ2luZyAuZmlsZS1wcmV2aWV3IHtcbiAgb3BhY2l0eTogMC4yO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7XG59XG5cbi5maWxlLXVwbG9hZC1jb250YWluZXIuZmlsZS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAvKiBoZWlnaHQ6IGF1dG87ICovXG4gIC8qIG1pbi1oZWlnaHQ6IGF1dG87ICovXG59XG5cbi5maWxlLWlucHV0IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnNlbGVjdGVkLWZpbGUtY29udGFpbmVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZ2FwOiAwLjI1cmVtO1xufVxuXG4ucmVtb3ZlLWZpbGUtYnV0dG9uIHtcbiAgY29sb3I6IHdoaXRlO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZmY2ZjAwO1xuICAvKiBib3JkZXItcmFkaXVzOiAwLjVyZW07ICovXG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnM7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogMC43NXJlbTtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbiAgY29sb3I6ICNmZjZmMDA7XG59XG5cbi5yZW1vdmUtZmlsZS1idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2M0ZTAyO1xuICBib3JkZXItY29sb3I6ICNjYzRlMDI7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ucmVtb3ZlLWZpbGUtYnV0dG9uOmRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2I4YjhiODtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgYm9yZGVyLWNvbG9yOiAjYjhiOGI4O1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi51cGxvYWQtZmlsZS1idXR0b24ge1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjZmMDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICBwYWRkaW5nOiAwLjVyZW07XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzO1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnVwbG9hZC1maWxlLWJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjYzRlMDI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi51cGxvYWQtZmlsZS1idXR0b246ZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjhiOGI4O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4uZmlsZS1wcmV2aWV3IHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXgtaGVpZ2h0OiA4cmVtO1xufVxuYXVkaW8uZmlsZS1wcmV2aWV3IHtcbiAgbWluLWhlaWdodDogNHJlbTtcbn1cblxuLmZpbGUtcHJldmlldy10ZXh0IHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgY29sb3I6ICMzMzM7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cblxuLmZpbGUtbmFtZSB7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGNvbG9yOiAjMzMzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgbWluLWhlaWdodDogZml0LWNvbnRlbnQ7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuLnVwbG9hZC1idXR0b25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAwLjI1cmVtO1xuICB3aWR0aDogMTAwJTtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4udXBsb2FkLWJ1dHRvbnMgLnVwbG9hZC1maWxlLWJ1dHRvbiB7XG4gIGZsZXgtZ3JvdzogMTtcbn1cblxuLnVwbG9hZC1idXR0b25zIC5yZW1vdmUtZmlsZS1idXR0b24ge1xuICBmbGV4LWdyb3c6IDA7XG59XG5cbi5hY2NlcHRlZC10eXBlcyB7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGNvbG9yOiAjNzc3O1xuICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLmxvYWRpbmctYmFyLWNvbnRhaW5lciB7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiA4cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlMGUwZTA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1hcmdpbi10b3A6IDhweDtcbn1cblxuLmxvYWRpbmctYmFyIHtcbiAgbWluLWhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNmYwMDtcbiAgdHJhbnNpdGlvbjogd2lkdGggMC4zcyBlYXNlO1xufVxuXG4uZGF0ZS1waWNrZXIge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiA2cHg7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xufVxuXG4uZGF0ZS1waWNrZXIgaW5wdXQge1xuICBwYWRkaW5nOiA2cHggMTBweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG5cbi5wZXJjZW50YWdlLXNsaWRlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBnYXA6IDhweDtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cblxuLnBlcmNlbnRhZ2Utc2xpZGVyIGlucHV0W3R5cGU9XCJyYW5nZVwiXSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ucGVyY2VudGFnZS1zbGlkZXIgbGFiZWwge1xuICBtaW4td2lkdGg6IDUwcHg7XG59XG5cbi5mYW5jeS1pbnB1dC1jb250YWluZXIge1xuICBtaW4taGVpZ2h0OiAyLjVyZW07XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGdhcDogMDtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5mYW5jeS1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEuZmFuY3ktaW5wdXQge1xuICByZXNpemU6IG5vbmU7XG4gIG1heC1oZWlnaHQ6IDEycmVtO1xuICB3aWR0aDogMTAwJTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgY29sb3I6ICMyMjI7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi5mYW5jeS1pbnB1dCB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICBwYWRkaW5nOiA2cHggMTBweDtcbiAgYm9yZGVyOiBub25lO1xuICBvdXRsaW5lOiBub25lO1xuICBmbGV4OiAxO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cblxuLmZhbmN5LWlucHV0LWxhYmVsIHtcbiAgZm9udC1zaXplOiAwLjhyZW07XG4gIGNvbG9yOiAjNzc3O1xuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICBwYWRkaW5nOiAwIDAuMjVyZW07XG4gIC8qIHotaW5kZXg6IDI7ICovXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBmb250LWZhbWlseTogXCJHZWlzdCBNb25vXCIsIG1vbm9zcGFjZTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbWFyZ2luLXRvcDogMC4yNXJlbTtcbn1cblxuLmlucHV0LWRpdmlkZXIge1xuICBtaW4td2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICBtYXJnaW46IDA7XG59XG5cbi5pbnB1dC1pY29uLWNvbnRhaW5lciB7XG4gIHBhZGRpbmc6IDZweCAxMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjlmYTtcbiAgbWluLXdpZHRoOiA0MHB4O1xufVxuXG4uaW5wdXQtaWNvbi1jb250YWluZXIgc3ZnIHtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbn1cblxuLmR1cmF0aW9uLWlucHV0LWNvbnRhaW5lciB7XG4gIG1pbi1oZWlnaHQ6IDIuNXJlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBnYXA6IDA7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICAvKiBib3JkZXItcmFkaXVzOiA0cHg7ICovXG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi5kdXJhdGlvbi1pbnB1dCB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICBwYWRkaW5nOiA2cHggMTBweDtcbiAgYm9yZGVyOiBub25lO1xuICBvdXRsaW5lOiBub25lO1xuICBmbGV4OiAxO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWluLXdpZHRoOiAwO1xufVxuXG4uZHVyYXRpb24tdW5pdC1zZWxlY3Qge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgcGFkZGluZzogNnB4IDEwcHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjlmYTtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICB3aWR0aDogYXV0bztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLnByaWNlLWlucHV0LWNvbnRhaW5lcjpmb2N1cy13aXRoaW4ge1xuICBib3JkZXItY29sb3I6ICNmZjZmMDA7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDFweCAjZmY2ZjAwO1xufVxuXG4uZHVyYXRpb24taW5wdXQtY29udGFpbmVyOmZvY3VzLXdpdGhpbiB7XG4gIGJvcmRlci1jb2xvcjogI2ZmNmYwMDtcbiAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICNmZjZmMDA7XG59XG5cbi5wcmljZS1pbnB1dC1jb250YWluZXI6aG92ZXIsXG4uZHVyYXRpb24taW5wdXQtY29udGFpbmVyOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjOTk5O1xufVxuXG4uZHVyYXRpb24tdW5pdC1zZWxlY3Q6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTllY2VmO1xufVxuXG4uZHVyYXRpb24tdW5pdC1zZWxlY3Q6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTllY2VmO1xufVxuXG4ucHJldmlldy1vcHRpb24tY29udGFpbmVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IDAuNXJlbTtcbn1cblxuLmNoZWNrYm94LWxhYmVsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgY29sb3I6ICMzMzM7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4uY2hlY2tib3gtaW5wdXQge1xuICB3aWR0aDogMS4xMjVyZW07XG4gIGhlaWdodDogMS4xMjVyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYWNjZW50LWNvbG9yOiAjZmY2ZjAwO1xufVxuXG4uY2hlY2tib3gtbGFiZWwgc3BhbiB7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG59XG5cbi5wcmV2aWV3LWltYWdlLXNlY3Rpb24ge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAwLjVyZW07XG4gIG1hcmdpbi10b3A6IDAuNXJlbTtcbn1cblxuLnByZXZpZXctaW1hZ2UtY29udHJvbHMge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAwLjVyZW07XG59XG5cbi5zZWxlY3QtcHJldmlldy1idXR0b24ge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMC43NXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjlmYTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgY29sb3I6ICMzMzM7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGZvbnQtZmFtaWx5OiBcIkdlaXN0IE1vbm9cIiwgbW9ub3NwYWNlO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xufVxuXG4uc2VsZWN0LXByZXZpZXctYnV0dG9uOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U5ZWNlZjtcbiAgYm9yZGVyLWNvbG9yOiAjOTk5O1xufVxuXG4uc2VsZWN0LXByZXZpZXctYnV0dG9uOmRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U5ZWNlZjtcbiAgY29sb3I6ICM5OTk7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIG9wYWNpdHk6IDAuNjtcbn1cblxuLnByZXZpZXctaW1hZ2UtcHJldmlldyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC43NXJlbTtcbiAgcGFkZGluZzogMC43NXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjlmYTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbn1cblxuLnByZXZpZXctdGh1bWJuYWlsIHtcbiAgd2lkdGg6IDNyZW07XG4gIGhlaWdodDogM3JlbTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4ucHJldmlldy1maWxlbmFtZSB7XG4gIGZsZXg6IDE7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGNvbG9yOiAjMzMzO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLnJlbW92ZS1wcmV2aWV3LWJ1dHRvbiB7XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmZjZmMDA7XG4gIGNvbG9yOiAjZmY2ZjAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBmbGV4LXNocmluazogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5yZW1vdmUtcHJldmlldy1idXR0b246aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2M0ZTAyO1xuICBib3JkZXItY29sb3I6ICNjYzRlMDI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLnJlbW92ZS1wcmV2aWV3LWJ1dHRvbjpkaXNhYmxlZCB7XG4gIGJvcmRlci1jb2xvcjogI2NjYztcbiAgY29sb3I6ICNjY2M7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIG9wYWNpdHk6IDAuNjtcbn1cblxuLnBlcmNlbnRhZ2UtaWNvbiB7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiAjNTU1O1xufVxuIl19 */";
9994
- var buttonStyles = {"button":"buttons-module_button__4Ogad","connect-button":"buttons-module_connect-button__CJhUa","button-icon":"buttons-module_button-icon__JM4-2","provider-button":"buttons-module_provider-button__6JY7s","provider-icon":"buttons-module_provider-icon__MOhr8","provider-name":"buttons-module_provider-name__tHWO2","provider-label":"buttons-module_provider-label__CEGRr","link-button-default":"buttons-module_link-button-default__EcKUT","twitter":"buttons-module_twitter__9sRaz","spotify":"buttons-module_spotify__-fiKQ","discord":"buttons-module_discord__I-YjZ","tiktok":"buttons-module_tiktok__a80-0","telegram":"buttons-module_telegram__ExOTS","button-container":"buttons-module_button-container__-oPqd","social-icon":"buttons-module_social-icon__DPdPe","link-icon":"buttons-module_link-icon__8V8FP","camp-logo":"buttons-module_camp-logo__slNl0","link-button-icon":"buttons-module_link-button-icon__llX8m","icon-container":"buttons-module_icon-container__Q5bI1","not-linked":"buttons-module_not-linked__ua4va","file-upload-container":"buttons-module_file-upload-container__le7Cg","dragging":"buttons-module_dragging__cfggZ","file-preview":"buttons-module_file-preview__yuM5i","file-selected":"buttons-module_file-selected__YY6ms","file-input":"buttons-module_file-input__gbD5T","selected-file-container":"buttons-module_selected-file-container__E1AXM","remove-file-button":"buttons-module_remove-file-button__Q1FMa","upload-file-button":"buttons-module_upload-file-button__vTwWd","file-preview-text":"buttons-module_file-preview-text__80Ju0","file-name":"buttons-module_file-name__3iskR","upload-buttons":"buttons-module_upload-buttons__3SAw6","accepted-types":"buttons-module_accepted-types__Ys-D2","loading-bar-container":"buttons-module_loading-bar-container__nrgPX","loading-bar":"buttons-module_loading-bar__IUAg1","date-picker":"buttons-module_date-picker__V6gRM","percentage-slider":"buttons-module_percentage-slider__M84tC","fancy-input-container":"buttons-module_fancy-input-container__s-zVw","fancy-input":"buttons-module_fancy-input__RpSOF","fancy-input-label":"buttons-module_fancy-input-label__d-sG7","input-divider":"buttons-module_input-divider__RVasJ","input-icon-container":"buttons-module_input-icon-container__MUYKL","duration-input-container":"buttons-module_duration-input-container__Rh9Na","duration-input":"buttons-module_duration-input__-gt3p","duration-unit-select":"buttons-module_duration-unit-select__VKFf6","price-input-container":"buttons-module_price-input-container__teIRS","preview-option-container":"buttons-module_preview-option-container__0bzt-","checkbox-label":"buttons-module_checkbox-label__ODwgG","checkbox-input":"buttons-module_checkbox-input__FvUIp","preview-image-section":"buttons-module_preview-image-section__BjtiC","preview-image-controls":"buttons-module_preview-image-controls__l6gv5","select-preview-button":"buttons-module_select-preview-button__0HQfm","preview-image-preview":"buttons-module_preview-image-preview__c-6n5","preview-thumbnail":"buttons-module_preview-thumbnail__fJWXt","preview-filename":"buttons-module_preview-filename__FW-Gz","remove-preview-button":"buttons-module_remove-preview-button__Skqgb","percentage-icon":"buttons-module_percentage-icon__MxmJh"};
10162
+ var css_248z = ".buttons-module_button__4Ogad{background-color:#ff6f00;border:none;border-radius:0;box-shadow:inset 0 2px 0 hsla(0,0%,100%,.15),inset 0 -2px 4px rgba(0,0,0,.05),0 1px 1px rgba(46,54,80,.075);color:#fff;font-family:Geist Mono,monospace;font-size:1rem;font-size:.875rem;font-weight:600;height:2.5rem;margin-bottom:.75rem;margin-top:1rem;padding:1rem;padding-block:0;position:relative;text-transform:uppercase;width:100%}.buttons-module_button__4Ogad:hover{background-color:#cc4e02;cursor:pointer}.buttons-module_button__4Ogad:disabled{background-color:#ccc;cursor:not-allowed}.buttons-module_connect-button__CJhUa{background-color:#ff6f00;border:none;box-shadow:inset 0 2px 0 hsla(0,0%,100%,.15),inset 0 -2px 4px rgba(0,0,0,.05),0 1px 1px rgba(46,54,80,.075);color:#fff;font-family:Geist Mono,monospace;font-size:1rem;font-weight:600;height:2.75rem;line-height:1.333rem;padding-inline:2.5rem;padding-left:5rem;position:relative;text-transform:uppercase;transition:background-color .15s;width:13rem}.buttons-module_connect-button__CJhUa .buttons-module_button-icon__JM4-2{background:hsla(0,0%,100%,.75);box-shadow:inset 0 2px 0 hsla(0,0%,100%,.15),inset 0 -2px 4px rgba(0,0,0,.05);display:grid;height:100%;left:0;margin-right:.5rem;place-items:center;position:absolute;top:50%;transform:translateY(-50%);transition:background-color .15s;width:3rem}.buttons-module_connect-button__CJhUa .buttons-module_button-icon__JM4-2 svg{height:1.25rem;width:1.25rem}.buttons-module_connect-button__CJhUa:hover{background-color:#cc4e02;border-color:#cc4e02;cursor:pointer}.buttons-module_connect-button__CJhUa:hover .buttons-module_button-icon__JM4-2{background:hsla(0,0%,100%,.675)}.buttons-module_connect-button__CJhUa:focus{outline:none}.buttons-module_connect-button__CJhUa:disabled{background-color:#ccc;cursor:not-allowed}.buttons-module_provider-button__6JY7s{align-items:center;border:1px solid #ddd;display:flex;gap:.5rem;justify-content:flex-start;padding:.5rem;position:relative;transition:border-color .15s;width:100%}.buttons-module_provider-button__6JY7s:focus{outline:1px solid #ff6f00;outline-offset:2px}.buttons-module_provider-button__6JY7s:hover{border-color:#ff6f00}.buttons-module_provider-button__6JY7s:hover:not(:disabled){cursor:pointer}.buttons-module_provider-button__6JY7s img{height:2rem;width:2rem}.buttons-module_provider-button__6JY7s .buttons-module_provider-icon__MOhr8{border-radius:.2rem}.buttons-module_provider-button__6JY7s span{line-height:1rem;margin-left:.5rem}.buttons-module_provider-button__6JY7s span.buttons-module_provider-name__tHWO2{color:#333;font-size:.875rem}.buttons-module_provider-button__6JY7s span.buttons-module_provider-label__CEGRr{color:#777;font-family:Geist Mono,monospace;font-size:.7rem;text-transform:uppercase}.buttons-module_link-button-default__EcKUT{background-color:#ff6f00;border:none;box-shadow:inset 0 2px 0 hsla(0,0%,100%,.15),inset 0 -2px 4px rgba(0,0,0,.05),0 1px 1px rgba(46,54,80,.075);box-sizing:border-box;cursor:pointer;height:2.6rem;position:relative;width:7rem}.buttons-module_link-button-default__EcKUT:disabled{background-color:#b8b8b8;cursor:not-allowed}.buttons-module_link-button-default__EcKUT:after{background-color:transparent;border-radius:.75rem;bottom:0;content:\"\";left:0;position:absolute;right:0;top:0;transition:background-color .15s}.buttons-module_link-button-default__EcKUT:disabled:after{background-color:rgba(0,0,0,.35);border-radius:.35rem;color:#fff;content:\"Not connected\";display:grid;font-size:.75rem;height:2rem;left:0;opacity:0;padding:.25rem;place-items:center;position:absolute;right:0;top:-2.7rem;transform:translateY(-.5rem);transition:all .25s;-webkit-user-select:none;-moz-user-select:none;user-select:none;visibility:hidden}.buttons-module_link-button-default__EcKUT:disabled:hover:after{opacity:1;transform:translateY(0);visibility:visible}.buttons-module_link-button-default__EcKUT:not(:disabled):hover:after{background-color:rgba(0,0,0,.1)}.buttons-module_link-button-default__EcKUT:not(:disabled).buttons-module_twitter__9sRaz{background-color:#1da1f2}.buttons-module_link-button-default__EcKUT:not(:disabled).buttons-module_spotify__-fiKQ{background-color:#1db954}.buttons-module_link-button-default__EcKUT:not(:disabled).buttons-module_discord__I-YjZ{background-color:#7289da}.buttons-module_link-button-default__EcKUT:not(:disabled).buttons-module_tiktok__a80-0{background-color:#000}.buttons-module_link-button-default__EcKUT:not(:disabled).buttons-module_telegram__ExOTS{background-color:#08c}.buttons-module_link-button-default__EcKUT .buttons-module_button-container__-oPqd{align-items:center;display:flex;flex-direction:row;gap:.5rem;justify-content:center;padding:.5rem}.buttons-module_button-container__-oPqd .buttons-module_social-icon__DPdPe{align-items:center;color:#fff;display:flex;height:1.5rem;justify-content:center;width:1.5rem}.buttons-module_button-container__-oPqd .buttons-module_social-icon__DPdPe svg{fill:#fff!important;height:1.5rem;width:1.5rem}.buttons-module_button-container__-oPqd .buttons-module_social-icon__DPdPe svg path{fill:#fff!important}.buttons-module_button-container__-oPqd .buttons-module_link-icon__8V8FP{align-items:center;color:hsla(0,0%,100%,.8);display:flex;height:1.25rem;justify-content:center;width:1.25rem}.buttons-module_button-container__-oPqd .buttons-module_camp-logo__slNl0{align-items:center;background-color:#fff;border-radius:50%;box-sizing:border-box;display:flex;height:1.5rem;justify-content:center;padding:.15rem;width:1.5rem}.buttons-module_link-button-default__EcKUT:disabled .buttons-module_button-container__-oPqd .buttons-module_camp-logo__slNl0 svg path{fill:#b8b8b8!important}.buttons-module_link-button-icon__llX8m{background-color:#ff6f00;border:none;box-shadow:inset 0 2px 0 hsla(0,0%,100%,.15),inset 0 -2px 4px rgba(0,0,0,.05),0 1px 1px rgba(46,54,80,.075);box-sizing:border-box;cursor:pointer;height:3rem;min-height:3rem;min-width:3rem;padding:0;position:relative;width:3rem}.buttons-module_link-button-icon__llX8m:disabled{background-color:#b8b8b8;cursor:not-allowed}.buttons-module_link-button-icon__llX8m:disabled:after{background-color:rgba(0,0,0,.35);border-radius:.35rem;box-sizing:border-box;color:#fff;content:\"Not connected\";display:grid;font-size:.75rem;height:-moz-fit-content;height:fit-content;left:-1rem;opacity:0;padding:.25rem;place-items:center;position:absolute;right:-1rem;top:-2.7rem;transform:translateY(-.5rem);transition:all .25s}.buttons-module_link-button-icon__llX8m:disabled:hover:after{opacity:1;transform:translateY(0)}.buttons-module_link-button-icon__llX8m:after{background-color:transparent;border-radius:.75rem;bottom:0;content:\"\";left:0;position:absolute;right:0;top:0;transition:background-color .15s}.buttons-module_link-button-icon__llX8m:not(:disabled):hover:after{background-color:rgba(0,0,0,.1)}.buttons-module_link-button-icon__llX8m:not(:disabled).buttons-module_twitter__9sRaz{background-color:#1da1f2}.buttons-module_link-button-icon__llX8m:not(:disabled).buttons-module_spotify__-fiKQ{background-color:#1db954}.buttons-module_link-button-icon__llX8m:not(:disabled).buttons-module_discord__I-YjZ{background-color:#7289da}.buttons-module_link-button-icon__llX8m:not(:disabled).buttons-module_tiktok__a80-0{background-color:#000}.buttons-module_link-button-icon__llX8m:not(:disabled).buttons-module_telegram__ExOTS{background-color:#08c}.buttons-module_link-button-icon__llX8m .buttons-module_icon-container__Q5bI1{align-items:center;display:flex;flex:1;height:100%;justify-content:center;position:relative;width:100%}.buttons-module_link-button-icon__llX8m .buttons-module_icon-container__Q5bI1>svg{fill:#fff!important;height:1.5rem;width:1.5rem}.buttons-module_link-button-icon__llX8m .buttons-module_icon-container__Q5bI1>svg path{fill:#fff!important}.buttons-module_link-button-icon__llX8m .buttons-module_camp-logo__slNl0{align-items:center;background-color:#fff;border-radius:50%;bottom:-.5rem;box-sizing:border-box;display:flex;height:1.5rem;justify-content:center;position:absolute;right:-.5rem;width:1.5rem}.buttons-module_link-button-icon__llX8m .buttons-module_camp-logo__slNl0 svg{height:1.1rem;width:1.1rem}.buttons-module_link-button-icon__llX8m:disabled .buttons-module_camp-logo__slNl0 svg path,.buttons-module_not-linked__ua4va svg path{fill:#b8b8b8!important}.buttons-module_file-upload-container__le7Cg{align-items:center;border:2px dashed #ccc;box-sizing:border-box;color:#777;cursor:pointer;display:flex;flex-direction:column;justify-content:center;max-width:100%;min-height:12rem;min-width:0;overflow-y:auto;padding:1rem;position:relative;text-align:center;transition:background-color .2s,border-color .2s;width:100%}.buttons-module_file-upload-container__le7Cg:hover{border-color:#e2e2e2}.buttons-module_file-upload-container__le7Cg.buttons-module_dragging__cfggZ{background-color:#f9f9f9;border-color:#ff6f00}.buttons-module_file-upload-container__le7Cg.buttons-module_dragging__cfggZ .buttons-module_file-preview__yuM5i{opacity:.2;transition:opacity .2s}.buttons-module_file-upload-container__le7Cg.buttons-module_file-selected__YY6ms{background-color:#f9f9f9;border:none;padding:0 .5rem 0 0}.buttons-module_file-input__gbD5T{display:none}.buttons-module_selected-file-container__E1AXM{align-items:center;display:flex;flex-direction:column;gap:.25rem;height:100%;justify-content:space-between;max-width:100%;position:relative;width:100%}.buttons-module_remove-file-button__Q1FMa{border:1px solid #ff6f00;color:#fff;color:#ff6f00;cursor:pointer;font-size:.875rem;margin-bottom:.75rem;margin-top:1rem;padding:.5rem;text-align:center;transition:background-color .2s}.buttons-module_remove-file-button__Q1FMa:hover{background-color:#cc4e02;border-color:#cc4e02;color:#fff;cursor:pointer}.buttons-module_remove-file-button__Q1FMa:disabled{background-color:#b8b8b8;border-color:#b8b8b8;color:#fff;cursor:not-allowed}.buttons-module_upload-file-button__vTwWd{background-color:#ff6f00;border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-size:.875rem;padding:.5rem;text-align:center;transition:background-color .2s;width:100%}.buttons-module_upload-file-button__vTwWd:hover{background-color:#cc4e02;cursor:pointer}.buttons-module_upload-file-button__vTwWd:disabled{background-color:#b8b8b8;cursor:not-allowed}.buttons-module_file-preview__yuM5i{max-height:8rem;max-width:100%}audio.buttons-module_file-preview__yuM5i{min-height:4rem}.buttons-module_file-preview-text__80Ju0{color:#333;font-size:.875rem;margin-bottom:.5rem}.buttons-module_file-name__3iskR{color:#333;font-size:.875rem;max-width:100%;min-height:-moz-fit-content;min-height:fit-content;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.buttons-module_upload-buttons__3SAw6{align-items:center;display:flex;gap:.25rem;justify-content:space-between;width:100%}.buttons-module_upload-buttons__3SAw6 .buttons-module_upload-file-button__vTwWd{flex-grow:1}.buttons-module_upload-buttons__3SAw6 .buttons-module_remove-file-button__Q1FMa{flex-grow:0}.buttons-module_accepted-types__Ys-D2{color:#777;font-size:.875rem;font-style:italic;margin-top:.5rem}.buttons-module_loading-bar-container__nrgPX{background-color:#e0e0e0;margin-top:8px;min-height:8px;overflow:hidden;width:100%}.buttons-module_loading-bar__IUAg1{background-color:#ff6f00;min-height:100%;transition:width .3s ease}.buttons-module_date-picker__V6gRM{display:flex;flex-direction:column;font-family:sans-serif;gap:6px;width:100%}.buttons-module_date-picker__V6gRM input{border:1px solid #ccc;border-radius:4px;font-size:14px;padding:6px 10px}.buttons-module_percentage-slider__M84tC{display:flex;flex-direction:row;font-family:sans-serif;gap:8px;justify-content:space-between;width:100%}.buttons-module_percentage-slider__M84tC input[type=range]{width:100%}.buttons-module_percentage-slider__M84tC label{min-width:50px}.buttons-module_fancy-input-container__s-zVw{align-items:center;border:1px solid #ccc;display:flex;font-family:sans-serif;gap:0;min-height:2.5rem;overflow:hidden;position:relative;width:100%}.buttons-module_fancy-input-container__s-zVw textarea.buttons-module_fancy-input__RpSOF{background:transparent;border:none;box-sizing:border-box;color:#222;font-family:inherit;font-size:1rem;line-height:1.4;max-height:12rem;outline:none;overflow-y:auto;padding:10px;resize:none;width:100%}.buttons-module_fancy-input__RpSOF{background:transparent;border:none;flex:1;font-family:sans-serif;outline:none;padding:6px 10px}.buttons-module_fancy-input-label__d-sG7{align-self:flex-start;color:#777;font-family:Geist Mono,monospace;font-size:.8rem;font-weight:500;margin-top:.25rem;padding:0 .25rem;pointer-events:none;text-transform:uppercase}.buttons-module_input-divider__RVasJ{background-color:#ccc;height:24px;margin:0;min-width:1px}.buttons-module_input-icon-container__MUYKL{align-items:center;background-color:#f8f9fa;display:flex;justify-content:center;min-width:40px;padding:6px 10px}.buttons-module_input-icon-container__MUYKL svg{height:16px;width:16px}.buttons-module_duration-input-container__Rh9Na{align-items:stretch;border:1px solid #ccc;box-sizing:border-box;display:flex;font-family:sans-serif;gap:0;min-height:2.5rem;overflow:hidden;width:100%}.buttons-module_duration-input__-gt3p{background:transparent;flex:1;min-width:0}.buttons-module_duration-input__-gt3p,.buttons-module_duration-unit-select__VKFf6{border:none;box-sizing:border-box;font-family:sans-serif;outline:none;padding:6px 10px}.buttons-module_duration-unit-select__VKFf6{background-color:#f8f9fa;border-left:1px solid #ccc;cursor:pointer;flex:0 0 auto;width:auto}.buttons-module_price-input-container__teIRS:focus-within{border-color:#ff6f00;box-shadow:0 0 0 1px #ff6f00}.buttons-module_duration-input-container__Rh9Na:focus-within{border-color:#ff6f00;box-shadow:0 0 0 1px #ff6f00}.buttons-module_duration-input-container__Rh9Na:hover,.buttons-module_price-input-container__teIRS:hover{border-color:#999}.buttons-module_duration-unit-select__VKFf6:focus,.buttons-module_duration-unit-select__VKFf6:hover{background-color:#e9ecef}.buttons-module_license-type-select__XHtlm{background-color:#f8f9fa;border:none;box-sizing:border-box;cursor:pointer;font-family:sans-serif;min-height:2.5rem;outline:none;padding:6px 10px;width:100%}.buttons-module_license-type-select__XHtlm:focus,.buttons-module_license-type-select__XHtlm:hover{background-color:#e9ecef}.buttons-module_preview-option-container__0bzt-{align-items:center;display:flex;margin-top:.5rem;width:100%}.buttons-module_checkbox-label__ODwgG{align-items:center;color:#333;cursor:pointer;display:flex;font-size:.875rem;gap:.5rem;-webkit-user-select:none;-moz-user-select:none;user-select:none}.buttons-module_checkbox-input__FvUIp{accent-color:#ff6f00;cursor:pointer;height:1.125rem;width:1.125rem}.buttons-module_checkbox-label__ODwgG span{line-height:1.2}.buttons-module_preview-image-section__BjtiC{margin-top:.5rem}.buttons-module_preview-image-controls__l6gv5,.buttons-module_preview-image-section__BjtiC{display:flex;flex-direction:column;gap:.5rem;width:100%}.buttons-module_select-preview-button__0HQfm{background-color:#f8f9fa;border:1px solid #ccc;color:#333;cursor:pointer;font-family:Geist Mono,monospace;font-size:.875rem;padding:.75rem;text-transform:uppercase;transition:all .2s;width:100%}.buttons-module_select-preview-button__0HQfm:hover:not(:disabled){background-color:#e9ecef;border-color:#999}.buttons-module_select-preview-button__0HQfm:disabled{background-color:#e9ecef;color:#999;cursor:not-allowed;opacity:.6}.buttons-module_preview-image-preview__c-6n5{align-items:center;background-color:#f8f9fa;border:1px solid #ccc;display:flex;gap:.75rem;padding:.75rem}.buttons-module_preview-thumbnail__fJWXt{flex-shrink:0;height:3rem;-o-object-fit:cover;object-fit:cover;width:3rem}.buttons-module_preview-filename__FW-Gz{color:#333;flex:1;font-size:.875rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.buttons-module_remove-preview-button__Skqgb{align-items:center;background-color:transparent;border:1px solid #ff6f00;color:#ff6f00;cursor:pointer;display:flex;flex-shrink:0;justify-content:center;padding:.5rem;transition:all .2s}.buttons-module_remove-preview-button__Skqgb:hover:not(:disabled){background-color:#cc4e02;border-color:#cc4e02;color:#fff}.buttons-module_remove-preview-button__Skqgb:disabled{border-color:#ccc;color:#ccc;cursor:not-allowed;opacity:.6}.buttons-module_percentage-icon__MxmJh{color:#555;font-size:.875rem;font-weight:600}\n/*# sourceMappingURL=data:application/json;base64,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Q1osbUJBQWlCLENBQWpCLGdCQUFpQixDQUZqQixVQUlGLENBRUEsd0NBR0UsVUFBVyxDQUZYLE1BQU8sQ0FDUCxpQkFBbUIsQ0FFbkIsZUFBZ0IsQ0FDaEIsc0JBQXVCLENBQ3ZCLGtCQUNGLENBRUEsNkNBU0Usa0JBQW1CLENBUG5CLDRCQUE2QixDQUM3Qix3QkFBeUIsQ0FDekIsYUFBYyxDQUNkLGNBQWUsQ0FHZixZQUFhLENBRGIsYUFBYyxDQUdkLHNCQUF1QixDQVR2QixhQUFlLENBS2Ysa0JBS0YsQ0FFQSxrRUFDRSx3QkFBeUIsQ0FDekIsb0JBQXFCLENBQ3JCLFVBQ0YsQ0FFQSxzREFDRSxpQkFBa0IsQ0FDbEIsVUFBVyxDQUNYLGtCQUFtQixDQUNuQixVQUNGLENBRUEsdUNBR0UsVUFBVyxDQUZYLGlCQUFtQixDQUNuQixlQUVGIiwiZmlsZSI6ImJ1dHRvbnMubW9kdWxlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5idXR0b24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjZmMDA7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBwYWRkaW5nOiAxcmVtO1xuICBwYWRkaW5nLWJsb2NrOiAwO1xuICBmb250LXNpemU6IDFyZW07XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAwLjc1cmVtO1xuICBtYXJnaW4tdG9wOiAxcmVtO1xuICBoZWlnaHQ6IDIuNXJlbTtcbiAgYm94LXNoYWRvdzogaHNsYSgwLCAwJSwgMTAwJSwgMC4xNSkgMCAycHggMCBpbnNldCxcbiAgICByZ2JhKDAsIDAsIDAsIDAuMDUpIDAgLTJweCA0cHggaW5zZXQsIHJnYmEoNDYsIDU0LCA4MCwgMC4wNzUpIDAgMXB4IDFweDtcblxuICBmb250LWZhbWlseTogXCJHZWlzdCBNb25vXCIsIG1vbm9zcGFjZTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbn1cblxuLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjYzRlMDI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmJ1dHRvbjpkaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi5jb25uZWN0LWJ1dHRvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNmYwMDtcbiAgY29sb3I6IHdoaXRlO1xuICBib3JkZXI6IG5vbmU7XG4gIC8qIGJvcmRlci1yYWRpdXM6IDAuNzVyZW07ICovXG4gIHBhZGRpbmctaW5saW5lOiAyLjVyZW07XG4gIHBhZGRpbmctbGVmdDogNXJlbTtcbiAgaGVpZ2h0OiAyLjc1cmVtO1xuICBsaW5lLWhlaWdodDogMS4zMzNyZW07XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgd2lkdGg6IDEzcmVtO1xuICBmb250LWZhbWlseTogXCJHZWlzdCBNb25vXCIsIG1vbm9zcGFjZTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgYm94LXNoYWRvdzogaHNsYSgwLCAwJSwgMTAwJSwgMC4xNSkgMCAycHggMCBpbnNldCxcbiAgICByZ2JhKDAsIDAsIDAsIDAuMDUpIDAgLTJweCA0cHggaW5zZXQsIHJnYmEoNDYsIDU0LCA4MCwgMC4wNzUpIDAgMXB4IDFweDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cztcbn1cblxuLmNvbm5lY3QtYnV0dG9uIC5idXR0b24taWNvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgd2lkdGg6IDNyZW07XG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43NSk7XG4gIGJveC1zaGFkb3c6IGhzbGEoMCwgMCUsIDEwMCUsIDAuMTUpIDAgMnB4IDAgaW5zZXQsXG4gICAgcmdiYSgwLCAwLCAwLCAwLjA1KSAwIC0ycHggNHB4IGluc2V0O1xuICBkaXNwbGF5OiBncmlkO1xuICBwbGFjZS1pdGVtczogY2VudGVyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzO1xuICAvKiBib3JkZXItcmFkaXVzOiAwLjc1cmVtIDAgMCAwLjc1cmVtOyAqL1xufVxuXG4uY29ubmVjdC1idXR0b24gLmJ1dHRvbi1pY29uIHN2ZyB7XG4gIHdpZHRoOiAxLjI1cmVtO1xuICBoZWlnaHQ6IDEuMjVyZW07XG59XG5cbi5jb25uZWN0LWJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjYzRlMDI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyLWNvbG9yOiAjY2M0ZTAyO1xufVxuXG4uY29ubmVjdC1idXR0b246aG92ZXIgLmJ1dHRvbi1pY29uIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjY3NSk7XG59XG5cbi5jb25uZWN0LWJ1dHRvbjpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi5jb25uZWN0LWJ1dHRvbjpkaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi5wcm92aWRlci1idXR0b24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgLyogYm9yZGVyLXJhZGl1czogMC41cmVtOyAqL1xuICAvKiBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlOyAqL1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGdhcDogMC41cmVtO1xuICB3aWR0aDogMTAwJTtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTVzO1xufVxuXG4ucHJvdmlkZXItYnV0dG9uOmZvY3VzIHtcbiAgb3V0bGluZTogMXB4IHNvbGlkICNmZjZmMDA7XG4gIG91dGxpbmUtb2Zmc2V0OiAycHg7XG59XG5cbi5wcm92aWRlci1idXR0b246aG92ZXIge1xuICBib3JkZXItY29sb3I6ICNmZjZmMDA7XG4gIC8qIGJhY2tncm91bmQtY29sb3I6ICNlZWU7ICovXG59XG5cbi5wcm92aWRlci1idXR0b246aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAvKiBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkOyAqL1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5wcm92aWRlci1idXR0b24gaW1nIHtcbiAgd2lkdGg6IDJyZW07XG4gIGhlaWdodDogMnJlbTtcbn1cblxuLnByb3ZpZGVyLWJ1dHRvbiAucHJvdmlkZXItaWNvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDAuMnJlbTtcbn1cblxuLnByb3ZpZGVyLWJ1dHRvbiBzcGFuIHtcbiAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDFyZW07XG59XG5cbi5wcm92aWRlci1idXR0b24gc3Bhbi5wcm92aWRlci1uYW1lIHtcbiAgY29sb3I6ICMzMzM7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG59XG5cbi5wcm92aWRlci1idXR0b24gc3Bhbi5wcm92aWRlci1sYWJlbCB7XG4gIGNvbG9yOiAjNzc3O1xuICBmb250LXNpemU6IDAuN3JlbTtcbiAgZm9udC1mYW1pbHk6IFwiR2Vpc3QgTW9ub1wiLCBtb25vc3BhY2U7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi8qIFwiZGVmYXVsdFwiIHZhcmlhbnQgKi9cbi5saW5rLWJ1dHRvbi1kZWZhdWx0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3JkZXI6IG5vbmU7XG4gIHdpZHRoOiA3cmVtO1xuICBoZWlnaHQ6IDIuNnJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNmYwMDtcbiAgLyogYm9yZGVyLXJhZGl1czogMC43NXJlbTsgKi9cbiAgYm94LXNoYWRvdzogaHNsYSgwLCAwJSwgMTAwJSwgMC4xNSkgMCAycHggMCBpbnNldCxcbiAgICByZ2JhKDAsIDAsIDAsIDAuMDUpIDAgLTJweCA0cHggaW5zZXQsIHJnYmEoNDYsIDU0LCA4MCwgMC4wNzUpIDAgMXB4IDFweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubGluay1idXR0b24tZGVmYXVsdDpkaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiOGI4Yjg7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi5saW5rLWJ1dHRvbi1kZWZhdWx0OjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBib3JkZXItcmFkaXVzOiAwLjc1cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzO1xufVxuXG4ubGluay1idXR0b24tZGVmYXVsdDpkaXNhYmxlZDo6YWZ0ZXIge1xuICBjb250ZW50OiBcIk5vdCBjb25uZWN0ZWRcIjtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTIuN3JlbTtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGhlaWdodDogMnJlbTtcbiAgYm9yZGVyLXJhZGl1czogMC4zNXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM1KTtcbiAgY29sb3I6IHdoaXRlO1xuICBkaXNwbGF5OiBncmlkO1xuICBwbGFjZS1pdGVtczogY2VudGVyO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIHBhZGRpbmc6IDAuMjVyZW07XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IGFsbCAwLjI1cztcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0wLjVyZW0pO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLmxpbmstYnV0dG9uLWRlZmF1bHQ6ZGlzYWJsZWQ6aG92ZXI6OmFmdGVyIHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xufVxuXG4ubGluay1idXR0b24tZGVmYXVsdDpub3QoOmRpc2FibGVkKTpob3Zlcjo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG5cbi5saW5rLWJ1dHRvbi1kZWZhdWx0Om5vdCg6ZGlzYWJsZWQpLnR3aXR0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWRhMWYyO1xufVxuXG4ubGluay1idXR0b24tZGVmYXVsdDpub3QoOmRpc2FibGVkKS5zcG90aWZ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFkYjk1NDtcbn1cblxuLmxpbmstYnV0dG9uLWRlZmF1bHQ6bm90KDpkaXNhYmxlZCkuZGlzY29yZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3Mjg5ZGE7XG59XG5cbi5saW5rLWJ1dHRvbi1kZWZhdWx0Om5vdCg6ZGlzYWJsZWQpLnRpa3RvayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG59XG5cbi5saW5rLWJ1dHRvbi1kZWZhdWx0Om5vdCg6ZGlzYWJsZWQpLnRlbGVncmFtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwODhjYztcbn1cblxuLmxpbmstYnV0dG9uLWRlZmF1bHQgLmJ1dHRvbi1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBnYXA6IDAuNXJlbTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAuNXJlbTtcbn1cblxuLmJ1dHRvbi1jb250YWluZXIgLnNvY2lhbC1pY29uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEuNXJlbTtcbiAgaGVpZ2h0OiAxLjVyZW07XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi5idXR0b24tY29udGFpbmVyIC5zb2NpYWwtaWNvbiBzdmcge1xuICB3aWR0aDogMS41cmVtO1xuICBoZWlnaHQ6IDEuNXJlbTtcbiAgZmlsbDogd2hpdGUgIWltcG9ydGFudDtcbn1cblxuLmJ1dHRvbi1jb250YWluZXIgLnNvY2lhbC1pY29uIHN2ZyBwYXRoIHtcbiAgZmlsbDogd2hpdGUgIWltcG9ydGFudDtcbn1cblxuLmJ1dHRvbi1jb250YWluZXIgLmxpbmstaWNvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxLjI1cmVtO1xuICBoZWlnaHQ6IDEuMjVyZW07XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpO1xufVxuXG4uYnV0dG9uLWNvbnRhaW5lciAuY2FtcC1sb2dvIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEuNXJlbTtcbiAgaGVpZ2h0OiAxLjVyZW07XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBwYWRkaW5nOiAwLjE1cmVtO1xufVxuXG4ubGluay1idXR0b24tZGVmYXVsdDpkaXNhYmxlZCAuYnV0dG9uLWNvbnRhaW5lciAuY2FtcC1sb2dvIHN2ZyBwYXRoIHtcbiAgZmlsbDogI2I4YjhiOCAhaW1wb3J0YW50O1xufVxuXG4vKiBcImljb25cIiB2YXJpYW50ICovXG4ubGluay1idXR0b24taWNvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWluLXdpZHRoOiAzcmVtO1xuICBtaW4taGVpZ2h0OiAzcmVtO1xuICB3aWR0aDogM3JlbTtcbiAgaGVpZ2h0OiAzcmVtO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDByZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjZmMDA7XG4gIC8qIGJvcmRlci1yYWRpdXM6IDAuNzVyZW07ICovXG4gIGJveC1zaGFkb3c6IGhzbGEoMCwgMCUsIDEwMCUsIDAuMTUpIDAgMnB4IDAgaW5zZXQsXG4gICAgcmdiYSgwLCAwLCAwLCAwLjA1KSAwIC0ycHggNHB4IGluc2V0LCByZ2JhKDQ2LCA1NCwgODAsIDAuMDc1KSAwIDFweCAxcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmxpbmstYnV0dG9uLWljb246ZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjhiOGI4O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4ubGluay1idXR0b24taWNvbjpkaXNhYmxlZDo6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBjb250ZW50OiBcIk5vdCBjb25uZWN0ZWRcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0yLjdyZW07XG4gIGxlZnQ6IC0xcmVtO1xuICByaWdodDogLTFyZW07XG4gIGhlaWdodDogZml0LWNvbnRlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDAuMzVyZW07XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zNSk7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZGlzcGxheTogZ3JpZDtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBwYWRkaW5nOiAwLjI1cmVtO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4yNXM7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMC41cmVtKTtcbn1cblxuLmxpbmstYnV0dG9uLWljb246ZGlzYWJsZWQ6aG92ZXI6OmFmdGVyIHtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xufVxuXG4ubGluay1idXR0b24taWNvbjo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cztcbn1cblxuLmxpbmstYnV0dG9uLWljb246bm90KDpkaXNhYmxlZCk6aG92ZXI6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuXG4ubGluay1idXR0b24taWNvbjpub3QoOmRpc2FibGVkKS50d2l0dGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFkYTFmMjtcbn1cblxuLmxpbmstYnV0dG9uLWljb246bm90KDpkaXNhYmxlZCkuc3BvdGlmeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxZGI5NTQ7XG59XG5cbi5saW5rLWJ1dHRvbi1pY29uOm5vdCg6ZGlzYWJsZWQpLmRpc2NvcmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzI4OWRhO1xufVxuXG4ubGluay1idXR0b24taWNvbjpub3QoOmRpc2FibGVkKS50aWt0b2sge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwO1xufVxuXG4ubGluay1idXR0b24taWNvbjpub3QoOmRpc2FibGVkKS50ZWxlZ3JhbSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDg4Y2M7XG59XG5cbi5saW5rLWJ1dHRvbi1pY29uIC5pY29uLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZmxleDogMTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5saW5rLWJ1dHRvbi1pY29uIC5pY29uLWNvbnRhaW5lciA+IHN2ZyB7XG4gIHdpZHRoOiAxLjVyZW07XG4gIGhlaWdodDogMS41cmVtO1xuICBmaWxsOiB3aGl0ZSAhaW1wb3J0YW50O1xufVxuXG4ubGluay1idXR0b24taWNvbiAuaWNvbi1jb250YWluZXIgPiBzdmcgcGF0aCB7XG4gIGZpbGw6IHdoaXRlICFpbXBvcnRhbnQ7XG59XG5cbi5saW5rLWJ1dHRvbi1pY29uIC5jYW1wLWxvZ28ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxLjVyZW07XG4gIGhlaWdodDogMS41cmVtO1xuICByaWdodDogLTAuNXJlbTtcbiAgYm90dG9tOiAtMC41cmVtO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cblxuLmxpbmstYnV0dG9uLWljb24gLmNhbXAtbG9nbyBzdmcge1xuICB3aWR0aDogMS4xcmVtO1xuICBoZWlnaHQ6IDEuMXJlbTtcbn1cblxuLmxpbmstYnV0dG9uLWljb246ZGlzYWJsZWQgLmNhbXAtbG9nbyBzdmcgcGF0aCB7XG4gIGZpbGw6ICNiOGI4YjggIWltcG9ydGFudDtcbn1cblxuLm5vdC1saW5rZWQgc3ZnIHBhdGgge1xuICBmaWxsOiAjYjhiOGI4ICFpbXBvcnRhbnQ7XG59XG5cbi5maWxlLXVwbG9hZC1jb250YWluZXIge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3JkZXI6IDJweCBkYXNoZWQgI2NjYztcbiAgLyogYm9yZGVyLXJhZGl1czogMC43NXJlbTsgKi9cbiAgcGFkZGluZzogMXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogIzc3NztcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMsIGJvcmRlci1jb2xvciAwLjJzO1xuICB3aWR0aDogMTAwJTtcbiAgbWluLXdpZHRoOiAwO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDEycmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICAvKiBoZWlnaHQ6IDMwMHB4OyAqL1xufVxuXG4uZmlsZS11cGxvYWQtY29udGFpbmVyOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjZTJlMmUyO1xufVxuXG4uZmlsZS11cGxvYWQtY29udGFpbmVyLmRyYWdnaW5nIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTtcbiAgYm9yZGVyLWNvbG9yOiAjZmY2ZjAwO1xufVxuXG4uZmlsZS11cGxvYWQtY29udGFpbmVyLmRyYWdnaW5nIC5maWxlLXByZXZpZXcge1xuICBvcGFjaXR5OiAwLjI7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycztcbn1cblxuLmZpbGUtdXBsb2FkLWNvbnRhaW5lci5maWxlLXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gIC8qIGhlaWdodDogYXV0bzsgKi9cbiAgLyogbWluLWhlaWdodDogYXV0bzsgKi9cbn1cblxuLmZpbGUtaW5wdXQge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uc2VsZWN0ZWQtZmlsZS1jb250YWluZXIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBnYXA6IDAuMjVyZW07XG59XG5cbi5yZW1vdmUtZmlsZS1idXR0b24ge1xuICBjb2xvcjogd2hpdGU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmZjZmMDA7XG4gIC8qIGJvcmRlci1yYWRpdXM6IDAuNXJlbTsgKi9cbiAgcGFkZGluZzogMC41cmVtO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiAwLjc1cmVtO1xuICBtYXJnaW4tdG9wOiAxcmVtO1xuICBjb2xvcjogI2ZmNmYwMDtcbn1cblxuLnJlbW92ZS1maWxlLWJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjYzRlMDI7XG4gIGJvcmRlci1jb2xvcjogI2NjNGUwMjtcbiAgY29sb3I6IHdoaXRlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5yZW1vdmUtZmlsZS1idXR0b246ZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjhiOGI4O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICBib3JkZXItY29sb3I6ICNiOGI4Yjg7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLnVwbG9hZC1maWxlLWJ1dHRvbiB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNmYwMDtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnM7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4udXBsb2FkLWZpbGUtYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjNGUwMjtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnVwbG9hZC1maWxlLWJ1dHRvbjpkaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiOGI4Yjg7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi5maWxlLXByZXZpZXcge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1heC1oZWlnaHQ6IDhyZW07XG59XG5hdWRpby5maWxlLXByZXZpZXcge1xuICBtaW4taGVpZ2h0OiA0cmVtO1xufVxuXG4uZmlsZS1wcmV2aWV3LXRleHQge1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBjb2xvcjogIzMzMztcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuXG4uZmlsZS1uYW1lIHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgY29sb3I6ICMzMzM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBtaW4taGVpZ2h0OiBmaXQtY29udGVudDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4udXBsb2FkLWJ1dHRvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDAuMjVyZW07XG4gIHdpZHRoOiAxMDAlO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi51cGxvYWQtYnV0dG9ucyAudXBsb2FkLWZpbGUtYnV0dG9uIHtcbiAgZmxleC1ncm93OiAxO1xufVxuXG4udXBsb2FkLWJ1dHRvbnMgLnJlbW92ZS1maWxlLWJ1dHRvbiB7XG4gIGZsZXgtZ3JvdzogMDtcbn1cblxuLmFjY2VwdGVkLXR5cGVzIHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgY29sb3I6ICM3Nzc7XG4gIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4ubG9hZGluZy1iYXItY29udGFpbmVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDhweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWFyZ2luLXRvcDogOHB4O1xufVxuXG4ubG9hZGluZy1iYXIge1xuICBtaW4taGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY2ZjAwO1xuICB0cmFuc2l0aW9uOiB3aWR0aCAwLjNzIGVhc2U7XG59XG5cbi5kYXRlLXBpY2tlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDZweDtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG59XG5cbi5kYXRlLXBpY2tlciBpbnB1dCB7XG4gIHBhZGRpbmc6IDZweCAxMHB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cblxuLnBlcmNlbnRhZ2Utc2xpZGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGdhcDogOHB4O1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4ucGVyY2VudGFnZS1zbGlkZXIgaW5wdXRbdHlwZT1cInJhbmdlXCJdIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5wZXJjZW50YWdlLXNsaWRlciBsYWJlbCB7XG4gIG1pbi13aWR0aDogNTBweDtcbn1cblxuLmZhbmN5LWlucHV0LWNvbnRhaW5lciB7XG4gIG1pbi1oZWlnaHQ6IDIuNXJlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZ2FwOiAwO1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmZhbmN5LWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5mYW5jeS1pbnB1dCB7XG4gIHJlc2l6ZTogbm9uZTtcbiAgbWF4LWhlaWdodDogMTJyZW07XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgcGFkZGluZzogMTBweDtcbiAgYm9yZGVyOiBub25lO1xuICBvdXRsaW5lOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBjb2xvcjogIzIyMjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLmZhbmN5LWlucHV0IHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gIHBhZGRpbmc6IDZweCAxMHB4O1xuICBib3JkZXI6IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGZsZXg6IDE7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuXG4uZmFuY3ktaW5wdXQtbGFiZWwge1xuICBmb250LXNpemU6IDAuOHJlbTtcbiAgY29sb3I6ICM3Nzc7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gIHBhZGRpbmc6IDAgMC4yNXJlbTtcbiAgLyogei1pbmRleDogMjsgKi9cbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGZvbnQtZmFtaWx5OiBcIkdlaXN0IE1vbm9cIiwgbW9ub3NwYWNlO1xuICBmb250LXdlaWdodDogNTAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBtYXJnaW4tdG9wOiAwLjI1cmVtO1xufVxuXG4uaW5wdXQtZGl2aWRlciB7XG4gIG1pbi13aWR0aDogMXB4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gIG1hcmdpbjogMDtcbn1cblxuLmlucHV0LWljb24tY29udGFpbmVyIHtcbiAgcGFkZGluZzogNnB4IDEwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOWZhO1xuICBtaW4td2lkdGg6IDQwcHg7XG59XG5cbi5pbnB1dC1pY29uLWNvbnRhaW5lciBzdmcge1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xufVxuXG4uZHVyYXRpb24taW5wdXQtY29udGFpbmVyIHtcbiAgbWluLWhlaWdodDogMi41cmVtO1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIGdhcDogMDtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIC8qIGJvcmRlci1yYWRpdXM6IDRweDsgKi9cbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLmR1cmF0aW9uLWlucHV0IHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gIHBhZGRpbmc6IDZweCAxMHB4O1xuICBib3JkZXI6IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGZsZXg6IDE7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi5kdXJhdGlvbi11bml0LXNlbGVjdCB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICBwYWRkaW5nOiA2cHggMTBweDtcbiAgYm9yZGVyOiBub25lO1xuICBvdXRsaW5lOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOWZhO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNjY2M7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZmxleDogMCAwIGF1dG87XG4gIHdpZHRoOiBhdXRvO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4ucHJpY2UtaW5wdXQtY29udGFpbmVyOmZvY3VzLXdpdGhpbiB7XG4gIGJvcmRlci1jb2xvcjogI2ZmNmYwMDtcbiAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICNmZjZmMDA7XG59XG5cbi5kdXJhdGlvbi1pbnB1dC1jb250YWluZXI6Zm9jdXMtd2l0aGluIHtcbiAgYm9yZGVyLWNvbG9yOiAjZmY2ZjAwO1xuICBib3gtc2hhZG93OiAwIDAgMCAxcHggI2ZmNmYwMDtcbn1cblxuLnByaWNlLWlucHV0LWNvbnRhaW5lcjpob3Zlcixcbi5kdXJhdGlvbi1pbnB1dC1jb250YWluZXI6aG92ZXIge1xuICBib3JkZXItY29sb3I6ICM5OTk7XG59XG5cbi5kdXJhdGlvbi11bml0LXNlbGVjdDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlOWVjZWY7XG59XG5cbi5kdXJhdGlvbi11bml0LXNlbGVjdDpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlOWVjZWY7XG59XG5cbi5saWNlbnNlLXR5cGUtc2VsZWN0IHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gIHBhZGRpbmc6IDZweCAxMHB4O1xuICBib3JkZXI6IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOGY5ZmE7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1pbi1oZWlnaHQ6IDIuNXJlbTtcbn1cblxuLmxpY2Vuc2UtdHlwZS1zZWxlY3Q6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTllY2VmO1xufVxuXG4ubGljZW5zZS10eXBlLXNlbGVjdDpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlOWVjZWY7XG59XG5cbi5wcmV2aWV3LW9wdGlvbi1jb250YWluZXIge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWFyZ2luLXRvcDogMC41cmVtO1xufVxuXG4uY2hlY2tib3gtbGFiZWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNXJlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBjb2xvcjogIzMzMztcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi5jaGVja2JveC1pbnB1dCB7XG4gIHdpZHRoOiAxLjEyNXJlbTtcbiAgaGVpZ2h0OiAxLjEyNXJlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBhY2NlbnQtY29sb3I6ICNmZjZmMDA7XG59XG5cbi5jaGVja2JveC1sYWJlbCBzcGFuIHtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbn1cblxuLnByZXZpZXctaW1hZ2Utc2VjdGlvbiB7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDAuNXJlbTtcbiAgbWFyZ2luLXRvcDogMC41cmVtO1xufVxuXG4ucHJldmlldy1pbWFnZS1jb250cm9scyB7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDAuNXJlbTtcbn1cblxuLnNlbGVjdC1wcmV2aWV3LWJ1dHRvbiB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwLjc1cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOWZhO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBjb2xvcjogIzMzMztcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgZm9udC1mYW1pbHk6IFwiR2Vpc3QgTW9ub1wiLCBtb25vc3BhY2U7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG59XG5cbi5zZWxlY3QtcHJldmlldy1idXR0b246aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTllY2VmO1xuICBib3JkZXItY29sb3I6ICM5OTk7XG59XG5cbi5zZWxlY3QtcHJldmlldy1idXR0b246ZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTllY2VmO1xuICBjb2xvcjogIzk5OTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgb3BhY2l0eTogMC42O1xufVxuXG4ucHJldmlldy1pbWFnZS1wcmV2aWV3IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjc1cmVtO1xuICBwYWRkaW5nOiAwLjc1cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOWZhO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xufVxuXG4ucHJldmlldy10aHVtYm5haWwge1xuICB3aWR0aDogM3JlbTtcbiAgaGVpZ2h0OiAzcmVtO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5wcmV2aWV3LWZpbGVuYW1lIHtcbiAgZmxleDogMTtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgY29sb3I6ICMzMzM7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ucmVtb3ZlLXByZXZpZXctYnV0dG9uIHtcbiAgcGFkZGluZzogMC41cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2ZmNmYwMDtcbiAgY29sb3I6ICNmZjZmMDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLnJlbW92ZS1wcmV2aWV3LWJ1dHRvbjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjYzRlMDI7XG4gIGJvcmRlci1jb2xvcjogI2NjNGUwMjtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4ucmVtb3ZlLXByZXZpZXctYnV0dG9uOmRpc2FibGVkIHtcbiAgYm9yZGVyLWNvbG9yOiAjY2NjO1xuICBjb2xvcjogI2NjYztcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgb3BhY2l0eTogMC42O1xufVxuXG4ucGVyY2VudGFnZS1pY29uIHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6ICM1NTU7XG59XG4iXX0= */";
10163
+ var buttonStyles = {"button":"buttons-module_button__4Ogad","connect-button":"buttons-module_connect-button__CJhUa","button-icon":"buttons-module_button-icon__JM4-2","provider-button":"buttons-module_provider-button__6JY7s","provider-icon":"buttons-module_provider-icon__MOhr8","provider-name":"buttons-module_provider-name__tHWO2","provider-label":"buttons-module_provider-label__CEGRr","link-button-default":"buttons-module_link-button-default__EcKUT","twitter":"buttons-module_twitter__9sRaz","spotify":"buttons-module_spotify__-fiKQ","discord":"buttons-module_discord__I-YjZ","tiktok":"buttons-module_tiktok__a80-0","telegram":"buttons-module_telegram__ExOTS","button-container":"buttons-module_button-container__-oPqd","social-icon":"buttons-module_social-icon__DPdPe","link-icon":"buttons-module_link-icon__8V8FP","camp-logo":"buttons-module_camp-logo__slNl0","link-button-icon":"buttons-module_link-button-icon__llX8m","icon-container":"buttons-module_icon-container__Q5bI1","not-linked":"buttons-module_not-linked__ua4va","file-upload-container":"buttons-module_file-upload-container__le7Cg","dragging":"buttons-module_dragging__cfggZ","file-preview":"buttons-module_file-preview__yuM5i","file-selected":"buttons-module_file-selected__YY6ms","file-input":"buttons-module_file-input__gbD5T","selected-file-container":"buttons-module_selected-file-container__E1AXM","remove-file-button":"buttons-module_remove-file-button__Q1FMa","upload-file-button":"buttons-module_upload-file-button__vTwWd","file-preview-text":"buttons-module_file-preview-text__80Ju0","file-name":"buttons-module_file-name__3iskR","upload-buttons":"buttons-module_upload-buttons__3SAw6","accepted-types":"buttons-module_accepted-types__Ys-D2","loading-bar-container":"buttons-module_loading-bar-container__nrgPX","loading-bar":"buttons-module_loading-bar__IUAg1","date-picker":"buttons-module_date-picker__V6gRM","percentage-slider":"buttons-module_percentage-slider__M84tC","fancy-input-container":"buttons-module_fancy-input-container__s-zVw","fancy-input":"buttons-module_fancy-input__RpSOF","fancy-input-label":"buttons-module_fancy-input-label__d-sG7","input-divider":"buttons-module_input-divider__RVasJ","input-icon-container":"buttons-module_input-icon-container__MUYKL","duration-input-container":"buttons-module_duration-input-container__Rh9Na","duration-input":"buttons-module_duration-input__-gt3p","duration-unit-select":"buttons-module_duration-unit-select__VKFf6","price-input-container":"buttons-module_price-input-container__teIRS","license-type-select":"buttons-module_license-type-select__XHtlm","preview-option-container":"buttons-module_preview-option-container__0bzt-","checkbox-label":"buttons-module_checkbox-label__ODwgG","checkbox-input":"buttons-module_checkbox-input__FvUIp","preview-image-section":"buttons-module_preview-image-section__BjtiC","preview-image-controls":"buttons-module_preview-image-controls__l6gv5","select-preview-button":"buttons-module_select-preview-button__0HQfm","preview-image-preview":"buttons-module_preview-image-preview__c-6n5","preview-thumbnail":"buttons-module_preview-thumbnail__fJWXt","preview-filename":"buttons-module_preview-filename__FW-Gz","remove-preview-button":"buttons-module_remove-preview-button__Skqgb","percentage-icon":"buttons-module_percentage-icon__MxmJh"};
9995
10164
  styleInject(css_248z);
9996
10165
 
9997
10166
  /**
@@ -10169,6 +10338,7 @@ const FancyInput = ({ value, onChange, step, placeholder, type = "text", icon, l
10169
10338
  */
10170
10339
  const FileUpload = ({ onFileUpload, accept, maxFileSize, }) => {
10171
10340
  const auth = useAuth();
10341
+ useContext(CampContext);
10172
10342
  const { isAllowListed } = useUser();
10173
10343
  const effectiveMaxFileSize = isAllowListed ? undefined : maxFileSize;
10174
10344
  const [isDragging, setIsDragging] = useState(false);
@@ -10185,18 +10355,21 @@ const FileUpload = ({ onFileUpload, accept, maxFileSize, }) => {
10185
10355
  const [isValidInput, setIsValidInput] = useState(false);
10186
10356
  const [previewImage, setPreviewImage] = useState(null);
10187
10357
  const [useBaseAssetAsPreview, setUseBaseAssetAsPreview] = useState(false);
10358
+ const [licenseType, setLicenseType] = useState(LicenseType.DURATION_BASED);
10188
10359
  const isAllImagesAccepted = accept
10189
10360
  ? accept.split(",").every((type) => type.trim().startsWith("image/"))
10190
10361
  : false;
10191
10362
  const validateInputs = () => {
10192
- const isDurationValid = validateDuration(licenseDuration, durationUnit);
10193
- let isPriceValid = validatePrice(price);
10363
+ const isDurationValid = licenseType === LicenseType.DURATION_BASED
10364
+ ? validateDuration(licenseDuration, durationUnit)
10365
+ : true; // Duration not needed for SINGLE_PAYMENT/X402
10366
+ const isPriceValid = validatePrice(price);
10194
10367
  const isRoyaltyValid = validateRoyaltyBps(royaltyBps);
10195
10368
  setIsValidInput(isDurationValid && isPriceValid && isRoyaltyValid);
10196
10369
  };
10197
10370
  useEffect(() => {
10198
10371
  validateInputs();
10199
- }, [price, licenseDuration, durationUnit, royaltyBps]);
10372
+ }, [price, licenseDuration, durationUnit, royaltyBps, licenseType]);
10200
10373
  useEffect(() => {
10201
10374
  // use base asset as preview is checked, clear custom preview image
10202
10375
  if (useBaseAssetAsPreview) {
@@ -10211,10 +10384,12 @@ const FileUpload = ({ onFileUpload, accept, maxFileSize, }) => {
10211
10384
  if (selectedFile) {
10212
10385
  setIsUploading(true);
10213
10386
  try {
10214
- const durationInSeconds = toSeconds(licenseDuration, durationUnit);
10387
+ const durationInSeconds = licenseType === LicenseType.DURATION_BASED
10388
+ ? toSeconds(licenseDuration, durationUnit)
10389
+ : 0; // Duration must be 0 for SINGLE_PAYMENT/X402
10215
10390
  const priceInWei = parseEther(price || "0");
10216
10391
  const computedRoyaltyBps = Math.floor(parseFloat(royaltyBps) * 100); // percentage to basis points
10217
- const license = createLicenseTerms(priceInWei, durationInSeconds, computedRoyaltyBps, zeroAddress);
10392
+ const license = createLicenseTerms(priceInWei, durationInSeconds, computedRoyaltyBps, zeroAddress, licenseType);
10218
10393
  const metadata = {
10219
10394
  name: selectedFile.name,
10220
10395
  description: `File uploaded by ${auth === null || auth === void 0 ? void 0 : auth.walletAddress} via the Origin SDK`,
@@ -10359,22 +10534,31 @@ const FileUpload = ({ onFileUpload, accept, maxFileSize, }) => {
10359
10534
  selectedFile ? (React.createElement("div", { className: buttonStyles["selected-file-container"] },
10360
10535
  renderFilePreview(),
10361
10536
  React.createElement("span", { className: buttonStyles["file-name"] }, selectedFile.name),
10362
- React.createElement(FancyInput, { type: "number", step: 0.0001, placeholder: "$CAMP", value: price, label: "Price in $CAMP", onChange: (e) => {
10537
+ React.createElement("span", { className: buttonStyles["fancy-input-label"] }, "License Type"),
10538
+ React.createElement("div", { className: buttonStyles["duration-input-container"] },
10539
+ React.createElement("select", { className: buttonStyles["license-type-select"], value: licenseType, onChange: (e) => setLicenseType(Number(e.target.value)) },
10540
+ React.createElement("option", { value: LicenseType.DURATION_BASED }, "Subscription (Time-limited)"),
10541
+ React.createElement("option", { value: LicenseType.SINGLE_PAYMENT }, "One-Time Purchase (Perpetual)"),
10542
+ React.createElement("option", { value: LicenseType.X402 }, "X402 (Pay-per-view)"))),
10543
+ React.createElement(FancyInput, { type: "number", step: 0.0001, placeholder: licenseType === LicenseType.X402 ? "Price per view" : "Price", value: price, label: licenseType === LicenseType.X402
10544
+ ? "Price in $USDC"
10545
+ : "Price in $CAMP", onChange: (e) => {
10363
10546
  const value = e.target.value;
10364
10547
  setPrice(value);
10365
- }, icon: React.createElement(CampIcon, null) }),
10366
- React.createElement("span", { className: buttonStyles["fancy-input-label"] }, "License Duration"),
10367
- React.createElement("div", { className: buttonStyles["duration-input-container"] },
10368
- React.createElement("input", { type: "number", placeholder: "Duration", className: buttonStyles["duration-input"], value: licenseDuration > 0 ? licenseDuration.toString() : "", onChange: (e) => {
10369
- const value = e.target.value;
10370
- setLicenseDuration(value ? Number(value) : 0);
10371
- } }),
10372
- React.createElement("select", { className: buttonStyles["duration-unit-select"], value: durationUnit, onChange: (e) => {
10373
- setDurationUnit(e.target.value);
10374
- } },
10375
- React.createElement("option", { value: "hours" }, "Hours"),
10376
- React.createElement("option", { value: "days" }, "Days"),
10377
- React.createElement("option", { value: "weeks" }, "Weeks"))),
10548
+ }, icon: licenseType === LicenseType.X402 ? React.createElement(USDCIcon, null) : React.createElement(CampIcon, null) }),
10549
+ licenseType === LicenseType.DURATION_BASED && (React.createElement(React.Fragment, null,
10550
+ React.createElement("span", { className: buttonStyles["fancy-input-label"] }, "License Duration"),
10551
+ React.createElement("div", { className: buttonStyles["duration-input-container"] },
10552
+ React.createElement("input", { type: "number", placeholder: "Duration", className: buttonStyles["duration-input"], value: licenseDuration > 0 ? licenseDuration.toString() : "", onChange: (e) => {
10553
+ const value = e.target.value;
10554
+ setLicenseDuration(value ? Number(value) : 0);
10555
+ } }),
10556
+ React.createElement("select", { className: buttonStyles["duration-unit-select"], value: durationUnit, onChange: (e) => {
10557
+ setDurationUnit(e.target.value);
10558
+ } },
10559
+ React.createElement("option", { value: "hours" }, "Hours"),
10560
+ React.createElement("option", { value: "days" }, "Days"),
10561
+ React.createElement("option", { value: "weeks" }, "Weeks"))))),
10378
10562
  React.createElement(FancyInput, { type: "number", step: 0.1, placeholder: "Royalty %", label: "Royalty %", value: royaltyBps.toString(), onChange: (e) => {
10379
10563
  const value = e.target.value;
10380
10564
  setRoyaltyBps(value);