{
  "abi": [
    {
      "type": "constructor",
      "inputs": [
        {
          "name": "campaignParams",
          "type": "tuple",
          "internalType": "struct MerkleVCA.ConstructorParams",
          "components": [
            { "name": "aggregateAmount", "type": "uint128", "internalType": "uint128" },
            { "name": "campaignName", "type": "string", "internalType": "string" },
            { "name": "campaignStartTime", "type": "uint40", "internalType": "uint40" },
            { "name": "claimType", "type": "uint8", "internalType": "enum ClaimType" },
            { "name": "enableRedistribution", "type": "bool", "internalType": "bool" },
            { "name": "expiration", "type": "uint40", "internalType": "uint40" },
            { "name": "initialAdmin", "type": "address", "internalType": "address" },
            { "name": "ipfsCID", "type": "string", "internalType": "string" },
            { "name": "merkleRoot", "type": "bytes32", "internalType": "bytes32" },
            { "name": "token", "type": "address", "internalType": "contract IERC20" },
            { "name": "unlockPercentage", "type": "uint256", "internalType": "UD60x18" },
            { "name": "vestingEndTime", "type": "uint40", "internalType": "uint40" },
            { "name": "vestingStartTime", "type": "uint40", "internalType": "uint40" }
          ]
        },
        { "name": "campaignCreator", "type": "address", "internalType": "address" },
        { "name": "comptroller", "type": "address", "internalType": "address" }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "AGGREGATE_AMOUNT",
      "inputs": [],
      "outputs": [{ "name": "", "type": "uint128", "internalType": "uint128" }],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "CAMPAIGN_START_TIME",
      "inputs": [],
      "outputs": [{ "name": "", "type": "uint40", "internalType": "uint40" }],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "CLAIM_TYPE",
      "inputs": [],
      "outputs": [{ "name": "", "type": "uint8", "internalType": "enum ClaimType" }],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "COMPTROLLER",
      "inputs": [],
      "outputs": [{ "name": "", "type": "address", "internalType": "address" }],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "EXPIRATION",
      "inputs": [],
      "outputs": [{ "name": "", "type": "uint40", "internalType": "uint40" }],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "IS_SABLIER_MERKLE",
      "inputs": [],
      "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "MERKLE_ROOT",
      "inputs": [],
      "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "TOKEN",
      "inputs": [],
      "outputs": [{ "name": "", "type": "address", "internalType": "contract IERC20" }],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "UNLOCK_PERCENTAGE",
      "inputs": [],
      "outputs": [{ "name": "", "type": "uint256", "internalType": "UD60x18" }],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "VESTING_END_TIME",
      "inputs": [],
      "outputs": [{ "name": "", "type": "uint40", "internalType": "uint40" }],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "VESTING_START_TIME",
      "inputs": [],
      "outputs": [{ "name": "", "type": "uint40", "internalType": "uint40" }],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "admin",
      "inputs": [],
      "outputs": [{ "name": "", "type": "address", "internalType": "address" }],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "attestor",
      "inputs": [],
      "outputs": [{ "name": "", "type": "address", "internalType": "address" }],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "calculateClaimAmount",
      "inputs": [
        { "name": "fullAmount", "type": "uint128", "internalType": "uint128" },
        { "name": "claimTime", "type": "uint40", "internalType": "uint40" }
      ],
      "outputs": [{ "name": "", "type": "uint128", "internalType": "uint128" }],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "calculateForgoneAmount",
      "inputs": [
        { "name": "fullAmount", "type": "uint128", "internalType": "uint128" },
        { "name": "claimTime", "type": "uint40", "internalType": "uint40" }
      ],
      "outputs": [{ "name": "", "type": "uint128", "internalType": "uint128" }],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "calculateMinFeeWei",
      "inputs": [],
      "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "calculateRedistributionRewards",
      "inputs": [{ "name": "fullAmount", "type": "uint128", "internalType": "uint128" }],
      "outputs": [{ "name": "", "type": "uint128", "internalType": "uint128" }],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "campaignName",
      "inputs": [],
      "outputs": [{ "name": "", "type": "string", "internalType": "string" }],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "claimTo",
      "inputs": [
        { "name": "index", "type": "uint256", "internalType": "uint256" },
        { "name": "to", "type": "address", "internalType": "address" },
        { "name": "fullAmount", "type": "uint128", "internalType": "uint128" },
        { "name": "merkleProof", "type": "bytes32[]", "internalType": "bytes32[]" }
      ],
      "outputs": [],
      "stateMutability": "payable"
    },
    {
      "type": "function",
      "name": "claimViaAttestation",
      "inputs": [
        { "name": "index", "type": "uint256", "internalType": "uint256" },
        { "name": "to", "type": "address", "internalType": "address" },
        { "name": "fullAmount", "type": "uint128", "internalType": "uint128" },
        { "name": "expireAt", "type": "uint40", "internalType": "uint40" },
        { "name": "merkleProof", "type": "bytes32[]", "internalType": "bytes32[]" },
        { "name": "attestation", "type": "bytes", "internalType": "bytes" }
      ],
      "outputs": [],
      "stateMutability": "payable"
    },
    {
      "type": "function",
      "name": "claimViaSig",
      "inputs": [
        { "name": "index", "type": "uint256", "internalType": "uint256" },
        { "name": "recipient", "type": "address", "internalType": "address" },
        { "name": "to", "type": "address", "internalType": "address" },
        { "name": "fullAmount", "type": "uint128", "internalType": "uint128" },
        { "name": "validFrom", "type": "uint40", "internalType": "uint40" },
        { "name": "merkleProof", "type": "bytes32[]", "internalType": "bytes32[]" },
        { "name": "signature", "type": "bytes", "internalType": "bytes" }
      ],
      "outputs": [],
      "stateMutability": "payable"
    },
    {
      "type": "function",
      "name": "clawback",
      "inputs": [
        { "name": "to", "type": "address", "internalType": "address" },
        { "name": "amount", "type": "uint128", "internalType": "uint128" }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "domainSeparator",
      "inputs": [],
      "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "enableRedistribution",
      "inputs": [],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "firstClaimTime",
      "inputs": [],
      "outputs": [{ "name": "", "type": "uint40", "internalType": "uint40" }],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "hasClaimed",
      "inputs": [{ "name": "index", "type": "uint256", "internalType": "uint256" }],
      "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "hasExpired",
      "inputs": [],
      "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "ipfsCID",
      "inputs": [],
      "outputs": [{ "name": "", "type": "string", "internalType": "string" }],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "isRedistributionEnabled",
      "inputs": [],
      "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "lowerMinFeeUSD",
      "inputs": [{ "name": "newMinFeeUSD", "type": "uint256", "internalType": "uint256" }],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "minFeeUSD",
      "inputs": [],
      "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "setAttestor",
      "inputs": [{ "name": "newAttestor", "type": "address", "internalType": "address" }],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "sponsor",
      "inputs": [
        { "name": "token", "type": "address", "internalType": "contract IERC20" },
        { "name": "amount", "type": "uint128", "internalType": "uint128" },
        { "name": "biller", "type": "address", "internalType": "address" }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "totalForgoneAmount",
      "inputs": [],
      "outputs": [{ "name": "", "type": "uint128", "internalType": "uint128" }],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "totalRedistributionAmountPaid",
      "inputs": [],
      "outputs": [{ "name": "", "type": "uint128", "internalType": "uint128" }],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "transferAdmin",
      "inputs": [{ "name": "newAdmin", "type": "address", "internalType": "address" }],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "event",
      "name": "ClaimVCA",
      "inputs": [
        { "name": "index", "type": "uint256", "indexed": false, "internalType": "uint256" },
        { "name": "recipient", "type": "address", "indexed": true, "internalType": "address" },
        { "name": "claimAmount", "type": "uint128", "indexed": false, "internalType": "uint128" },
        { "name": "forgoneAmount", "type": "uint128", "indexed": false, "internalType": "uint128" },
        { "name": "to", "type": "address", "indexed": false, "internalType": "address" },
        { "name": "viaSig", "type": "bool", "indexed": false, "internalType": "bool" }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "Clawback",
      "inputs": [
        { "name": "admin", "type": "address", "indexed": true, "internalType": "address" },
        { "name": "to", "type": "address", "indexed": true, "internalType": "address" },
        { "name": "amount", "type": "uint128", "indexed": false, "internalType": "uint128" }
      ],
      "anonymous": false
    },
    { "type": "event", "name": "EnableRedistribution", "inputs": [], "anonymous": false },
    {
      "type": "event",
      "name": "LowerMinFeeUSD",
      "inputs": [
        { "name": "comptroller", "type": "address", "indexed": true, "internalType": "address" },
        { "name": "newMinFeeUSD", "type": "uint256", "indexed": false, "internalType": "uint256" },
        { "name": "previousMinFeeUSD", "type": "uint256", "indexed": false, "internalType": "uint256" }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "RedistributeReward",
      "inputs": [
        { "name": "index", "type": "uint256", "indexed": false, "internalType": "uint256" },
        { "name": "recipient", "type": "address", "indexed": true, "internalType": "address" },
        { "name": "amount", "type": "uint128", "indexed": false, "internalType": "uint128" },
        { "name": "to", "type": "address", "indexed": false, "internalType": "address" }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "SetAttestor",
      "inputs": [
        { "name": "caller", "type": "address", "indexed": true, "internalType": "address" },
        { "name": "previousAttestor", "type": "address", "indexed": true, "internalType": "address" },
        { "name": "newAttestor", "type": "address", "indexed": true, "internalType": "address" }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "Sponsor",
      "inputs": [
        { "name": "caller", "type": "address", "indexed": true, "internalType": "address" },
        { "name": "token", "type": "address", "indexed": true, "internalType": "contract IERC20" },
        { "name": "amount", "type": "uint128", "indexed": false, "internalType": "uint128" },
        { "name": "biller", "type": "address", "indexed": true, "internalType": "address" }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "TransferAdmin",
      "inputs": [
        { "name": "oldAdmin", "type": "address", "indexed": true, "internalType": "address" },
        { "name": "newAdmin", "type": "address", "indexed": true, "internalType": "address" }
      ],
      "anonymous": false
    },
    {
      "type": "error",
      "name": "CallerNotAdmin",
      "inputs": [
        { "name": "admin", "type": "address", "internalType": "address" },
        { "name": "caller", "type": "address", "internalType": "address" }
      ]
    },
    {
      "type": "error",
      "name": "PRBMath_MulDiv18_Overflow",
      "inputs": [
        { "name": "x", "type": "uint256", "internalType": "uint256" },
        { "name": "y", "type": "uint256", "internalType": "uint256" }
      ]
    },
    {
      "type": "error",
      "name": "PRBMath_UD60x18_IntoUint128_Overflow",
      "inputs": [{ "name": "x", "type": "uint256", "internalType": "UD60x18" }]
    },
    {
      "type": "error",
      "name": "SablierMerkleBase_CallerNotComptroller",
      "inputs": [
        { "name": "comptroller", "type": "address", "internalType": "address" },
        { "name": "caller", "type": "address", "internalType": "address" }
      ]
    },
    {
      "type": "error",
      "name": "SablierMerkleBase_CampaignExpired",
      "inputs": [
        { "name": "blockTimestamp", "type": "uint256", "internalType": "uint256" },
        { "name": "expiration", "type": "uint40", "internalType": "uint40" }
      ]
    },
    {
      "type": "error",
      "name": "SablierMerkleBase_CampaignNotStarted",
      "inputs": [
        { "name": "blockTimestamp", "type": "uint256", "internalType": "uint256" },
        { "name": "campaignStartTime", "type": "uint40", "internalType": "uint40" }
      ]
    },
    {
      "type": "error",
      "name": "SablierMerkleBase_ClawbackNotAllowed",
      "inputs": [
        { "name": "blockTimestamp", "type": "uint256", "internalType": "uint256" },
        { "name": "expiration", "type": "uint40", "internalType": "uint40" },
        { "name": "firstClaimTime", "type": "uint40", "internalType": "uint40" }
      ]
    },
    {
      "type": "error",
      "name": "SablierMerkleBase_FeeTransferFailed",
      "inputs": [
        { "name": "feeRecipient", "type": "address", "internalType": "address" },
        { "name": "feeAmount", "type": "uint256", "internalType": "uint256" }
      ]
    },
    {
      "type": "error",
      "name": "SablierMerkleBase_IndexClaimed",
      "inputs": [{ "name": "index", "type": "uint256", "internalType": "uint256" }]
    },
    {
      "type": "error",
      "name": "SablierMerkleBase_InsufficientFeePayment",
      "inputs": [
        { "name": "feePaid", "type": "uint256", "internalType": "uint256" },
        { "name": "minFeeWei", "type": "uint256", "internalType": "uint256" }
      ]
    },
    { "type": "error", "name": "SablierMerkleBase_InvalidProof", "inputs": [] },
    {
      "type": "error",
      "name": "SablierMerkleBase_NewMinFeeUSDNotLower",
      "inputs": [
        { "name": "currentMinFeeUSD", "type": "uint256", "internalType": "uint256" },
        { "name": "newMinFeeUSD", "type": "uint256", "internalType": "uint256" }
      ]
    },
    { "type": "error", "name": "SablierMerkleBase_SponsorAmountZero", "inputs": [] },
    { "type": "error", "name": "SablierMerkleBase_ToZeroAddress", "inputs": [] },
    {
      "type": "error",
      "name": "SablierMerkleBase_UnsupportedClaimType",
      "inputs": [
        { "name": "claimTypeRequired", "type": "uint8", "internalType": "enum ClaimType" },
        { "name": "claimTypeSupported", "type": "uint8", "internalType": "enum ClaimType" }
      ]
    },
    {
      "type": "error",
      "name": "SablierMerkleSignature_AttestationExpired",
      "inputs": [
        { "name": "expireAt", "type": "uint256", "internalType": "uint256" },
        { "name": "blockTimestamp", "type": "uint256", "internalType": "uint256" }
      ]
    },
    { "type": "error", "name": "SablierMerkleSignature_AttestorNotSet", "inputs": [] },
    {
      "type": "error",
      "name": "SablierMerkleSignature_CallerNotAuthorized",
      "inputs": [
        { "name": "caller", "type": "address", "internalType": "address" },
        { "name": "campaignAdmin", "type": "address", "internalType": "address" },
        { "name": "comptroller", "type": "address", "internalType": "address" }
      ]
    },
    { "type": "error", "name": "SablierMerkleSignature_InvalidSignature", "inputs": [] },
    {
      "type": "error",
      "name": "SablierMerkleSignature_SignatureNotYetValid",
      "inputs": [
        { "name": "validFrom", "type": "uint40", "internalType": "uint40" },
        { "name": "blockTimestamp", "type": "uint40", "internalType": "uint40" }
      ]
    },
    {
      "type": "error",
      "name": "SablierMerkleVCA_ClaimAmountZero",
      "inputs": [{ "name": "recipient", "type": "address", "internalType": "address" }]
    },
    { "type": "error", "name": "SablierMerkleVCA_RedistributionAlreadyEnabled", "inputs": [] },
    { "type": "error", "name": "SablierMerkleVCA_RedistributionNotEnabled", "inputs": [] },
    {
      "type": "error",
      "name": "SablierMerkleVCA_VestingEndTimeNotInFuture",
      "inputs": [
        { "name": "vestingEndTime", "type": "uint256", "internalType": "uint256" },
        { "name": "blockTimestamp", "type": "uint256", "internalType": "uint256" }
      ]
    },
    {
      "type": "error",
      "name": "SablierMerkleVCA_VestingNotStarted",
      "inputs": [
        { "name": "claimTime", "type": "uint40", "internalType": "uint40" },
        { "name": "vestingStartTime", "type": "uint40", "internalType": "uint40" }
      ]
    },
    {
      "type": "error",
      "name": "SafeCastOverflowedUintDowncast",
      "inputs": [
        { "name": "bits", "type": "uint8", "internalType": "uint8" },
        { "name": "value", "type": "uint256", "internalType": "uint256" }
      ]
    },
    {
      "type": "error",
      "name": "SafeERC20FailedOperation",
      "inputs": [{ "name": "token", "type": "address", "internalType": "address" }]
    }
  ],
  "bytecode": {
    "object": "0x610200806040523461060157613423803803809161001d828561081d565b83398101906060818303126106015780516001600160401b038111610601578101906101a08284031261060157604051916101a083016001600160401b0381118482101761070c5760405280516001600160801b038116810361060157835260208101516001600160401b038111610601578461009b918301610840565b90602084019182526100af604082016108ad565b916040850192835260608201519060038210156106015760608601918252608083015196871515880361060157608087019788526100ef60a085016108ad565b9460a0880195865261010360c086016108bf565b60c0890190815260e086015190926001600160401b0382116106015761012a918701610840565b9360e08901948552610100860151926101008a019384526101208701519060018060a01b0382168203610601578a986101208a0192835261018f6101806101408b01519a6101408d019b8c526101606101848183016108ad565b9d019c8d52016108ad565b9a6101808d019b8c5264ffffffffff6101b660406101af602085016108bf565b93016108bf565b9851965116945191600383101561080957519251985196519351604051996001600160a01b039182169664ffffffffff909516946101408c01939092909116908b84106001600160401b0385111761070c5760409384526001600160a01b039081168c5260208c01988952928b0191825260608b019384529890911660808a0190815260a08a0193845260c08a0189905260e08a019788526101008a019485526101208a019586525f80546001600160a01b0319168a178155909864ffffffffff92917fbdd36143ee09de60bdefca70680e0f71189b2ed7acee364b53917ad433fdaf808180a35116608052519060038210156108095760a09190915285516001600160a01b0390811660c052905164ffffffffff1660e05290516101005290511661012052518051906001600160401b03821161070c5760015490600182811c921680156107ff575b60208310146106ee5781601f849311610791575b50602090601f831160011461072b575f92610720575b50508160011b915f199060031b1c1916176001555b518051906001600160401b03821161070c57600354600181811c91168015610702575b60208210146106ee57601f811161068b575b50602090601f83116001146106235760209392915f9183610618575b50508160011b915f199060031b1c1916176003555b51915160405163111b863560e31b81525f60048201526001600160a01b0391821660248201529283916044918391165afa90811561060d575f916105cc575b509064ffffffffff94859392600455466101405260405160208101907f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86682527f13cd784591b49af6fc220be53013eaddf1dc15399ca43850d206ea319aca082160408201524660608201523060808201526080815261046460a08261081d565b51902061016052516001600160801b031661018052516101a05251166101c05251166101e052516006805460ff60a01b191691151560a01b60ff60a01b16919091179055604051612b4f90816108d48239608051818181610a100152611b9c015260a05181818161036b015281816104410152818161102a0152611630015260c0518181816102f101528181610331015281816108a101528181610b9101528181610df701528181611bd201526125f1015260e05181818161080f0152818161152201528181611a6e0152611f46015261010051818181610bcc0152611d7b0152610120518181816109cf015281816111fe0152818161148701526120ec0152610140518161267301526101605181612699015261018051818181610c3401526124bc01526101a0518181816107cf015261236c01526101c05181818161085001528181611765015261233001526101e05181818161067901528181610af201526122f80152f35b929190506020833d602011610605575b816105e96020938361081d565b8101031261060157915190919064ffffffffff6103e4565b5f80fd5b3d91506105dc565b6040513d5f823e3d90fd5b015190505f80610390565b90601f1983169160035f52815f20925f5b818110610673575091600193918560209796941061065b575b505050811b016003556103a5565b01515f1960f88460031b161c191690555f808061064d565b92936020600181928786015181550195019301610634565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f840160051c810191602085106106e4575b601f0160051c01905b8181106106d95750610374565b5f81556001016106cc565b90915081906106c3565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610362565b634e487b7160e01b5f52604160045260245ffd5b015190505f8061032a565b60015f9081528281209350601f198516905b8181106107795750908460019594939210610761575b505050811b0160015561033f565b01515f1960f88460031b161c191690555f8080610753565b9293602060018192878601518155019501930161073d565b60015f529091507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f840160051c810191602085106107f5575b90601f859493920160051c01905b8181106107e75750610314565b5f81558493506001016107da565b90915081906107cc565b91607f1691610300565b634e487b7160e01b5f52602160045260245ffd5b601f909101601f19168101906001600160401b0382119082101761070c57604052565b81601f82011215610601578051906001600160401b03821161070c5760405192610874601f8401601f19166020018561081d565b82845260208383010111610601575f5b82811061089857505060205f918301015290565b80602080928401015182828701015201610884565b519064ffffffffff8216820361060157565b51906001600160a01b03821682036106015756fe60806040526004361015610011575f80fd5b5f3560e01c8063051823a2146117455780630724fda91461168a5780630854a79c146115ec578063106a0fee146115aa5780631686c909146114265780632074358314610f925780632481a13a14610e6f5780633a12a5bc14610d9b57806349fc73dd14610c585780634b45ecd314610c0c5780634e0bb8cc14610bef57806351e75e8b14610bb55780635f82c67e14610b655780635faaa89a14610b3657806361a7dcd414610b165780636c0b1e8c14610ad55780637423649b14610aba57806375829def14610a345780637ca3944d146109f357806382bfefc8146109a357806382d72f7f1461097f5780638ec688691461088e57806390e64d1314610874578063ae1a43a514610833578063bb4b5734146107f2578063be2ccd2b146107b8578063c0993d211461074c578063cada25c214610714578063caece53814610642578063ce51650714610602578063db05a050146105dd578063e74f822d146103ca578063eb8cd77514610359578063f5770b1f146101fd578063f698da25146101db5763f851a440146101a5575f80fd5b346101d7575f6003193601126101d757602073ffffffffffffffffffffffffffffffffffffffff5f5416604051908152f35b5f80fd5b346101d7575f6003193601126101d75760206101f5612670565b604051908152f35b346101d75760206003193601126101d757610216611942565b73ffffffffffffffffffffffffffffffffffffffff5f54168033141580610319575b6102b0575073ffffffffffffffffffffffffffffffffffffffff8061025b61258f565b921691827fffffffffffffffffffffffff0000000000000000000000000000000000000000600654161760065516337fe12891ebe30d5f5d47856103adbbd7804332e875271e2903e5dd759badf2f42d5f80a4005b7f153cfb83000000000000000000000000000000000000000000000000000000005f523360045260245273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001660445260645ffd5b5073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016331415610238565b346101d7575f6003193601126101d7577f0000000000000000000000000000000000000000000000000000000000000000604051600382101561039d576020918152f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60c06003193601126101d7576004356103e161191f565b6103e9611988565b906064359264ffffffffff84168094036101d75760843567ffffffffffffffff81116101d75761041d9036906004016119e5565b9060a43567ffffffffffffffff81116101d75761043e903690600401611a2a565b907f0000000000000000000000000000000000000000000000000000000000000000600381101561039d57600181036105a7575073ffffffffffffffffffffffffffffffffffffffff86161561057f5761049661258f565b73ffffffffffffffffffffffffffffffffffffffff8116156105575742891061052757916105169161051e9594936105259a60405160208101917f219f32e1e2ac61bb8bf48019aeabd1a04366f69f4d9a4e73b315e56deb50c043835233604083015260608201526060815261050d608082611854565b519020906127b4565b853385611b8f565b3390611fcf565b005b887f820dbdf9000000000000000000000000000000000000000000000000000000005f526004524260245260445ffd5b7f91cce831000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f036fcd52000000000000000000000000000000000000000000000000000000005f5260045ffd5b6105d8907fcb0b66a3000000000000000000000000000000000000000000000000000000005f526001600452611a58565b60445ffd5b346101d7575f6003193601126101d757602060ff60065460a01c166040519015158152f35b346101d75760206003193601126101d757602061063860043560ff6001918060081c5f526005602052161b60405f205416151590565b6040519015158152f35b346101d75760406003193601126101d75761065b6119a7565b610663611a16565b64ffffffffff811615610706575b64ffffffffff7f00000000000000000000000000000000000000000000000000000000000000001664ffffffffff82168181106106d85760206106be856106b886826122f5565b90611aa3565b6fffffffffffffffffffffffffffffffff60405191168152f35b7f44cbf014000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b5064ffffffffff4216610671565b346101d7575f6003193601126101d757602061072e61258f565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b346101d75760206003193601126101d7576107656119a7565b60ff60065460a01c1615610790576106be6fffffffffffffffffffffffffffffffff6020921661249e565b7f0f41a41d000000000000000000000000000000000000000000000000000000005f5260045ffd5b346101d7575f6003193601126101d75760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346101d7575f6003193601126101d757602060405164ffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101d7575f6003193601126101d757602060405164ffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101d7575f6003193601126101d7576020610638611a66565b346101d75760206003193601126101d7577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1660043533820361094f576004548082101561092157816040917fcafa56d109bc30839f1bad76f9d17abcbd6c936490d4ec0fbc6d331bf89f92af9360045582519182526020820152a2005b7f173c9c82000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b507fead08252000000000000000000000000000000000000000000000000000000005f526004523360245260445ffd5b346101d7575f6003193601126101d757602064ffffffffff60025416604051908152f35b346101d7575f6003193601126101d757602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101d7575f6003193601126101d757602060405164ffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101d75760206003193601126101d75773ffffffffffffffffffffffffffffffffffffffff610a62611942565b610a6a611ad5565b16807fffffffffffffffffffffffff00000000000000000000000000000000000000005f5416175f55337fbdd36143ee09de60bdefca70680e0f71189b2ed7acee364b53917ad433fdaf805f80a3005b346101d7575f6003193601126101d757602060405160018152f35b346101d7575f6003193601126101d757602060405164ffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101d7575f6003193601126101d757602060075460801c604051908152f35b346101d7575f6003193601126101d75760206fffffffffffffffffffffffffffffffff60075416604051908152f35b346101d7575f6003193601126101d757602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101d7575f6003193601126101d75760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346101d7575f6003193601126101d7576020600454604051908152f35b346101d7575f6003193601126101d75760206040516fffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101d7575f6003193601126101d7576040515f6003548060011c90600181168015610d91575b602083108114610d6457828552908115610d225750600114610cc4575b610cc083610cac81850382611854565b6040519182916020835260208301906118c2565b0390f35b60035f9081527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b939250905b808210610d0857509091508101602001610cac610c9c565b919260018160209254838588010152019101909291610cf0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208086019190915291151560051b84019091019150610cac9050610c9c565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691610c7f565b346101d7575f6003193601126101d757600454604051907fb0fa59e8000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa8015610e64575f90610e31575b602090604051908152f35b506020813d602011610e5c575b81610e4b60209383611854565b810103126101d75760209051610e26565b3d9150610e3e565b6040513d5f823e3d90fd5b346101d75760606003193601126101d75760043573ffffffffffffffffffffffffffffffffffffffff81168082036101d757610ea96119c6565b9173ffffffffffffffffffffffffffffffffffffffff610ec7611965565b1692831561057f576fffffffffffffffffffffffffffffffff16908115610f6a57610f3c90604051907f23b872dd00000000000000000000000000000000000000000000000000000000602083015233602483015285604483015283606483015260648252610f37608483611854565b61272d565b6040519081527f5c3fcf40f5e26ff8e74068a6d3b372d00de14949e859fa20fb3616b2c7128b9b60203392a4005b7f642ef277000000000000000000000000000000000000000000000000000000005f5260045ffd5b60e06003193601126101d757600435610fa961191f565b90610fb2611965565b6064356fffffffffffffffffffffffffffffffff81168082036101d7576084359264ffffffffff84168094036101d75760a43567ffffffffffffffff81116101d7576110029036906004016119e5565b60c49591953567ffffffffffffffff81116101d757611025903690600401611a2a565b9690987f0000000000000000000000000000000000000000000000000000000000000000600381101561039d57806113f6575073ffffffffffffffffffffffffffffffffffffffff851697881561057f576110f4906040519b8c8c604060208301927fb0f12a3a6931229a836eaab08aeb1ebe2ddebad3bfd83f30d39f6c4a3b0f4f818452015273ffffffffffffffffffffffffffffffffffffffff85169d8e60608201528c60808201528a60a08201528860c082015260c081526110eb60e082611854565b519020846127b4565b64ffffffffff4216938481116113c6575091611116918761111c95948b611b8f565b846122f5565b916fffffffffffffffffffffffffffffffff831692831561139a579081905f81861015611242575050926112226fffffffffffffffffffffffffffffffff938487948160a09a987f7329b93011fef25a837e2ee061e6b301fe7b9dbcc042ab8914bd67cf52f38fa89c9a0316956007547fffffffffffffffffffffffffffffffff00000000000000000000000000000000846111ba8a828516611f9d565b169116176007557fffffffffffffffffffffffffffffffff00000000000000000000000000000000836111f260085493828516611f9d565b169116176008555b16907f000000000000000000000000000000000000000000000000000000000000000061243f565b6040519485526020850152166040830152606082015260016080820152a2005b929397955095939086820361136d577f7329b93011fef25a837e2ee061e6b301fe7b9dbcc042ab8914bd67cf52f38fa8976fffffffffffffffffffffffffffffffff8095611222938c60a09b60ff6006548e1c166112a3575b5050506111fa565b6112ac9061249e565b600754928584169360801c936112c28582611aa3565b87811688851611611365575b5086831694856112e1575b50505061129b565b7f27cf8717d25c16847f0112ea2293c66dbc1375d054eb641914dcbe1b9d6e284f949596509183917fffffffffffffffffffffffffffffffff0000000000000000000000000000000061133960609661134696611f9d565b60801b1617600755611f9d565b93604051908d825260208201528b6040820152a28c8c818080806112d9565b92505f6112ce565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b877f94dee01d000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b84907f663ab84b000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b6105d8907fcb0b66a3000000000000000000000000000000000000000000000000000000005f525f600452611a58565b346101d75760406003193601126101d75761143f611942565b6114476119c6565b61144f611ad5565b64ffffffffff600254168015158061155c575b8061154d575b6114f357506fffffffffffffffffffffffffffffffff16906114ab82827f000000000000000000000000000000000000000000000000000000000000000061243f565b7f2e9d425ba8b27655048400b366d7b6a1f7180ebdb088e06bb7389704860ffe1f602073ffffffffffffffffffffffffffffffffffffffff805f5416936040519586521693a3005b7fe2e40a0c000000000000000000000000000000000000000000000000000000005f524260045264ffffffffff7f00000000000000000000000000000000000000000000000000000000000000001660245260445260645ffd5b50611556611a66565b15611468565b5062093a80810164ffffffffff811161157d5764ffffffffff164211611462565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b346101d75760406003193601126101d75760206106be6115c86119a7565b6115d0611a16565b9064ffffffffff82166122f5574264ffffffffff1691506122f5565b60806003193601126101d75760043561160361191f565b61160b611988565b9060643567ffffffffffffffff81116101d75761162c9036906004016119e5565b93907f0000000000000000000000000000000000000000000000000000000000000000600381101561039d57806113f6575073ffffffffffffffffffffffffffffffffffffffff83161561057f576105259461051e91853385611b8f565b346101d7575f6003193601126101d7576040515f6001548060011c9060018116801561173b575b602083108114610d6457828552908115610d2257506001146116dd57610cc083610cac81850382611854565b60015f9081527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b80821061172157509091508101602001610cac610c9c565b919260018160209254838588010152019101909291611709565b91607f16916116b1565b346101d7575f6003193601126101d75761175d611ad5565b64ffffffffff7f000000000000000000000000000000000000000000000000000000000000000016428111156118255760065460ff8160a01c166117fd577fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000176006557fa15f058f55b8d4348445e90b3db3a63d6b7b40fc257661ba096f73e28c3c93e05f80a1005b7f44d8c07a000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fc30b5042000000000000000000000000000000000000000000000000000000005f526004524260245260445ffd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761189557604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b91908251928382525f5b84811061190a5750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f845f6020809697860101520116010190565b806020809284010151828286010152016118cc565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036101d757565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036101d757565b6044359073ffffffffffffffffffffffffffffffffffffffff821682036101d757565b604435906fffffffffffffffffffffffffffffffff821682036101d757565b600435906fffffffffffffffffffffffffffffffff821682036101d757565b602435906fffffffffffffffffffffffffffffffff821682036101d757565b9181601f840112156101d75782359167ffffffffffffffff83116101d7576020808501948460051b0101116101d757565b6024359064ffffffffff821682036101d757565b9181601f840112156101d75782359167ffffffffffffffff83116101d757602083818601950101116101d757565b600381101561039d57602452565b64ffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168015159081611a9b575090565b905042101590565b906fffffffffffffffffffffffffffffffff809116911603906fffffffffffffffffffffffffffffffff821161157d57565b73ffffffffffffffffffffffffffffffffffffffff5f5416338103611af75750565b7fc6cce6a4000000000000000000000000000000000000000000000000000000005f526004523360245260445ffd5b67ffffffffffffffff811161189557601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b3d15611b8a573d90611b7182611b26565b91611b7f6040519384611854565b82523d5f602084013e565b606090565b939491909264ffffffffff7f000000000000000000000000000000000000000000000000000000000000000016428111611f6e5750611bcc611a66565b611f17577f00000000000000000000000000000000000000000000000000000000000000009373ffffffffffffffffffffffffffffffffffffffff851692600454604051907fb0fa59e80000000000000000000000000000000000000000000000000000000082526004820152602081602481885afa908115610e64575f91611ee5575b50803410611eb65750611c7a8760ff6001918060081c5f526005602052161b60405f205416151590565b611e8a576fffffffffffffffffffffffffffffffff6040519173ffffffffffffffffffffffffffffffffffffffff60208401948a865216604084015216606082015260608152611ccb608082611854565b5190206040516020810191825260208152611ce7604082611854565b5190209067ffffffffffffffff8711611895578660051b60405197611d0f602083018a611854565b885260208801908201913683116101d757905b828210611e7a57505050925f935b8651851015611d725760208560051b88010151908181105f14611d61575f52602052600160405f205b940193611d30565b905f52602052600160405f20611d59565b919492955092507f000000000000000000000000000000000000000000000000000000000000000003611e525760025464ffffffffff811615611e1e575b508060081c5f526005602052600160ff60405f2092161b815417905534611dd5575050565b5f8080809334905af1611de6611b60565b5015611def5750565b7fe57d366c000000000000000000000000000000000000000000000000000000005f526004523460245260445ffd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000164264ffffffffff16176002555f611db0565b7fb4f06787000000000000000000000000000000000000000000000000000000005f5260045ffd5b8135815260209182019101611d22565b867f02bf1aba000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7fa164c6b4000000000000000000000000000000000000000000000000000000005f523460045260245260445ffd5b90506020813d602011611f0f575b81611f0060209383611854565b810103126101d757515f611c50565b3d9150611ef3565b7fdf4bae05000000000000000000000000000000000000000000000000000000005f524260045264ffffffffff7f00000000000000000000000000000000000000000000000000000000000000001660245260445ffd5b7f14659648000000000000000000000000000000000000000000000000000000005f524260045260245260445ffd5b906fffffffffffffffffffffffffffffffff809116911601906fffffffffffffffffffffffffffffffff821161157d57565b92919091611fe464ffffffffff4216826122f5565b6fffffffffffffffffffffffffffffffff811690811561226957805f6fffffffffffffffffffffffffffffffff851680851015612132575050936fffffffffffffffffffffffffffffffff847f7329b93011fef25a837e2ee061e6b301fe7b9dbcc042ab8914bd67cf52f38fa897946121108373ffffffffffffffffffffffffffffffffffffffff98968160a09b8b990316946007547fffffffffffffffffffffffffffffffff00000000000000000000000000000000846120a889828516611f9d565b169116176007557fffffffffffffffffffffffffffffffff00000000000000000000000000000000836120e060085493828516611f9d565b169116176008555b16857f000000000000000000000000000000000000000000000000000000000000000061243f565b604051998a5260208a01521660408801521660608601525f60808601521692a2565b848194929895979396500361136d577f7329b93011fef25a837e2ee061e6b301fe7b9dbcc042ab8914bd67cf52f38fa89660a0966121106fffffffffffffffffffffffffffffffff809473ffffffffffffffffffffffffffffffffffffffff998d8b9960ff6006548f1c166121aa575b5050506120e8565b6121b39061249e565b600754928584169360801c936121c98582611aa3565b87811688851611612261575b5086831694856121e8575b5050506121a2565b61221a94959650611339847fffffffffffffffffffffffffffffffff0000000000000000000000000000000092611f9d565b91604051918252602082015288881660408201527f27cf8717d25c16847f0112ea2293c66dbc1375d054eb641914dcbe1b9d6e284f60608a8c1692a25f8d818080806121e0565b92505f6121d5565b73ffffffffffffffffffffffffffffffffffffffff857f94dee01d000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b8181029291811591840414171561157d57565b81156122c8570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b907f000000000000000000000000000000000000000000000000000000000000000064ffffffffff82169164ffffffffff82168310612437577f00000000000000000000000000000000000000000000000000000000000000009264ffffffffff8416116123635750505090565b909193926123a37f00000000000000000000000000000000000000000000000000000000000000006fffffffffffffffffffffffffffffffff831661285f565b946fffffffffffffffffffffffffffffffff861161240b57916123fc612401926fffffffffffffffffffffffffffffffff6123f6819664ffffffffff8981856124089d9e169b8c94031697031693611aa3565b166122ab565b6122be565b1690611f9d565b90565b857f4916adce000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b505050505f90565b61249c9273ffffffffffffffffffffffffffffffffffffffff604051937fa9059cbb000000000000000000000000000000000000000000000000000000006020860152166024840152604483015260448252610f37606483611854565b565b6fffffffffffffffffffffffffffffffff60075416908115612589577f0000000000000000000000000000000000000000000000000000000000000000916fffffffffffffffffffffffffffffffff6008541690816fffffffffffffffffffffffffffffffff85161115612437576fffffffffffffffffffffffffffffffff6123fc9261252d950316926122ab565b6fffffffffffffffffffffffffffffffff8111612559576fffffffffffffffffffffffffffffffff1690565b7f6dfcc650000000000000000000000000000000000000000000000000000000005f52608060045260245260445ffd5b50505f90565b73ffffffffffffffffffffffffffffffffffffffff600654168061240857506040517fcada25c200000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610e64575f91612624575090565b90506020813d602011612668575b8161263f60209383611854565b810103126101d7575173ffffffffffffffffffffffffffffffffffffffff811681036101d75790565b3d9150612632565b467f0000000000000000000000000000000000000000000000000000000000000000036126bb577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86682527f13cd784591b49af6fc220be53013eaddf1dc15399ca43850d206ea319aca082160408201524660608201523060808201526080815261272760a082611854565b51902090565b905f602091828151910182855af115610e64575f513d6127ab575073ffffffffffffffffffffffffffffffffffffffff81163b155b6127695750565b73ffffffffffffffffffffffffffffffffffffffff907f5274afe7000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b60011415612762565b906042909392936127c3612670565b90604051917f1901000000000000000000000000000000000000000000000000000000000000835260028301526022820152209061280083611b26565b9261280e6040519485611854565b80845236818601116101d7576020815f9261283097838801378501015261292c565b1561283757565b7f45aa7fec000000000000000000000000000000000000000000000000000000005f5260045ffd5b9190917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8382098382029182808310920391808303921461291b57670de0b6b3a76400008210156128eb577faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106699394670de0b6b3a7640000910990828211900360ee1b910360121c170290565b84907f5173648d000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b5050670de0b6b3a764000090049150565b9190823b612974579061293e91612a50565b50600481101561039d5715918261295457505090565b73ffffffffffffffffffffffffffffffffffffffff919250811691161490565b915f926129c36129ef859460405192839160208301957f1626ba7e00000000000000000000000000000000000000000000000000000000875260248401526040604484015260648301906118c2565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282611854565b51915afa6129fb611b60565b81612a42575b81612a0a575090565b90506020818051810103126101d757602001517f1626ba7e000000000000000000000000000000000000000000000000000000001490565b905060208151101590612a01565b8151919060418303612a8057612a799250602082015190606060408401519301515f1a90612a8a565b9192909190565b50505f9160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411612b0e579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15610e64575f5173ffffffffffffffffffffffffffffffffffffffff811615612b0457905f905f90565b505f906001905f90565b5050505f916003919056fea2646970667358221220d0df9ba980e485625390520a79f038f8f0bb599887ed12ad5b9a75f5bc3c548964736f6c634300081d0033",
    "sourceMap": "2913:13713:110:-:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;2913:13713:110;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2913:13713:110;;;;;;;;;;;;-1:-1:-1;;;;;2913:13713:110;;;;;;;;;;;;-1:-1:-1;;;;;2913:13713:110;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;2913:13713:110;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;4717:27;;2913:13713;;;;;;;;;;;;;;;5049:22;;2913:13713;;;;;;;-1:-1:-1;;;;;2913:13713:110;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2913:13713:110;;;;;;;;;-1:-1:-1;;;;;2913:13713:110;;;;;;4606:580;;2913:13713;;;4606:580;;;2913:13713;;;;4606:580;;2913:13713;;;;;;;;4606:580;;2913:13713;;;;4606:580;;2913:13713;;;;4606:580;;2913:13713;;;;4606:580;;2913:13713;;;;4606:580;;2913:13713;;;;4606:580;;2913:13713;;;-1:-1:-1;2913:13713:110;;-1:-1:-1;;;;;;2913:13713:110;;;;;4606:580;;2913:13713;;4606:580;2290:68:57;-1:-1:-1;;2290:68:57;2913:13713:110;;;3550:50:112;2913:13713:110;;;;;;;;;3610:33:112;;;;2913:13713:110;;-1:-1:-1;;;;;2913:13713:110;;;;3653:36:112;2913:13713:110;;;;;3699:34:112;2913:13713:110;;;3743:35:112;2913:13713:110;;;;3788:24:112;3838:23;917:38:130;;;-1:-1:-1;;;;;2913:13713:110;;;;;;;;;;;;;;;;;-1:-1:-1;2913:13713:110;;;;;;;;;;;;;-1:-1:-1;2913:13713:110;;;;;;;;;;-1:-1:-1;2913:13713:110;;;;;;;;;;;;;;;;;;;;;;3881:18:112;917:38:130;;;-1:-1:-1;;;;;2913:13713:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2913:13713:110;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3921:159:112;;-1:-1:-1;3921:159:112;;;2913:13713:110;-1:-1:-1;;;;;2913:13713:110;;;;;;917:38:130;2913:13713:110;;;3921:159:112;;2913:13713:110;;;3921:159:112;;;;;;;-1:-1:-1;3921:159:112;;;2913:13713:110;;;;;;;;3921:159:112;2913:13713:110;2065:13:114;2913:13713:110;2046:32:114;2913:13713:110;;;2253:100:114;;917:38:130;540:80;917:38;;;2913:13713:110;917:38:130;;;2065:13:114;2913:13713:110;917:38:130;;;2347:4:114;2913:13713:110;917:38:130;;;2913:13713:110;2253:100:114;;;2913:13713:110;2253:100:114;;:::i;:::-;917:38:130;2230:133:114;;2913:13713:110;2203:160:114;2913:13713:110;-1:-1:-1;;;;;2913:13713:110;;5250:49;2913:13713;;5309:51;2913:13713;;5370:48;;2913:13713;;5428:52;;2913:13713;5546:61;2913:13713;;-1:-1:-1;;;;2913:13713:110;;;;;;-1:-1:-1;;;2913:13713:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5370:48;2913:13713;;;;;;;;;;;;;;;5428:52;2913:13713;;;;;;;;;;;;;;;;3921:159:112;;;;;2913:13713:110;3921:159:112;;2913:13713:110;3921:159:112;;;;;;2913:13713:110;3921:159:112;;;:::i;:::-;;;2913:13713:110;;;;;;3921:159:112;;;2913:13713:110;3921:159:112;;2913:13713:110;-1:-1:-1;2913:13713:110;;3921:159:112;;;-1:-1:-1;3921:159:112;;;2913:13713:110;;;-1:-1:-1;2913:13713:110;;;;;;;;;-1:-1:-1;2913:13713:110;;;;;;;;;;;;-1:-1:-1;2913:13713:110;;-1:-1:-1;2913:13713:110;;-1:-1:-1;2913:13713:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2913:13713:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2913:13713:110;;;;;;;;;-1:-1:-1;2913:13713:110;;;;;;;;-1:-1:-1;2913:13713:110;;;;;-1:-1:-1;2913:13713:110;;;;;;;;;;;;-1:-1:-1;2913:13713:110;;;;;-1:-1:-1;2913:13713:110;;;;;-1:-1:-1;2913:13713:110;;;;;;-1:-1:-1;2913:13713:110;;;;;;;-1:-1:-1;;;2913:13713:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2913:13713:110;;;-1:-1:-1;2913:13713:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2913:13713:110;;;;-1:-1:-1;2913:13713:110;;;;;;;-1:-1:-1;2913:13713:110;;;;;;;;;;;;;;;-1:-1:-1;2913:13713:110;;;;;-1:-1:-1;2913:13713:110;;;;;;-1:-1:-1;;2913:13713:110;;;;-1:-1:-1;;;;;2913:13713:110;;;;;;;;;;:::o;:::-;;;;;;;;;;;;-1:-1:-1;;;;;2913:13713:110;;;;;;;;;;;-1:-1:-1;;2913:13713:110;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;2913:13713:110;;;;;;;;;-1:-1:-1;2913:13713:110;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;2913:13713:110;;;;;;:::o",
    "linkReferences": {}
  },
  "deployedBytecode": {
    "object": "0x60806040526004361015610011575f80fd5b5f3560e01c8063051823a2146117455780630724fda91461168a5780630854a79c146115ec578063106a0fee146115aa5780631686c909146114265780632074358314610f925780632481a13a14610e6f5780633a12a5bc14610d9b57806349fc73dd14610c585780634b45ecd314610c0c5780634e0bb8cc14610bef57806351e75e8b14610bb55780635f82c67e14610b655780635faaa89a14610b3657806361a7dcd414610b165780636c0b1e8c14610ad55780637423649b14610aba57806375829def14610a345780637ca3944d146109f357806382bfefc8146109a357806382d72f7f1461097f5780638ec688691461088e57806390e64d1314610874578063ae1a43a514610833578063bb4b5734146107f2578063be2ccd2b146107b8578063c0993d211461074c578063cada25c214610714578063caece53814610642578063ce51650714610602578063db05a050146105dd578063e74f822d146103ca578063eb8cd77514610359578063f5770b1f146101fd578063f698da25146101db5763f851a440146101a5575f80fd5b346101d7575f6003193601126101d757602073ffffffffffffffffffffffffffffffffffffffff5f5416604051908152f35b5f80fd5b346101d7575f6003193601126101d75760206101f5612670565b604051908152f35b346101d75760206003193601126101d757610216611942565b73ffffffffffffffffffffffffffffffffffffffff5f54168033141580610319575b6102b0575073ffffffffffffffffffffffffffffffffffffffff8061025b61258f565b921691827fffffffffffffffffffffffff0000000000000000000000000000000000000000600654161760065516337fe12891ebe30d5f5d47856103adbbd7804332e875271e2903e5dd759badf2f42d5f80a4005b7f153cfb83000000000000000000000000000000000000000000000000000000005f523360045260245273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001660445260645ffd5b5073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016331415610238565b346101d7575f6003193601126101d7577f0000000000000000000000000000000000000000000000000000000000000000604051600382101561039d576020918152f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60c06003193601126101d7576004356103e161191f565b6103e9611988565b906064359264ffffffffff84168094036101d75760843567ffffffffffffffff81116101d75761041d9036906004016119e5565b9060a43567ffffffffffffffff81116101d75761043e903690600401611a2a565b907f0000000000000000000000000000000000000000000000000000000000000000600381101561039d57600181036105a7575073ffffffffffffffffffffffffffffffffffffffff86161561057f5761049661258f565b73ffffffffffffffffffffffffffffffffffffffff8116156105575742891061052757916105169161051e9594936105259a60405160208101917f219f32e1e2ac61bb8bf48019aeabd1a04366f69f4d9a4e73b315e56deb50c043835233604083015260608201526060815261050d608082611854565b519020906127b4565b853385611b8f565b3390611fcf565b005b887f820dbdf9000000000000000000000000000000000000000000000000000000005f526004524260245260445ffd5b7f91cce831000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f036fcd52000000000000000000000000000000000000000000000000000000005f5260045ffd5b6105d8907fcb0b66a3000000000000000000000000000000000000000000000000000000005f526001600452611a58565b60445ffd5b346101d7575f6003193601126101d757602060ff60065460a01c166040519015158152f35b346101d75760206003193601126101d757602061063860043560ff6001918060081c5f526005602052161b60405f205416151590565b6040519015158152f35b346101d75760406003193601126101d75761065b6119a7565b610663611a16565b64ffffffffff811615610706575b64ffffffffff7f00000000000000000000000000000000000000000000000000000000000000001664ffffffffff82168181106106d85760206106be856106b886826122f5565b90611aa3565b6fffffffffffffffffffffffffffffffff60405191168152f35b7f44cbf014000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b5064ffffffffff4216610671565b346101d7575f6003193601126101d757602061072e61258f565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b346101d75760206003193601126101d7576107656119a7565b60ff60065460a01c1615610790576106be6fffffffffffffffffffffffffffffffff6020921661249e565b7f0f41a41d000000000000000000000000000000000000000000000000000000005f5260045ffd5b346101d7575f6003193601126101d75760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346101d7575f6003193601126101d757602060405164ffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101d7575f6003193601126101d757602060405164ffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101d7575f6003193601126101d7576020610638611a66565b346101d75760206003193601126101d7577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1660043533820361094f576004548082101561092157816040917fcafa56d109bc30839f1bad76f9d17abcbd6c936490d4ec0fbc6d331bf89f92af9360045582519182526020820152a2005b7f173c9c82000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b507fead08252000000000000000000000000000000000000000000000000000000005f526004523360245260445ffd5b346101d7575f6003193601126101d757602064ffffffffff60025416604051908152f35b346101d7575f6003193601126101d757602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101d7575f6003193601126101d757602060405164ffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101d75760206003193601126101d75773ffffffffffffffffffffffffffffffffffffffff610a62611942565b610a6a611ad5565b16807fffffffffffffffffffffffff00000000000000000000000000000000000000005f5416175f55337fbdd36143ee09de60bdefca70680e0f71189b2ed7acee364b53917ad433fdaf805f80a3005b346101d7575f6003193601126101d757602060405160018152f35b346101d7575f6003193601126101d757602060405164ffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101d7575f6003193601126101d757602060075460801c604051908152f35b346101d7575f6003193601126101d75760206fffffffffffffffffffffffffffffffff60075416604051908152f35b346101d7575f6003193601126101d757602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101d7575f6003193601126101d75760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346101d7575f6003193601126101d7576020600454604051908152f35b346101d7575f6003193601126101d75760206040516fffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101d7575f6003193601126101d7576040515f6003548060011c90600181168015610d91575b602083108114610d6457828552908115610d225750600114610cc4575b610cc083610cac81850382611854565b6040519182916020835260208301906118c2565b0390f35b60035f9081527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b939250905b808210610d0857509091508101602001610cac610c9c565b919260018160209254838588010152019101909291610cf0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208086019190915291151560051b84019091019150610cac9050610c9c565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691610c7f565b346101d7575f6003193601126101d757600454604051907fb0fa59e8000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa8015610e64575f90610e31575b602090604051908152f35b506020813d602011610e5c575b81610e4b60209383611854565b810103126101d75760209051610e26565b3d9150610e3e565b6040513d5f823e3d90fd5b346101d75760606003193601126101d75760043573ffffffffffffffffffffffffffffffffffffffff81168082036101d757610ea96119c6565b9173ffffffffffffffffffffffffffffffffffffffff610ec7611965565b1692831561057f576fffffffffffffffffffffffffffffffff16908115610f6a57610f3c90604051907f23b872dd00000000000000000000000000000000000000000000000000000000602083015233602483015285604483015283606483015260648252610f37608483611854565b61272d565b6040519081527f5c3fcf40f5e26ff8e74068a6d3b372d00de14949e859fa20fb3616b2c7128b9b60203392a4005b7f642ef277000000000000000000000000000000000000000000000000000000005f5260045ffd5b60e06003193601126101d757600435610fa961191f565b90610fb2611965565b6064356fffffffffffffffffffffffffffffffff81168082036101d7576084359264ffffffffff84168094036101d75760a43567ffffffffffffffff81116101d7576110029036906004016119e5565b60c49591953567ffffffffffffffff81116101d757611025903690600401611a2a565b9690987f0000000000000000000000000000000000000000000000000000000000000000600381101561039d57806113f6575073ffffffffffffffffffffffffffffffffffffffff851697881561057f576110f4906040519b8c8c604060208301927fb0f12a3a6931229a836eaab08aeb1ebe2ddebad3bfd83f30d39f6c4a3b0f4f818452015273ffffffffffffffffffffffffffffffffffffffff85169d8e60608201528c60808201528a60a08201528860c082015260c081526110eb60e082611854565b519020846127b4565b64ffffffffff4216938481116113c6575091611116918761111c95948b611b8f565b846122f5565b916fffffffffffffffffffffffffffffffff831692831561139a579081905f81861015611242575050926112226fffffffffffffffffffffffffffffffff938487948160a09a987f7329b93011fef25a837e2ee061e6b301fe7b9dbcc042ab8914bd67cf52f38fa89c9a0316956007547fffffffffffffffffffffffffffffffff00000000000000000000000000000000846111ba8a828516611f9d565b169116176007557fffffffffffffffffffffffffffffffff00000000000000000000000000000000836111f260085493828516611f9d565b169116176008555b16907f000000000000000000000000000000000000000000000000000000000000000061243f565b6040519485526020850152166040830152606082015260016080820152a2005b929397955095939086820361136d577f7329b93011fef25a837e2ee061e6b301fe7b9dbcc042ab8914bd67cf52f38fa8976fffffffffffffffffffffffffffffffff8095611222938c60a09b60ff6006548e1c166112a3575b5050506111fa565b6112ac9061249e565b600754928584169360801c936112c28582611aa3565b87811688851611611365575b5086831694856112e1575b50505061129b565b7f27cf8717d25c16847f0112ea2293c66dbc1375d054eb641914dcbe1b9d6e284f949596509183917fffffffffffffffffffffffffffffffff0000000000000000000000000000000061133960609661134696611f9d565b60801b1617600755611f9d565b93604051908d825260208201528b6040820152a28c8c818080806112d9565b92505f6112ce565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b877f94dee01d000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b84907f663ab84b000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b6105d8907fcb0b66a3000000000000000000000000000000000000000000000000000000005f525f600452611a58565b346101d75760406003193601126101d75761143f611942565b6114476119c6565b61144f611ad5565b64ffffffffff600254168015158061155c575b8061154d575b6114f357506fffffffffffffffffffffffffffffffff16906114ab82827f000000000000000000000000000000000000000000000000000000000000000061243f565b7f2e9d425ba8b27655048400b366d7b6a1f7180ebdb088e06bb7389704860ffe1f602073ffffffffffffffffffffffffffffffffffffffff805f5416936040519586521693a3005b7fe2e40a0c000000000000000000000000000000000000000000000000000000005f524260045264ffffffffff7f00000000000000000000000000000000000000000000000000000000000000001660245260445260645ffd5b50611556611a66565b15611468565b5062093a80810164ffffffffff811161157d5764ffffffffff164211611462565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b346101d75760406003193601126101d75760206106be6115c86119a7565b6115d0611a16565b9064ffffffffff82166122f5574264ffffffffff1691506122f5565b60806003193601126101d75760043561160361191f565b61160b611988565b9060643567ffffffffffffffff81116101d75761162c9036906004016119e5565b93907f0000000000000000000000000000000000000000000000000000000000000000600381101561039d57806113f6575073ffffffffffffffffffffffffffffffffffffffff83161561057f576105259461051e91853385611b8f565b346101d7575f6003193601126101d7576040515f6001548060011c9060018116801561173b575b602083108114610d6457828552908115610d2257506001146116dd57610cc083610cac81850382611854565b60015f9081527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b80821061172157509091508101602001610cac610c9c565b919260018160209254838588010152019101909291611709565b91607f16916116b1565b346101d7575f6003193601126101d75761175d611ad5565b64ffffffffff7f000000000000000000000000000000000000000000000000000000000000000016428111156118255760065460ff8160a01c166117fd577fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000176006557fa15f058f55b8d4348445e90b3db3a63d6b7b40fc257661ba096f73e28c3c93e05f80a1005b7f44d8c07a000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fc30b5042000000000000000000000000000000000000000000000000000000005f526004524260245260445ffd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761189557604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b91908251928382525f5b84811061190a5750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f845f6020809697860101520116010190565b806020809284010151828286010152016118cc565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036101d757565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036101d757565b6044359073ffffffffffffffffffffffffffffffffffffffff821682036101d757565b604435906fffffffffffffffffffffffffffffffff821682036101d757565b600435906fffffffffffffffffffffffffffffffff821682036101d757565b602435906fffffffffffffffffffffffffffffffff821682036101d757565b9181601f840112156101d75782359167ffffffffffffffff83116101d7576020808501948460051b0101116101d757565b6024359064ffffffffff821682036101d757565b9181601f840112156101d75782359167ffffffffffffffff83116101d757602083818601950101116101d757565b600381101561039d57602452565b64ffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168015159081611a9b575090565b905042101590565b906fffffffffffffffffffffffffffffffff809116911603906fffffffffffffffffffffffffffffffff821161157d57565b73ffffffffffffffffffffffffffffffffffffffff5f5416338103611af75750565b7fc6cce6a4000000000000000000000000000000000000000000000000000000005f526004523360245260445ffd5b67ffffffffffffffff811161189557601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b3d15611b8a573d90611b7182611b26565b91611b7f6040519384611854565b82523d5f602084013e565b606090565b939491909264ffffffffff7f000000000000000000000000000000000000000000000000000000000000000016428111611f6e5750611bcc611a66565b611f17577f00000000000000000000000000000000000000000000000000000000000000009373ffffffffffffffffffffffffffffffffffffffff851692600454604051907fb0fa59e80000000000000000000000000000000000000000000000000000000082526004820152602081602481885afa908115610e64575f91611ee5575b50803410611eb65750611c7a8760ff6001918060081c5f526005602052161b60405f205416151590565b611e8a576fffffffffffffffffffffffffffffffff6040519173ffffffffffffffffffffffffffffffffffffffff60208401948a865216604084015216606082015260608152611ccb608082611854565b5190206040516020810191825260208152611ce7604082611854565b5190209067ffffffffffffffff8711611895578660051b60405197611d0f602083018a611854565b885260208801908201913683116101d757905b828210611e7a57505050925f935b8651851015611d725760208560051b88010151908181105f14611d61575f52602052600160405f205b940193611d30565b905f52602052600160405f20611d59565b919492955092507f000000000000000000000000000000000000000000000000000000000000000003611e525760025464ffffffffff811615611e1e575b508060081c5f526005602052600160ff60405f2092161b815417905534611dd5575050565b5f8080809334905af1611de6611b60565b5015611def5750565b7fe57d366c000000000000000000000000000000000000000000000000000000005f526004523460245260445ffd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000164264ffffffffff16176002555f611db0565b7fb4f06787000000000000000000000000000000000000000000000000000000005f5260045ffd5b8135815260209182019101611d22565b867f02bf1aba000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7fa164c6b4000000000000000000000000000000000000000000000000000000005f523460045260245260445ffd5b90506020813d602011611f0f575b81611f0060209383611854565b810103126101d757515f611c50565b3d9150611ef3565b7fdf4bae05000000000000000000000000000000000000000000000000000000005f524260045264ffffffffff7f00000000000000000000000000000000000000000000000000000000000000001660245260445ffd5b7f14659648000000000000000000000000000000000000000000000000000000005f524260045260245260445ffd5b906fffffffffffffffffffffffffffffffff809116911601906fffffffffffffffffffffffffffffffff821161157d57565b92919091611fe464ffffffffff4216826122f5565b6fffffffffffffffffffffffffffffffff811690811561226957805f6fffffffffffffffffffffffffffffffff851680851015612132575050936fffffffffffffffffffffffffffffffff847f7329b93011fef25a837e2ee061e6b301fe7b9dbcc042ab8914bd67cf52f38fa897946121108373ffffffffffffffffffffffffffffffffffffffff98968160a09b8b990316946007547fffffffffffffffffffffffffffffffff00000000000000000000000000000000846120a889828516611f9d565b169116176007557fffffffffffffffffffffffffffffffff00000000000000000000000000000000836120e060085493828516611f9d565b169116176008555b16857f000000000000000000000000000000000000000000000000000000000000000061243f565b604051998a5260208a01521660408801521660608601525f60808601521692a2565b848194929895979396500361136d577f7329b93011fef25a837e2ee061e6b301fe7b9dbcc042ab8914bd67cf52f38fa89660a0966121106fffffffffffffffffffffffffffffffff809473ffffffffffffffffffffffffffffffffffffffff998d8b9960ff6006548f1c166121aa575b5050506120e8565b6121b39061249e565b600754928584169360801c936121c98582611aa3565b87811688851611612261575b5086831694856121e8575b5050506121a2565b61221a94959650611339847fffffffffffffffffffffffffffffffff0000000000000000000000000000000092611f9d565b91604051918252602082015288881660408201527f27cf8717d25c16847f0112ea2293c66dbc1375d054eb641914dcbe1b9d6e284f60608a8c1692a25f8d818080806121e0565b92505f6121d5565b73ffffffffffffffffffffffffffffffffffffffff857f94dee01d000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b8181029291811591840414171561157d57565b81156122c8570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b907f000000000000000000000000000000000000000000000000000000000000000064ffffffffff82169164ffffffffff82168310612437577f00000000000000000000000000000000000000000000000000000000000000009264ffffffffff8416116123635750505090565b909193926123a37f00000000000000000000000000000000000000000000000000000000000000006fffffffffffffffffffffffffffffffff831661285f565b946fffffffffffffffffffffffffffffffff861161240b57916123fc612401926fffffffffffffffffffffffffffffffff6123f6819664ffffffffff8981856124089d9e169b8c94031697031693611aa3565b166122ab565b6122be565b1690611f9d565b90565b857f4916adce000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b505050505f90565b61249c9273ffffffffffffffffffffffffffffffffffffffff604051937fa9059cbb000000000000000000000000000000000000000000000000000000006020860152166024840152604483015260448252610f37606483611854565b565b6fffffffffffffffffffffffffffffffff60075416908115612589577f0000000000000000000000000000000000000000000000000000000000000000916fffffffffffffffffffffffffffffffff6008541690816fffffffffffffffffffffffffffffffff85161115612437576fffffffffffffffffffffffffffffffff6123fc9261252d950316926122ab565b6fffffffffffffffffffffffffffffffff8111612559576fffffffffffffffffffffffffffffffff1690565b7f6dfcc650000000000000000000000000000000000000000000000000000000005f52608060045260245260445ffd5b50505f90565b73ffffffffffffffffffffffffffffffffffffffff600654168061240857506040517fcada25c200000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610e64575f91612624575090565b90506020813d602011612668575b8161263f60209383611854565b810103126101d7575173ffffffffffffffffffffffffffffffffffffffff811681036101d75790565b3d9150612632565b467f0000000000000000000000000000000000000000000000000000000000000000036126bb577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86682527f13cd784591b49af6fc220be53013eaddf1dc15399ca43850d206ea319aca082160408201524660608201523060808201526080815261272760a082611854565b51902090565b905f602091828151910182855af115610e64575f513d6127ab575073ffffffffffffffffffffffffffffffffffffffff81163b155b6127695750565b73ffffffffffffffffffffffffffffffffffffffff907f5274afe7000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b60011415612762565b906042909392936127c3612670565b90604051917f1901000000000000000000000000000000000000000000000000000000000000835260028301526022820152209061280083611b26565b9261280e6040519485611854565b80845236818601116101d7576020815f9261283097838801378501015261292c565b1561283757565b7f45aa7fec000000000000000000000000000000000000000000000000000000005f5260045ffd5b9190917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8382098382029182808310920391808303921461291b57670de0b6b3a76400008210156128eb577faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106699394670de0b6b3a7640000910990828211900360ee1b910360121c170290565b84907f5173648d000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b5050670de0b6b3a764000090049150565b9190823b612974579061293e91612a50565b50600481101561039d5715918261295457505090565b73ffffffffffffffffffffffffffffffffffffffff919250811691161490565b915f926129c36129ef859460405192839160208301957f1626ba7e00000000000000000000000000000000000000000000000000000000875260248401526040604484015260648301906118c2565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282611854565b51915afa6129fb611b60565b81612a42575b81612a0a575090565b90506020818051810103126101d757602001517f1626ba7e000000000000000000000000000000000000000000000000000000001490565b905060208151101590612a01565b8151919060418303612a8057612a799250602082015190606060408401519301515f1a90612a8a565b9192909190565b50505f9160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411612b0e579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15610e64575f5173ffffffffffffffffffffffffffffffffffffffff811615612b0457905f905f90565b505f906001905f90565b5050505f916003919056fea2646970667358221220d0df9ba980e485625390520a79f038f8f0bb599887ed12ad5b9a75f5bc3c548964736f6c634300081d0033",
    "sourceMap": "2913:13713:110:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2913:13713:110;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2913:13713:110;;;;;;2875:18:114;;:::i;:::-;2913:13713:110;;;;;;;;;;;-1:-1:-1;;2913:13713:110;;;;;;;:::i;:::-;;;;;3319:10:114;;:19;;:48;;;2913:13713:110;3315:267:114;;3656:14;2913:13713:110;3656:14:114;;;:::i;:::-;2913:13713:110;;;;;3722:23:114;2913:13713:110;;;3722:23:114;2913:13713:110;;3319:10:114;3787:96;2913:13713:110;3787:96:114;;2913:13713:110;3315:267:114;3390:181;2913:13713:110;3390:181:114;3319:10;2913:13713:110;;;;;3545:11:114;2913:13713:110;;;;;3390:181:114;3319:48;3356:11;2913:13713:110;3356:11:114;2913:13713:110;3319:10:114;3342:25;;3319:48;;2913:13713:110;;;;;-1:-1:-1;;2913:13713:110;;;;;1390:46:112;2913:13713:110;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2913:13713:110;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;2912:10:112;;2913:13713:110;;;;;;;2912:23:112;;2908:216;;2913:13713:110;;;;2648:16:112;2644:94;;4460:14:114;;:::i;:::-;2913:13713:110;;;4528:23:114;4524:107;;4719:15;4708:26;;4704:139;;2913:13713:110;5153:9:114;2913:13713:110;9087:11;2913:13713;;;9312:5;2913:13713;;;;4938:64:114;;2913:13713:110;739:56:130;2913:13713:110;;8851:10;2913:13713;739:56:130;;2913:13713:110;;739:56:130;;2913:13713:110;;4938:64:114;;;2913:13713:110;4938:64:114;;:::i;:::-;2913:13713:110;4928:75:114;;5153:9;;:::i;:::-;8851:10:110;;9087:11;;:::i;:::-;8851:10;9312:5;;:::i;:::-;2913:13713;4704:139:114;4757:75;;2913:13713:110;4757:75:114;2913:13713:110;;4719:15:114;2913:13713:110;;;;4757:75:114;4524:107;4574:46;2913:13713:110;4574:46:114;2913:13713:110;;4574:46:114;2644:94:112;2687:40;2913:13713:110;2687:40:112;2913:13713:110;;2687:40:112;2908:216;2913:13713:110;2958:155:112;;2913:13713:110;2958:155:112;2913:13713:110;;;;:::i;:::-;;;2958:155:112;2913:13713:110;;;;;-1:-1:-1;;2913:13713:110;;;;;;;3747:44;2913:13713;;;;;;;;;;;;;;;;;-1:-1:-1;;2913:13713:110;;;;;;4643:25:112;2913:13713:110;;;1170:1:24;1028:217;2913:13713:110;1144:1:24;2913:13713:110;-1:-1:-1;2913:13713:110;4643:14:112;2913:13713:110;;1176:12:24;2913:13713:110;;-1:-1:-1;2913:13713:110;;1206:27:24;:32;;1028:217;;4643:25:112;2913:13713:110;;;;;;;;;;;;;-1:-1:-1;;2913:13713:110;;;;;;;:::i;:::-;;;:::i;:::-;;;;6483:14;6479:80;;2913:13713;;6659:18;2913:13713;;;;6647:30;;;6643:217;;2913:13713;6877:57;6890:44;;;;;:::i;:::-;6877:57;;:::i;:::-;2913:13713;;;;;;;;6643:217;6700:149;2913:13713;6700:149;2913:13713;;;;;;6700:149;6479:80;6532:15;2913:13713;6532:15;2913:13713;6479:80;;2913:13713;;;;;-1:-1:-1;;2913:13713:110;;;;;;2719:14:114;;:::i;:::-;2913:13713:110;;;;;;;;;;;;;-1:-1:-1;;2913:13713:110;;;;;;;:::i;:::-;;7146:23;2913:13713;;;;7145:24;7141:112;;7330:43;2913:13713;;;;7330:43;:::i;7141:112::-;7192:50;2913:13713;7192:50;2913:13713;;7192:50;2913:13713;;;;;-1:-1:-1;;2913:13713:110;;;;;;;;3461:51;2913:13713;;;;;;;;-1:-1:-1;;2913:13713:110;;;;;;;;;1573:43:112;2913:13713:110;;;;;;;;;-1:-1:-1;;2913:13713:110;;;;;;;;;3557:49;2913:13713;;;;;;;;;-1:-1:-1;;2913:13713:110;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;2913:13713:110;;;;;5949:11:112;2913:13713:110;;;;5964:10:112;5949:25;;5945:133;;2913:13713:110;;6216:32:112;;;;6212:147;;2913:13713:110;;;6478:153:112;2913:13713:110;;;;;;;;;;;;6478:153:112;2913:13713:110;6212:147:112;6271:77;2913:13713:110;6271:77:112;2913:13713:110;;;;;;6271:77:112;5945:133;5997:70;;2913:13713:110;5997:70:112;2913:13713:110;;5964:10:112;2913:13713:110;;;;5997:70:112;2913:13713:110;;;;;-1:-1:-1;;2913:13713:110;;;;;;;2018:37:112;2913:13713:110;;;;;;;;;;;;;-1:-1:-1;;2913:13713:110;;;;;;;;;1853:38:112;2913:13713:110;;;;;;;;;-1:-1:-1;;2913:13713:110;;;;;;;;;1292:52:112;2913:13713:110;;;;;;;;;-1:-1:-1;;2913:13713:110;;;;;;;;:::i;:::-;862:61:57;;:::i;:::-;2913:13713:110;;;;;;;;;1774:10:57;2290:68;2913:13713:110;2290:68:57;;2913:13713:110;;;;;;-1:-1:-1;;2913:13713:110;;;;;;;;1712:4:112;2913:13713:110;;;;;;;;-1:-1:-1;;2913:13713:110;;;;;;;;;3651:51;2913:13713;;;;;;;;;-1:-1:-1;;2913:13713:110;;;;;;3923:53;2913:13713;;;;;;;;;;;;;;-1:-1:-1;;2913:13713:110;;;;;;;3836:42;2913:13713;;;;;;;;;;;;;-1:-1:-1;;2913:13713:110;;;;;;;;;1482:45:112;2913:13713:110;;;;;;;;;-1:-1:-1;;2913:13713:110;;;;;;;;1762:45:112;2913:13713:110;;;;;;;;-1:-1:-1;;2913:13713:110;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2913:13713:110;;;;;;;;;3366:50;2913:13713;;;;;;;;;-1:-1:-1;;2913:13713:110;;;;;;;;2101:30:112;2913:13713:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;2101:30:112;2913:13713:110;;;;;;;-1:-1:-1;2913:13713:110;;;;;;;-1:-1:-1;2913:13713:110;;-1:-1:-1;2913:13713:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2913:13713:110;;-1:-1:-1;2913:13713:110;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2913:13713:110;;;;;;;;;4441:62:112;2913:13713:110;4441:62:112;;2913:13713:110;4441:62:112;;2913:13713:110;;4461:11:112;4441:62;4461:11;2913:13713:110;4461:11:112;2913:13713:110;4441:62:112;;;;;;2913:13713:110;4441:62:112;;;2913:13713:110;;;;;;;;;4441:62:112;;2913:13713:110;4441:62:112;;2913:13713:110;4441:62:112;;;;;;2913:13713:110;4441:62:112;;;:::i;:::-;;;2913:13713:110;;;;;;;4441:62:112;;;;;-1:-1:-1;4441:62:112;;;2913:13713:110;;;;;;;;;;;;;;-1:-1:-1;;2913:13713:110;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;2648:16:112;;;2644:94;;2913:13713:110;;6843:11:112;;;6839:93;;1745:53:9;2913:13713:110;;;1745:53:9;2913:13713:110;;1745:53:9;;;7056:10:112;2913:13713:110;1745:53:9;;2913:13713:110;;;;;;;;;;;;1745:53:9;;;;;;:::i;:::-;;:::i;:::-;2913:13713:110;;;;;7144:77:112;2913:13713:110;7056:10:112;7144:77;;2913:13713:110;6839:93:112;6877:44;2913:13713:110;6877:44:112;2913:13713:110;;6877:44:112;2913:13713:110;;-1:-1:-1;;2913:13713:110;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;2912:10:112;;;;2913:13713:110;;;;;;2912:23:112;2908:216;;2913:13713:110;;;;2648:16:112;;;2644:94;;5874:9:114;2913:13713:110;;;5644:81:114;;;2913:13713:110;;5644:81:114;;2913:13713:110;316:94:130;2913:13713:110;;316:94:130;2913:13713:110;;;;316:94:130;;2913:13713:110;316:94:130;;2913:13713:110;316:94:130;2913:13713:110;316:94:130;;2913:13713:110;316:94:130;2913:13713:110;316:94:130;;2913:13713:110;316:94:130;2913:13713:110;316:94:130;;2913:13713:110;;5644:81:114;;;2913:13713:110;5644:81:114;;:::i;:::-;2913:13713:110;5634:92:114;;5874:9;;:::i;:::-;2913:13713:110;6008:15:114;2913:13713:110;5989:35:114;;;;5985:159;;10053:11:110;;;;;14155:58;10053:11;;;;:::i;:::-;14155:58;;:::i;:::-;2913:13713;;;;14276:16;;;14272:104;;14447:36;;;2913:13713;14597:24;;;;;;2913:13713;;;16453:53;2913:13713;;;;;;;;;16551:66;2913:13713;;;;;14809:35;2913:13713;;;14809:35;2913:13713;;;;14809:35;:::i;:::-;2913:13713;;;;14809:35;2913:13713;;;14858:49;;2913:13713;;;;;14858:49;:::i;:::-;2913:13713;;;;14858:49;2913:13713;14593:1788;2913:13713;16453:5;;:53;:::i;:::-;2913:13713;;;;;;;;;;;;;;;;;;10276:4;2913:13713;;;;16551:66;2913:13713;14593:1788;15113:25;;;;;;;;;;;2913:13713;;16551:66;2913:13713;;;;16453:53;2913:13713;;;;;15158:23;2913:13713;;;;15154:1217;;14593:1788;;;;;;15154:1217;15264:43;;;:::i;:::-;15434:18;2913:13713;;;;;;;;15434:50;;;;;:::i;:::-;2913:13713;;;;;;15844:45;15840:137;;15154:1217;2913:13713;;;;16081:16;;16077:280;;15154:1217;;;;;;16077:280;16284:54;16121:45;;;;;;;2913:13713;16121:45;2913:13713;16121:45;16188:30;16121:45;;:::i;:::-;2913:13713;;;;15434:18;2913:13713;16188:30;:::i;:::-;2913:13713;;;;;;;;;;;;;;;;16284:54;16077:280;;;;;;;;15840:137;15913:45;-1:-1:-1;15840:137:110;;;2913:13713;;;;10276:4;2913:13713;;;;;14272:104;14315:50;;2913:13713;14315:50;2913:13713;;;;14315:50;5985:159:114;6047:86;;;2913:13713:110;6047:86:114;2913:13713:110;;;;;;6047:86:114;2908:216:112;2913:13713:110;2958:155:112;;2913:13713:110;2958:155:112;2913:13713:110;;;;:::i;:::-;;;;;-1:-1:-1;;2913:13713:110;;;;;;;:::i;:::-;;;:::i;:::-;862:61:57;;:::i;:::-;2913:13713:110;7673:14:112;2913:13713:110;;7673:18:112;;;:63;;;2913:13713:110;5286:40:112;;;2913:13713:110;5282:274:112;;2913:13713:110;;;5630:5:112;:45;:5;;;:45;:::i;:::-;5720:50;2913:13713:110;;;;;;;;;;;;;5720:50:112;;2913:13713:110;5282:274:112;5349:196;2913:13713:110;5349:196:112;5427:15;2913:13713:110;;;5472:10:112;2913:13713:110;;;;;;;5349:196:112;5286:40;5314:12;;;:::i;:::-;5313:13;5286:40;;7673:63;2913:13713:110;7730:6:112;2913:13713:110;;;;;;;;;7695:15:112;:41;7673:63;;2913:13713:110;;;;;;;;;;;;;;;-1:-1:-1;;2913:13713:110;;;;;;6204:44;2913:13713;;:::i;:::-;;;:::i;:::-;;;;;6204:44;6057:80;6110:15;2913:13713;;;-1:-1:-1;6204:44:110;:::i;2913:13713::-;;-1:-1:-1;;2913:13713:110;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;2912:10:112;;;2913:13713:110;;;;;;2912:23:112;2908:216;;2913:13713:110;;;;2648:16:112;2644:94;;8328:5:110;8058:10;8103:11;8058:10;;;8103:11;;:::i;2913:13713::-;;;;;-1:-1:-1;;2913:13713:110;;;;;;;;1937:35:112;2913:13713:110;;1937:35:112;2913:13713:110;;1937:35:112;2913:13713:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1937:35:112;2913:13713:110;;;;;;;-1:-1:-1;2913:13713:110;;;;;;;-1:-1:-1;2913:13713:110;;-1:-1:-1;2913:13713:110;;;;;;;;;;1937:35:112;2913:13713:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2913:13713:110;;;;;862:61:57;;:::i;:::-;2913:13713:110;10463:16;2913:13713;10483:15;10463:35;;;10459:157;;10691:23;2913:13713;;;;;;10687:115;;2913:13713;;;;10691:23;2913:13713;10926:22;2913:13713;;10926:22;2913:13713;10687:115;10737:54;2913:13713;10737:54;2913:13713;;10737:54;10459:157;10521:84;2913:13713;10521:84;2913:13713;;10483:15;2913:13713;;;;10521:84;2913:13713;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;2913:13713:110;;;;;-1:-1:-1;2913:13713:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::o;4720:129:112:-;2913:13713:110;4795:10:112;2913:13713:110;4795:14:112;;;:47;;;;4788:54;4720:129;:::o;4795:47::-;4827:15;;;-1:-1:-1;4813:29:112;4720:129;:::o;2913:13713:110:-;;;;;;;;;;;;;;;:::o;2753:167:57:-;2913:13713:110;2802:5:57;2913:13713:110;;2811:10:57;2802:19;;2798:116;;2753:167;:::o;2798:116::-;2844:59;2802:5;2844:59;;2913:13713:110;2811:10:57;2913:13713:110;;;2802:5:57;2844:59;2913:13713:110;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;2913:13713:110;;;;:::o;:::-;;;:::o;8070:2269:112:-;;;;;;2913:13713:110;8315:19:112;2913:13713:110;8337:15:112;8315:37;;8311:239;;8612:12;;;:::i;:::-;8608:151;;8868:11;2913:13713:110;;;;;8900:9:112;2913:13713:110;;;8848:62:112;2913:13713:110;8848:62:112;;8900:9;8848:62;;2913:13713:110;;8848:62:112;;;;;;;;;;;-1:-1:-1;8848:62:112;;;8070:2269;8939:9;;;9002:19;8998:124;;9186:25;;;2913:13713:110;1170:1:24;1028:217;2913:13713:110;1144:1:24;2913:13713:110;-1:-1:-1;2913:13713:110;4643:14:112;2913:13713:110;;1176:12:24;2913:13713:110;;-1:-1:-1;2913:13713:110;;1206:27:24;:32;;1028:217;;9186:25:112;9182:107;;2913:13713:110;;;9437:36:112;2913:13713:110;;9437:36:112;;2913:13713:110;;;;;;;;;;;;;;;9437:36:112;;;;;;:::i;:::-;2913:13713:110;9427:47:112;;2913:13713:110;;;;;;;;;;;;;;;:::i;:::-;;9404:72:112;;2913:13713:110;;;;;;;9186:14:112;2913:13713:110;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;2559:27:17;;;2601:13;-1:-1:-1;2596:134:17;2634:3;2913:13713:110;;2616:16:17;;;;;2913:13713:110;;9186:14:112;2913:13713:110;;;;;605:59:16;:5;;;:59;:5;;;-1:-1:-1;889:135:16;2913:13713:110;889:135:16;2913:13713:110;;-1:-1:-1;889:135:16;605:59;2634:3:17;2913:13713:110;2601:13:17;;;605:59:16;889:135;-1:-1:-1;889:135:16;2913:13713:110;889:135:16;2913:13713:110;;-1:-1:-1;889:135:16;605:59;;2616:16:17;;;;;;;;9604:11:112;2016:33:17;9567:128:112;;9799:14;2913:13713:110;;;;9799:19:112;9795:90;;2596:134:17;2913:13713:110;;1677:1:24;2913:13713:110;-1:-1:-1;2913:13713:110;9186:14:112;2913:13713:110;;;;;-1:-1:-1;2913:13713:110;1709:12:24;;2913:13713:110;;;1732:28:24;2913:13713:110;;8939:9:112;10057:276;;8070:2269;;:::o;10057:276::-;-1:-1:-1;8939:9:112;;;;;10106:38;;;;;:::i;:::-;;10209:8;10205:118;;8070:2269;:::o;10205:118::-;10244:64;-1:-1:-1;10244:64:112;8900:9;2913:13713:110;8939:9:112;8848:62;2913:13713:110;;-1:-1:-1;10244:64:112;9795:90;2913:13713:110;;8337:15:112;2913:13713:110;;;9799:14:112;2913:13713:110;9795:90:112;;;9567:128;9645:39;-1:-1:-1;9645:39:112;8900:9;-1:-1:-1;9645:39:112;2913:13713:110;;;;;;;;;;;;;9182:107:112;9234:44;;-1:-1:-1;9234:44:112;8900:9;2913:13713:110;8848:62:112;-1:-1:-1;9234:44:112;8998:124;9044:67;-1:-1:-1;9044:67:112;8939:9;8900;2913:13713:110;8848:62:112;2913:13713:110;;-1:-1:-1;9044:67:112;8848:62;;;2913:13713:110;8848:62:112;;2913:13713:110;8848:62:112;;;;;;2913:13713:110;8848:62:112;;;:::i;:::-;;;2913:13713:110;;;;;8848:62:112;;;;;;-1:-1:-1;8848:62:112;;8608:151;8647:101;;;8337:15;8647:101;2913:13713:110;;8735:10:112;2913:13713:110;;;;8647:101:112;;8311:239;8375:164;;;8337:15;8375:164;2913:13713:110;;;;8375:164:112;;2913:13713:110;;;;;;;;;;;;;;;:::o;13970:2654::-;;;;;14155:58;2913:13713;14196:15;2913:13713;14155:58;;:::i;:::-;2913:13713;;;14276:16;;;14272:104;;14417:20;2913:13713;;;;14597:24;;;;;;2913:13713;;;;;16551:66;2913:13713;;16453:53;2913:13713;;;;;;;;;;;;14809:35;2913:13713;;;14809:35;2913:13713;;;;14809:35;:::i;:::-;2913:13713;;;;14809:35;2913:13713;;;14858:49;;2913:13713;;;;;14858:49;:::i;:::-;2913:13713;;;;14858:49;2913:13713;14593:1788;2913:13713;16453:5;;:53;:::i;:::-;2913:13713;;;;;;;;;;;;;;;;;;;;;;;;;16551:66;;13970:2654::o;14593:1788::-;15113:25;;;;;;;;;;;2913:13713;;16551:66;2913:13713;;;16453:53;2913:13713;;;;;;;;;15158:23;2913:13713;;;;15154:1217;;14593:1788;;;;;;15154:1217;15264:43;;;:::i;:::-;15434:18;2913:13713;;;;;;;;15434:50;;;;;:::i;:::-;2913:13713;;;;;;15844:45;15840:137;;15154:1217;2913:13713;;;;16081:16;;16077:280;;15154:1217;;;;;;16077:280;16188:30;16121:45;;;;;;2913:13713;16121:45;;:::i;16188:30::-;2913:13713;;;;;;;;;;;;;;;;;16284:54;2913:13713;;;;16284:54;;16077:280;;;;;;;;15840:137;15913:45;-1:-1:-1;15840:137:110;;;14272:104;2913:13713;14315:50;;2913:13713;14315:50;2913:13713;14315:50;2913:13713;;;14315:50;2913:13713;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::o;:::-;;;;;;;;;;11279:1340;;11520:18;2913:13713;;;;;;;11508:30;;11504:69;;11676:16;;2913:13713;;;-1:-1:-1;2913:13713:110;;11708:17;;;;:::o;11659:954::-;11934:17;;;;18999:39:55;11934:17:110;2913:13713;;;18999:39:55;:::i;:::-;2953:19:50;2913:13713:110;2953:19:50;;2949:102;;2913:13713:110;12507:29;12506:47;2913:13713;;12435:25;2913:13713;;;;;;12575:27;2913:13713;;;;;;;;;;;12435:25;;:::i;:::-;2913:13713;12507:29;:::i;:::-;12506:47;:::i;:::-;2913:13713;12575:27;;:::i;:::-;12568:34;:::o;2949:102:50:-;2991:53;;2913:13713:110;2991:53:50;;2913:13713:110;;;2991:53:50;11504:69:110;11554:8;;;;2913:13713;11554:8;:::o;1219:160:9:-;1328:43;1219:160;2913:13713:110;;;1328:43:9;2913:13713:110;1328:43:9;;;;2913:13713:110;1328:43:9;;;2913:13713:110;;;;;1328:43:9;;;;;;;:::i;:::-;1219:160::o;12704:935:110:-;2913:13713;12874:18;2913:13713;;12874:23;;;12870:62;;13045:16;2913:13713;;13065:35;2913:13713;;;;;;;13045:55;;13041:94;;2913:13713;13546:31;2913:13713;13545:74;2913:13713;;;13546:31;;:::i;13545:74::-;2913:13713;9344:25:22;;9340:105;;2913:13713:110;;12704:935;:::o;9340:105:22:-;9392:42;2913:13713:110;9392:42:22;9423:3;9392:42;2913:13713:110;;;;;9392:42:22;12870:62:110;12913:8;;2913:13713;12913:8;:::o;7030:321:114:-;2913:13713:110;7164:9:114;2913:13713:110;;7164:23:114;7160:70;;2913:13713:110;;;;7301:43:114;;;7321:11;7301:43;7321:11;2913:13713:110;7321:11:114;2913:13713:110;7301:43:114;;;;;;;2913:13713:110;7301:43:114;;;7294:50;7030:321;:::o;7301:43::-;;;;;;;;;;;;;;;;;:::i;:::-;;;2913:13713:110;;;;;;;;;;;;7030:321:114;:::o;7301:43::-;;;-1:-1:-1;7301:43:114;;6440:541;6620:13;6637:16;6620:33;6637:16;;6676:24;6669:31;:::o;6616:359::-;2913:13713:110;;6850:100:114;;;2913:13713:110;540:80:130;2913:13713:110;;917:38:130;2913:13713:110;917:38:130;;2913:13713:110;6620:13:114;917:38:130;;;2913:13713:110;6944:4:114;917:38:130;;;2913:13713:110;917:38:130;6850:100:114;;;;;;:::i;:::-;2913:13713:110;6823:141:114;;6816:148;:::o;8370:720:9:-;;-1:-1:-1;8507:421:9;8370:720;8507:421;;;;;;;;;;;;-1:-1:-1;8507:421:9;;8942:15;;2913:13713:110;;;;8960:26:9;:31;8942:68;8938:146;;8370:720;:::o;8938:146::-;2913:13713:110;9033:40:9;;-1:-1:-1;9033:40:9;2913:13713:110;9033:40:9;2913:13713:110;;-1:-1:-1;9033:40:9;8942:68;9009:1;8994:16;;8942:68;;7452:1058:114;;3993:249:18;7452:1058:114;;;;7746:18;;:::i;:::-;3993:249:18;;;;;;;;;;;;;;;;2913:13713:110;;;;:::i;:::-;;;3993:249:18;2913:13713:110;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;2913:13713:110;8252:92:114;2913:13713:110;;;;;;;;;8252:92:114;:::i;:::-;8405:17;8401:103;;7452:1058::o;8401:103::-;8445:48;-1:-1:-1;8445:48:114;;-1:-1:-1;8445:48:114;19680:819:25;;;;19794:150;;;;;;;;;;;;;;;;;;19954:10;;19950:86;;1605:4;20046:13;;;20042:74;;20145:352;;;1605:4;20145:352;;;;;;;;;;;;;;;;19680:819;:::o;20042:74::-;20078:31;;;2913:13713:110;20078:31:25;;2913:13713:110;;;;;20078:31:25;19950:86;-1:-1:-1;;1605:4:25;2913:13713:110;;;-1:-1:-1;20000:19:25:o;1041:429:19:-;;;1167:18;;;;1254:33;;;;:::i;:::-;2913:13713:110;;;;;;;1308:33:19;:56;;;;1301:63;;;:::o;1308:56::-;2913:13713:110;;;;;;;;1345:19:19;1301:63;:::o;1163:301::-;2913:13713:110;;;;2105:60:19;2913:13713:110;;;;2105:60:19;;;;;;;;;;;;;2913:13713:110;;;;;;;;;;;:::i;:::-;2105:60:19;;;;;;;;:::i;:::-;2074:101;;;;;;:::i;:::-;2193:42;;;1163:301;2193:134;;;1395:58;;:::o;2193:134::-;2913:13713:110;;2105:60:19;2913:13713:110;;;2251:29:19;;2913:13713:110;;;;2105:60:19;2251:29;2913:13713:110;2105:60:19;2251:76;;1395:58::o;2193:42::-;2913:13713:110;;2105:60:19;2913:13713:110;;2216:19:19;;2193:42;;;2129:778:15;2913:13713:110;;;2129:778:15;2319:2;2299:22;;2319:2;;2751:25;2535:196;;;;;;;;;;;;;;;-1:-1:-1;2535:196:15;2751:25;;:::i;:::-;2744:32;;;;;:::o;2295:606::-;2807:83;;2823:1;2807:83;2827:35;2807:83;;:::o;5203:1551::-;;;6283:66;6270:79;;6266:164;;2913:13713:110;;;;;;-1:-1:-1;2913:13713:110;;;;;;;;;;;;;;;;;;;6541:24:15;;;;;;;;;-1:-1:-1;6541:24:15;2913:13713:110;;;6579:20:15;6575:113;;6698:49;-1:-1:-1;6698:49:15;-1:-1:-1;5203:1551:15;:::o;6575:113::-;6615:62;-1:-1:-1;6615:62:15;6541:24;6615:62;-1:-1:-1;6615:62:15;:::o;6266:164::-;6365:54;;;6381:1;6365:54;6385:30;6365:54;;:::o",
    "linkReferences": {},
    "immutableReferences": {
      "57187": [
        { "start": 3124, "length": 32 },
        { "start": 9404, "length": 32 }
      ],
      "57192": [
        { "start": 1999, "length": 32 },
        { "start": 9068, "length": 32 }
      ],
      "57196": [
        { "start": 2128, "length": 32 },
        { "start": 5989, "length": 32 },
        { "start": 9008, "length": 32 }
      ],
      "57200": [
        { "start": 1657, "length": 32 },
        { "start": 2802, "length": 32 },
        { "start": 8952, "length": 32 }
      ],
      "57942": [
        { "start": 2576, "length": 32 },
        { "start": 7068, "length": 32 }
      ],
      "57947": [
        { "start": 875, "length": 32 },
        { "start": 1089, "length": 32 },
        { "start": 4138, "length": 32 },
        { "start": 5680, "length": 32 }
      ],
      "57951": [
        { "start": 753, "length": 32 },
        { "start": 817, "length": 32 },
        { "start": 2209, "length": 32 },
        { "start": 2961, "length": 32 },
        { "start": 3575, "length": 32 },
        { "start": 7122, "length": 32 },
        { "start": 9713, "length": 32 }
      ],
      "57955": [
        { "start": 2063, "length": 32 },
        { "start": 5410, "length": 32 },
        { "start": 6766, "length": 32 },
        { "start": 8006, "length": 32 }
      ],
      "57964": [
        { "start": 3020, "length": 32 },
        { "start": 7547, "length": 32 }
      ],
      "57969": [
        { "start": 2511, "length": 32 },
        { "start": 4606, "length": 32 },
        { "start": 5255, "length": 32 },
        { "start": 8428, "length": 32 }
      ],
      "58575": [{ "start": 9843, "length": 32 }],
      "58578": [{ "start": 9881, "length": 32 }]
    }
  },
  "methodIdentifiers": {
    "AGGREGATE_AMOUNT()": "4b45ecd3",
    "CAMPAIGN_START_TIME()": "7ca3944d",
    "CLAIM_TYPE()": "eb8cd775",
    "COMPTROLLER()": "5f82c67e",
    "EXPIRATION()": "bb4b5734",
    "IS_SABLIER_MERKLE()": "7423649b",
    "MERKLE_ROOT()": "51e75e8b",
    "TOKEN()": "82bfefc8",
    "UNLOCK_PERCENTAGE()": "be2ccd2b",
    "VESTING_END_TIME()": "ae1a43a5",
    "VESTING_START_TIME()": "6c0b1e8c",
    "admin()": "f851a440",
    "attestor()": "cada25c2",
    "calculateClaimAmount(uint128,uint40)": "106a0fee",
    "calculateForgoneAmount(uint128,uint40)": "caece538",
    "calculateMinFeeWei()": "3a12a5bc",
    "calculateRedistributionRewards(uint128)": "c0993d21",
    "campaignName()": "0724fda9",
    "claimTo(uint256,address,uint128,bytes32[])": "0854a79c",
    "claimViaAttestation(uint256,address,uint128,uint40,bytes32[],bytes)": "e74f822d",
    "claimViaSig(uint256,address,address,uint128,uint40,bytes32[],bytes)": "20743583",
    "clawback(address,uint128)": "1686c909",
    "domainSeparator()": "f698da25",
    "enableRedistribution()": "051823a2",
    "firstClaimTime()": "82d72f7f",
    "hasClaimed(uint256)": "ce516507",
    "hasExpired()": "90e64d13",
    "ipfsCID()": "49fc73dd",
    "isRedistributionEnabled()": "db05a050",
    "lowerMinFeeUSD(uint256)": "8ec68869",
    "minFeeUSD()": "4e0bb8cc",
    "setAttestor(address)": "f5770b1f",
    "sponsor(address,uint128,address)": "2481a13a",
    "totalForgoneAmount()": "5faaa89a",
    "totalRedistributionAmountPaid()": "61a7dcd4",
    "transferAdmin(address)": "75829def"
  },
  "rawMetadata": "{\"compiler\":{\"version\":\"0.8.29+commit.ab55807c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"uint128\",\"name\":\"aggregateAmount\",\"type\":\"uint128\"},{\"internalType\":\"string\",\"name\":\"campaignName\",\"type\":\"string\"},{\"internalType\":\"uint40\",\"name\":\"campaignStartTime\",\"type\":\"uint40\"},{\"internalType\":\"enum ClaimType\",\"name\":\"claimType\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"enableRedistribution\",\"type\":\"bool\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"},{\"internalType\":\"address\",\"name\":\"initialAdmin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"ipfsCID\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"UD60x18\",\"name\":\"unlockPercentage\",\"type\":\"uint256\"},{\"internalType\":\"uint40\",\"name\":\"vestingEndTime\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"vestingStartTime\",\"type\":\"uint40\"}],\"internalType\":\"struct MerkleVCA.ConstructorParams\",\"name\":\"campaignParams\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"campaignCreator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"comptroller\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"CallerNotAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"name\":\"PRBMath_MulDiv18_Overflow\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"UD60x18\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"PRBMath_UD60x18_IntoUint128_Overflow\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"comptroller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"SablierMerkleBase_CallerNotComptroller\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"name\":\"SablierMerkleBase_CampaignExpired\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint40\",\"name\":\"campaignStartTime\",\"type\":\"uint40\"}],\"name\":\"SablierMerkleBase_CampaignNotStarted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"firstClaimTime\",\"type\":\"uint40\"}],\"name\":\"SablierMerkleBase_ClawbackNotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"feeRecipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"}],\"name\":\"SablierMerkleBase_FeeTransferFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"SablierMerkleBase_IndexClaimed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"feePaid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minFeeWei\",\"type\":\"uint256\"}],\"name\":\"SablierMerkleBase_InsufficientFeePayment\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SablierMerkleBase_InvalidProof\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"currentMinFeeUSD\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newMinFeeUSD\",\"type\":\"uint256\"}],\"name\":\"SablierMerkleBase_NewMinFeeUSDNotLower\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SablierMerkleBase_SponsorAmountZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SablierMerkleBase_ToZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum ClaimType\",\"name\":\"claimTypeRequired\",\"type\":\"uint8\"},{\"internalType\":\"enum ClaimType\",\"name\":\"claimTypeSupported\",\"type\":\"uint8\"}],\"name\":\"SablierMerkleBase_UnsupportedClaimType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expireAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blockTimestamp\",\"type\":\"uint256\"}],\"name\":\"SablierMerkleSignature_AttestationExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SablierMerkleSignature_AttestorNotSet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"campaignAdmin\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"comptroller\",\"type\":\"address\"}],\"name\":\"SablierMerkleSignature_CallerNotAuthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SablierMerkleSignature_InvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"validFrom\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"blockTimestamp\",\"type\":\"uint40\"}],\"name\":\"SablierMerkleSignature_SignatureNotYetValid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"SablierMerkleVCA_ClaimAmountZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SablierMerkleVCA_RedistributionAlreadyEnabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SablierMerkleVCA_RedistributionNotEnabled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"vestingEndTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blockTimestamp\",\"type\":\"uint256\"}],\"name\":\"SablierMerkleVCA_VestingEndTimeNotInFuture\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"claimTime\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"vestingStartTime\",\"type\":\"uint40\"}],\"name\":\"SablierMerkleVCA_VestingNotStarted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"claimAmount\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"forgoneAmount\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"viaSig\",\"type\":\"bool\"}],\"name\":\"ClaimVCA\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"}],\"name\":\"Clawback\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EnableRedistribution\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"comptroller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMinFeeUSD\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previousMinFeeUSD\",\"type\":\"uint256\"}],\"name\":\"LowerMinFeeUSD\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"RedistributeReward\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousAttestor\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAttestor\",\"type\":\"address\"}],\"name\":\"SetAttestor\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"biller\",\"type\":\"address\"}],\"name\":\"Sponsor\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldAdmin\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"TransferAdmin\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"AGGREGATE_AMOUNT\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CAMPAIGN_START_TIME\",\"outputs\":[{\"internalType\":\"uint40\",\"name\":\"\",\"type\":\"uint40\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CLAIM_TYPE\",\"outputs\":[{\"internalType\":\"enum ClaimType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COMPTROLLER\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"EXPIRATION\",\"outputs\":[{\"internalType\":\"uint40\",\"name\":\"\",\"type\":\"uint40\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IS_SABLIER_MERKLE\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MERKLE_ROOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TOKEN\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UNLOCK_PERCENTAGE\",\"outputs\":[{\"internalType\":\"UD60x18\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VESTING_END_TIME\",\"outputs\":[{\"internalType\":\"uint40\",\"name\":\"\",\"type\":\"uint40\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VESTING_START_TIME\",\"outputs\":[{\"internalType\":\"uint40\",\"name\":\"\",\"type\":\"uint40\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"attestor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"fullAmount\",\"type\":\"uint128\"},{\"internalType\":\"uint40\",\"name\":\"claimTime\",\"type\":\"uint40\"}],\"name\":\"calculateClaimAmount\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"fullAmount\",\"type\":\"uint128\"},{\"internalType\":\"uint40\",\"name\":\"claimTime\",\"type\":\"uint40\"}],\"name\":\"calculateForgoneAmount\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"calculateMinFeeWei\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"fullAmount\",\"type\":\"uint128\"}],\"name\":\"calculateRedistributionRewards\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"campaignName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"fullAmount\",\"type\":\"uint128\"},{\"internalType\":\"bytes32[]\",\"name\":\"merkleProof\",\"type\":\"bytes32[]\"}],\"name\":\"claimTo\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"fullAmount\",\"type\":\"uint128\"},{\"internalType\":\"uint40\",\"name\":\"expireAt\",\"type\":\"uint40\"},{\"internalType\":\"bytes32[]\",\"name\":\"merkleProof\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"attestation\",\"type\":\"bytes\"}],\"name\":\"claimViaAttestation\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"fullAmount\",\"type\":\"uint128\"},{\"internalType\":\"uint40\",\"name\":\"validFrom\",\"type\":\"uint40\"},{\"internalType\":\"bytes32[]\",\"name\":\"merkleProof\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"claimViaSig\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"}],\"name\":\"clawback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"domainSeparator\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableRedistribution\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"firstClaimTime\",\"outputs\":[{\"internalType\":\"uint40\",\"name\":\"\",\"type\":\"uint40\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"hasClaimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hasExpired\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ipfsCID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isRedistributionEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newMinFeeUSD\",\"type\":\"uint256\"}],\"name\":\"lowerMinFeeUSD\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minFeeUSD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAttestor\",\"type\":\"address\"}],\"name\":\"setAttestor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"},{\"internalType\":\"address\",\"name\":\"biller\",\"type\":\"address\"}],\"name\":\"sponsor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalForgoneAmount\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalRedistributionAmountPaid\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"transferAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"events\":{\"TransferAdmin(address,address)\":{\"params\":{\"newAdmin\":\"The address of the new admin.\",\"oldAdmin\":\"The address of the old admin.\"}}},\"kind\":\"dev\",\"methods\":{\"calculateClaimAmount(uint128,uint40)\":{\"details\":\"This is for informational purposes only. To actually claim the airdrop, a Merkle proof is required.\",\"params\":{\"claimTime\":\"A hypothetical time at which to make the claim. Zero is a sentinel value for `block.timestamp`.\",\"fullAmount\":\"The amount of tokens allocated to a user, denominated in the token's decimals.\"},\"returns\":{\"_0\":\"The amount that would be claimed, denominated in the token's decimals.\"}},\"calculateForgoneAmount(uint128,uint40)\":{\"details\":\"This is for informational purposes only. Reverts if the claim time is less than the vesting start time, since the claim cannot be made, no amount can be forgone.\",\"params\":{\"claimTime\":\"A hypothetical time at which to make the claim. Zero is a sentinel value for `block.timestamp`.\",\"fullAmount\":\"The amount of tokens allocated to a user, denominated in the token's decimals.\"},\"returns\":{\"_0\":\"The amount that would be forgone, denominated in the token's decimals.\"}},\"calculateRedistributionRewards(uint128)\":{\"details\":\"Notes: - Reverts if redistribution is not enabled. - If `AGGREGATE_AMOUNT` is set lower than actual total allocations in the Merkle tree, this might return 0 rather than reverting.\",\"params\":{\"fullAmount\":\"The amount of tokens that the redistribution rewards are to be calculated for.\"}},\"claimTo(uint256,address,uint128,bytes32[])\":{\"details\":\"It emits a {ClaimVCA} event, and a {RedistributeReward} event if the redistribution is enabled. Notes: - There can be a race condition among recipients if:   1. `AGGREGATE_AMOUNT` is set lower than the actual total allocations in the Merkle tree.   2. The campaign is not sufficiently funded with the actual total allocations. - The rewards are transferred to the recipients at the time of claiming. If the campaign creator turns the redistribution on after the vesting end time, the recipients who have already claimed the full amount would miss on the rewards while subsequent recipients would get them. Requirements: - `CLAIM_TYPE` must be `DEFAULT`. - The current time must be greater than or equal to the campaign start time. - The campaign must not have expired. - `msg.value` must not be less than the value returned by {COMPTROLLER.calculateMinFeeWei}. - The `index` must not be claimed already. - The Merkle proof must be valid. - The claim amount must be greater than zero. - `msg.sender` must be the airdrop recipient. - The `to` must not be the zero address.\",\"params\":{\"fullAmount\":\"The total amount of ERC-20 tokens allocated to the recipient.\",\"index\":\"The index of the `msg.sender` in the Merkle tree.\",\"merkleProof\":\"The proof of inclusion in the Merkle tree.\",\"to\":\"The address receiving the ERC-20 tokens on behalf of `msg.sender`.\"}},\"claimViaAttestation(uint256,address,uint128,uint40,bytes32[],bytes)\":{\"details\":\"It emits a {ClaimVCA} event. Notes: - The attestation must be an EIP-712 signature from the attestor. - See the example in the {claimViaSig} function. - If the attestor is not set in the campaign, the attestor from the comptroller is used. Requirements: - `msg.sender` must be the airdrop recipient. - `CLAIM_TYPE` must be `ATTEST`. - The `to` must not be the zero address. - The attestor must not be the zero address. - The `expireAt` timestamp must not be in the past. - The attestation signature must be valid. - Refer to the requirements in {claimTo}.\",\"params\":{\"attestation\":\"The EIP-712 signature from the attestor.\",\"expireAt\":\"The timestamp after which the attestation signature is no longer valid.\",\"fullAmount\":\"The total amount of ERC-20 tokens allocated to the `msg.sender`.\",\"index\":\"The index of the `msg.sender` in the Merkle tree.\",\"merkleProof\":\"The proof of inclusion in the Merkle tree.\",\"to\":\"The address receiving the ERC-20 tokens on behalf of `msg.sender`.\"}},\"claimViaSig(uint256,address,address,uint128,uint40,bytes32[],bytes)\":{\"details\":\"It emits a {ClaimVCA} event. Requirements: - `CLAIM_TYPE` must be `DEFAULT`. - If `recipient` is an EOA, it must match the recovered signer. - If `recipient` is a contract, it must implement the IERC-1271 interface. - The `to` must not be the zero address. - The `validFrom` must be less than or equal to the current block timestamp. - Refer to the requirements in {claimTo} except that there are no restrictions on `msg.sender`. Below is the example of typed data to be signed by the airdrop recipient, referenced from https://docs.metamask.io/wallet/how-to/sign-data/#example. ```json types: {   EIP712Domain: [     { name: \\\"name\\\", type: \\\"string\\\" },     { name: \\\"chainId\\\", type: \\\"uint256\\\" },     { name: \\\"verifyingContract\\\", type: \\\"address\\\" },   ],   Claim: [     { name: \\\"index\\\", type: \\\"uint256\\\" },     { name: \\\"recipient\\\", type: \\\"address\\\" },     { name: \\\"to\\\", type: \\\"address\\\" },     { name: \\\"amount\\\", type: \\\"uint128\\\" },     { name: \\\"validFrom\\\", type: \\\"uint40\\\" },   ], }, domain: {   name: \\\"Sablier Airdrops Protocol\\\",   chainId: 1, // Chain on which the contract is deployed   verifyingContract: \\\"0xTheAddressOfThisContract\\\", // The address of this contract }, primaryType: \\\"Claim\\\", message: {   index: 2, // The index of the signer in the Merkle tree   recipient: \\\"0xTheAddressOfTheRecipient\\\", // The address of the airdrop recipient   to: \\\"0xTheAddressReceivingTheTokens\\\", // The address where recipient wants to transfer the tokens   amount: \\\"1000000000000000000000\\\", // The amount of tokens allocated to the recipient   validFrom: 1752425637 // The timestamp from which the claim signature is valid }, ```\",\"params\":{\"fullAmount\":\"The total amount of ERC-20 tokens allocated to the recipient.\",\"index\":\"The index of the recipient in the Merkle tree.\",\"merkleProof\":\"The proof of inclusion in the Merkle tree.\",\"recipient\":\"The address of the airdrop recipient who is providing the signature.\",\"signature\":\"The EIP-712 or EIP-1271 signature from the airdrop recipient.\",\"to\":\"The address receiving the ERC-20 tokens on behalf of the recipient.\",\"validFrom\":\"The timestamp from which the claim signature is valid.\"}},\"clawback(address,uint128)\":{\"details\":\"Emits a {Clawback} event. Requirements: - `msg.sender` must be the admin. - No claim must be made, OR   The current timestamp must not exceed 7 days after the first claim, OR   The campaign must be expired.\",\"params\":{\"amount\":\"The amount of tokens to claw back.\",\"to\":\"The address to receive the tokens.\"}},\"constructor\":{\"details\":\"Constructs the contract by initializing the immutable state variables.\"},\"enableRedistribution()\":{\"details\":\"Notes: - It is recommended to fund the campaign with the actual total allocation in the Merkle tree (ideally equivalent to `AGGREGATE_AMOUNT`) to avoid race conditions among the recipients. Requirements: - `msg.sender` must be the admin. - `VESTING_END_TIME` must be in the future. - Redistribution must not be already enabled.\"},\"hasClaimed(uint256)\":{\"details\":\"Uses a bitmap to save gas.\",\"params\":{\"index\":\"The index of the recipient to check.\"}},\"lowerMinFeeUSD(uint256)\":{\"details\":\"Emits a {LowerMinFeeUSD} event. Requirements: - `msg.sender` must be the comptroller. - The new fee must be less than the current {minFeeUSD}.\",\"params\":{\"newMinFeeUSD\":\"The new min USD fee to set, denominated in 8 decimals.\"}},\"setAttestor(address)\":{\"details\":\"Emits a {SetAttestor} event. Requirements: - `msg.sender` must be either the comptroller or the campaign admin.\",\"params\":{\"newAttestor\":\"The new attestor address. If zero, the attestor from the comptroller will be used.\"}},\"sponsor(address,uint128,address)\":{\"details\":\"Emits a {Sponsor} event. Notes: - This function only makes the payment. The claim fees are updated only after the payment has been verified off-chain. - Refer to the Sablier website in order to sponsor with the correct token, otherwise the sponsorship may be ignored. Requirements: - `biller` must not be the zero address. - `amount` must be greater than zero. - `token` must not be the zero address and must be a valid ERC20 token. - `msg.sender` must have approved the contract to spend the tokens.\",\"params\":{\"amount\":\"The amount of tokens to transfer.\",\"biller\":\"The address to receive the tokens.\",\"token\":\"The ERC-20 token to transfer.\"}},\"transferAdmin(address)\":{\"details\":\"Notes: - Does not revert if the admin is the same. - This function can potentially leave the contract without an admin, thereby removing any functionality that is only available to the admin. Requirements: - `msg.sender` must be the contract admin.\",\"params\":{\"newAdmin\":\"The address of the new admin.\"}}},\"stateVariables\":{\"_fullAmountAllocatedToEarlyClaimers\":{\"details\":\"Tracks the full amount allocated to the recipients who claimed before the vesting end time.\"}},\"title\":\"SablierMerkleVCA\",\"version\":1},\"userdoc\":{\"errors\":{\"CallerNotAdmin(address,address)\":[{\"notice\":\"Thrown when `msg.sender` is not the admin.\"}],\"PRBMath_MulDiv18_Overflow(uint256,uint256)\":[{\"notice\":\"Thrown when the resultant value in {mulDiv18} overflows uint256.\"}],\"PRBMath_UD60x18_IntoUint128_Overflow(uint256)\":[{\"notice\":\"Thrown when trying to cast a UD60x18 number that doesn't fit in uint128.\"}],\"SablierMerkleBase_CallerNotComptroller(address,address)\":[{\"notice\":\"Thrown when caller is not the comptroller.\"}],\"SablierMerkleBase_CampaignExpired(uint256,uint40)\":[{\"notice\":\"Thrown when trying to claim after the campaign has expired.\"}],\"SablierMerkleBase_CampaignNotStarted(uint256,uint40)\":[{\"notice\":\"Thrown when trying to claim before the campaign start time.\"}],\"SablierMerkleBase_ClawbackNotAllowed(uint256,uint40,uint40)\":[{\"notice\":\"Thrown when trying to clawback when the current timestamp is over the grace period and the campaign has not expired.\"}],\"SablierMerkleBase_FeeTransferFailed(address,uint256)\":[{\"notice\":\"Thrown if fee transfer fails.\"}],\"SablierMerkleBase_IndexClaimed(uint256)\":[{\"notice\":\"Thrown when trying to claim the same index more than once.\"}],\"SablierMerkleBase_InsufficientFeePayment(uint256,uint256)\":[{\"notice\":\"Thrown when trying to claim without paying the min fee.\"}],\"SablierMerkleBase_InvalidProof()\":[{\"notice\":\"Thrown when trying to claim with an invalid Merkle proof.\"}],\"SablierMerkleBase_NewMinFeeUSDNotLower(uint256,uint256)\":[{\"notice\":\"Thrown when trying to set a new min USD fee that is higher than the current fee.\"}],\"SablierMerkleBase_SponsorAmountZero()\":[{\"notice\":\"Thrown when trying to sponsor with a zero amount.\"}],\"SablierMerkleBase_ToZeroAddress()\":[{\"notice\":\"Thrown when trying to claim to the zero address.\"}],\"SablierMerkleBase_UnsupportedClaimType(uint8,uint8)\":[{\"notice\":\"Thrown when trying to call a claim function not supported in the campaign.\"}],\"SablierMerkleSignature_AttestationExpired(uint256,uint256)\":[{\"notice\":\"Thrown when the attestation signature has expired.\"}],\"SablierMerkleSignature_AttestorNotSet()\":[{\"notice\":\"Thrown when the attestor returns the zero address.\"}],\"SablierMerkleSignature_CallerNotAuthorized(address,address,address)\":[{\"notice\":\"Thrown when caller is not the comptroller or campaign admin.\"}],\"SablierMerkleSignature_InvalidSignature()\":[{\"notice\":\"Thrown when claiming with an invalid EIP-712 or EIP-1271 signature.\"}],\"SablierMerkleSignature_SignatureNotYetValid(uint40,uint40)\":[{\"notice\":\"Thrown when trying to claim with a signature that is not yet valid.\"}],\"SablierMerkleVCA_ClaimAmountZero(address)\":[{\"notice\":\"Thrown when the claim amount is zero.\"}],\"SablierMerkleVCA_RedistributionAlreadyEnabled()\":[{\"notice\":\"Thrown when trying to switch to redistribute strategy when already using it.\"}],\"SablierMerkleVCA_RedistributionNotEnabled()\":[{\"notice\":\"Thrown when trying to calculate the rewards amount without redistribution enabled.\"}],\"SablierMerkleVCA_VestingEndTimeNotInFuture(uint256,uint256)\":[{\"notice\":\"Thrown when trying to enable redistribution after the vesting end time.\"}],\"SablierMerkleVCA_VestingNotStarted(uint40,uint40)\":[{\"notice\":\"Thrown when calculating the forgone amount with claim time less than the vesting start time.\"}]},\"events\":{\"ClaimVCA(uint256,address,uint128,uint128,address,bool)\":{\"notice\":\"Emitted when an airdrop is claimed on behalf of an eligible recipient.\"},\"Clawback(address,address,uint128)\":{\"notice\":\"Emitted when the admin claws back the unclaimed tokens.\"},\"EnableRedistribution()\":{\"notice\":\"Emitted when the redistribution is enabled.\"},\"LowerMinFeeUSD(address,uint256,uint256)\":{\"notice\":\"Emitted when the min USD fee is lowered by the comptroller.\"},\"RedistributeReward(uint256,address,uint128,address)\":{\"notice\":\"Emitted when a recipient receives rewards from the forgone tokens pool.\"},\"SetAttestor(address,address,address)\":{\"notice\":\"Emitted when the address of the attestor is set in this contract.\"},\"Sponsor(address,address,uint128,address)\":{\"notice\":\"Emitted when campaign owner sponsors the claim fees for eligible recipients.\"},\"TransferAdmin(address,address)\":{\"notice\":\"Emitted when the admin is transferred.\"}},\"kind\":\"user\",\"methods\":{\"AGGREGATE_AMOUNT()\":{\"notice\":\"Retrieves the total amount of ERC-20 tokens allocated to the campaign.\"},\"CAMPAIGN_START_TIME()\":{\"notice\":\"The timestamp at which campaign starts and claim begins.\"},\"CLAIM_TYPE()\":{\"notice\":\"Retrieves the claim type supported by the campaign.\"},\"COMPTROLLER()\":{\"notice\":\"Retrieves the address of the comptroller contract.\"},\"EXPIRATION()\":{\"notice\":\"The cut-off point for the campaign, as a Unix timestamp. A value of zero means there is no expiration.\"},\"IS_SABLIER_MERKLE()\":{\"notice\":\"Returns `true` indicating that this campaign contract is deployed using the Sablier Factory.\"},\"MERKLE_ROOT()\":{\"notice\":\"The root of the Merkle tree used to validate the proofs of inclusion.\"},\"TOKEN()\":{\"notice\":\"The ERC-20 token to distribute.\"},\"UNLOCK_PERCENTAGE()\":{\"notice\":\"Retrieves the percentage of the full amount that will unlock immediately at the start time. The value is denominated as a fixed-point number where 1e18 is 100%.\"},\"VESTING_END_TIME()\":{\"notice\":\"Retrieves the time when the VCA airdrop is fully vested, as a Unix timestamp.\"},\"VESTING_START_TIME()\":{\"notice\":\"Retrieves the time when the VCA airdrop begins to unlock, as a Unix timestamp.\"},\"admin()\":{\"notice\":\"The address of the admin account or contract.\"},\"attestor()\":{\"notice\":\"Retrieves the attestor address used for creating attestation signatures.\"},\"calculateClaimAmount(uint128,uint40)\":{\"notice\":\"Calculates the amount that would be claimed if the claim were made at `claimTime`.\"},\"calculateForgoneAmount(uint128,uint40)\":{\"notice\":\"Calculates the amount that would be forgone if the claim were made at `claimTime`.\"},\"calculateMinFeeWei()\":{\"notice\":\"Calculates the minimum fee in wei required to claim the airdrop.\"},\"calculateRedistributionRewards(uint128)\":{\"notice\":\"Calculates the redistribution rewards for a given full amount.\"},\"campaignName()\":{\"notice\":\"Retrieves the name of the campaign.\"},\"claimTo(uint256,address,uint128,bytes32[])\":{\"notice\":\"Claim airdrop. If the vesting end time is in the future, it calculates the claim amount to transfer to the `to` address, otherwise it transfers the full amount. If the redistribution is enabled, it calculates the reward amount based on the total amount of tokens forgone by early claimers and transfers it to the recipients claiming after the vesting end time.\"},\"claimViaAttestation(uint256,address,uint128,uint40,bytes32[],bytes)\":{\"notice\":\"Claim airdrop using an external attestation from a trusted attestor (e.g., KYC verifier). If the vesting end time is in the future, it calculates the claim amount to transfer to the `to` address, otherwise it transfers the full amount.\"},\"claimViaSig(uint256,address,address,uint128,uint40,bytes32[],bytes)\":{\"notice\":\"Claim airdrop on behalf of eligible recipient using an EIP-712 or EIP-1271 signature. If the vesting end time is in the future, it calculates the claim amount to transfer to the `to` address, otherwise it transfers the full amount.\"},\"clawback(address,uint128)\":{\"notice\":\"Claws back the unclaimed tokens.\"},\"domainSeparator()\":{\"notice\":\"The domain separator, as required by EIP-712 and EIP-1271, used for signing claims to prevent replay attacks across different campaigns.\"},\"enableRedistribution()\":{\"notice\":\"Enable the redistribution of forgone tokens among recipients claiming after the vesting end time, proportional to their allocation amount. Once enabled, it cannot be disabled.\"},\"firstClaimTime()\":{\"notice\":\"Retrieves the timestamp when the first claim is made, and zero if no claim was made yet.\"},\"hasClaimed(uint256)\":{\"notice\":\"Returns a flag indicating whether a claim has been made for a given index.\"},\"hasExpired()\":{\"notice\":\"Returns a flag indicating whether the campaign has expired.\"},\"ipfsCID()\":{\"notice\":\"The content identifier for indexing the campaign on IPFS.\"},\"isRedistributionEnabled()\":{\"notice\":\"Retrieves a bool indicating whether the redistribution of forgone tokens is enabled or not.\"},\"lowerMinFeeUSD(uint256)\":{\"notice\":\"Lowers the min USD fee.\"},\"minFeeUSD()\":{\"notice\":\"Retrieves the min USD fee required to claim the airdrop, denominated in 8 decimals.\"},\"setAttestor(address)\":{\"notice\":\"Sets the attestor address used for verifying attestation signatures.\"},\"sponsor(address,uint128,address)\":{\"notice\":\"Sponsors the claim fees for eligible recipients.\"},\"totalForgoneAmount()\":{\"notice\":\"Retrieves the total amount of tokens forgone by early claimers.\"},\"totalRedistributionAmountPaid()\":{\"notice\":\"Retrieves the total amount of redistribution rewards paid out.\"},\"transferAdmin(address)\":{\"notice\":\"Transfers the contract admin to a new address.\"}},\"notice\":\"See the documentation in {ISablierMerkleVCA}.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/SablierMerkleVCA.sol\":\"SablierMerkleVCA\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":60000},\"remappings\":[\":@arbitrum/=node_modules/@arbitrum/\",\":@chainlink/=node_modules/@chainlink/\",\":@eth-optimism/=node_modules/@eth-optimism/\",\":@offchainlabs/=node_modules/@offchainlabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@prb/=node_modules/@prb/\",\":@sablier/=node_modules/@sablier/\",\":@scroll-tech/=node_modules/@scroll-tech/\",\":@zksync/=node_modules/@zksync/\",\":forge-std/=node_modules/forge-std/\",\":murky/=node_modules/murky/\",\":openzeppelin-contracts/=node_modules/murky/lib/openzeppelin-contracts/\",\":solady/=node_modules/solady/\",\":solarray/=node_modules/solarray/\"],\"viaIR\":true},\"sources\":{\"node_modules/@openzeppelin/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x3d4cd07258d675b6dfa3d9dfd623a77b38fb9935f4a5381ff4bc969948720976\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30abb60a4d98ad9a33de4fa5e9072342e12df3a79e9c71b5f59ce049ae8cd535\",\"dweb:/ipfs/QmT6NXJDjsf8H14nPYQsFELDB8q5ZTmG9cjdX2bEQJW7ST\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508\",\"dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x81c274a60a7ae232ae3dc9ff3a4011b4849a853c13b0832cd3351bb1bb2f0dae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9da0c20dc74358a2a76330818f3bac9d1e2ce3371aec847b9cbf5d147fbae4f6\",\"dweb:/ipfs/QmeczhmnFv1hbXKGLwbYXY6Rrytc9a5A2YaRi5QMMgjPnb\"]},\"node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"node_modules/@openzeppelin/contracts/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x8cbd338f083224b4b6f0ff42cbda641a0a6c31ffcdca197452b97fe4d0918269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f517dec5ba0c6491395acbf7f1d621f4e89e8f218bf5303c867b1c5ad70c6b11\",\"dweb:/ipfs/QmWmXHRLEw8W6ckth7NyYTU88YfvuS7xSsfae5ksL8qNUe\"]},\"node_modules/@openzeppelin/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0x36a0c409c437a753cac9b92b75f93b0fbe92803bf2c8ff1517e54b247f166134\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f91ba472de411aa557cdbf6560c40750d87bd11c9060bc04d2ba7119af9d5a6\",\"dweb:/ipfs/QmQjtYo2i7dDvzCEzZ67bDoNSG4RrwMoxPWuqFmX5Xzpuw\"]},\"node_modules/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"node_modules/@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0xbdc3bb48ccedb818cd75a6d74a16df55a822e9f6d3cc54c59f576f10aab67b5f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2284f25f2478f419d7781573b17a89d0e7c5589a865d55e2d6ed5163aee23aa8\",\"dweb:/ipfs/QmNsr2625APBQiNKpYnX5VcSnYgfUHR9Uzzp9pRXjoDqK7\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"node_modules/@openzeppelin/contracts/utils/structs/BitMaps.sol\":{\"keccak256\":\"0x3616f1b0d0a9ee1ca8f0953ecaceb9230e36f691c7974d30f964212acff52d2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4bebdd07b31ac28e3e596ac6f0333da90a4e332405aa7d65f3a3a7e0b4cf15e\",\"dweb:/ipfs/QmckoDU5bBnye2UtPcrfJNahLD2FbxrnPP9nrREMWPpnug\"]},\"node_modules/@prb/math/src/Common.sol\":{\"keccak256\":\"0x8225a3898d2f11f585da1fb82234800e9717fa080dbe53d450fd429a3a632e99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2dcbf39ca575f68f32f0d1c66391de94082424956e7585e849813966f8c0fc05\",\"dweb:/ipfs/QmYvk8vXFDUJHrmqbtutYXfoLomLBosYLyBzuPoYBxsQ42\"]},\"node_modules/@prb/math/src/UD60x18.sol\":{\"keccak256\":\"0xb98c6f74275914d279e8af6c502c2b1f50d5f6e1ed418d3b0153f5a193206c48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a750edde2955f160806a51083a12185fb04e20efca0e3a7ebd127dc1acc049a9\",\"dweb:/ipfs/QmeAre3mThopoQPB9mSXZq6jck59QZ7JbDFR83urd2SLvp\"]},\"node_modules/@prb/math/src/sd1x18/Casting.sol\":{\"keccak256\":\"0x5d365f655f01598926c5d4fe5cda277f2cc7736fe38f943c11a32009077ddd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://56b378bd6039819bc12e5f17dabd9492e1410b3281f9df496cf8210539101a11\",\"dweb:/ipfs/QmcMaE64ZWMg9cFhYxdTuG8nfzeDdNuTRHMMoFXi6tSZGu\"]},\"node_modules/@prb/math/src/sd1x18/Constants.sol\":{\"keccak256\":\"0xc14cc32061863d83912f9616de86f3c34f1ac58614b7d504c6ce07ee8efdb8e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://22483b1282dda6a556b0232f008a5a3296bbfd76b1886e6b72bf351b7c554fab\",\"dweb:/ipfs/QmYX9cYkrFxBbhZNKsb6uUxtrc2chmAj7vuc7UKRPGMwos\"]},\"node_modules/@prb/math/src/sd1x18/Errors.sol\":{\"keccak256\":\"0xc3c8b1ab3d19889c356c222a3a2186d45dfc1d3a17b9ad88159bb64ee457baa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://84fbe57569246403f778330bd7723018dfcb5f0ec50d7b1d82cc983c94a54bca\",\"dweb:/ipfs/QmWssAAnovc2EVjt58rTnxraE9B1RMivwTvYCYgpnr6oSE\"]},\"node_modules/@prb/math/src/sd1x18/ValueType.sol\":{\"keccak256\":\"0xaa9dc7b562faf45264390d80e2ea10c5295bb8a4f10d76261a3f9c04363734c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6ca36acd15f5cb47cf124ddec289f84e1011f2d29056159e4570435629a3353\",\"dweb:/ipfs/QmUKdiLmZpAkNCq2TKxrPbQPUhiRFXGfjGSnY1VeHVu4y6\"]},\"node_modules/@prb/math/src/sd21x18/Casting.sol\":{\"keccak256\":\"0x4a16adddb9ab1f6939dd4567c77205015a11081cb840029b84bbb6fdaf78ee36\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5003b2f4cd2fc1413da36bc63107c6e83a88d29693e8f97b54f300fa78f9c6d2\",\"dweb:/ipfs/QmaNJn91NLrZmeeGqnFQV1FTrLVSW852zHyWTrWJ5pf1pd\"]},\"node_modules/@prb/math/src/sd21x18/Constants.sol\":{\"keccak256\":\"0x501c2d5cfdea9450422182059c8df1cb6a859901a07bd59631c3fa24edcc79d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4669a65001c92919671fd879d33ce0e5030b602a7ba4d36bd2308128d8d1f396\",\"dweb:/ipfs/QmUC3bJ3qdkCmLMw3WHBcEqvuC4tExT2LXzUhgu5KQ3vi3\"]},\"node_modules/@prb/math/src/sd21x18/Errors.sol\":{\"keccak256\":\"0xc5422ee47eb139274e538e758fb40177a1ba22c2113ef3b3446102f0150bfe0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1981e052e9e86e1b0e4e55a057a7af4739aedd4ead2d60e3eaa40fb703594ee\",\"dweb:/ipfs/QmPK5qSujnyk1R8ues4RhDMy1tRKKyjQ31YJTviTKq7GML\"]},\"node_modules/@prb/math/src/sd21x18/ValueType.sol\":{\"keccak256\":\"0x532bba888370bed393464412f4ef3462d654802e71c953ad02d078e3d2701092\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://922a4e8dd813602f72d165aa1dfdf2c29b971a2abe73bebca7cd81a32ee2c880\",\"dweb:/ipfs/QmTBAJnx1r3sZpbQAuTgQtsTtvjZbpDwhCJRzkhzUumbdf\"]},\"node_modules/@prb/math/src/sd59x18/Casting.sol\":{\"keccak256\":\"0xdf70d8e70c6d6325f3f7eb028c484bc7189ef902f1d4b5b220af2e550bb5fc39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b15bcd36129c5cb163d57a117435afb171182018dd6d1e766a5f49cf1f4b63d\",\"dweb:/ipfs/QmbjzkMBH4FM2rdxGbx9LQ65wVERijNcu7R9C8dQmH3y4n\"]},\"node_modules/@prb/math/src/sd59x18/Constants.sol\":{\"keccak256\":\"0x9bcb8dd6b3e886d140ad1c32747a4f6d29a492529ceb835be878ae837aa6cc3a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4045c633e3618e7e90a768d92415b2f20f781fe129b4f4e26fa88f7dbf9201f\",\"dweb:/ipfs/Qmbet95pizwPno82cJ383wJtgQRSQKESmhVZ1vDrgAu7Si\"]},\"node_modules/@prb/math/src/sd59x18/Errors.sol\":{\"keccak256\":\"0x0a79c28c85fc8a450b0801ff2e66114eac4ec565819f5d1d8738904658fe33e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e0d4fd3c998019fb8555d9e26c03bec42a8513bdf4185aeac2da3a000abaebf\",\"dweb:/ipfs/QmahFJHXcX4RwPxaQbUf6LVZEk8NSpjCV3Eif7i9iqC6Mk\"]},\"node_modules/@prb/math/src/sd59x18/Helpers.sol\":{\"keccak256\":\"0x208570f1657cf730cb6c3d81aa14030e0d45cf906cdedea5059369d7df4bb716\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c78ca900edafa9338d4e3649a55ab0c84f76468d8a22fb945ba6d01e70f8fed\",\"dweb:/ipfs/QmeP4hQYfNxcATd1FsasdD4ebyu2vrC9K1N68swxUJzzZD\"]},\"node_modules/@prb/math/src/sd59x18/Math.sol\":{\"keccak256\":\"0xd8e8b51db9b3e2fa31a60f6b8ce4ea0112c3364442ede5992aa0aa7a2c925c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c56913970e34ee7b142047b21f1856a511cbdc3473b7c50418a8490e19cd462\",\"dweb:/ipfs/QmfG1F9CBDjPYD7NXora9awFfdpvBMY9SCg5pMLCFRv9tD\"]},\"node_modules/@prb/math/src/sd59x18/ValueType.sol\":{\"keccak256\":\"0x76597ba64d37d66e0178512bc9bbc1a031a7634c45e5d5c6e9da87f46952dc9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36148899ad874814e9292636fb974d2eec61f1bcc0875ec39cf444d70ba40919\",\"dweb:/ipfs/QmadUe4kH2FPcdxvhCKy8yiezCvPWor4VcPzqLYSAaGDDb\"]},\"node_modules/@prb/math/src/ud21x18/Casting.sol\":{\"keccak256\":\"0x3821aa57604f6e5b7c9c5c5cc97a6d71116e673cf3fee5f76fcd42b4cefded65\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a80399c6b38ab45cc10d0a6683d50340cd89d9a085b6d0dcfb81e7c4e5b3ce09\",\"dweb:/ipfs/QmWNW2YD2LMkqrpAtJYeeuHN329Rx7mvfmrjsCo1p6akTL\"]},\"node_modules/@prb/math/src/ud21x18/Constants.sol\":{\"keccak256\":\"0x0997574a1ced6c43bde6d9c9175edc5ad64cbb920a0969a9db68eea543747601\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c09f03345a6779b002b38ffc3954258accbb2b1d0d5506d42c3bd7f117304f60\",\"dweb:/ipfs/QmTeBXRCE7H2HpqKUNsZN7Nk3rdBnFmbAUFom3E1PJeGuV\"]},\"node_modules/@prb/math/src/ud21x18/Errors.sol\":{\"keccak256\":\"0x35a1fb789b90f8c90865884d3023deb17fcca5c7146b5ddef823496d835a5415\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0af359d07ba25bdc90de7c05ed6216833932caa75d4a02fcfc51ceeaba5a4e80\",\"dweb:/ipfs/QmavBFw73Xfp1qJiN6P1gk2Dfr8ByWo3dyCPVgDHtko2gq\"]},\"node_modules/@prb/math/src/ud21x18/ValueType.sol\":{\"keccak256\":\"0x24838b2b1da371b9259d8ee21534a9f0cb5796aba75a4efca2374627952bee25\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://897e6b79308651671c7f3c91a0069e778b47356c9ba3f86e238398ab7f2623af\",\"dweb:/ipfs/QmZbLw3tJVRZFQnV9jWQUmF43gna841adSG2TAiwDAifGU\"]},\"node_modules/@prb/math/src/ud2x18/Casting.sol\":{\"keccak256\":\"0x0f3141ed054e7c29dbe1acb4b88b18eb05d60e998fba6b4e503a6799faa356d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1e2468fc4c458082aaf4aa2e35af9ba3702f207e3c8533dd1e7da11ad605eae\",\"dweb:/ipfs/QmSm7iRH1eo4cJCwcAiiXWRH9Hn1urSS4tMdbaFbFGuTyL\"]},\"node_modules/@prb/math/src/ud2x18/Constants.sol\":{\"keccak256\":\"0x29b0e050c865899e1fb9022b460a7829cdee248c44c4299f068ba80695eec3fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbaef16b662fac235349bcf97bc980dd0cba15d4e6230caae61224cdac8ea6d9\",\"dweb:/ipfs/QmZQa5XBhi7k3yhtCd8wVpnwW8htfU4sjXxWhxRypMBYkC\"]},\"node_modules/@prb/math/src/ud2x18/Errors.sol\":{\"keccak256\":\"0x3b27e2a57438cd30d9c130f84aace24d547e5ed58e8689691d7d92ad2db38ddd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://841cf9fb45443899c6b659300bbf503c3fd2c1a1e83b7f0e28620eed457f7437\",\"dweb:/ipfs/QmUqg8WscP5yQPw3UMUCWaB9RLU6nryGzseuyhAjNnDc1i\"]},\"node_modules/@prb/math/src/ud2x18/ValueType.sol\":{\"keccak256\":\"0x975a2e69b48f34a4c0bd80e8a5609ac67b7264c91992c0944f9ebe7b9e3fc9d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://65d012521c475295d7e70b7d526fcc0911d0f238ea938719d77251bba00c9b41\",\"dweb:/ipfs/QmexEvTQCCBPYRWAYnomZX5M7C2EkXQRAXqEYMNUZfazCs\"]},\"node_modules/@prb/math/src/ud60x18/Casting.sol\":{\"keccak256\":\"0x0803318ddc98b4ba8fbfe70e5ee08d78387fe6ae00982b9960518085a751d7b6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e68a2f780b2e33fa5416eb60f9daa81f014c2591119f4b67bed1217d5530780\",\"dweb:/ipfs/QmZe7JTWvbfKqMnu4sxUwWCtLcCay9hH71VZUpoFCdENcr\"]},\"node_modules/@prb/math/src/ud60x18/Constants.sol\":{\"keccak256\":\"0x2b80d26153d3fdcfb3a9ca772d9309d31ed1275f5b8b54c3ffb54d3652b37d90\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e3a6673a156f635db94dc176baaa7274db8f9bec4461cd1152596253550ee3b\",\"dweb:/ipfs/Qmc9zT4kNSbMYaXcnbxNVqmb3P3m46ieaQxkwxqLwsvRA5\"]},\"node_modules/@prb/math/src/ud60x18/Conversions.sol\":{\"keccak256\":\"0xd486ecca97abe69acdb28230088f4c7097fbdae5b36c5ae45d5be2faac4c33f2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6080870ec6955ff0f5278f9c480b218a68714daf5f2ee42da0276d08d7b82932\",\"dweb:/ipfs/QmQ1SERHdemJgPrt4USwY8j5r63jZ8fQuJAm1knjMEEQEY\"]},\"node_modules/@prb/math/src/ud60x18/Errors.sol\":{\"keccak256\":\"0xbab6b0e303d32f3a9d9e2fe881f0392b8c59a73051a4d34f21a403b3961b3044\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://86a019bcf2510d0691287329dc057479cc0abc48a5e15f245e7f15c03052d2c8\",\"dweb:/ipfs/QmeXe5pbpDHvN5DZ8puXmH2RJ25zDHj55wpiStWtNQPvq6\"]},\"node_modules/@prb/math/src/ud60x18/Helpers.sol\":{\"keccak256\":\"0xf5faff881391d2c060029499a666cc5f0bea90a213150bb476fae8f02a5df268\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://76105fa22bb1b5f1fa99abf9c4fbc9577a02c7bc204f271754c407f0d75489f5\",\"dweb:/ipfs/QmVNGZSTniDuZus5DdbFubqJXCLtTaZit7YPm4ntjr5Lgr\"]},\"node_modules/@prb/math/src/ud60x18/Math.sol\":{\"keccak256\":\"0xc4e51dfd9af62938e277e90fa724099f239d33727a35909ed48c292a76faf2fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d731537cbc50b852c21d28625aeb2c329729afc23a7b86ff9d8ee5878f47e9d6\",\"dweb:/ipfs/QmS7Cj4pAdPZcTp7RqYXyxBc9EYX92CT8icfkNigktUsLr\"]},\"node_modules/@prb/math/src/ud60x18/ValueType.sol\":{\"keccak256\":\"0x1b200baf25d01a8b91b97b42114248636f742b5b7028487ef4daef6621e378a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5708ed017206bda2197654e80bea9f37b3a9993434bb066c903c2865e028f47\",\"dweb:/ipfs/QmTyotZk2J5YvWkNvB2qhXBMgRGWW2UgPqR4JPocrXSr8n\"]},\"node_modules/@sablier/evm-utils/src/Adminable.sol\":{\"keccak256\":\"0xaea48c23c0205dae155c0ab21c2076cf6cbdf6fdd299c32062b8b3818dd8cdca\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1aad150a317c741548197ba8428211c6fc3480697a6eebae7df71156c695fbfe\",\"dweb:/ipfs/QmX8xtEeck9zA6W4pktk5AMgCjrqPYKtzK9NxF66MxqfoQ\"]},\"node_modules/@sablier/evm-utils/src/interfaces/IAdminable.sol\":{\"keccak256\":\"0x3228d63e9b0b951030c73c42bb071e64f0ff0eadbcbeefad3f29a48366539c26\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://acc90ad2bec0e84349b56611b35b56bfb75a5930fd1babb2bd638fbbb15bd126\",\"dweb:/ipfs/QmSLnHx6bo4BQeBKYferfEhZo1Z4xCXdDF1bzJoHUafHt4\"]},\"node_modules/@sablier/evm-utils/src/interfaces/IRoleAdminable.sol\":{\"keccak256\":\"0x391cb4bd4bae01e3efdb84f63635644ed6329b72e8a5105ad53833551e8ba825\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://ccca9da1c044c15cf0b647a4572c05f5d498fb18b3685a85a8836f7110cb1bc4\",\"dweb:/ipfs/QmfAKHqvgKQUgpC6VomTjTkc1tDnsbVJD5bLn8wL8KuTFV\"]},\"node_modules/@sablier/evm-utils/src/interfaces/ISablierComptroller.sol\":{\"keccak256\":\"0x5c52e70a6c083611d4b5518d17d025f70d322ee2c61d81f20f3fe50f4bd824ba\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5c07b2076065f1c65a59176ada3459be53f78e59a2055d9ae92b226edafa484c\",\"dweb:/ipfs/QmXYRDkBSWUBza1pi439ErzeLoaLUT8Zvj2yWcFZ5F1rgX\"]},\"node_modules/@sablier/evm-utils/src/libraries/Errors.sol\":{\"keccak256\":\"0xc9a0fbcd6d582054420a32c538204ac7adb789320c6564f278ccf45baf4485c8\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://a4da46b25df4fe89ce9f0315e1ef6561554f72b2dc7edbc43bdcdf9d65e8b709\",\"dweb:/ipfs/QmNW4VtuPSsLULst92GJmmcTCRHu4n5ndU9Jb4MbVes1jp\"]},\"src/SablierMerkleVCA.sol\":{\"keccak256\":\"0x08ba88777cc3a8b8a032949cdf49afa51ce9a629013c0e398732bde23cafbcb1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a5d6b918f3407f1f2750d00c3df0710866700957bbe2548c12c74d6419b5947c\",\"dweb:/ipfs/QmRxMUNEWbVx383bryZPXWMBa6HJjkjakzvBtWwg1783Vo\"]},\"src/abstracts/SablierMerkleBase.sol\":{\"keccak256\":\"0x3ad01ea2b4659b1051be58d0370a3bd23a494b6b941ceb2a3b23b1db9eb4e223\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://bdc4ddfaf0f66757d289322b3990437f3be7c134d29d80a06da9e5d3b5883783\",\"dweb:/ipfs/QmbwXm6H5LjseDa3tHAujUYchqixb4xFAHk45HEU5B6k2Z\"]},\"src/abstracts/SablierMerkleSignature.sol\":{\"keccak256\":\"0x82a431ac2c5c379ba53cad9ff6b06e8f48c3cea12f3f834bf47eec24f935b2c3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://10040857ba92b56f3a1ae6e9f2ba8a6bf30bc14800eb366905b39111ba2b2658\",\"dweb:/ipfs/Qmd9RZR21u56RLzU8PWLFXV3P4KXUxUJsbhkphxRGQ9crT\"]},\"src/interfaces/ISablierMerkleBase.sol\":{\"keccak256\":\"0xfc4e9b4737765f3f66fb81390154aaff3f21ee63fd21bed441baf553ac090993\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://189aab3a9ddf0e72425cb3b6420129ce971da916967a920c3132e328e546abbb\",\"dweb:/ipfs/QmQZaV1yvBs6MBf5jzgboTYztsVLMi5q3L4JVowyn6Yhrp\"]},\"src/interfaces/ISablierMerkleSignature.sol\":{\"keccak256\":\"0x2e6e8cc3b951ddc10344883c08d662161efbd5fb5bc4672f77b51aa7ed8bf87d\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://dd48f5c162987c93e45f7f942b7f23817d81ef588bb776816a207639c91e6e4e\",\"dweb:/ipfs/QmQHyHxPG6YVt5BVMYKfb5YWX6cQdp5yMVHoP1u2U3E1ut\"]},\"src/interfaces/ISablierMerkleVCA.sol\":{\"keccak256\":\"0x03225dad17bf31b691522a733e1130615adc9530de777abbbcc2b733833b8046\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://e995929a61acde5553c28ad8fbd10598ec7fc3d3ac509b0fdb0f08a60a91227f\",\"dweb:/ipfs/QmYu4eb7dLj6giynvGedCxWDnjD2TDrDh7yDizaJdCu4HX\"]},\"src/libraries/Errors.sol\":{\"keccak256\":\"0xa3ee6c9b3c089af69190a861a83249eefdf17c699bc5d8d8eb09bf1f997b5287\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5143b3084210e8ca50ed060546d173443d54d76c8b7431f379ce3706bee6fcde\",\"dweb:/ipfs/QmTzArjMAKy2AmZgEhSA7MfQTNjvttZD7wTuV77zoWMgQi\"]},\"src/libraries/SignatureHash.sol\":{\"keccak256\":\"0xdda32b665c577cf8298f0ee041c392c3b4550acf0ed52f0b09d2d12f1f0e0b08\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://2ea6a30ea8fe835b2c348ee126763dab697d24295e7c284806a7bbb020e2b9e1\",\"dweb:/ipfs/QmaQ65PS4Sq8WraidCaQ7yQGt2Zc4Jv5uZQWmFUCRV3XVM\"]},\"src/types/MerkleBase.sol\":{\"keccak256\":\"0x33004c31ccf302e5da76dbb8476816db31c2c0984fb9c928c45528bbfdef6397\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://55b26d1a6beda8cb76043d2fde56445910ae3e88e8ab20d2c48678e4456beca3\",\"dweb:/ipfs/QmYrMXbpPcjzJen93uFXiBws7fauseuXZcQ9fpbsNbaGN8\"]},\"src/types/MerkleVCA.sol\":{\"keccak256\":\"0xf3a18cb59859a19df261de13f3943f6c572a4ee5397f5871fb68522d35238515\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d3c5a62c2ef30e6c653f59508e6cdb0f7244eacf6907ae959c1e73618177da89\",\"dweb:/ipfs/QmNYeLAQiY39SHYhfVpTrmacxHmQnN88T92ijLHQEfXamu\"]}},\"version\":1}",
  "metadata": {
    "compiler": { "version": "0.8.29+commit.ab55807c" },
    "language": "Solidity",
    "output": {
      "abi": [
        {
          "inputs": [
            {
              "internalType": "struct MerkleVCA.ConstructorParams",
              "name": "campaignParams",
              "type": "tuple",
              "components": [
                { "internalType": "uint128", "name": "aggregateAmount", "type": "uint128" },
                { "internalType": "string", "name": "campaignName", "type": "string" },
                { "internalType": "uint40", "name": "campaignStartTime", "type": "uint40" },
                { "internalType": "enum ClaimType", "name": "claimType", "type": "uint8" },
                { "internalType": "bool", "name": "enableRedistribution", "type": "bool" },
                { "internalType": "uint40", "name": "expiration", "type": "uint40" },
                { "internalType": "address", "name": "initialAdmin", "type": "address" },
                { "internalType": "string", "name": "ipfsCID", "type": "string" },
                { "internalType": "bytes32", "name": "merkleRoot", "type": "bytes32" },
                { "internalType": "contract IERC20", "name": "token", "type": "address" },
                { "internalType": "UD60x18", "name": "unlockPercentage", "type": "uint256" },
                { "internalType": "uint40", "name": "vestingEndTime", "type": "uint40" },
                { "internalType": "uint40", "name": "vestingStartTime", "type": "uint40" }
              ]
            },
            { "internalType": "address", "name": "campaignCreator", "type": "address" },
            { "internalType": "address", "name": "comptroller", "type": "address" }
          ],
          "stateMutability": "nonpayable",
          "type": "constructor"
        },
        {
          "inputs": [
            { "internalType": "address", "name": "admin", "type": "address" },
            { "internalType": "address", "name": "caller", "type": "address" }
          ],
          "type": "error",
          "name": "CallerNotAdmin"
        },
        {
          "inputs": [
            { "internalType": "uint256", "name": "x", "type": "uint256" },
            { "internalType": "uint256", "name": "y", "type": "uint256" }
          ],
          "type": "error",
          "name": "PRBMath_MulDiv18_Overflow"
        },
        {
          "inputs": [{ "internalType": "UD60x18", "name": "x", "type": "uint256" }],
          "type": "error",
          "name": "PRBMath_UD60x18_IntoUint128_Overflow"
        },
        {
          "inputs": [
            { "internalType": "address", "name": "comptroller", "type": "address" },
            { "internalType": "address", "name": "caller", "type": "address" }
          ],
          "type": "error",
          "name": "SablierMerkleBase_CallerNotComptroller"
        },
        {
          "inputs": [
            { "internalType": "uint256", "name": "blockTimestamp", "type": "uint256" },
            { "internalType": "uint40", "name": "expiration", "type": "uint40" }
          ],
          "type": "error",
          "name": "SablierMerkleBase_CampaignExpired"
        },
        {
          "inputs": [
            { "internalType": "uint256", "name": "blockTimestamp", "type": "uint256" },
            { "internalType": "uint40", "name": "campaignStartTime", "type": "uint40" }
          ],
          "type": "error",
          "name": "SablierMerkleBase_CampaignNotStarted"
        },
        {
          "inputs": [
            { "internalType": "uint256", "name": "blockTimestamp", "type": "uint256" },
            { "internalType": "uint40", "name": "expiration", "type": "uint40" },
            { "internalType": "uint40", "name": "firstClaimTime", "type": "uint40" }
          ],
          "type": "error",
          "name": "SablierMerkleBase_ClawbackNotAllowed"
        },
        {
          "inputs": [
            { "internalType": "address", "name": "feeRecipient", "type": "address" },
            { "internalType": "uint256", "name": "feeAmount", "type": "uint256" }
          ],
          "type": "error",
          "name": "SablierMerkleBase_FeeTransferFailed"
        },
        {
          "inputs": [{ "internalType": "uint256", "name": "index", "type": "uint256" }],
          "type": "error",
          "name": "SablierMerkleBase_IndexClaimed"
        },
        {
          "inputs": [
            { "internalType": "uint256", "name": "feePaid", "type": "uint256" },
            { "internalType": "uint256", "name": "minFeeWei", "type": "uint256" }
          ],
          "type": "error",
          "name": "SablierMerkleBase_InsufficientFeePayment"
        },
        { "inputs": [], "type": "error", "name": "SablierMerkleBase_InvalidProof" },
        {
          "inputs": [
            { "internalType": "uint256", "name": "currentMinFeeUSD", "type": "uint256" },
            { "internalType": "uint256", "name": "newMinFeeUSD", "type": "uint256" }
          ],
          "type": "error",
          "name": "SablierMerkleBase_NewMinFeeUSDNotLower"
        },
        { "inputs": [], "type": "error", "name": "SablierMerkleBase_SponsorAmountZero" },
        { "inputs": [], "type": "error", "name": "SablierMerkleBase_ToZeroAddress" },
        {
          "inputs": [
            { "internalType": "enum ClaimType", "name": "claimTypeRequired", "type": "uint8" },
            { "internalType": "enum ClaimType", "name": "claimTypeSupported", "type": "uint8" }
          ],
          "type": "error",
          "name": "SablierMerkleBase_UnsupportedClaimType"
        },
        {
          "inputs": [
            { "internalType": "uint256", "name": "expireAt", "type": "uint256" },
            { "internalType": "uint256", "name": "blockTimestamp", "type": "uint256" }
          ],
          "type": "error",
          "name": "SablierMerkleSignature_AttestationExpired"
        },
        { "inputs": [], "type": "error", "name": "SablierMerkleSignature_AttestorNotSet" },
        {
          "inputs": [
            { "internalType": "address", "name": "caller", "type": "address" },
            { "internalType": "address", "name": "campaignAdmin", "type": "address" },
            { "internalType": "address", "name": "comptroller", "type": "address" }
          ],
          "type": "error",
          "name": "SablierMerkleSignature_CallerNotAuthorized"
        },
        { "inputs": [], "type": "error", "name": "SablierMerkleSignature_InvalidSignature" },
        {
          "inputs": [
            { "internalType": "uint40", "name": "validFrom", "type": "uint40" },
            { "internalType": "uint40", "name": "blockTimestamp", "type": "uint40" }
          ],
          "type": "error",
          "name": "SablierMerkleSignature_SignatureNotYetValid"
        },
        {
          "inputs": [{ "internalType": "address", "name": "recipient", "type": "address" }],
          "type": "error",
          "name": "SablierMerkleVCA_ClaimAmountZero"
        },
        { "inputs": [], "type": "error", "name": "SablierMerkleVCA_RedistributionAlreadyEnabled" },
        { "inputs": [], "type": "error", "name": "SablierMerkleVCA_RedistributionNotEnabled" },
        {
          "inputs": [
            { "internalType": "uint256", "name": "vestingEndTime", "type": "uint256" },
            { "internalType": "uint256", "name": "blockTimestamp", "type": "uint256" }
          ],
          "type": "error",
          "name": "SablierMerkleVCA_VestingEndTimeNotInFuture"
        },
        {
          "inputs": [
            { "internalType": "uint40", "name": "claimTime", "type": "uint40" },
            { "internalType": "uint40", "name": "vestingStartTime", "type": "uint40" }
          ],
          "type": "error",
          "name": "SablierMerkleVCA_VestingNotStarted"
        },
        {
          "inputs": [
            { "internalType": "uint8", "name": "bits", "type": "uint8" },
            { "internalType": "uint256", "name": "value", "type": "uint256" }
          ],
          "type": "error",
          "name": "SafeCastOverflowedUintDowncast"
        },
        {
          "inputs": [{ "internalType": "address", "name": "token", "type": "address" }],
          "type": "error",
          "name": "SafeERC20FailedOperation"
        },
        {
          "inputs": [
            { "internalType": "uint256", "name": "index", "type": "uint256", "indexed": false },
            { "internalType": "address", "name": "recipient", "type": "address", "indexed": true },
            { "internalType": "uint128", "name": "claimAmount", "type": "uint128", "indexed": false },
            { "internalType": "uint128", "name": "forgoneAmount", "type": "uint128", "indexed": false },
            { "internalType": "address", "name": "to", "type": "address", "indexed": false },
            { "internalType": "bool", "name": "viaSig", "type": "bool", "indexed": false }
          ],
          "type": "event",
          "name": "ClaimVCA",
          "anonymous": false
        },
        {
          "inputs": [
            { "internalType": "address", "name": "admin", "type": "address", "indexed": true },
            { "internalType": "address", "name": "to", "type": "address", "indexed": true },
            { "internalType": "uint128", "name": "amount", "type": "uint128", "indexed": false }
          ],
          "type": "event",
          "name": "Clawback",
          "anonymous": false
        },
        { "inputs": [], "type": "event", "name": "EnableRedistribution", "anonymous": false },
        {
          "inputs": [
            { "internalType": "address", "name": "comptroller", "type": "address", "indexed": true },
            { "internalType": "uint256", "name": "newMinFeeUSD", "type": "uint256", "indexed": false },
            { "internalType": "uint256", "name": "previousMinFeeUSD", "type": "uint256", "indexed": false }
          ],
          "type": "event",
          "name": "LowerMinFeeUSD",
          "anonymous": false
        },
        {
          "inputs": [
            { "internalType": "uint256", "name": "index", "type": "uint256", "indexed": false },
            { "internalType": "address", "name": "recipient", "type": "address", "indexed": true },
            { "internalType": "uint128", "name": "amount", "type": "uint128", "indexed": false },
            { "internalType": "address", "name": "to", "type": "address", "indexed": false }
          ],
          "type": "event",
          "name": "RedistributeReward",
          "anonymous": false
        },
        {
          "inputs": [
            { "internalType": "address", "name": "caller", "type": "address", "indexed": true },
            { "internalType": "address", "name": "previousAttestor", "type": "address", "indexed": true },
            { "internalType": "address", "name": "newAttestor", "type": "address", "indexed": true }
          ],
          "type": "event",
          "name": "SetAttestor",
          "anonymous": false
        },
        {
          "inputs": [
            { "internalType": "address", "name": "caller", "type": "address", "indexed": true },
            { "internalType": "contract IERC20", "name": "token", "type": "address", "indexed": true },
            { "internalType": "uint128", "name": "amount", "type": "uint128", "indexed": false },
            { "internalType": "address", "name": "biller", "type": "address", "indexed": true }
          ],
          "type": "event",
          "name": "Sponsor",
          "anonymous": false
        },
        {
          "inputs": [
            { "internalType": "address", "name": "oldAdmin", "type": "address", "indexed": true },
            { "internalType": "address", "name": "newAdmin", "type": "address", "indexed": true }
          ],
          "type": "event",
          "name": "TransferAdmin",
          "anonymous": false
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "AGGREGATE_AMOUNT",
          "outputs": [{ "internalType": "uint128", "name": "", "type": "uint128" }]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "CAMPAIGN_START_TIME",
          "outputs": [{ "internalType": "uint40", "name": "", "type": "uint40" }]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "CLAIM_TYPE",
          "outputs": [{ "internalType": "enum ClaimType", "name": "", "type": "uint8" }]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "COMPTROLLER",
          "outputs": [{ "internalType": "address", "name": "", "type": "address" }]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "EXPIRATION",
          "outputs": [{ "internalType": "uint40", "name": "", "type": "uint40" }]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "IS_SABLIER_MERKLE",
          "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "MERKLE_ROOT",
          "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "TOKEN",
          "outputs": [{ "internalType": "contract IERC20", "name": "", "type": "address" }]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "UNLOCK_PERCENTAGE",
          "outputs": [{ "internalType": "UD60x18", "name": "", "type": "uint256" }]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "VESTING_END_TIME",
          "outputs": [{ "internalType": "uint40", "name": "", "type": "uint40" }]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "VESTING_START_TIME",
          "outputs": [{ "internalType": "uint40", "name": "", "type": "uint40" }]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "admin",
          "outputs": [{ "internalType": "address", "name": "", "type": "address" }]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "attestor",
          "outputs": [{ "internalType": "address", "name": "", "type": "address" }]
        },
        {
          "inputs": [
            { "internalType": "uint128", "name": "fullAmount", "type": "uint128" },
            { "internalType": "uint40", "name": "claimTime", "type": "uint40" }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "calculateClaimAmount",
          "outputs": [{ "internalType": "uint128", "name": "", "type": "uint128" }]
        },
        {
          "inputs": [
            { "internalType": "uint128", "name": "fullAmount", "type": "uint128" },
            { "internalType": "uint40", "name": "claimTime", "type": "uint40" }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "calculateForgoneAmount",
          "outputs": [{ "internalType": "uint128", "name": "", "type": "uint128" }]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "calculateMinFeeWei",
          "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }]
        },
        {
          "inputs": [{ "internalType": "uint128", "name": "fullAmount", "type": "uint128" }],
          "stateMutability": "view",
          "type": "function",
          "name": "calculateRedistributionRewards",
          "outputs": [{ "internalType": "uint128", "name": "", "type": "uint128" }]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "campaignName",
          "outputs": [{ "internalType": "string", "name": "", "type": "string" }]
        },
        {
          "inputs": [
            { "internalType": "uint256", "name": "index", "type": "uint256" },
            { "internalType": "address", "name": "to", "type": "address" },
            { "internalType": "uint128", "name": "fullAmount", "type": "uint128" },
            { "internalType": "bytes32[]", "name": "merkleProof", "type": "bytes32[]" }
          ],
          "stateMutability": "payable",
          "type": "function",
          "name": "claimTo"
        },
        {
          "inputs": [
            { "internalType": "uint256", "name": "index", "type": "uint256" },
            { "internalType": "address", "name": "to", "type": "address" },
            { "internalType": "uint128", "name": "fullAmount", "type": "uint128" },
            { "internalType": "uint40", "name": "expireAt", "type": "uint40" },
            { "internalType": "bytes32[]", "name": "merkleProof", "type": "bytes32[]" },
            { "internalType": "bytes", "name": "attestation", "type": "bytes" }
          ],
          "stateMutability": "payable",
          "type": "function",
          "name": "claimViaAttestation"
        },
        {
          "inputs": [
            { "internalType": "uint256", "name": "index", "type": "uint256" },
            { "internalType": "address", "name": "recipient", "type": "address" },
            { "internalType": "address", "name": "to", "type": "address" },
            { "internalType": "uint128", "name": "fullAmount", "type": "uint128" },
            { "internalType": "uint40", "name": "validFrom", "type": "uint40" },
            { "internalType": "bytes32[]", "name": "merkleProof", "type": "bytes32[]" },
            { "internalType": "bytes", "name": "signature", "type": "bytes" }
          ],
          "stateMutability": "payable",
          "type": "function",
          "name": "claimViaSig"
        },
        {
          "inputs": [
            { "internalType": "address", "name": "to", "type": "address" },
            { "internalType": "uint128", "name": "amount", "type": "uint128" }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "clawback"
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "domainSeparator",
          "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }]
        },
        { "inputs": [], "stateMutability": "nonpayable", "type": "function", "name": "enableRedistribution" },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "firstClaimTime",
          "outputs": [{ "internalType": "uint40", "name": "", "type": "uint40" }]
        },
        {
          "inputs": [{ "internalType": "uint256", "name": "index", "type": "uint256" }],
          "stateMutability": "view",
          "type": "function",
          "name": "hasClaimed",
          "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "hasExpired",
          "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "ipfsCID",
          "outputs": [{ "internalType": "string", "name": "", "type": "string" }]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "isRedistributionEnabled",
          "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }]
        },
        {
          "inputs": [{ "internalType": "uint256", "name": "newMinFeeUSD", "type": "uint256" }],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "lowerMinFeeUSD"
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "minFeeUSD",
          "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }]
        },
        {
          "inputs": [{ "internalType": "address", "name": "newAttestor", "type": "address" }],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "setAttestor"
        },
        {
          "inputs": [
            { "internalType": "contract IERC20", "name": "token", "type": "address" },
            { "internalType": "uint128", "name": "amount", "type": "uint128" },
            { "internalType": "address", "name": "biller", "type": "address" }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "sponsor"
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "totalForgoneAmount",
          "outputs": [{ "internalType": "uint128", "name": "", "type": "uint128" }]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "totalRedistributionAmountPaid",
          "outputs": [{ "internalType": "uint128", "name": "", "type": "uint128" }]
        },
        {
          "inputs": [{ "internalType": "address", "name": "newAdmin", "type": "address" }],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "transferAdmin"
        }
      ],
      "devdoc": {
        "kind": "dev",
        "methods": {
          "calculateClaimAmount(uint128,uint40)": {
            "details": "This is for informational purposes only. To actually claim the airdrop, a Merkle proof is required.",
            "params": {
              "claimTime": "A hypothetical time at which to make the claim. Zero is a sentinel value for `block.timestamp`.",
              "fullAmount": "The amount of tokens allocated to a user, denominated in the token's decimals."
            },
            "returns": { "_0": "The amount that would be claimed, denominated in the token's decimals." }
          },
          "calculateForgoneAmount(uint128,uint40)": {
            "details": "This is for informational purposes only. Reverts if the claim time is less than the vesting start time, since the claim cannot be made, no amount can be forgone.",
            "params": {
              "claimTime": "A hypothetical time at which to make the claim. Zero is a sentinel value for `block.timestamp`.",
              "fullAmount": "The amount of tokens allocated to a user, denominated in the token's decimals."
            },
            "returns": { "_0": "The amount that would be forgone, denominated in the token's decimals." }
          },
          "calculateRedistributionRewards(uint128)": {
            "details": "Notes: - Reverts if redistribution is not enabled. - If `AGGREGATE_AMOUNT` is set lower than actual total allocations in the Merkle tree, this might return 0 rather than reverting.",
            "params": { "fullAmount": "The amount of tokens that the redistribution rewards are to be calculated for." }
          },
          "claimTo(uint256,address,uint128,bytes32[])": {
            "details": "It emits a {ClaimVCA} event, and a {RedistributeReward} event if the redistribution is enabled. Notes: - There can be a race condition among recipients if:   1. `AGGREGATE_AMOUNT` is set lower than the actual total allocations in the Merkle tree.   2. The campaign is not sufficiently funded with the actual total allocations. - The rewards are transferred to the recipients at the time of claiming. If the campaign creator turns the redistribution on after the vesting end time, the recipients who have already claimed the full amount would miss on the rewards while subsequent recipients would get them. Requirements: - `CLAIM_TYPE` must be `DEFAULT`. - The current time must be greater than or equal to the campaign start time. - The campaign must not have expired. - `msg.value` must not be less than the value returned by {COMPTROLLER.calculateMinFeeWei}. - The `index` must not be claimed already. - The Merkle proof must be valid. - The claim amount must be greater than zero. - `msg.sender` must be the airdrop recipient. - The `to` must not be the zero address.",
            "params": {
              "fullAmount": "The total amount of ERC-20 tokens allocated to the recipient.",
              "index": "The index of the `msg.sender` in the Merkle tree.",
              "merkleProof": "The proof of inclusion in the Merkle tree.",
              "to": "The address receiving the ERC-20 tokens on behalf of `msg.sender`."
            }
          },
          "claimViaAttestation(uint256,address,uint128,uint40,bytes32[],bytes)": {
            "details": "It emits a {ClaimVCA} event. Notes: - The attestation must be an EIP-712 signature from the attestor. - See the example in the {claimViaSig} function. - If the attestor is not set in the campaign, the attestor from the comptroller is used. Requirements: - `msg.sender` must be the airdrop recipient. - `CLAIM_TYPE` must be `ATTEST`. - The `to` must not be the zero address. - The attestor must not be the zero address. - The `expireAt` timestamp must not be in the past. - The attestation signature must be valid. - Refer to the requirements in {claimTo}.",
            "params": {
              "attestation": "The EIP-712 signature from the attestor.",
              "expireAt": "The timestamp after which the attestation signature is no longer valid.",
              "fullAmount": "The total amount of ERC-20 tokens allocated to the `msg.sender`.",
              "index": "The index of the `msg.sender` in the Merkle tree.",
              "merkleProof": "The proof of inclusion in the Merkle tree.",
              "to": "The address receiving the ERC-20 tokens on behalf of `msg.sender`."
            }
          },
          "claimViaSig(uint256,address,address,uint128,uint40,bytes32[],bytes)": {
            "details": "It emits a {ClaimVCA} event. Requirements: - `CLAIM_TYPE` must be `DEFAULT`. - If `recipient` is an EOA, it must match the recovered signer. - If `recipient` is a contract, it must implement the IERC-1271 interface. - The `to` must not be the zero address. - The `validFrom` must be less than or equal to the current block timestamp. - Refer to the requirements in {claimTo} except that there are no restrictions on `msg.sender`. Below is the example of typed data to be signed by the airdrop recipient, referenced from https://docs.metamask.io/wallet/how-to/sign-data/#example. ```json types: {   EIP712Domain: [     { name: \"name\", type: \"string\" },     { name: \"chainId\", type: \"uint256\" },     { name: \"verifyingContract\", type: \"address\" },   ],   Claim: [     { name: \"index\", type: \"uint256\" },     { name: \"recipient\", type: \"address\" },     { name: \"to\", type: \"address\" },     { name: \"amount\", type: \"uint128\" },     { name: \"validFrom\", type: \"uint40\" },   ], }, domain: {   name: \"Sablier Airdrops Protocol\",   chainId: 1, // Chain on which the contract is deployed   verifyingContract: \"0xTheAddressOfThisContract\", // The address of this contract }, primaryType: \"Claim\", message: {   index: 2, // The index of the signer in the Merkle tree   recipient: \"0xTheAddressOfTheRecipient\", // The address of the airdrop recipient   to: \"0xTheAddressReceivingTheTokens\", // The address where recipient wants to transfer the tokens   amount: \"1000000000000000000000\", // The amount of tokens allocated to the recipient   validFrom: 1752425637 // The timestamp from which the claim signature is valid }, ```",
            "params": {
              "fullAmount": "The total amount of ERC-20 tokens allocated to the recipient.",
              "index": "The index of the recipient in the Merkle tree.",
              "merkleProof": "The proof of inclusion in the Merkle tree.",
              "recipient": "The address of the airdrop recipient who is providing the signature.",
              "signature": "The EIP-712 or EIP-1271 signature from the airdrop recipient.",
              "to": "The address receiving the ERC-20 tokens on behalf of the recipient.",
              "validFrom": "The timestamp from which the claim signature is valid."
            }
          },
          "clawback(address,uint128)": {
            "details": "Emits a {Clawback} event. Requirements: - `msg.sender` must be the admin. - No claim must be made, OR   The current timestamp must not exceed 7 days after the first claim, OR   The campaign must be expired.",
            "params": { "amount": "The amount of tokens to claw back.", "to": "The address to receive the tokens." }
          },
          "constructor": { "details": "Constructs the contract by initializing the immutable state variables." },
          "enableRedistribution()": {
            "details": "Notes: - It is recommended to fund the campaign with the actual total allocation in the Merkle tree (ideally equivalent to `AGGREGATE_AMOUNT`) to avoid race conditions among the recipients. Requirements: - `msg.sender` must be the admin. - `VESTING_END_TIME` must be in the future. - Redistribution must not be already enabled."
          },
          "hasClaimed(uint256)": {
            "details": "Uses a bitmap to save gas.",
            "params": { "index": "The index of the recipient to check." }
          },
          "lowerMinFeeUSD(uint256)": {
            "details": "Emits a {LowerMinFeeUSD} event. Requirements: - `msg.sender` must be the comptroller. - The new fee must be less than the current {minFeeUSD}.",
            "params": { "newMinFeeUSD": "The new min USD fee to set, denominated in 8 decimals." }
          },
          "setAttestor(address)": {
            "details": "Emits a {SetAttestor} event. Requirements: - `msg.sender` must be either the comptroller or the campaign admin.",
            "params": {
              "newAttestor": "The new attestor address. If zero, the attestor from the comptroller will be used."
            }
          },
          "sponsor(address,uint128,address)": {
            "details": "Emits a {Sponsor} event. Notes: - This function only makes the payment. The claim fees are updated only after the payment has been verified off-chain. - Refer to the Sablier website in order to sponsor with the correct token, otherwise the sponsorship may be ignored. Requirements: - `biller` must not be the zero address. - `amount` must be greater than zero. - `token` must not be the zero address and must be a valid ERC20 token. - `msg.sender` must have approved the contract to spend the tokens.",
            "params": {
              "amount": "The amount of tokens to transfer.",
              "biller": "The address to receive the tokens.",
              "token": "The ERC-20 token to transfer."
            }
          },
          "transferAdmin(address)": {
            "details": "Notes: - Does not revert if the admin is the same. - This function can potentially leave the contract without an admin, thereby removing any functionality that is only available to the admin. Requirements: - `msg.sender` must be the contract admin.",
            "params": { "newAdmin": "The address of the new admin." }
          }
        },
        "version": 1
      },
      "userdoc": {
        "kind": "user",
        "methods": {
          "AGGREGATE_AMOUNT()": { "notice": "Retrieves the total amount of ERC-20 tokens allocated to the campaign." },
          "CAMPAIGN_START_TIME()": { "notice": "The timestamp at which campaign starts and claim begins." },
          "CLAIM_TYPE()": { "notice": "Retrieves the claim type supported by the campaign." },
          "COMPTROLLER()": { "notice": "Retrieves the address of the comptroller contract." },
          "EXPIRATION()": {
            "notice": "The cut-off point for the campaign, as a Unix timestamp. A value of zero means there is no expiration."
          },
          "IS_SABLIER_MERKLE()": {
            "notice": "Returns `true` indicating that this campaign contract is deployed using the Sablier Factory."
          },
          "MERKLE_ROOT()": { "notice": "The root of the Merkle tree used to validate the proofs of inclusion." },
          "TOKEN()": { "notice": "The ERC-20 token to distribute." },
          "UNLOCK_PERCENTAGE()": {
            "notice": "Retrieves the percentage of the full amount that will unlock immediately at the start time. The value is denominated as a fixed-point number where 1e18 is 100%."
          },
          "VESTING_END_TIME()": {
            "notice": "Retrieves the time when the VCA airdrop is fully vested, as a Unix timestamp."
          },
          "VESTING_START_TIME()": {
            "notice": "Retrieves the time when the VCA airdrop begins to unlock, as a Unix timestamp."
          },
          "admin()": { "notice": "The address of the admin account or contract." },
          "attestor()": { "notice": "Retrieves the attestor address used for creating attestation signatures." },
          "calculateClaimAmount(uint128,uint40)": {
            "notice": "Calculates the amount that would be claimed if the claim were made at `claimTime`."
          },
          "calculateForgoneAmount(uint128,uint40)": {
            "notice": "Calculates the amount that would be forgone if the claim were made at `claimTime`."
          },
          "calculateMinFeeWei()": { "notice": "Calculates the minimum fee in wei required to claim the airdrop." },
          "calculateRedistributionRewards(uint128)": {
            "notice": "Calculates the redistribution rewards for a given full amount."
          },
          "campaignName()": { "notice": "Retrieves the name of the campaign." },
          "claimTo(uint256,address,uint128,bytes32[])": {
            "notice": "Claim airdrop. If the vesting end time is in the future, it calculates the claim amount to transfer to the `to` address, otherwise it transfers the full amount. If the redistribution is enabled, it calculates the reward amount based on the total amount of tokens forgone by early claimers and transfers it to the recipients claiming after the vesting end time."
          },
          "claimViaAttestation(uint256,address,uint128,uint40,bytes32[],bytes)": {
            "notice": "Claim airdrop using an external attestation from a trusted attestor (e.g., KYC verifier). If the vesting end time is in the future, it calculates the claim amount to transfer to the `to` address, otherwise it transfers the full amount."
          },
          "claimViaSig(uint256,address,address,uint128,uint40,bytes32[],bytes)": {
            "notice": "Claim airdrop on behalf of eligible recipient using an EIP-712 or EIP-1271 signature. If the vesting end time is in the future, it calculates the claim amount to transfer to the `to` address, otherwise it transfers the full amount."
          },
          "clawback(address,uint128)": { "notice": "Claws back the unclaimed tokens." },
          "domainSeparator()": {
            "notice": "The domain separator, as required by EIP-712 and EIP-1271, used for signing claims to prevent replay attacks across different campaigns."
          },
          "enableRedistribution()": {
            "notice": "Enable the redistribution of forgone tokens among recipients claiming after the vesting end time, proportional to their allocation amount. Once enabled, it cannot be disabled."
          },
          "firstClaimTime()": {
            "notice": "Retrieves the timestamp when the first claim is made, and zero if no claim was made yet."
          },
          "hasClaimed(uint256)": {
            "notice": "Returns a flag indicating whether a claim has been made for a given index."
          },
          "hasExpired()": { "notice": "Returns a flag indicating whether the campaign has expired." },
          "ipfsCID()": { "notice": "The content identifier for indexing the campaign on IPFS." },
          "isRedistributionEnabled()": {
            "notice": "Retrieves a bool indicating whether the redistribution of forgone tokens is enabled or not."
          },
          "lowerMinFeeUSD(uint256)": { "notice": "Lowers the min USD fee." },
          "minFeeUSD()": {
            "notice": "Retrieves the min USD fee required to claim the airdrop, denominated in 8 decimals."
          },
          "setAttestor(address)": { "notice": "Sets the attestor address used for verifying attestation signatures." },
          "sponsor(address,uint128,address)": { "notice": "Sponsors the claim fees for eligible recipients." },
          "totalForgoneAmount()": { "notice": "Retrieves the total amount of tokens forgone by early claimers." },
          "totalRedistributionAmountPaid()": {
            "notice": "Retrieves the total amount of redistribution rewards paid out."
          },
          "transferAdmin(address)": { "notice": "Transfers the contract admin to a new address." }
        },
        "version": 1
      }
    },
    "settings": {
      "remappings": [
        "@arbitrum/=node_modules/@arbitrum/",
        "@chainlink/=node_modules/@chainlink/",
        "@eth-optimism/=node_modules/@eth-optimism/",
        "@offchainlabs/=node_modules/@offchainlabs/",
        "@openzeppelin/=node_modules/@openzeppelin/",
        "@prb/=node_modules/@prb/",
        "@sablier/=node_modules/@sablier/",
        "@scroll-tech/=node_modules/@scroll-tech/",
        "@zksync/=node_modules/@zksync/",
        "forge-std/=node_modules/forge-std/",
        "murky/=node_modules/murky/",
        "openzeppelin-contracts/=node_modules/murky/lib/openzeppelin-contracts/",
        "solady/=node_modules/solady/",
        "solarray/=node_modules/solarray/"
      ],
      "optimizer": { "enabled": true, "runs": 60000 },
      "metadata": { "bytecodeHash": "ipfs" },
      "compilationTarget": { "src/SablierMerkleVCA.sol": "SablierMerkleVCA" },
      "evmVersion": "shanghai",
      "libraries": {},
      "viaIR": true
    },
    "sources": {
      "node_modules/@openzeppelin/contracts/interfaces/IERC1271.sol": {
        "keccak256": "0x3d4cd07258d675b6dfa3d9dfd623a77b38fb9935f4a5381ff4bc969948720976",
        "urls": [
          "bzz-raw://30abb60a4d98ad9a33de4fa5e9072342e12df3a79e9c71b5f59ce049ae8cd535",
          "dweb:/ipfs/QmT6NXJDjsf8H14nPYQsFELDB8q5ZTmG9cjdX2bEQJW7ST"
        ],
        "license": "MIT"
      },
      "node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol": {
        "keccak256": "0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7",
        "urls": [
          "bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b",
          "dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"
        ],
        "license": "MIT"
      },
      "node_modules/@openzeppelin/contracts/interfaces/IERC165.sol": {
        "keccak256": "0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724",
        "urls": [
          "bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a",
          "dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"
        ],
        "license": "MIT"
      },
      "node_modules/@openzeppelin/contracts/interfaces/IERC20.sol": {
        "keccak256": "0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c",
        "urls": [
          "bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba",
          "dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"
        ],
        "license": "MIT"
      },
      "node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol": {
        "keccak256": "0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d",
        "urls": [
          "bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196",
          "dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA"
        ],
        "license": "MIT"
      },
      "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol": {
        "keccak256": "0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7",
        "urls": [
          "bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db",
          "dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"
        ],
        "license": "MIT"
      },
      "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol": {
        "keccak256": "0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5",
        "urls": [
          "bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508",
          "dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB"
        ],
        "license": "MIT"
      },
      "node_modules/@openzeppelin/contracts/utils/Panic.sol": {
        "keccak256": "0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a",
        "urls": [
          "bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a",
          "dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"
        ],
        "license": "MIT"
      },
      "node_modules/@openzeppelin/contracts/utils/Strings.sol": {
        "keccak256": "0x81c274a60a7ae232ae3dc9ff3a4011b4849a853c13b0832cd3351bb1bb2f0dae",
        "urls": [
          "bzz-raw://9da0c20dc74358a2a76330818f3bac9d1e2ce3371aec847b9cbf5d147fbae4f6",
          "dweb:/ipfs/QmeczhmnFv1hbXKGLwbYXY6Rrytc9a5A2YaRi5QMMgjPnb"
        ],
        "license": "MIT"
      },
      "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol": {
        "keccak256": "0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84",
        "urls": [
          "bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9",
          "dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"
        ],
        "license": "MIT"
      },
      "node_modules/@openzeppelin/contracts/utils/cryptography/Hashes.sol": {
        "keccak256": "0x8cbd338f083224b4b6f0ff42cbda641a0a6c31ffcdca197452b97fe4d0918269",
        "urls": [
          "bzz-raw://f517dec5ba0c6491395acbf7f1d621f4e89e8f218bf5303c867b1c5ad70c6b11",
          "dweb:/ipfs/QmWmXHRLEw8W6ckth7NyYTU88YfvuS7xSsfae5ksL8qNUe"
        ],
        "license": "MIT"
      },
      "node_modules/@openzeppelin/contracts/utils/cryptography/MerkleProof.sol": {
        "keccak256": "0x36a0c409c437a753cac9b92b75f93b0fbe92803bf2c8ff1517e54b247f166134",
        "urls": [
          "bzz-raw://0f91ba472de411aa557cdbf6560c40750d87bd11c9060bc04d2ba7119af9d5a6",
          "dweb:/ipfs/QmQjtYo2i7dDvzCEzZ67bDoNSG4RrwMoxPWuqFmX5Xzpuw"
        ],
        "license": "MIT"
      },
      "node_modules/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol": {
        "keccak256": "0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631",
        "urls": [
          "bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59",
          "dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"
        ],
        "license": "MIT"
      },
      "node_modules/@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol": {
        "keccak256": "0xbdc3bb48ccedb818cd75a6d74a16df55a822e9f6d3cc54c59f576f10aab67b5f",
        "urls": [
          "bzz-raw://2284f25f2478f419d7781573b17a89d0e7c5589a865d55e2d6ed5163aee23aa8",
          "dweb:/ipfs/QmNsr2625APBQiNKpYnX5VcSnYgfUHR9Uzzp9pRXjoDqK7"
        ],
        "license": "MIT"
      },
      "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol": {
        "keccak256": "0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8",
        "urls": [
          "bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621",
          "dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"
        ],
        "license": "MIT"
      },
      "node_modules/@openzeppelin/contracts/utils/math/Math.sol": {
        "keccak256": "0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6",
        "urls": [
          "bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3",
          "dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"
        ],
        "license": "MIT"
      },
      "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol": {
        "keccak256": "0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54",
        "urls": [
          "bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8",
          "dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"
        ],
        "license": "MIT"
      },
      "node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol": {
        "keccak256": "0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3",
        "urls": [
          "bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03",
          "dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"
        ],
        "license": "MIT"
      },
      "node_modules/@openzeppelin/contracts/utils/structs/BitMaps.sol": {
        "keccak256": "0x3616f1b0d0a9ee1ca8f0953ecaceb9230e36f691c7974d30f964212acff52d2b",
        "urls": [
          "bzz-raw://d4bebdd07b31ac28e3e596ac6f0333da90a4e332405aa7d65f3a3a7e0b4cf15e",
          "dweb:/ipfs/QmckoDU5bBnye2UtPcrfJNahLD2FbxrnPP9nrREMWPpnug"
        ],
        "license": "MIT"
      },
      "node_modules/@prb/math/src/Common.sol": {
        "keccak256": "0x8225a3898d2f11f585da1fb82234800e9717fa080dbe53d450fd429a3a632e99",
        "urls": [
          "bzz-raw://2dcbf39ca575f68f32f0d1c66391de94082424956e7585e849813966f8c0fc05",
          "dweb:/ipfs/QmYvk8vXFDUJHrmqbtutYXfoLomLBosYLyBzuPoYBxsQ42"
        ],
        "license": "MIT"
      },
      "node_modules/@prb/math/src/UD60x18.sol": {
        "keccak256": "0xb98c6f74275914d279e8af6c502c2b1f50d5f6e1ed418d3b0153f5a193206c48",
        "urls": [
          "bzz-raw://a750edde2955f160806a51083a12185fb04e20efca0e3a7ebd127dc1acc049a9",
          "dweb:/ipfs/QmeAre3mThopoQPB9mSXZq6jck59QZ7JbDFR83urd2SLvp"
        ],
        "license": "MIT"
      },
      "node_modules/@prb/math/src/sd1x18/Casting.sol": {
        "keccak256": "0x5d365f655f01598926c5d4fe5cda277f2cc7736fe38f943c11a32009077ddd5c",
        "urls": [
          "bzz-raw://56b378bd6039819bc12e5f17dabd9492e1410b3281f9df496cf8210539101a11",
          "dweb:/ipfs/QmcMaE64ZWMg9cFhYxdTuG8nfzeDdNuTRHMMoFXi6tSZGu"
        ],
        "license": "MIT"
      },
      "node_modules/@prb/math/src/sd1x18/Constants.sol": {
        "keccak256": "0xc14cc32061863d83912f9616de86f3c34f1ac58614b7d504c6ce07ee8efdb8e8",
        "urls": [
          "bzz-raw://22483b1282dda6a556b0232f008a5a3296bbfd76b1886e6b72bf351b7c554fab",
          "dweb:/ipfs/QmYX9cYkrFxBbhZNKsb6uUxtrc2chmAj7vuc7UKRPGMwos"
        ],
        "license": "MIT"
      },
      "node_modules/@prb/math/src/sd1x18/Errors.sol": {
        "keccak256": "0xc3c8b1ab3d19889c356c222a3a2186d45dfc1d3a17b9ad88159bb64ee457baa6",
        "urls": [
          "bzz-raw://84fbe57569246403f778330bd7723018dfcb5f0ec50d7b1d82cc983c94a54bca",
          "dweb:/ipfs/QmWssAAnovc2EVjt58rTnxraE9B1RMivwTvYCYgpnr6oSE"
        ],
        "license": "MIT"
      },
      "node_modules/@prb/math/src/sd1x18/ValueType.sol": {
        "keccak256": "0xaa9dc7b562faf45264390d80e2ea10c5295bb8a4f10d76261a3f9c04363734c0",
        "urls": [
          "bzz-raw://c6ca36acd15f5cb47cf124ddec289f84e1011f2d29056159e4570435629a3353",
          "dweb:/ipfs/QmUKdiLmZpAkNCq2TKxrPbQPUhiRFXGfjGSnY1VeHVu4y6"
        ],
        "license": "MIT"
      },
      "node_modules/@prb/math/src/sd21x18/Casting.sol": {
        "keccak256": "0x4a16adddb9ab1f6939dd4567c77205015a11081cb840029b84bbb6fdaf78ee36",
        "urls": [
          "bzz-raw://5003b2f4cd2fc1413da36bc63107c6e83a88d29693e8f97b54f300fa78f9c6d2",
          "dweb:/ipfs/QmaNJn91NLrZmeeGqnFQV1FTrLVSW852zHyWTrWJ5pf1pd"
        ],
        "license": "MIT"
      },
      "node_modules/@prb/math/src/sd21x18/Constants.sol": {
        "keccak256": "0x501c2d5cfdea9450422182059c8df1cb6a859901a07bd59631c3fa24edcc79d4",
        "urls": [
          "bzz-raw://4669a65001c92919671fd879d33ce0e5030b602a7ba4d36bd2308128d8d1f396",
          "dweb:/ipfs/QmUC3bJ3qdkCmLMw3WHBcEqvuC4tExT2LXzUhgu5KQ3vi3"
        ],
        "license": "MIT"
      },
      "node_modules/@prb/math/src/sd21x18/Errors.sol": {
        "keccak256": "0xc5422ee47eb139274e538e758fb40177a1ba22c2113ef3b3446102f0150bfe0a",
        "urls": [
          "bzz-raw://a1981e052e9e86e1b0e4e55a057a7af4739aedd4ead2d60e3eaa40fb703594ee",
          "dweb:/ipfs/QmPK5qSujnyk1R8ues4RhDMy1tRKKyjQ31YJTviTKq7GML"
        ],
        "license": "MIT"
      },
      "node_modules/@prb/math/src/sd21x18/ValueType.sol": {
        "keccak256": "0x532bba888370bed393464412f4ef3462d654802e71c953ad02d078e3d2701092",
        "urls": [
          "bzz-raw://922a4e8dd813602f72d165aa1dfdf2c29b971a2abe73bebca7cd81a32ee2c880",
          "dweb:/ipfs/QmTBAJnx1r3sZpbQAuTgQtsTtvjZbpDwhCJRzkhzUumbdf"
        ],
        "license": "MIT"
      },
      "node_modules/@prb/math/src/sd59x18/Casting.sol": {
        "keccak256": "0xdf70d8e70c6d6325f3f7eb028c484bc7189ef902f1d4b5b220af2e550bb5fc39",
        "urls": [
          "bzz-raw://0b15bcd36129c5cb163d57a117435afb171182018dd6d1e766a5f49cf1f4b63d",
          "dweb:/ipfs/QmbjzkMBH4FM2rdxGbx9LQ65wVERijNcu7R9C8dQmH3y4n"
        ],
        "license": "MIT"
      },
      "node_modules/@prb/math/src/sd59x18/Constants.sol": {
        "keccak256": "0x9bcb8dd6b3e886d140ad1c32747a4f6d29a492529ceb835be878ae837aa6cc3a",
        "urls": [
          "bzz-raw://c4045c633e3618e7e90a768d92415b2f20f781fe129b4f4e26fa88f7dbf9201f",
          "dweb:/ipfs/Qmbet95pizwPno82cJ383wJtgQRSQKESmhVZ1vDrgAu7Si"
        ],
        "license": "MIT"
      },
      "node_modules/@prb/math/src/sd59x18/Errors.sol": {
        "keccak256": "0x0a79c28c85fc8a450b0801ff2e66114eac4ec565819f5d1d8738904658fe33e2",
        "urls": [
          "bzz-raw://9e0d4fd3c998019fb8555d9e26c03bec42a8513bdf4185aeac2da3a000abaebf",
          "dweb:/ipfs/QmahFJHXcX4RwPxaQbUf6LVZEk8NSpjCV3Eif7i9iqC6Mk"
        ],
        "license": "MIT"
      },
      "node_modules/@prb/math/src/sd59x18/Helpers.sol": {
        "keccak256": "0x208570f1657cf730cb6c3d81aa14030e0d45cf906cdedea5059369d7df4bb716",
        "urls": [
          "bzz-raw://4c78ca900edafa9338d4e3649a55ab0c84f76468d8a22fb945ba6d01e70f8fed",
          "dweb:/ipfs/QmeP4hQYfNxcATd1FsasdD4ebyu2vrC9K1N68swxUJzzZD"
        ],
        "license": "MIT"
      },
      "node_modules/@prb/math/src/sd59x18/Math.sol": {
        "keccak256": "0xd8e8b51db9b3e2fa31a60f6b8ce4ea0112c3364442ede5992aa0aa7a2c925c84",
        "urls": [
          "bzz-raw://3c56913970e34ee7b142047b21f1856a511cbdc3473b7c50418a8490e19cd462",
          "dweb:/ipfs/QmfG1F9CBDjPYD7NXora9awFfdpvBMY9SCg5pMLCFRv9tD"
        ],
        "license": "MIT"
      },
      "node_modules/@prb/math/src/sd59x18/ValueType.sol": {
        "keccak256": "0x76597ba64d37d66e0178512bc9bbc1a031a7634c45e5d5c6e9da87f46952dc9d",
        "urls": [
          "bzz-raw://36148899ad874814e9292636fb974d2eec61f1bcc0875ec39cf444d70ba40919",
          "dweb:/ipfs/QmadUe4kH2FPcdxvhCKy8yiezCvPWor4VcPzqLYSAaGDDb"
        ],
        "license": "MIT"
      },
      "node_modules/@prb/math/src/ud21x18/Casting.sol": {
        "keccak256": "0x3821aa57604f6e5b7c9c5c5cc97a6d71116e673cf3fee5f76fcd42b4cefded65",
        "urls": [
          "bzz-raw://a80399c6b38ab45cc10d0a6683d50340cd89d9a085b6d0dcfb81e7c4e5b3ce09",
          "dweb:/ipfs/QmWNW2YD2LMkqrpAtJYeeuHN329Rx7mvfmrjsCo1p6akTL"
        ],
        "license": "MIT"
      },
      "node_modules/@prb/math/src/ud21x18/Constants.sol": {
        "keccak256": "0x0997574a1ced6c43bde6d9c9175edc5ad64cbb920a0969a9db68eea543747601",
        "urls": [
          "bzz-raw://c09f03345a6779b002b38ffc3954258accbb2b1d0d5506d42c3bd7f117304f60",
          "dweb:/ipfs/QmTeBXRCE7H2HpqKUNsZN7Nk3rdBnFmbAUFom3E1PJeGuV"
        ],
        "license": "MIT"
      },
      "node_modules/@prb/math/src/ud21x18/Errors.sol": {
        "keccak256": "0x35a1fb789b90f8c90865884d3023deb17fcca5c7146b5ddef823496d835a5415",
        "urls": [
          "bzz-raw://0af359d07ba25bdc90de7c05ed6216833932caa75d4a02fcfc51ceeaba5a4e80",
          "dweb:/ipfs/QmavBFw73Xfp1qJiN6P1gk2Dfr8ByWo3dyCPVgDHtko2gq"
        ],
        "license": "MIT"
      },
      "node_modules/@prb/math/src/ud21x18/ValueType.sol": {
        "keccak256": "0x24838b2b1da371b9259d8ee21534a9f0cb5796aba75a4efca2374627952bee25",
        "urls": [
          "bzz-raw://897e6b79308651671c7f3c91a0069e778b47356c9ba3f86e238398ab7f2623af",
          "dweb:/ipfs/QmZbLw3tJVRZFQnV9jWQUmF43gna841adSG2TAiwDAifGU"
        ],
        "license": "MIT"
      },
      "node_modules/@prb/math/src/ud2x18/Casting.sol": {
        "keccak256": "0x0f3141ed054e7c29dbe1acb4b88b18eb05d60e998fba6b4e503a6799faa356d6",
        "urls": [
          "bzz-raw://b1e2468fc4c458082aaf4aa2e35af9ba3702f207e3c8533dd1e7da11ad605eae",
          "dweb:/ipfs/QmSm7iRH1eo4cJCwcAiiXWRH9Hn1urSS4tMdbaFbFGuTyL"
        ],
        "license": "MIT"
      },
      "node_modules/@prb/math/src/ud2x18/Constants.sol": {
        "keccak256": "0x29b0e050c865899e1fb9022b460a7829cdee248c44c4299f068ba80695eec3fc",
        "urls": [
          "bzz-raw://cbaef16b662fac235349bcf97bc980dd0cba15d4e6230caae61224cdac8ea6d9",
          "dweb:/ipfs/QmZQa5XBhi7k3yhtCd8wVpnwW8htfU4sjXxWhxRypMBYkC"
        ],
        "license": "MIT"
      },
      "node_modules/@prb/math/src/ud2x18/Errors.sol": {
        "keccak256": "0x3b27e2a57438cd30d9c130f84aace24d547e5ed58e8689691d7d92ad2db38ddd",
        "urls": [
          "bzz-raw://841cf9fb45443899c6b659300bbf503c3fd2c1a1e83b7f0e28620eed457f7437",
          "dweb:/ipfs/QmUqg8WscP5yQPw3UMUCWaB9RLU6nryGzseuyhAjNnDc1i"
        ],
        "license": "MIT"
      },
      "node_modules/@prb/math/src/ud2x18/ValueType.sol": {
        "keccak256": "0x975a2e69b48f34a4c0bd80e8a5609ac67b7264c91992c0944f9ebe7b9e3fc9d0",
        "urls": [
          "bzz-raw://65d012521c475295d7e70b7d526fcc0911d0f238ea938719d77251bba00c9b41",
          "dweb:/ipfs/QmexEvTQCCBPYRWAYnomZX5M7C2EkXQRAXqEYMNUZfazCs"
        ],
        "license": "MIT"
      },
      "node_modules/@prb/math/src/ud60x18/Casting.sol": {
        "keccak256": "0x0803318ddc98b4ba8fbfe70e5ee08d78387fe6ae00982b9960518085a751d7b6",
        "urls": [
          "bzz-raw://2e68a2f780b2e33fa5416eb60f9daa81f014c2591119f4b67bed1217d5530780",
          "dweb:/ipfs/QmZe7JTWvbfKqMnu4sxUwWCtLcCay9hH71VZUpoFCdENcr"
        ],
        "license": "MIT"
      },
      "node_modules/@prb/math/src/ud60x18/Constants.sol": {
        "keccak256": "0x2b80d26153d3fdcfb3a9ca772d9309d31ed1275f5b8b54c3ffb54d3652b37d90",
        "urls": [
          "bzz-raw://7e3a6673a156f635db94dc176baaa7274db8f9bec4461cd1152596253550ee3b",
          "dweb:/ipfs/Qmc9zT4kNSbMYaXcnbxNVqmb3P3m46ieaQxkwxqLwsvRA5"
        ],
        "license": "MIT"
      },
      "node_modules/@prb/math/src/ud60x18/Conversions.sol": {
        "keccak256": "0xd486ecca97abe69acdb28230088f4c7097fbdae5b36c5ae45d5be2faac4c33f2",
        "urls": [
          "bzz-raw://6080870ec6955ff0f5278f9c480b218a68714daf5f2ee42da0276d08d7b82932",
          "dweb:/ipfs/QmQ1SERHdemJgPrt4USwY8j5r63jZ8fQuJAm1knjMEEQEY"
        ],
        "license": "MIT"
      },
      "node_modules/@prb/math/src/ud60x18/Errors.sol": {
        "keccak256": "0xbab6b0e303d32f3a9d9e2fe881f0392b8c59a73051a4d34f21a403b3961b3044",
        "urls": [
          "bzz-raw://86a019bcf2510d0691287329dc057479cc0abc48a5e15f245e7f15c03052d2c8",
          "dweb:/ipfs/QmeXe5pbpDHvN5DZ8puXmH2RJ25zDHj55wpiStWtNQPvq6"
        ],
        "license": "MIT"
      },
      "node_modules/@prb/math/src/ud60x18/Helpers.sol": {
        "keccak256": "0xf5faff881391d2c060029499a666cc5f0bea90a213150bb476fae8f02a5df268",
        "urls": [
          "bzz-raw://76105fa22bb1b5f1fa99abf9c4fbc9577a02c7bc204f271754c407f0d75489f5",
          "dweb:/ipfs/QmVNGZSTniDuZus5DdbFubqJXCLtTaZit7YPm4ntjr5Lgr"
        ],
        "license": "MIT"
      },
      "node_modules/@prb/math/src/ud60x18/Math.sol": {
        "keccak256": "0xc4e51dfd9af62938e277e90fa724099f239d33727a35909ed48c292a76faf2fc",
        "urls": [
          "bzz-raw://d731537cbc50b852c21d28625aeb2c329729afc23a7b86ff9d8ee5878f47e9d6",
          "dweb:/ipfs/QmS7Cj4pAdPZcTp7RqYXyxBc9EYX92CT8icfkNigktUsLr"
        ],
        "license": "MIT"
      },
      "node_modules/@prb/math/src/ud60x18/ValueType.sol": {
        "keccak256": "0x1b200baf25d01a8b91b97b42114248636f742b5b7028487ef4daef6621e378a3",
        "urls": [
          "bzz-raw://b5708ed017206bda2197654e80bea9f37b3a9993434bb066c903c2865e028f47",
          "dweb:/ipfs/QmTyotZk2J5YvWkNvB2qhXBMgRGWW2UgPqR4JPocrXSr8n"
        ],
        "license": "MIT"
      },
      "node_modules/@sablier/evm-utils/src/Adminable.sol": {
        "keccak256": "0xaea48c23c0205dae155c0ab21c2076cf6cbdf6fdd299c32062b8b3818dd8cdca",
        "urls": [
          "bzz-raw://1aad150a317c741548197ba8428211c6fc3480697a6eebae7df71156c695fbfe",
          "dweb:/ipfs/QmX8xtEeck9zA6W4pktk5AMgCjrqPYKtzK9NxF66MxqfoQ"
        ],
        "license": "GPL-3.0-or-later"
      },
      "node_modules/@sablier/evm-utils/src/interfaces/IAdminable.sol": {
        "keccak256": "0x3228d63e9b0b951030c73c42bb071e64f0ff0eadbcbeefad3f29a48366539c26",
        "urls": [
          "bzz-raw://acc90ad2bec0e84349b56611b35b56bfb75a5930fd1babb2bd638fbbb15bd126",
          "dweb:/ipfs/QmSLnHx6bo4BQeBKYferfEhZo1Z4xCXdDF1bzJoHUafHt4"
        ],
        "license": "GPL-3.0-or-later"
      },
      "node_modules/@sablier/evm-utils/src/interfaces/IRoleAdminable.sol": {
        "keccak256": "0x391cb4bd4bae01e3efdb84f63635644ed6329b72e8a5105ad53833551e8ba825",
        "urls": [
          "bzz-raw://ccca9da1c044c15cf0b647a4572c05f5d498fb18b3685a85a8836f7110cb1bc4",
          "dweb:/ipfs/QmfAKHqvgKQUgpC6VomTjTkc1tDnsbVJD5bLn8wL8KuTFV"
        ],
        "license": "GPL-3.0-or-later"
      },
      "node_modules/@sablier/evm-utils/src/interfaces/ISablierComptroller.sol": {
        "keccak256": "0x5c52e70a6c083611d4b5518d17d025f70d322ee2c61d81f20f3fe50f4bd824ba",
        "urls": [
          "bzz-raw://5c07b2076065f1c65a59176ada3459be53f78e59a2055d9ae92b226edafa484c",
          "dweb:/ipfs/QmXYRDkBSWUBza1pi439ErzeLoaLUT8Zvj2yWcFZ5F1rgX"
        ],
        "license": "GPL-3.0-or-later"
      },
      "node_modules/@sablier/evm-utils/src/libraries/Errors.sol": {
        "keccak256": "0xc9a0fbcd6d582054420a32c538204ac7adb789320c6564f278ccf45baf4485c8",
        "urls": [
          "bzz-raw://a4da46b25df4fe89ce9f0315e1ef6561554f72b2dc7edbc43bdcdf9d65e8b709",
          "dweb:/ipfs/QmNW4VtuPSsLULst92GJmmcTCRHu4n5ndU9Jb4MbVes1jp"
        ],
        "license": "GPL-3.0-or-later"
      },
      "src/SablierMerkleVCA.sol": {
        "keccak256": "0x08ba88777cc3a8b8a032949cdf49afa51ce9a629013c0e398732bde23cafbcb1",
        "urls": [
          "bzz-raw://a5d6b918f3407f1f2750d00c3df0710866700957bbe2548c12c74d6419b5947c",
          "dweb:/ipfs/QmRxMUNEWbVx383bryZPXWMBa6HJjkjakzvBtWwg1783Vo"
        ],
        "license": "BUSL-1.1"
      },
      "src/abstracts/SablierMerkleBase.sol": {
        "keccak256": "0x3ad01ea2b4659b1051be58d0370a3bd23a494b6b941ceb2a3b23b1db9eb4e223",
        "urls": [
          "bzz-raw://bdc4ddfaf0f66757d289322b3990437f3be7c134d29d80a06da9e5d3b5883783",
          "dweb:/ipfs/QmbwXm6H5LjseDa3tHAujUYchqixb4xFAHk45HEU5B6k2Z"
        ],
        "license": "BUSL-1.1"
      },
      "src/abstracts/SablierMerkleSignature.sol": {
        "keccak256": "0x82a431ac2c5c379ba53cad9ff6b06e8f48c3cea12f3f834bf47eec24f935b2c3",
        "urls": [
          "bzz-raw://10040857ba92b56f3a1ae6e9f2ba8a6bf30bc14800eb366905b39111ba2b2658",
          "dweb:/ipfs/Qmd9RZR21u56RLzU8PWLFXV3P4KXUxUJsbhkphxRGQ9crT"
        ],
        "license": "BUSL-1.1"
      },
      "src/interfaces/ISablierMerkleBase.sol": {
        "keccak256": "0xfc4e9b4737765f3f66fb81390154aaff3f21ee63fd21bed441baf553ac090993",
        "urls": [
          "bzz-raw://189aab3a9ddf0e72425cb3b6420129ce971da916967a920c3132e328e546abbb",
          "dweb:/ipfs/QmQZaV1yvBs6MBf5jzgboTYztsVLMi5q3L4JVowyn6Yhrp"
        ],
        "license": "GPL-3.0-or-later"
      },
      "src/interfaces/ISablierMerkleSignature.sol": {
        "keccak256": "0x2e6e8cc3b951ddc10344883c08d662161efbd5fb5bc4672f77b51aa7ed8bf87d",
        "urls": [
          "bzz-raw://dd48f5c162987c93e45f7f942b7f23817d81ef588bb776816a207639c91e6e4e",
          "dweb:/ipfs/QmQHyHxPG6YVt5BVMYKfb5YWX6cQdp5yMVHoP1u2U3E1ut"
        ],
        "license": "GPL-3.0-or-later"
      },
      "src/interfaces/ISablierMerkleVCA.sol": {
        "keccak256": "0x03225dad17bf31b691522a733e1130615adc9530de777abbbcc2b733833b8046",
        "urls": [
          "bzz-raw://e995929a61acde5553c28ad8fbd10598ec7fc3d3ac509b0fdb0f08a60a91227f",
          "dweb:/ipfs/QmYu4eb7dLj6giynvGedCxWDnjD2TDrDh7yDizaJdCu4HX"
        ],
        "license": "GPL-3.0-or-later"
      },
      "src/libraries/Errors.sol": {
        "keccak256": "0xa3ee6c9b3c089af69190a861a83249eefdf17c699bc5d8d8eb09bf1f997b5287",
        "urls": [
          "bzz-raw://5143b3084210e8ca50ed060546d173443d54d76c8b7431f379ce3706bee6fcde",
          "dweb:/ipfs/QmTzArjMAKy2AmZgEhSA7MfQTNjvttZD7wTuV77zoWMgQi"
        ],
        "license": "GPL-3.0-or-later"
      },
      "src/libraries/SignatureHash.sol": {
        "keccak256": "0xdda32b665c577cf8298f0ee041c392c3b4550acf0ed52f0b09d2d12f1f0e0b08",
        "urls": [
          "bzz-raw://2ea6a30ea8fe835b2c348ee126763dab697d24295e7c284806a7bbb020e2b9e1",
          "dweb:/ipfs/QmaQ65PS4Sq8WraidCaQ7yQGt2Zc4Jv5uZQWmFUCRV3XVM"
        ],
        "license": "GPL-3.0-or-later"
      },
      "src/types/MerkleBase.sol": {
        "keccak256": "0x33004c31ccf302e5da76dbb8476816db31c2c0984fb9c928c45528bbfdef6397",
        "urls": [
          "bzz-raw://55b26d1a6beda8cb76043d2fde56445910ae3e88e8ab20d2c48678e4456beca3",
          "dweb:/ipfs/QmYrMXbpPcjzJen93uFXiBws7fauseuXZcQ9fpbsNbaGN8"
        ],
        "license": "GPL-3.0-or-later"
      },
      "src/types/MerkleVCA.sol": {
        "keccak256": "0xf3a18cb59859a19df261de13f3943f6c572a4ee5397f5871fb68522d35238515",
        "urls": [
          "bzz-raw://d3c5a62c2ef30e6c653f59508e6cdb0f7244eacf6907ae959c1e73618177da89",
          "dweb:/ipfs/QmNYeLAQiY39SHYhfVpTrmacxHmQnN88T92ijLHQEfXamu"
        ],
        "license": "GPL-3.0-or-later"
      }
    },
    "version": 1
  },
  "id": 110
}
