{"abi":[{"type":"constructor","inputs":[{"name":"initialAdmin","type":"address","internalType":"address"},{"name":"initialNFTDescriptor","type":"address","internalType":"contract IFlowNFTDescriptor"}],"stateMutability":"nonpayable"},{"type":"function","name":"MAX_FEE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"UD60x18"}],"stateMutability":"view"},{"type":"function","name":"adjustRatePerSecond","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"},{"name":"newRatePerSecond","type":"uint128","internalType":"UD21x18"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"aggregateBalance","inputs":[{"name":"token","type":"address","internalType":"contract IERC20"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"batch","inputs":[{"name":"calls","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"collectProtocolRevenue","inputs":[{"name":"token","type":"address","internalType":"contract IERC20"},{"name":"to","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"coveredDebtOf","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"coveredDebt","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"create","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"ratePerSecond","type":"uint128","internalType":"UD21x18"},{"name":"token","type":"address","internalType":"contract IERC20"},{"name":"transferable","type":"bool","internalType":"bool"}],"outputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"createAndDeposit","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"ratePerSecond","type":"uint128","internalType":"UD21x18"},{"name":"token","type":"address","internalType":"contract IERC20"},{"name":"transferable","type":"bool","internalType":"bool"},{"name":"amount","type":"uint128","internalType":"uint128"}],"outputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"depletionTimeOf","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"depletionTime","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint128","internalType":"uint128"},{"name":"sender","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"depositAndPause","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"depositViaBroker","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"},{"name":"totalAmount","type":"uint128","internalType":"uint128"},{"name":"sender","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"broker","type":"tuple","internalType":"struct Broker","components":[{"name":"account","type":"address","internalType":"address"},{"name":"fee","type":"uint256","internalType":"UD60x18"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getBalance","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"balance","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"getRatePerSecond","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"ratePerSecond","type":"uint128","internalType":"UD21x18"}],"stateMutability":"view"},{"type":"function","name":"getRecipient","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"recipient","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getSender","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"sender","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getSnapshotDebtScaled","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"snapshotDebtScaled","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getSnapshotTime","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"snapshotTime","type":"uint40","internalType":"uint40"}],"stateMutability":"view"},{"type":"function","name":"getStream","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"stream","type":"tuple","internalType":"struct Flow.Stream","components":[{"name":"balance","type":"uint128","internalType":"uint128"},{"name":"ratePerSecond","type":"uint128","internalType":"UD21x18"},{"name":"sender","type":"address","internalType":"address"},{"name":"snapshotTime","type":"uint40","internalType":"uint40"},{"name":"isStream","type":"bool","internalType":"bool"},{"name":"isTransferable","type":"bool","internalType":"bool"},{"name":"isVoided","type":"bool","internalType":"bool"},{"name":"token","type":"address","internalType":"contract IERC20"},{"name":"tokenDecimals","type":"uint8","internalType":"uint8"},{"name":"snapshotDebtScaled","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getToken","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"token","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"function","name":"getTokenDecimals","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"tokenDecimals","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPaused","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isStream","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTransferable","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isVoided","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nextStreamId","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"nftDescriptor","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IFlowNFTDescriptor"}],"stateMutability":"view"},{"type":"function","name":"ongoingDebtScaledOf","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"ongoingDebtScaled","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pause","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"protocolFee","inputs":[{"name":"token","type":"address","internalType":"contract IERC20"}],"outputs":[{"name":"fee","type":"uint256","internalType":"UD60x18"}],"stateMutability":"view"},{"type":"function","name":"protocolRevenue","inputs":[{"name":"token","type":"address","internalType":"contract IERC20"}],"outputs":[{"name":"revenue","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"recover","inputs":[{"name":"token","type":"address","internalType":"contract IERC20"},{"name":"to","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"refund","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"refundAndPause","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"refundMax","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"refundableAmountOf","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"refundableAmount","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"restart","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"},{"name":"ratePerSecond","type":"uint128","internalType":"UD21x18"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"restartAndDeposit","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"},{"name":"ratePerSecond","type":"uint128","internalType":"UD21x18"},{"name":"amount","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNFTDescriptor","inputs":[{"name":"newNFTDescriptor","type":"address","internalType":"contract IFlowNFTDescriptor"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setProtocolFee","inputs":[{"name":"token","type":"address","internalType":"contract IERC20"},{"name":"newProtocolFee","type":"uint256","internalType":"UD60x18"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"statusOf","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"status","type":"uint8","internalType":"enum Flow.Status"}],"stateMutability":"view"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"uri","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalDebtOf","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"totalDebt","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferAdmin","inputs":[{"name":"newAdmin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"uncoveredDebtOf","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"uncoveredDebt","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"void","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdraw","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint128","internalType":"uint128"}],"outputs":[{"name":"withdrawnAmount","type":"uint128","internalType":"uint128"},{"name":"protocolFeeAmount","type":"uint128","internalType":"uint128"}],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawMax","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"}],"outputs":[{"name":"withdrawnAmount","type":"uint128","internalType":"uint128"},{"name":"protocolFeeAmount","type":"uint128","internalType":"uint128"}],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawableAmountOf","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"withdrawableAmount","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"event","name":"AdjustFlowStream","inputs":[{"name":"streamId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"totalDebt","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"oldRatePerSecond","type":"uint128","indexed":false,"internalType":"UD21x18"},{"name":"newRatePerSecond","type":"uint128","indexed":false,"internalType":"UD21x18"}],"anonymous":false},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"BatchMetadataUpdate","inputs":[{"name":"_fromTokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"_toTokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"CollectProtocolRevenue","inputs":[{"name":"admin","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"contract IERC20"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"revenue","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"CreateFlowStream","inputs":[{"name":"streamId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"ratePerSecond","type":"uint128","indexed":false,"internalType":"UD21x18"},{"name":"token","type":"address","indexed":true,"internalType":"contract IERC20"},{"name":"transferable","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"DepositFlowStream","inputs":[{"name":"streamId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"funder","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"MetadataUpdate","inputs":[{"name":"_tokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PauseFlowStream","inputs":[{"name":"streamId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"totalDebt","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Recover","inputs":[{"name":"admin","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"contract IERC20"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"surplus","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"RefundFromFlowStream","inputs":[{"name":"streamId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"RestartFlowStream","inputs":[{"name":"streamId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"ratePerSecond","type":"uint128","indexed":false,"internalType":"UD21x18"}],"anonymous":false},{"type":"event","name":"SetNFTDescriptor","inputs":[{"name":"admin","type":"address","indexed":true,"internalType":"address"},{"name":"oldNFTDescriptor","type":"address","indexed":false,"internalType":"contract IFlowNFTDescriptor"},{"name":"newNFTDescriptor","type":"address","indexed":false,"internalType":"contract IFlowNFTDescriptor"}],"anonymous":false},{"type":"event","name":"SetProtocolFee","inputs":[{"name":"admin","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"contract IERC20"},{"name":"oldProtocolFee","type":"uint256","indexed":false,"internalType":"UD60x18"},{"name":"newProtocolFee","type":"uint256","indexed":false,"internalType":"UD60x18"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"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":"event","name":"VoidFlowStream","inputs":[{"name":"streamId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"caller","type":"address","indexed":false,"internalType":"address"},{"name":"newTotalDebt","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"writtenOffDebt","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WithdrawFromFlowStream","inputs":[{"name":"streamId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"contract IERC20"},{"name":"caller","type":"address","indexed":false,"internalType":"address"},{"name":"withdrawAmount","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"protocolFeeAmount","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"BatchError","inputs":[{"name":"errorData","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"CallerNotAdmin","inputs":[{"name":"admin","type":"address","internalType":"address"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"DelegateCall","inputs":[]},{"type":"error","name":"ERC721IncorrectOwner","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InsufficientApproval","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC721InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721NonexistentToken","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"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":"SablierFlowBase_NoProtocolRevenue","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SablierFlowBase_NotTransferable","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SablierFlowBase_ProtocolFeeTooHigh","inputs":[{"name":"newProtocolFee","type":"uint256","internalType":"UD60x18"},{"name":"maxFee","type":"uint256","internalType":"UD60x18"}]},{"type":"error","name":"SablierFlowBase_SurplusZero","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SablierFlow_BrokerAddressZero","inputs":[]},{"type":"error","name":"SablierFlow_BrokerFeeTooHigh","inputs":[{"name":"brokerFee","type":"uint256","internalType":"UD60x18"},{"name":"maxFee","type":"uint256","internalType":"UD60x18"}]},{"type":"error","name":"SablierFlow_DepositAmountZero","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SablierFlow_InvalidCalculation","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"},{"name":"availableAmount","type":"uint128","internalType":"uint128"},{"name":"amount","type":"uint128","internalType":"uint128"}]},{"type":"error","name":"SablierFlow_InvalidTokenDecimals","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SablierFlow_NotStreamRecipient","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"streamRecipient","type":"address","internalType":"address"}]},{"type":"error","name":"SablierFlow_NotStreamSender","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"streamSender","type":"address","internalType":"address"}]},{"type":"error","name":"SablierFlow_Null","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SablierFlow_Overdraw","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint128","internalType":"uint128"},{"name":"withdrawableAmount","type":"uint128","internalType":"uint128"}]},{"type":"error","name":"SablierFlow_RatePerSecondNotDifferent","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"},{"name":"ratePerSecond","type":"uint128","internalType":"UD21x18"}]},{"type":"error","name":"SablierFlow_RefundAmountZero","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SablierFlow_RefundOverflow","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"},{"name":"refundAmount","type":"uint128","internalType":"uint128"},{"name":"refundableAmount","type":"uint128","internalType":"uint128"}]},{"type":"error","name":"SablierFlow_SenderZeroAddress","inputs":[]},{"type":"error","name":"SablierFlow_StreamBalanceZero","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SablierFlow_StreamNotPaused","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SablierFlow_StreamPaused","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SablierFlow_StreamVoided","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SablierFlow_Unauthorized","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"SablierFlow_WithdrawAmountZero","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SablierFlow_WithdrawToZeroAddress","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SablierFlow_WithdrawalAddressNotRecipient","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"},{"name":"caller","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"}]},{"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":"0x60a0604052346103a957614bf36040813803918261001c816103ad565b9384928339810103126103a95780516001600160a01b03811691908290036103a957602001516001600160a01b038116908190036103a95761005e60406103ad565b91601083526f14d8589b1a595c88119b1bddc813919560821b602084015261008660406103ad565b60088152675341422d464c4f5760c01b60208201523060805283519092906001600160401b0381116102ba57600154600181811c9116801561039f575b602082101461029c57601f811161033c575b50602094601f82116001146102d9579481929394955f926102ce575b50508160011b915f199060031b1c1916176001555b82516001600160401b0381116102ba57600254600181811c911680156102b0575b602082101461029c57601f8111610239575b506020601f82116001146101d657819293945f926101cb575b50508160011b915f199060031b1c1916176002555b60016008555f80546001600160a01b031990811684178255600980549091169290921790915560405191907fbdd36143ee09de60bdefca70680e0f71189b2ed7acee364b53917ad433fdaf808180a361482090816103d38239608051816131a90152f35b015190505f80610152565b601f1982169060025f52805f20915f5b81811061022157509583600195969710610209575b505050811b01600255610167565b01515f1960f88460031b161c191690555f80806101fb565b9192602060018192868b0151815501940192016101e6565b60025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace601f830160051c81019160208410610292575b601f0160051c01905b8181106102875750610139565b5f815560010161027a565b9091508190610271565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610127565b634e487b7160e01b5f52604160045260245ffd5b015190505f806100f1565b601f1982169560015f52805f20915f5b8881106103245750836001959697981061030c575b505050811b01600155610106565b01515f1960f88460031b161c191690555f80806102fe565b919260206001819286850151815501940192016102e9565b60015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f830160051c81019160208410610395575b601f0160051c01905b81811061038a57506100d5565b5f815560010161037d565b9091508190610374565b90607f16906100c3565b5f80fd5b6040519190601f01601f191682016001600160401b038111838210176102ba5760405256fe6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a7146127675750806306fdde03146126ac578063081812fc1461268e57806308b8792314612654578063095ea7b3146125375780630c5fd195146124ed5780630c69962414612461578063136439dd146123c95780631400ecec1461238f5780631e010439146123385780631e897afb1461220f5780631e99d569146121f25780631f0cce58146120e357806323b872dd146120cc578063379d871a1461202b57806342842e0e1461200257806342e3e23d146108665780634426757014611fdc578063450ac90814611f94578063569f4c5914611f44578063597150fa14611efc5780635ea2145b14611c295780635f55315214611bf15780636352211e14611bc2578063648bf77414611a695780636d0cee7514611a1b57806370a08231146119b157806375829def1461192b5780637cad6cd11461182d5780637ddf9228146117f357806380448da3146117ab57806381632a861461171f578063894e9a0d1461157257806395d89b4114611433578063a22cb46514611361578063a7de07cd14611313578063a8a482a614611208578063ad35efd414611190578063b256456914611140578063b5b3ca2c14610fe5578063b61f758314610f42578063b62b31e414610f0a578063b88d4fde14610e80578063b8a3be6614610e4b578063b971302a14610dfa578063bc063e1a14610dd8578063bc7a2d6c14610d9e578063bcbd019e14610cc8578063bdf2a43c14610c7f578063c2f8e75014610a2a578063c87b56dd14610918578063d4b808841461089e578063d975dfed14610866578063e4b50cb814610815578063e985e9c5146107bc578063ea5ead1914610745578063eb5710d8146106c8578063ebb6f79a14610591578063f851a4401461056c578063fbf2777e146104ec578063fdd46d60146104155763ffe3d9f8146102c6575f80fd5b34610411576040600319360112610411576102df6128cd565b6102e76128e3565b6001600160a01b035f54163381036103e257506001600160a01b03821691825f52600b6020526fffffffffffffffffffffffffffffffff60405f2054169081156103b657818361037a92865f52600b60205260405f207fffffffffffffffffffffffffffffffff000000000000000000000000000000008154169055865f52600760205260405f20838154039055613d21565b6001600160a01b036040519216825260208201527fc9a4a66b97fd7e52e69c5be7b10bdc5341bded817201b9b7136a75068d4e4e0560403392a3005b837ff717901b000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7fc6cce6a4000000000000000000000000000000000000000000000000000000005f526004523360245260445ffd5b5f80fd5b34610411576060600319360112610411576004356104316128e3565b610439612944565b9061044261319f565b825f52600c60205260ff600160405f20015460c81c16156104c05761048c83927ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce792602095614043565b939092604051908152a1604080516fffffffffffffffffffffffffffffffff928316815292909116602083015290f35b0390f35b827fe21c1431000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b346104115760c0600319360112610411576105056128cd565b61050d6128e3565b90610516612944565b9161051f61290f565b9161052861299d565b60a435936fffffffffffffffffffffffffffffffff85168503610411576020956105649461055d9461055861319f565b613741565b91826135ef565b604051908152f35b34610411575f6003193601126104115760206001600160a01b035f5416604051908152f35b34610411576040600319360112610411576004356105ad612925565b6105b561319f565b815f52600c60205260ff600160405f20015460c81c161561069c57815f52600c60205260ff600160405f20015460d81c1661067057815f52600c6020526001600160a01b03600160405f20015416330361064057816106376020927ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce794613566565b604051908152a1005b507fa9ad2a22000000000000000000000000000000000000000000000000000000005f526004523360245260445ffd5b507f7354d5f1000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b507fe21c1431000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b3461041157602060031936011261041157600435805f52600c60205260ff600160405f20015460c81c161561071a575f52600c602052602064ffffffffff600160405f20015460a01c16604051908152f35b7fe21c1431000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b34610411576040600319360112610411576004356107616128e3565b61076961319f565b815f52600c60205260ff600160405f20015460c81c161561069c57907ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce761048c6020936107b5846136f7565b9084614043565b34610411576040600319360112610411576107d56128cd565b6001600160a01b036107e56128e3565b91165f5260066020526001600160a01b0360405f2091165f52602052602060ff60405f2054166040519015158152f35b3461041157602060031936011261041157600435805f52600c60205260ff600160405f20015460c81c161561071a575f52600c60205260206001600160a01b03600260405f20015416604051908152f35b34610411576020600319360112610411576020610884600435612d78565b6fffffffffffffffffffffffffffffffff60405191168152f35b3461041157602060031936011261041157600435805f52600c60205260ff600160405f20015460c81c161561071a57805f52600c60205260405f205460801c156108ed57610564602091612ff3565b7f167274c9000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b346104115760206003193601126104115760043561093581613111565b505f6001600160a01b0360095416916044604051809481937fe9dc637500000000000000000000000000000000000000000000000000000000835230600484015260248301525afa8015610a1f575f906109a2575b6104bc9060405191829160208352602083019061288a565b503d805f833e6109b281836129c9565b8101906020818303126104115780519067ffffffffffffffff821161041157019080601f83011215610411578151916109ea83612a0a565b916109f860405193846129c9565b83835260208483010111610411576104bc92610a1a9160208085019101612869565b61098a565b6040513d5f823e3d90fd5b346104115760c060031936011261041157600435610a46612925565b610a4e6128f9565b610a5661290f565b60407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7c36011261041157610a8861319f565b835f52600c60205260ff600160405f20015460c81c1615610c5357835f52600c60205260ff600160405f20015460d81c16610c2757610ac79184613f38565b604051916040830183811067ffffffffffffffff821117610bfa576040526084356001600160a01b038116810361041157835260a435602084019080825267016345785d8a00008111610bc357506001600160a01b0384511615610b9b577ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce793610b64610b5b60209561063794519061463d565b859291926135ef565b835f52600c85526fffffffffffffffffffffffffffffffff6001600160a01b0380600260405f200154169351169116913390614487565b7f5f946a02000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f54b392b2000000000000000000000000000000000000000000000000000000005f5260045267016345785d8a000060245260445ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b837f7354d5f1000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b837fe21c1431000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b3461041157602060031936011261041157600435805f52600c60205260ff600160405f20015460c81c161561071a575f52600c602052602060405f205460801c15604051908152f35b3461041157604060031936011261041157600435610ce4612925565b610cec61319f565b815f52600c60205260ff600160405f20015460c81c161561069c57815f52600c60205260405f205460801c15610d7257815f52600c6020526001600160a01b03600160405f2001541633036106405781610d696020927ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7946135ef565b61063781613432565b507f167274c9000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b3461041157602060031936011261041157600435805f52600c60205260ff600160405f20015460c81c161561071a57610564602091613efe565b34610411575f60031936011261041157602060405167016345785d8a00008152f35b3461041157602060031936011261041157600435805f52600c60205260ff600160405f20015460c81c161561071a575f52600c60205260206001600160a01b03600160405f20015416604051908152f35b34610411576020600319360112610411576004355f52600c602052602060ff600160405f20015460c81c166040519015158152f35b3461041157608060031936011261041157610e996128cd565b610ea16128e3565b6064359167ffffffffffffffff8311610411573660238401121561041157826004013591610ece83612a0a565b92610edc60405194856129c9565b8084523660248287010111610411576020815f926024610f089801838801378501015260443591612e07565b005b34610411576020600319360112610411576001600160a01b03610f2b6128cd565b165f52600a602052602060405f2054604051908152f35b3461041157608060031936011261041157600435610f5e612925565b610f666128f9565b610f6e61290f565b90610f7761319f565b835f52600c60205260ff600160405f20015460c81c1615610c5357835f52600c60205260ff600160405f20015460d81c16610c2757602092610fdf8593610637937ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce797613f38565b826135ef565b3461041157604060031936011261041157610ffe6128cd565b602435906001600160a01b035f54163381036103e2575067016345785d8a00008211611108576001600160a01b031690815f52600a60205260405f205490825f52600a6020528060405f205560405191825260208201527f371789a3d97098f3070492613273a065a7e8a19e009fd1ae92a4b4d4c71ed62d60403392a36008547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019081116110db5760407f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c91815190600182526020820152a1005b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b507f34553172000000000000000000000000000000000000000000000000000000005f5260045267016345785d8a000060245260445ffd5b3461041157602060031936011261041157600435805f52600c60205260ff600160405f20015460c81c161561071a575f52600c602052602060ff600160405f20015460d01c166040519015158152f35b3461041157602060031936011261041157600435805f52600c60205260ff600160405f20015460c81c161561071a576111c890612dac565b60405160058210156111db576020918152f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b3461041157604060031936011261041157600435611224612925565b61122c61319f565b815f52600c60205260ff600160405f20015460c81c161561069c57815f52600c60205260405f205460801c15610d7257815f52600c6020526001600160a01b03600160405f2001541633036106405781807ffddf01d0842635e80929251f6862b3baf136a29f2b2fb148968e8b236d5785fe60606020947ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7965f52600c86526fffffffffffffffffffffffffffffffff60405f205460801c916112ef8187613dcd565b6112f88661315d565b9260405193845288840152166040820152a2604051908152a1005b3461041157602060031936011261041157600435805f52600c60205260ff600160405f20015460c81c161561071a575f52600c602052602060ff600260405f20015460a01c16604051908152f35b346104115760406003193601126104115761137a6128cd565b60243590811515809203610411576001600160a01b031690811561140757335f52600660205260405f20825f5260205260405f207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff83161790556040519081527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a3005b507f5b08ba18000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b34610411575f600319360112610411576040515f6002548060011c90600181168015611568575b60208310811461153b578285529081156114f9575060011461149b575b6104bc83611487818503826129c9565b60405191829160208352602083019061288a565b91905060025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace915f905b8082106114df57509091508101602001611487611477565b9192600181602092548385880101520191019092916114c7565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208086019190915291151560051b840190910191506114879050611477565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f169161145a565b34610411576020600319360112610411576004355f610120604051611596816129ac565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e0820152826101008201520152805f52600c60205260ff600160405f20015460c81c161561071a575f52600c60205260405f206040516115fe816129ac565b81546fffffffffffffffffffffffffffffffff811692838352602083019160801c82526001810154604084016001600160a01b0382168152606085018260a01c64ffffffffff16815260808601908360c81c60ff161515825260a08701928460d01c60ff161515845260c088019460d81c60ff161515855260028601549660e08901966001600160a01b03891688526101008a019860a01c60ff168952600301549861012001988952604051998a52516fffffffffffffffffffffffffffffffff1660208a0152516001600160a01b031660408901525164ffffffffff166060880152511515608087015251151560a086015251151560c0850152516001600160a01b031660e08401525160ff166101008301525161012082015261014090f35b346104115760406003193601126104115760043561173b612925565b61174361319f565b815f52600c60205260ff600160405f20015460c81c161561069c57815f52600c6020526001600160a01b03600160405f20015416330361064057816106376020927ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79461325d565b3461041157602060031936011261041157600435805f52600c60205260ff600160405f20015460c81c161561071a575f52600c602052602060405f205460801c604051908152f35b3461041157602060031936011261041157600435805f52600c60205260ff600160405f20015460c81c161561071a57610564602091613d7d565b34610411576020600319360112610411576004356001600160a01b038116809103610411576001600160a01b035f54163381036103e2575060095490807fffffffffffffffffffffffff00000000000000000000000000000000000000008316176009556001600160a01b036040519216825260208201527fa2548bd4b805e907c1558a47b5858324fe8bb4a2e1ddfca647eecbf65610eebc60403392a26008547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019081116110db5760407f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c91815190600182526020820152a1005b34610411576020600319360112610411576119446128cd565b5f546001600160a01b0381163381036103e257506001600160a01b037fffffffffffffffffffffffff0000000000000000000000000000000000000000921691829116175f55337fbdd36143ee09de60bdefca70680e0f71189b2ed7acee364b53917ad433fdaf805f80a3005b34610411576020600319360112610411576001600160a01b036119d26128cd565b1680156119ef575f526004602052602060405f2054604051908152f35b7f89c62b64000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b3461041157602060031936011261041157600435805f52600c60205260ff600160405f20015460c81c161561071a575f52600360205260206001600160a01b0360405f205416604051908152f35b3461041157604060031936011261041157611a826128cd565b611a8a6128e3565b6001600160a01b035f54163381036103e257506001600160a01b038216916040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152602081602481875afa8015610a1f575f90611b8e575b611b029150845f52600760205260405f205490612d9f565b908115611b625781611b397f21252411d5a999da4bc6a490f7143b61ba690edceb4577a2800eab8dfbb1e92c9385611b5d94613d21565b604051918291339583602090939291936001600160a01b0360408201951681520152565b0390a3005b837ff4c3afcf000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b506020813d602011611bba575b81611ba8602093836129c9565b8101031261041157611b029051611aea565b3d9150611b9b565b34610411576020600319360112610411576020611be0600435613111565b6001600160a01b0360405191168152f35b34610411576020600319360112610411576001600160a01b03611c126128cd565b165f526007602052602060405f2054604051908152f35b3461041157602060031936011261041157600435611c4561319f565b805f52600c60205260ff600160405f20015460c81c161561071a57805f52600c60205260ff600160405f20015460d81c16611ed157805f52600c6020526001600160a01b03600160405f2001541633141580611ec1575b611e9257602081611ccd7ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce793613efe565b80611e4257611cdb82613d7d565b80611e21575b505b5f828152600c84526040902060010180547fffffffffffffff0000000000ffffffffffffffffffffffffffffffffffffffff164260a01b78ffffffffff000000000000000000000000000000000000000016179055815f52600c835260405f206fffffffffffffffffffffffffffffffff8154169055815f52600c8352600160405f20017b010000000000000000000000000000000000000000000000000000007fffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff825416179055815f52600c83526001600160a01b03600160405f20015416825f5260038452827fa8e3d71a6c0c719305004b430f6d17f12536f7b803db23a4d7016f5b52699a8c60606001600160a01b0360405f20541694611e068461315d565b9060405191338352898301526040820152a4604051908152a1005b825f52600c8452611e3a600360405f2001918254612faf565b905584611ce1565b815f52600c8352611e7e6fffffffffffffffffffffffffffffffff60405f205416835f52600c855260ff600260405f20015460a01c169061402a565b825f52600c8452600360405f200155611ce3565b7fa9ad2a22000000000000000000000000000000000000000000000000000000005f526004523360245260445ffd5b50611ecb8161453d565b15611c9c565b7f7354d5f1000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b346104115760a0600319360112610411576020610564611f1a6128cd565b611f226128e3565b611f2a612944565b611f3261290f565b91611f3b61299d565b9361055861319f565b3461041157602060031936011261041157600435805f52600c60205260ff600160405f20015460c81c161561071a575f52600c602052602060ff600160405f20015460d81c166040519015158152f35b3461041157602060031936011261041157600435805f52600c60205260ff600160405f20015460c81c161561071a575f52600c6020526020600360405f200154604051908152f35b34610411575f6003193601126104115760206001600160a01b0360095416604051908152f35b3461041157610f0861201336612963565b90604051926120236020856129c9565b5f8452612e07565b3461041157604060031936011261041157600435612047612925565b61204f61319f565b815f52600c60205260ff600160405f20015460c81c161561069c57815f52600c60205260405f205460801c15610d7257815f52600c6020526001600160a01b03600160405f2001541633036106405781610d696020927ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79461325d565b3461041157610f086120dd36612963565b91612a95565b34610411576060600319360112610411576004356120ff612925565b612107612944565b9061211061319f565b825f52600c60205260ff600160405f20015460c81c16156104c057825f52600c60205260ff600160405f20015460d81c166121c657825f52600c6020526001600160a01b03600160405f2001541633036121965791610637602092610fdf7ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79584613566565b827fa9ad2a22000000000000000000000000000000000000000000000000000000005f526004523360245260445ffd5b827f7354d5f1000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b34610411575f600319360112610411576020600854604051908152f35b346104115760206003193601126104115760043567ffffffffffffffff8111610411573660238201121561041157806004013567ffffffffffffffff8111610411573660248260051b8401011161041157905f907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbd81360301915b83811015610f085760248160051b830101358381121561041157820160248101359067ffffffffffffffff821161041157604401813603811361041157815f92918392604051928392833781018381520390305af46122e7612a66565b90156122f6575060010161228a565b612334906040519182917fd935448500000000000000000000000000000000000000000000000000000000835260206004840152602483019061288a565b0390fd5b3461041157602060031936011261041157600435805f52600c60205260ff600160405f20015460c81c161561071a575f52600c60205260206fffffffffffffffffffffffffffffffff60405f205416604051908152f35b3461041157602060031936011261041157600435805f52600c60205260ff600160405f20015460c81c161561071a5761088460209161322b565b34610411576020600319360112610411576004356123e561319f565b805f52600c60205260ff600160405f20015460c81c161561071a57805f52600c60205260405f205460801c156108ed57805f52600c6020526001600160a01b03600160405f200154163303611e92576020816106377ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce793613432565b346104115760206003193601126104115760043561247d61319f565b805f52600c60205260ff600160405f20015460c81c161561071a57805f52600c6020526001600160a01b03600160405f200154163303611e92576020816106376124e77ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79461322b565b8261325d565b34610411576020600319360112610411576001600160a01b0361250e6128cd565b165f52600b60205260206fffffffffffffffffffffffffffffffff60405f205416604051908152f35b34610411576040600319360112610411576125506128cd565b60243561255c81613111565b33151580612641575b8061260e575b6125e25781906001600160a01b0380851691167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9255f80a45f5260056020526001600160a01b0360405f2091167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790555f80f35b7fa9fbf51f000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b506001600160a01b0381165f52600660205260405f206001600160a01b0333165f5260205260ff60405f2054161561256b565b50336001600160a01b0382161415612565565b3461041157602060031936011261041157600435805f52600c60205260ff600160405f20015460c81c161561071a5761056460209161315d565b34610411576020600319360112610411576020611be0600435612a44565b34610411575f600319360112610411576040515f6001548060011c9060018116801561275d575b60208310811461153b578285529081156114f957506001146126ff576104bc83611487818503826129c9565b91905060015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6915f905b80821061274357509091508101602001611487611477565b91926001816020925483858801015201910190929161272b565b91607f16916126d3565b3461041157602060031936011261041157600435907fffffffff00000000000000000000000000000000000000000000000000000000821680920361041157817f4906490600000000000000000000000000000000000000000000000000000000602093149081156127db575b5015158152f35b7f80ac58cd0000000000000000000000000000000000000000000000000000000081149150811561283f575b8115612815575b50836127d4565b7f01ffc9a7000000000000000000000000000000000000000000000000000000009150148361280e565b7f5b5e139f0000000000000000000000000000000000000000000000000000000081149150612807565b5f5b83811061287a5750505f910152565b818101518382015260200161286b565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f6020936128c681518092818752878088019101612869565b0116010190565b600435906001600160a01b038216820361041157565b602435906001600160a01b038216820361041157565b604435906001600160a01b038216820361041157565b606435906001600160a01b038216820361041157565b602435906fffffffffffffffffffffffffffffffff8216820361041157565b604435906fffffffffffffffffffffffffffffffff8216820361041157565b6003196060910112610411576004356001600160a01b038116810361041157906024356001600160a01b0381168103610411579060443590565b60843590811515820361041157565b610140810190811067ffffffffffffffff821117610bfa57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610bfa57604052565b67ffffffffffffffff8111610bfa57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b612a4d81613111565b505f5260056020526001600160a01b0360405f20541690565b3d15612a90573d90612a7782612a0a565b91612a8560405193846129c9565b82523d5f602084013e565b606090565b91906001600160a01b0316918215612d4c57815f5260036020526001600160a01b0360405f205416151580612d2f575b612d0357815f5260036020526001600160a01b0360405f2054169233151580612c3b575b50907ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce760206001600160a01b039386612bce575b805f526004825260405f2060018154019055855f526003825260405f20817fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790558560405191887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a4858152a116808303612b9d57505050565b7f64283d7b000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b612c05865f52600560205260405f207fffffffffffffffffffffffff00000000000000000000000000000000000000008154169055565b865f526004825260405f207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8154019055612b1d565b80612cac575b15612c4c575f612ae9565b8284612c7d577f7e273289000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7f177e802f000000000000000000000000000000000000000000000000000000005f523360045260245260445ffd5b503384148015612cda575b80612c415750825f526005602052336001600160a01b0360405f20541614612c41565b50835f52600660205260405f206001600160a01b0333165f5260205260ff60405f205416612cb7565b507f7da2ea2b000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b50815f52600c60205260ff600160405f20015460d01c1615612ac5565b7f64a0ae92000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b805f52600c60205260ff600160405f20015460c81c161561071a57612d9c906136f7565b90565b919082039182116110db57565b805f52600c60205260ff600160405f20015460d81c16612e0157612dcf81613efe565b1515905f52600c60205260405f205460801c15612df357612dee575f90565b600190565b612dfc57600290565b600390565b50600490565b90612e13838284612a95565b803b612e20575b50505050565b602091612e7f6001600160a01b038093169560405195869485947f150b7a02000000000000000000000000000000000000000000000000000000008652336004870152166024850152604484015260806064840152608483019061288a565b03815f865af15f9181612f52575b50612ed45750612e9b612a66565b80519081612ecf57827f64a0ae92000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b602001fd5b7fffffffff000000000000000000000000000000000000000000000000000000007f150b7a0200000000000000000000000000000000000000000000000000000000911603612f2757505f808080612e1a565b7f64a0ae92000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011612fa7575b81612f6e602093836129c9565b8101031261041157517fffffffff000000000000000000000000000000000000000000000000000000008116810361041157905f612e8d565b3d9150612f61565b919082018092116110db57565b8115612fc6570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b805f52600c6020526fffffffffffffffffffffffffffffffff60405f2054169081156130e657805f52600c60205261303960ff600260405f20015460a01c16809361402a565b91815f52600c602052613053600360405f2001549161400d565b9061306661306084613d7d565b82612faf565b6130708386612faf565b11156130de57825f52600c60205260405f205460801c930301916130948184612fbc565b928115612fc657066130bd575f52600c60205264ffffffffff600160405f20015460a01c160190565b906001915f52600c60205264ffffffffff8260405f20015460a01c16010190565b505050505f90565b7f0f04b2a1000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b805f5260036020526001600160a01b0360405f205416908115613132575090565b7f7e273289000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b612d9c9061318361316d82613d7d565b825f52600c602052600360405f20015490612faf565b905f52600c60205260ff600260405f20015460a01c1690614467565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036131d157565b7fa1c0d6e5000000000000000000000000000000000000000000000000000000005f5260045ffd5b906fffffffffffffffffffffffffffffffff809116911603906fffffffffffffffffffffffffffffffff82116110db57565b612d9c90805f52600c6020526132576fffffffffffffffffffffffffffffffff60405f205416916136f7565b906131f9565b6fffffffffffffffffffffffffffffffff82168015613406576fffffffffffffffffffffffffffffffff6132908361322b565b168082116133d457825f52600c6020526fffffffffffffffffffffffffffffffff60405f205416106133825760207fe31f2d40d5780915b1e656a67e11bdf09b0a4a925ec42bbeae220c8ca937ab4991835f52600c8252613379816001600160a01b03600160405f200154168097875f52600c86526001600160a01b03600260405f2001541690885f52600c87526fffffffffffffffffffffffffffffffff8060405f2092818454160316167fffffffffffffffffffffffffffffffff00000000000000000000000000000000825416179055805f526007865260405f20838154039055613d21565b604051908152a3565b90805f52600c6020526fffffffffffffffffffffffffffffffff60405f205416907fcb5f605f000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b917fe9771401000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b507fea66b871000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b805f52600c60205260405f205460801c156135375761345081613d7d565b80613515575b505f818152600c6020908152604080832060018101805478ffffffffff00000000000000000000000000000000000000004260a01b167fffffffffffffff0000000000ffffffffffffffffffffffffffffffffffffffff82161790915581546fffffffffffffffffffffffffffffffff16909155600383529220546001600160a01b0390811693921691907fda83bf669c651406e02062769e01d14cccb5625ea685fd95e0e56d29597dac479061350c8361315d565b604051908152a4565b815f52600c60205261352f600360405f2001918254612faf565b90555f613456565b7fd2657d5a000000000000000000000000000000000000000000000000000000005f526004525f60245260445ffd5b805f52600c60205260405f205460801c6135c4576135848282613dcd565b6fffffffffffffffffffffffffffffffff604051921682527fc2a543cfadbf862642247e28711aaa30e3460384be5712be6557fee3384454fd60203393a3565b7fdc6fbbbc000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b906fffffffffffffffffffffffffffffffff169081156136cc575f818152600c60205260409020600281015481546fffffffffffffffffffffffffffffffff9081168501916001600160a01b03169082116110db5761369e926fffffffffffffffffffffffffffffffff8693167fffffffffffffffffffffffffffffffff00000000000000000000000000000000825416179055805f52600760205260405f2082815401905530903390614487565b6040519182527fa06c1466b3c9751408a5ac337a2e8808e5ee0ceed1fd70635d041b21174eb6b460203393a3565b7f33f2df5a000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b805f52600c6020526fffffffffffffffffffffffffffffffff60405f20541690811561373b576137269061315d565b80821061373757612d9c91506144e1565b5090565b50505f90565b6001600160a01b039095949293919516908115613cf9576001600160a01b0316926040517f313ce567000000000000000000000000000000000000000000000000000000008152602081600481885afa8015610a1f575f90613cbc575b60ff9150169560128711613c9057600854968786604051926137bf846129ac565b5f845260208401956fffffffffffffffffffffffffffffffff1695868152604085019088825260608601994264ffffffffff168b52608087016001815260a088019115159b8c835260c08901935f855260e08a019788526101008a019687526101208a01985f8a525f52600c60205260405f2099516fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168a547fffffffffffffffffffffffffffffffff0000000000000000000000000000000016178a55516fffffffffffffffffffffffffffffffff166138d8908a906fffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffff0000000000000000000000000000000083549260801b169116179055565b9351600189018054955178ffffffffff000000000000000000000000000000000000000060a09190911b166001600160a01b039092167fffffffffffffff00000000000000000000000000000000000000000000000000909616959095171784555115159083549051151560d01b7aff0000000000000000000000000000000000000000000000000000169160c81b79ff0000000000000000000000000000000000000000000000000016907fffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffff161717825551151581549060d81b7bff00000000000000000000000000000000000000000000000000000016907fffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff161790556002840191516001600160a01b03166001600160a01b031682547fffffffffffffffffffffffff0000000000000000000000000000000000000000161782555181549060a01b74ff000000000000000000000000000000000000000016907fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16179055519060030155600187016008556001600160a01b0316928315612d4c57865f5260036020526001600160a01b0360405f205416151580613c73575b613c4757865f5260036020526001600160a01b0360405f2054167ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce760208215159283613bda575b875f526004825260405f20600181540190558a5f526003825260405f20887fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055604051908b89827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a4508a8152a1613bae577f2262fa211f8507786a60fefb231f7898b8145fe16350f281c91f121bd2ee118d916060916040519189835260208301526040820152a4565b7f73c6ac6e000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b613c118b5f52600560205260405f207fffffffffffffffffffffffff00000000000000000000000000000000000000008154169055565b805f526004825260405f207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8154019055613afc565b867f7da2ea2b000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b50865f52600c60205260ff600160405f20015460d01c1615613ab5565b847fc9f55392000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b506020813d602011613cf1575b81613cd6602093836129c9565b81010312610411575160ff811681036104115760ff9061379e565b3d9150613cc9565b7ff9bb0fb3000000000000000000000000000000000000000000000000000000005f5260045ffd5b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000060208201526001600160a01b03929092166024830152604480830193909352918152613d7b91613d766064836129c9565b6145af565b565b5f908152600c602052604090206001810154905460801c9060a01c64ffffffffff1681158015613dc3575b61373b57804203918083029283041490421417156110db5790565b5080421115613da8565b91906fffffffffffffffffffffffffffffffff811692805f52600c60205260405f205460801c8414613ece57613d7b929350613e0881613d7d565b80613eac575b505f908152600c6020526040902060018101805478ffffffffff00000000000000000000000000000000000000004260a01b167fffffffffffffff0000000000ffffffffffffffffffffffffffffffffffffffff90911617905580546fffffffffffffffffffffffffffffffff1660809290921b7fffffffffffffffffffffffffffffffff0000000000000000000000000000000016919091179055565b815f52600c602052613ec6600360405f2001918254612faf565b90555f613e0e565b83907fd2657d5a000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b805f52600c602052613f266fffffffffffffffffffffffffffffffff60405f2054169161315d565b908181101561373b57612d9c91612d9f565b90815f52600c6020526001600160a01b0380600160405f200154169116908103613fc55750805f5260036020526001600160a01b038060405f2054169216918203613f81575050565b5f5260036020526001600160a01b0360405f205416907f5bdb8ad7000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b905f52600c6020526001600160a01b03600160405f20015416907fc8bac88d000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b601260ff8216146140245760120360ff16600a0a90565b50600190565b90601260ff8216146137375760120360ff16600a0a0290565b5f9392916fffffffffffffffffffffffffffffffff831691821561443c576001600160a01b03821691821561441057815f5260036020526001600160a01b0360405f20541683141580614400575b6143cd57815f52600c60205260ff600260405f20015460a01c16936140ce6140b884613d7d565b845f52600c602052600360405f20015490612faf565b6140d88682614467565b95845f52600c6020526fffffffffffffffffffffffffffffffff60405f205416928784105f146143ae576fffffffffffffffffffffffffffffffff845b1680821161437b5750906141289161402a565b90845f52600c602052600360405f2001548211155f146143185750835f52600c602052600360405f20019081540390555b5f838152600c6020908152604080832080546fffffffffffffffffffffffffffffffff8082168c9003167fffffffffffffffffffffffffffffffff00000000000000000000000000000000909116178155600201546001600160a01b0316808452600a90925290912054909590806142aa575b5061422a6142146fffffffffffffffffffffffffffffffff92614205848b1680978b5f52600760205260405f208281540390558b613d21565b61420e8761315d565b90612d9f565b92855f52600c6020528260405f205416906131f9565b160361427d5760607f1a7b0d6c8f96b874563b711cf97793fe3be5dc42dbd1e0720ce40f326918e817916040519033825260208201526fffffffffffffffffffffffffffffffff89166040820152a49190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b61421499506142ce61422a916fffffffffffffffffffffffffffffffff939961463d565b9a909a988b895f52600b602052848060405f2092818454160116167fffffffffffffffffffffffffffffffff000000000000000000000000000000008254161790559250506141cc565b5f858152600c60205260409020919003600382015560010180547fffffffffffffff0000000000ffffffffffffffffffffffffffffffffffffffff164260a01b78ffffffffff000000000000000000000000000000000000000016179055614159565b90867ff9f29859000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b6fffffffffffffffffffffffffffffffff6143c8896144e1565b614115565b507f4208ab4c000000000000000000000000000000000000000000000000000000005f526004523360245260445260645ffd5b5061440a8261453d565b15614091565b507f9f32c858000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7fb4855052000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b90601260ff821614613737579060ff612d9c9260120316600a0a90612fbc565b9091926001600160a01b03613d7b9481604051957f23b872dd000000000000000000000000000000000000000000000000000000006020880152166024860152166044840152606483015260648252613d766084836129c9565b6fffffffffffffffffffffffffffffffff811161450d576fffffffffffffffffffffffffffffffff1690565b7f6dfcc650000000000000000000000000000000000000000000000000000000005f52608060045260245260445ffd5b805f5260036020526001600160a01b0360405f20541690813314918215614583575b50811561456a575090565b90506001600160a01b0361457e3392612a44565b161490565b9091505f52600660205260405f206001600160a01b0333165f5260205260ff60405f205416905f61455f565b5f806001600160a01b036145d893169360208151910182865af16145d1612a66565b9083614787565b8051908115159182614619575b50506145ee5750565b7f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b81925090602091810103126104115760200151801590811503610411575f806145e5565b919061465b906fffffffffffffffffffffffffffffffff84166146ba565b6fffffffffffffffffffffffffffffffff811161468f576fffffffffffffffffffffffffffffffff612d9c911680936131f9565b7f4916adce000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9190917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8382098382029182808310920391808303921461477657670de0b6b3a7640000821015614746577faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106699394670de0b6b3a7640000910990828211900360ee1b910360121c170290565b84907f5173648d000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b5050670de0b6b3a764000090049150565b906147c4575080511561479c57805190602001fd5b7f1425ea42000000000000000000000000000000000000000000000000000000005f5260045ffd5b8151158061480a575b6147d5575090565b6001600160a01b03907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b156147cd56fea164736f6c634300081a000a","sourceMap":"1140:30990:78:-:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;1140:30990:78;;;;;;;;;;;;-1:-1:-1;;;;;1140:30990:78;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;1140:30990:78;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1140:30990:78;;;;460:4:81;441:24;;1140:30990:78;;;;;-1:-1:-1;;;;;1140:30990:78;;;;1447:13:9;1140:30990:78;1447:13:9;1140:30990:78;;;;;;;;;-1:-1:-1;1140:30990:78;;;;;;;;;;;-1:-1:-1;1140:30990:78;;;;;;;;;;;;;;;;-1:-1:-1;1140:30990:78;;;;;;;1447:13:9;1140:30990:78;;;;;;;;;;;1447:13:9;1140:30990:78;;;;-1:-1:-1;;;;;1140:30990:78;;;;1470:17:9;1140:30990:78;1447:13:9;1140:30990:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1140:30990:78;;;;;;;1447:13:9;1140:30990:78;;;;;;;;;;;1470:17:9;1140:30990:78;;1447:13:9;1140:30990:78;;-1:-1:-1;1140:30990:78;;-1:-1:-1;;;;;;1140:30990:78;;;;;;;2684:36:82;1140:30990:78;;;;;;;;;;;;;;;;2735:63:82;-1:-1:-1;;2735:63:82;1140:30990:78;;;;;;441:24:81;1140:30990:78;;;;;;;;;;-1:-1:-1;1140:30990:78;;;;;;;;;;1470:17:9;-1:-1:-1;1140:30990:78;;-1:-1:-1;1140:30990:78;;-1:-1:-1;1140:30990:78;;;;;;;;;1447:13:9;1140:30990:78;;;;;;;;;;;;;1470:17:9;1140:30990:78;;;;;;;;;;;;;;;;;;;;;;;;;;;1447:13:9;1140:30990:78;;;;;;;;;;;;;;;;1470:17:9;-1:-1:-1;1140:30990:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1140:30990:78;;1447:13:9;1140:30990:78;;;;;;-1:-1:-1;1140:30990:78;;;;;;;;-1:-1:-1;1140:30990:78;;;;;-1:-1:-1;1140:30990:78;;;;;;;;;;;;-1:-1:-1;1140:30990:78;;;;;-1:-1:-1;1140:30990:78;;;;;-1:-1:-1;1140:30990:78;;;;;;;;;;1447:13:9;-1:-1:-1;1140:30990:78;;-1:-1:-1;1140:30990:78;;-1:-1:-1;1140:30990:78;;;;;;;;1447:13:9;1140:30990:78;;;;;;;;;;;;;;1447:13:9;1140:30990:78;;;;;;;;;;;;;;;;;;;;;;;;;;;1447:13:9;1140:30990:78;;;;;;;;;;;;;;;;1447:13:9;-1:-1:-1;1140:30990:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1140:30990:78;;1447:13:9;1140:30990:78;;;;;;-1:-1:-1;1140:30990:78;;;;;;;;;;;;-1:-1:-1;1140:30990:78;;;;;;;;;-1:-1:-1;;1140:30990:78;;;-1:-1:-1;;;;;1140:30990:78;;;;;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a7146127675750806306fdde03146126ac578063081812fc1461268e57806308b8792314612654578063095ea7b3146125375780630c5fd195146124ed5780630c69962414612461578063136439dd146123c95780631400ecec1461238f5780631e010439146123385780631e897afb1461220f5780631e99d569146121f25780631f0cce58146120e357806323b872dd146120cc578063379d871a1461202b57806342842e0e1461200257806342e3e23d146108665780634426757014611fdc578063450ac90814611f94578063569f4c5914611f44578063597150fa14611efc5780635ea2145b14611c295780635f55315214611bf15780636352211e14611bc2578063648bf77414611a695780636d0cee7514611a1b57806370a08231146119b157806375829def1461192b5780637cad6cd11461182d5780637ddf9228146117f357806380448da3146117ab57806381632a861461171f578063894e9a0d1461157257806395d89b4114611433578063a22cb46514611361578063a7de07cd14611313578063a8a482a614611208578063ad35efd414611190578063b256456914611140578063b5b3ca2c14610fe5578063b61f758314610f42578063b62b31e414610f0a578063b88d4fde14610e80578063b8a3be6614610e4b578063b971302a14610dfa578063bc063e1a14610dd8578063bc7a2d6c14610d9e578063bcbd019e14610cc8578063bdf2a43c14610c7f578063c2f8e75014610a2a578063c87b56dd14610918578063d4b808841461089e578063d975dfed14610866578063e4b50cb814610815578063e985e9c5146107bc578063ea5ead1914610745578063eb5710d8146106c8578063ebb6f79a14610591578063f851a4401461056c578063fbf2777e146104ec578063fdd46d60146104155763ffe3d9f8146102c6575f80fd5b34610411576040600319360112610411576102df6128cd565b6102e76128e3565b6001600160a01b035f54163381036103e257506001600160a01b03821691825f52600b6020526fffffffffffffffffffffffffffffffff60405f2054169081156103b657818361037a92865f52600b60205260405f207fffffffffffffffffffffffffffffffff000000000000000000000000000000008154169055865f52600760205260405f20838154039055613d21565b6001600160a01b036040519216825260208201527fc9a4a66b97fd7e52e69c5be7b10bdc5341bded817201b9b7136a75068d4e4e0560403392a3005b837ff717901b000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7fc6cce6a4000000000000000000000000000000000000000000000000000000005f526004523360245260445ffd5b5f80fd5b34610411576060600319360112610411576004356104316128e3565b610439612944565b9061044261319f565b825f52600c60205260ff600160405f20015460c81c16156104c05761048c83927ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce792602095614043565b939092604051908152a1604080516fffffffffffffffffffffffffffffffff928316815292909116602083015290f35b0390f35b827fe21c1431000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b346104115760c0600319360112610411576105056128cd565b61050d6128e3565b90610516612944565b9161051f61290f565b9161052861299d565b60a435936fffffffffffffffffffffffffffffffff85168503610411576020956105649461055d9461055861319f565b613741565b91826135ef565b604051908152f35b34610411575f6003193601126104115760206001600160a01b035f5416604051908152f35b34610411576040600319360112610411576004356105ad612925565b6105b561319f565b815f52600c60205260ff600160405f20015460c81c161561069c57815f52600c60205260ff600160405f20015460d81c1661067057815f52600c6020526001600160a01b03600160405f20015416330361064057816106376020927ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce794613566565b604051908152a1005b507fa9ad2a22000000000000000000000000000000000000000000000000000000005f526004523360245260445ffd5b507f7354d5f1000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b507fe21c1431000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b3461041157602060031936011261041157600435805f52600c60205260ff600160405f20015460c81c161561071a575f52600c602052602064ffffffffff600160405f20015460a01c16604051908152f35b7fe21c1431000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b34610411576040600319360112610411576004356107616128e3565b61076961319f565b815f52600c60205260ff600160405f20015460c81c161561069c57907ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce761048c6020936107b5846136f7565b9084614043565b34610411576040600319360112610411576107d56128cd565b6001600160a01b036107e56128e3565b91165f5260066020526001600160a01b0360405f2091165f52602052602060ff60405f2054166040519015158152f35b3461041157602060031936011261041157600435805f52600c60205260ff600160405f20015460c81c161561071a575f52600c60205260206001600160a01b03600260405f20015416604051908152f35b34610411576020600319360112610411576020610884600435612d78565b6fffffffffffffffffffffffffffffffff60405191168152f35b3461041157602060031936011261041157600435805f52600c60205260ff600160405f20015460c81c161561071a57805f52600c60205260405f205460801c156108ed57610564602091612ff3565b7f167274c9000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b346104115760206003193601126104115760043561093581613111565b505f6001600160a01b0360095416916044604051809481937fe9dc637500000000000000000000000000000000000000000000000000000000835230600484015260248301525afa8015610a1f575f906109a2575b6104bc9060405191829160208352602083019061288a565b503d805f833e6109b281836129c9565b8101906020818303126104115780519067ffffffffffffffff821161041157019080601f83011215610411578151916109ea83612a0a565b916109f860405193846129c9565b83835260208483010111610411576104bc92610a1a9160208085019101612869565b61098a565b6040513d5f823e3d90fd5b346104115760c060031936011261041157600435610a46612925565b610a4e6128f9565b610a5661290f565b60407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7c36011261041157610a8861319f565b835f52600c60205260ff600160405f20015460c81c1615610c5357835f52600c60205260ff600160405f20015460d81c16610c2757610ac79184613f38565b604051916040830183811067ffffffffffffffff821117610bfa576040526084356001600160a01b038116810361041157835260a435602084019080825267016345785d8a00008111610bc357506001600160a01b0384511615610b9b577ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce793610b64610b5b60209561063794519061463d565b859291926135ef565b835f52600c85526fffffffffffffffffffffffffffffffff6001600160a01b0380600260405f200154169351169116913390614487565b7f5f946a02000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f54b392b2000000000000000000000000000000000000000000000000000000005f5260045267016345785d8a000060245260445ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b837f7354d5f1000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b837fe21c1431000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b3461041157602060031936011261041157600435805f52600c60205260ff600160405f20015460c81c161561071a575f52600c602052602060405f205460801c15604051908152f35b3461041157604060031936011261041157600435610ce4612925565b610cec61319f565b815f52600c60205260ff600160405f20015460c81c161561069c57815f52600c60205260405f205460801c15610d7257815f52600c6020526001600160a01b03600160405f2001541633036106405781610d696020927ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7946135ef565b61063781613432565b507f167274c9000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b3461041157602060031936011261041157600435805f52600c60205260ff600160405f20015460c81c161561071a57610564602091613efe565b34610411575f60031936011261041157602060405167016345785d8a00008152f35b3461041157602060031936011261041157600435805f52600c60205260ff600160405f20015460c81c161561071a575f52600c60205260206001600160a01b03600160405f20015416604051908152f35b34610411576020600319360112610411576004355f52600c602052602060ff600160405f20015460c81c166040519015158152f35b3461041157608060031936011261041157610e996128cd565b610ea16128e3565b6064359167ffffffffffffffff8311610411573660238401121561041157826004013591610ece83612a0a565b92610edc60405194856129c9565b8084523660248287010111610411576020815f926024610f089801838801378501015260443591612e07565b005b34610411576020600319360112610411576001600160a01b03610f2b6128cd565b165f52600a602052602060405f2054604051908152f35b3461041157608060031936011261041157600435610f5e612925565b610f666128f9565b610f6e61290f565b90610f7761319f565b835f52600c60205260ff600160405f20015460c81c1615610c5357835f52600c60205260ff600160405f20015460d81c16610c2757602092610fdf8593610637937ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce797613f38565b826135ef565b3461041157604060031936011261041157610ffe6128cd565b602435906001600160a01b035f54163381036103e2575067016345785d8a00008211611108576001600160a01b031690815f52600a60205260405f205490825f52600a6020528060405f205560405191825260208201527f371789a3d97098f3070492613273a065a7e8a19e009fd1ae92a4b4d4c71ed62d60403392a36008547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019081116110db5760407f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c91815190600182526020820152a1005b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b507f34553172000000000000000000000000000000000000000000000000000000005f5260045267016345785d8a000060245260445ffd5b3461041157602060031936011261041157600435805f52600c60205260ff600160405f20015460c81c161561071a575f52600c602052602060ff600160405f20015460d01c166040519015158152f35b3461041157602060031936011261041157600435805f52600c60205260ff600160405f20015460c81c161561071a576111c890612dac565b60405160058210156111db576020918152f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b3461041157604060031936011261041157600435611224612925565b61122c61319f565b815f52600c60205260ff600160405f20015460c81c161561069c57815f52600c60205260405f205460801c15610d7257815f52600c6020526001600160a01b03600160405f2001541633036106405781807ffddf01d0842635e80929251f6862b3baf136a29f2b2fb148968e8b236d5785fe60606020947ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7965f52600c86526fffffffffffffffffffffffffffffffff60405f205460801c916112ef8187613dcd565b6112f88661315d565b9260405193845288840152166040820152a2604051908152a1005b3461041157602060031936011261041157600435805f52600c60205260ff600160405f20015460c81c161561071a575f52600c602052602060ff600260405f20015460a01c16604051908152f35b346104115760406003193601126104115761137a6128cd565b60243590811515809203610411576001600160a01b031690811561140757335f52600660205260405f20825f5260205260405f207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff83161790556040519081527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a3005b507f5b08ba18000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b34610411575f600319360112610411576040515f6002548060011c90600181168015611568575b60208310811461153b578285529081156114f9575060011461149b575b6104bc83611487818503826129c9565b60405191829160208352602083019061288a565b91905060025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace915f905b8082106114df57509091508101602001611487611477565b9192600181602092548385880101520191019092916114c7565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208086019190915291151560051b840190910191506114879050611477565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f169161145a565b34610411576020600319360112610411576004355f610120604051611596816129ac565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e0820152826101008201520152805f52600c60205260ff600160405f20015460c81c161561071a575f52600c60205260405f206040516115fe816129ac565b81546fffffffffffffffffffffffffffffffff811692838352602083019160801c82526001810154604084016001600160a01b0382168152606085018260a01c64ffffffffff16815260808601908360c81c60ff161515825260a08701928460d01c60ff161515845260c088019460d81c60ff161515855260028601549660e08901966001600160a01b03891688526101008a019860a01c60ff168952600301549861012001988952604051998a52516fffffffffffffffffffffffffffffffff1660208a0152516001600160a01b031660408901525164ffffffffff166060880152511515608087015251151560a086015251151560c0850152516001600160a01b031660e08401525160ff166101008301525161012082015261014090f35b346104115760406003193601126104115760043561173b612925565b61174361319f565b815f52600c60205260ff600160405f20015460c81c161561069c57815f52600c6020526001600160a01b03600160405f20015416330361064057816106376020927ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79461325d565b3461041157602060031936011261041157600435805f52600c60205260ff600160405f20015460c81c161561071a575f52600c602052602060405f205460801c604051908152f35b3461041157602060031936011261041157600435805f52600c60205260ff600160405f20015460c81c161561071a57610564602091613d7d565b34610411576020600319360112610411576004356001600160a01b038116809103610411576001600160a01b035f54163381036103e2575060095490807fffffffffffffffffffffffff00000000000000000000000000000000000000008316176009556001600160a01b036040519216825260208201527fa2548bd4b805e907c1558a47b5858324fe8bb4a2e1ddfca647eecbf65610eebc60403392a26008547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019081116110db5760407f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c91815190600182526020820152a1005b34610411576020600319360112610411576119446128cd565b5f546001600160a01b0381163381036103e257506001600160a01b037fffffffffffffffffffffffff0000000000000000000000000000000000000000921691829116175f55337fbdd36143ee09de60bdefca70680e0f71189b2ed7acee364b53917ad433fdaf805f80a3005b34610411576020600319360112610411576001600160a01b036119d26128cd565b1680156119ef575f526004602052602060405f2054604051908152f35b7f89c62b64000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b3461041157602060031936011261041157600435805f52600c60205260ff600160405f20015460c81c161561071a575f52600360205260206001600160a01b0360405f205416604051908152f35b3461041157604060031936011261041157611a826128cd565b611a8a6128e3565b6001600160a01b035f54163381036103e257506001600160a01b038216916040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152602081602481875afa8015610a1f575f90611b8e575b611b029150845f52600760205260405f205490612d9f565b908115611b625781611b397f21252411d5a999da4bc6a490f7143b61ba690edceb4577a2800eab8dfbb1e92c9385611b5d94613d21565b604051918291339583602090939291936001600160a01b0360408201951681520152565b0390a3005b837ff4c3afcf000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b506020813d602011611bba575b81611ba8602093836129c9565b8101031261041157611b029051611aea565b3d9150611b9b565b34610411576020600319360112610411576020611be0600435613111565b6001600160a01b0360405191168152f35b34610411576020600319360112610411576001600160a01b03611c126128cd565b165f526007602052602060405f2054604051908152f35b3461041157602060031936011261041157600435611c4561319f565b805f52600c60205260ff600160405f20015460c81c161561071a57805f52600c60205260ff600160405f20015460d81c16611ed157805f52600c6020526001600160a01b03600160405f2001541633141580611ec1575b611e9257602081611ccd7ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce793613efe565b80611e4257611cdb82613d7d565b80611e21575b505b5f828152600c84526040902060010180547fffffffffffffff0000000000ffffffffffffffffffffffffffffffffffffffff164260a01b78ffffffffff000000000000000000000000000000000000000016179055815f52600c835260405f206fffffffffffffffffffffffffffffffff8154169055815f52600c8352600160405f20017b010000000000000000000000000000000000000000000000000000007fffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff825416179055815f52600c83526001600160a01b03600160405f20015416825f5260038452827fa8e3d71a6c0c719305004b430f6d17f12536f7b803db23a4d7016f5b52699a8c60606001600160a01b0360405f20541694611e068461315d565b9060405191338352898301526040820152a4604051908152a1005b825f52600c8452611e3a600360405f2001918254612faf565b905584611ce1565b815f52600c8352611e7e6fffffffffffffffffffffffffffffffff60405f205416835f52600c855260ff600260405f20015460a01c169061402a565b825f52600c8452600360405f200155611ce3565b7fa9ad2a22000000000000000000000000000000000000000000000000000000005f526004523360245260445ffd5b50611ecb8161453d565b15611c9c565b7f7354d5f1000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b346104115760a0600319360112610411576020610564611f1a6128cd565b611f226128e3565b611f2a612944565b611f3261290f565b91611f3b61299d565b9361055861319f565b3461041157602060031936011261041157600435805f52600c60205260ff600160405f20015460c81c161561071a575f52600c602052602060ff600160405f20015460d81c166040519015158152f35b3461041157602060031936011261041157600435805f52600c60205260ff600160405f20015460c81c161561071a575f52600c6020526020600360405f200154604051908152f35b34610411575f6003193601126104115760206001600160a01b0360095416604051908152f35b3461041157610f0861201336612963565b90604051926120236020856129c9565b5f8452612e07565b3461041157604060031936011261041157600435612047612925565b61204f61319f565b815f52600c60205260ff600160405f20015460c81c161561069c57815f52600c60205260405f205460801c15610d7257815f52600c6020526001600160a01b03600160405f2001541633036106405781610d696020927ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79461325d565b3461041157610f086120dd36612963565b91612a95565b34610411576060600319360112610411576004356120ff612925565b612107612944565b9061211061319f565b825f52600c60205260ff600160405f20015460c81c16156104c057825f52600c60205260ff600160405f20015460d81c166121c657825f52600c6020526001600160a01b03600160405f2001541633036121965791610637602092610fdf7ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79584613566565b827fa9ad2a22000000000000000000000000000000000000000000000000000000005f526004523360245260445ffd5b827f7354d5f1000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b34610411575f600319360112610411576020600854604051908152f35b346104115760206003193601126104115760043567ffffffffffffffff8111610411573660238201121561041157806004013567ffffffffffffffff8111610411573660248260051b8401011161041157905f907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbd81360301915b83811015610f085760248160051b830101358381121561041157820160248101359067ffffffffffffffff821161041157604401813603811361041157815f92918392604051928392833781018381520390305af46122e7612a66565b90156122f6575060010161228a565b612334906040519182917fd935448500000000000000000000000000000000000000000000000000000000835260206004840152602483019061288a565b0390fd5b3461041157602060031936011261041157600435805f52600c60205260ff600160405f20015460c81c161561071a575f52600c60205260206fffffffffffffffffffffffffffffffff60405f205416604051908152f35b3461041157602060031936011261041157600435805f52600c60205260ff600160405f20015460c81c161561071a5761088460209161322b565b34610411576020600319360112610411576004356123e561319f565b805f52600c60205260ff600160405f20015460c81c161561071a57805f52600c60205260405f205460801c156108ed57805f52600c6020526001600160a01b03600160405f200154163303611e92576020816106377ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce793613432565b346104115760206003193601126104115760043561247d61319f565b805f52600c60205260ff600160405f20015460c81c161561071a57805f52600c6020526001600160a01b03600160405f200154163303611e92576020816106376124e77ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79461322b565b8261325d565b34610411576020600319360112610411576001600160a01b0361250e6128cd565b165f52600b60205260206fffffffffffffffffffffffffffffffff60405f205416604051908152f35b34610411576040600319360112610411576125506128cd565b60243561255c81613111565b33151580612641575b8061260e575b6125e25781906001600160a01b0380851691167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9255f80a45f5260056020526001600160a01b0360405f2091167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790555f80f35b7fa9fbf51f000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b506001600160a01b0381165f52600660205260405f206001600160a01b0333165f5260205260ff60405f2054161561256b565b50336001600160a01b0382161415612565565b3461041157602060031936011261041157600435805f52600c60205260ff600160405f20015460c81c161561071a5761056460209161315d565b34610411576020600319360112610411576020611be0600435612a44565b34610411575f600319360112610411576040515f6001548060011c9060018116801561275d575b60208310811461153b578285529081156114f957506001146126ff576104bc83611487818503826129c9565b91905060015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6915f905b80821061274357509091508101602001611487611477565b91926001816020925483858801015201910190929161272b565b91607f16916126d3565b3461041157602060031936011261041157600435907fffffffff00000000000000000000000000000000000000000000000000000000821680920361041157817f4906490600000000000000000000000000000000000000000000000000000000602093149081156127db575b5015158152f35b7f80ac58cd0000000000000000000000000000000000000000000000000000000081149150811561283f575b8115612815575b50836127d4565b7f01ffc9a7000000000000000000000000000000000000000000000000000000009150148361280e565b7f5b5e139f0000000000000000000000000000000000000000000000000000000081149150612807565b5f5b83811061287a5750505f910152565b818101518382015260200161286b565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f6020936128c681518092818752878088019101612869565b0116010190565b600435906001600160a01b038216820361041157565b602435906001600160a01b038216820361041157565b604435906001600160a01b038216820361041157565b606435906001600160a01b038216820361041157565b602435906fffffffffffffffffffffffffffffffff8216820361041157565b604435906fffffffffffffffffffffffffffffffff8216820361041157565b6003196060910112610411576004356001600160a01b038116810361041157906024356001600160a01b0381168103610411579060443590565b60843590811515820361041157565b610140810190811067ffffffffffffffff821117610bfa57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610bfa57604052565b67ffffffffffffffff8111610bfa57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b612a4d81613111565b505f5260056020526001600160a01b0360405f20541690565b3d15612a90573d90612a7782612a0a565b91612a8560405193846129c9565b82523d5f602084013e565b606090565b91906001600160a01b0316918215612d4c57815f5260036020526001600160a01b0360405f205416151580612d2f575b612d0357815f5260036020526001600160a01b0360405f2054169233151580612c3b575b50907ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce760206001600160a01b039386612bce575b805f526004825260405f2060018154019055855f526003825260405f20817fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790558560405191887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a4858152a116808303612b9d57505050565b7f64283d7b000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b612c05865f52600560205260405f207fffffffffffffffffffffffff00000000000000000000000000000000000000008154169055565b865f526004825260405f207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8154019055612b1d565b80612cac575b15612c4c575f612ae9565b8284612c7d577f7e273289000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7f177e802f000000000000000000000000000000000000000000000000000000005f523360045260245260445ffd5b503384148015612cda575b80612c415750825f526005602052336001600160a01b0360405f20541614612c41565b50835f52600660205260405f206001600160a01b0333165f5260205260ff60405f205416612cb7565b507f7da2ea2b000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b50815f52600c60205260ff600160405f20015460d01c1615612ac5565b7f64a0ae92000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b805f52600c60205260ff600160405f20015460c81c161561071a57612d9c906136f7565b90565b919082039182116110db57565b805f52600c60205260ff600160405f20015460d81c16612e0157612dcf81613efe565b1515905f52600c60205260405f205460801c15612df357612dee575f90565b600190565b612dfc57600290565b600390565b50600490565b90612e13838284612a95565b803b612e20575b50505050565b602091612e7f6001600160a01b038093169560405195869485947f150b7a02000000000000000000000000000000000000000000000000000000008652336004870152166024850152604484015260806064840152608483019061288a565b03815f865af15f9181612f52575b50612ed45750612e9b612a66565b80519081612ecf57827f64a0ae92000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b602001fd5b7fffffffff000000000000000000000000000000000000000000000000000000007f150b7a0200000000000000000000000000000000000000000000000000000000911603612f2757505f808080612e1a565b7f64a0ae92000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011612fa7575b81612f6e602093836129c9565b8101031261041157517fffffffff000000000000000000000000000000000000000000000000000000008116810361041157905f612e8d565b3d9150612f61565b919082018092116110db57565b8115612fc6570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b805f52600c6020526fffffffffffffffffffffffffffffffff60405f2054169081156130e657805f52600c60205261303960ff600260405f20015460a01c16809361402a565b91815f52600c602052613053600360405f2001549161400d565b9061306661306084613d7d565b82612faf565b6130708386612faf565b11156130de57825f52600c60205260405f205460801c930301916130948184612fbc565b928115612fc657066130bd575f52600c60205264ffffffffff600160405f20015460a01c160190565b906001915f52600c60205264ffffffffff8260405f20015460a01c16010190565b505050505f90565b7f0f04b2a1000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b805f5260036020526001600160a01b0360405f205416908115613132575090565b7f7e273289000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b612d9c9061318361316d82613d7d565b825f52600c602052600360405f20015490612faf565b905f52600c60205260ff600260405f20015460a01c1690614467565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036131d157565b7fa1c0d6e5000000000000000000000000000000000000000000000000000000005f5260045ffd5b906fffffffffffffffffffffffffffffffff809116911603906fffffffffffffffffffffffffffffffff82116110db57565b612d9c90805f52600c6020526132576fffffffffffffffffffffffffffffffff60405f205416916136f7565b906131f9565b6fffffffffffffffffffffffffffffffff82168015613406576fffffffffffffffffffffffffffffffff6132908361322b565b168082116133d457825f52600c6020526fffffffffffffffffffffffffffffffff60405f205416106133825760207fe31f2d40d5780915b1e656a67e11bdf09b0a4a925ec42bbeae220c8ca937ab4991835f52600c8252613379816001600160a01b03600160405f200154168097875f52600c86526001600160a01b03600260405f2001541690885f52600c87526fffffffffffffffffffffffffffffffff8060405f2092818454160316167fffffffffffffffffffffffffffffffff00000000000000000000000000000000825416179055805f526007865260405f20838154039055613d21565b604051908152a3565b90805f52600c6020526fffffffffffffffffffffffffffffffff60405f205416907fcb5f605f000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b917fe9771401000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b507fea66b871000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b805f52600c60205260405f205460801c156135375761345081613d7d565b80613515575b505f818152600c6020908152604080832060018101805478ffffffffff00000000000000000000000000000000000000004260a01b167fffffffffffffff0000000000ffffffffffffffffffffffffffffffffffffffff82161790915581546fffffffffffffffffffffffffffffffff16909155600383529220546001600160a01b0390811693921691907fda83bf669c651406e02062769e01d14cccb5625ea685fd95e0e56d29597dac479061350c8361315d565b604051908152a4565b815f52600c60205261352f600360405f2001918254612faf565b90555f613456565b7fd2657d5a000000000000000000000000000000000000000000000000000000005f526004525f60245260445ffd5b805f52600c60205260405f205460801c6135c4576135848282613dcd565b6fffffffffffffffffffffffffffffffff604051921682527fc2a543cfadbf862642247e28711aaa30e3460384be5712be6557fee3384454fd60203393a3565b7fdc6fbbbc000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b906fffffffffffffffffffffffffffffffff169081156136cc575f818152600c60205260409020600281015481546fffffffffffffffffffffffffffffffff9081168501916001600160a01b03169082116110db5761369e926fffffffffffffffffffffffffffffffff8693167fffffffffffffffffffffffffffffffff00000000000000000000000000000000825416179055805f52600760205260405f2082815401905530903390614487565b6040519182527fa06c1466b3c9751408a5ac337a2e8808e5ee0ceed1fd70635d041b21174eb6b460203393a3565b7f33f2df5a000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b805f52600c6020526fffffffffffffffffffffffffffffffff60405f20541690811561373b576137269061315d565b80821061373757612d9c91506144e1565b5090565b50505f90565b6001600160a01b039095949293919516908115613cf9576001600160a01b0316926040517f313ce567000000000000000000000000000000000000000000000000000000008152602081600481885afa8015610a1f575f90613cbc575b60ff9150169560128711613c9057600854968786604051926137bf846129ac565b5f845260208401956fffffffffffffffffffffffffffffffff1695868152604085019088825260608601994264ffffffffff168b52608087016001815260a088019115159b8c835260c08901935f855260e08a019788526101008a019687526101208a01985f8a525f52600c60205260405f2099516fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168a547fffffffffffffffffffffffffffffffff0000000000000000000000000000000016178a55516fffffffffffffffffffffffffffffffff166138d8908a906fffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffff0000000000000000000000000000000083549260801b169116179055565b9351600189018054955178ffffffffff000000000000000000000000000000000000000060a09190911b166001600160a01b039092167fffffffffffffff00000000000000000000000000000000000000000000000000909616959095171784555115159083549051151560d01b7aff0000000000000000000000000000000000000000000000000000169160c81b79ff0000000000000000000000000000000000000000000000000016907fffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffff161717825551151581549060d81b7bff00000000000000000000000000000000000000000000000000000016907fffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff161790556002840191516001600160a01b03166001600160a01b031682547fffffffffffffffffffffffff0000000000000000000000000000000000000000161782555181549060a01b74ff000000000000000000000000000000000000000016907fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16179055519060030155600187016008556001600160a01b0316928315612d4c57865f5260036020526001600160a01b0360405f205416151580613c73575b613c4757865f5260036020526001600160a01b0360405f2054167ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce760208215159283613bda575b875f526004825260405f20600181540190558a5f526003825260405f20887fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055604051908b89827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a4508a8152a1613bae577f2262fa211f8507786a60fefb231f7898b8145fe16350f281c91f121bd2ee118d916060916040519189835260208301526040820152a4565b7f73c6ac6e000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b613c118b5f52600560205260405f207fffffffffffffffffffffffff00000000000000000000000000000000000000008154169055565b805f526004825260405f207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8154019055613afc565b867f7da2ea2b000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b50865f52600c60205260ff600160405f20015460d01c1615613ab5565b847fc9f55392000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b506020813d602011613cf1575b81613cd6602093836129c9565b81010312610411575160ff811681036104115760ff9061379e565b3d9150613cc9565b7ff9bb0fb3000000000000000000000000000000000000000000000000000000005f5260045ffd5b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000060208201526001600160a01b03929092166024830152604480830193909352918152613d7b91613d766064836129c9565b6145af565b565b5f908152600c602052604090206001810154905460801c9060a01c64ffffffffff1681158015613dc3575b61373b57804203918083029283041490421417156110db5790565b5080421115613da8565b91906fffffffffffffffffffffffffffffffff811692805f52600c60205260405f205460801c8414613ece57613d7b929350613e0881613d7d565b80613eac575b505f908152600c6020526040902060018101805478ffffffffff00000000000000000000000000000000000000004260a01b167fffffffffffffff0000000000ffffffffffffffffffffffffffffffffffffffff90911617905580546fffffffffffffffffffffffffffffffff1660809290921b7fffffffffffffffffffffffffffffffff0000000000000000000000000000000016919091179055565b815f52600c602052613ec6600360405f2001918254612faf565b90555f613e0e565b83907fd2657d5a000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b805f52600c602052613f266fffffffffffffffffffffffffffffffff60405f2054169161315d565b908181101561373b57612d9c91612d9f565b90815f52600c6020526001600160a01b0380600160405f200154169116908103613fc55750805f5260036020526001600160a01b038060405f2054169216918203613f81575050565b5f5260036020526001600160a01b0360405f205416907f5bdb8ad7000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b905f52600c6020526001600160a01b03600160405f20015416907fc8bac88d000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b601260ff8216146140245760120360ff16600a0a90565b50600190565b90601260ff8216146137375760120360ff16600a0a0290565b5f9392916fffffffffffffffffffffffffffffffff831691821561443c576001600160a01b03821691821561441057815f5260036020526001600160a01b0360405f20541683141580614400575b6143cd57815f52600c60205260ff600260405f20015460a01c16936140ce6140b884613d7d565b845f52600c602052600360405f20015490612faf565b6140d88682614467565b95845f52600c6020526fffffffffffffffffffffffffffffffff60405f205416928784105f146143ae576fffffffffffffffffffffffffffffffff845b1680821161437b5750906141289161402a565b90845f52600c602052600360405f2001548211155f146143185750835f52600c602052600360405f20019081540390555b5f838152600c6020908152604080832080546fffffffffffffffffffffffffffffffff8082168c9003167fffffffffffffffffffffffffffffffff00000000000000000000000000000000909116178155600201546001600160a01b0316808452600a90925290912054909590806142aa575b5061422a6142146fffffffffffffffffffffffffffffffff92614205848b1680978b5f52600760205260405f208281540390558b613d21565b61420e8761315d565b90612d9f565b92855f52600c6020528260405f205416906131f9565b160361427d5760607f1a7b0d6c8f96b874563b711cf97793fe3be5dc42dbd1e0720ce40f326918e817916040519033825260208201526fffffffffffffffffffffffffffffffff89166040820152a49190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b61421499506142ce61422a916fffffffffffffffffffffffffffffffff939961463d565b9a909a988b895f52600b602052848060405f2092818454160116167fffffffffffffffffffffffffffffffff000000000000000000000000000000008254161790559250506141cc565b5f858152600c60205260409020919003600382015560010180547fffffffffffffff0000000000ffffffffffffffffffffffffffffffffffffffff164260a01b78ffffffffff000000000000000000000000000000000000000016179055614159565b90867ff9f29859000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b6fffffffffffffffffffffffffffffffff6143c8896144e1565b614115565b507f4208ab4c000000000000000000000000000000000000000000000000000000005f526004523360245260445260645ffd5b5061440a8261453d565b15614091565b507f9f32c858000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7fb4855052000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b90601260ff821614613737579060ff612d9c9260120316600a0a90612fbc565b9091926001600160a01b03613d7b9481604051957f23b872dd000000000000000000000000000000000000000000000000000000006020880152166024860152166044840152606483015260648252613d766084836129c9565b6fffffffffffffffffffffffffffffffff811161450d576fffffffffffffffffffffffffffffffff1690565b7f6dfcc650000000000000000000000000000000000000000000000000000000005f52608060045260245260445ffd5b805f5260036020526001600160a01b0360405f20541690813314918215614583575b50811561456a575090565b90506001600160a01b0361457e3392612a44565b161490565b9091505f52600660205260405f206001600160a01b0333165f5260205260ff60405f205416905f61455f565b5f806001600160a01b036145d893169360208151910182865af16145d1612a66565b9083614787565b8051908115159182614619575b50506145ee5750565b7f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b81925090602091810103126104115760200151801590811503610411575f806145e5565b919061465b906fffffffffffffffffffffffffffffffff84166146ba565b6fffffffffffffffffffffffffffffffff811161468f576fffffffffffffffffffffffffffffffff612d9c911680936131f9565b7f4916adce000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9190917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8382098382029182808310920391808303921461477657670de0b6b3a7640000821015614746577faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106699394670de0b6b3a7640000910990828211900360ee1b910360121c170290565b84907f5173648d000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b5050670de0b6b3a764000090049150565b906147c4575080511561479c57805190602001fd5b7f1425ea42000000000000000000000000000000000000000000000000000000005f5260045ffd5b8151158061480a575b6147d5575090565b6001600160a01b03907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b156147cd56fea164736f6c634300081a000a","sourceMap":"1140:30990:78:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1140:30990:78;;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;1140:30990:78;;;908:10:79;899:19;;895:116;;1140:30990:78;-1:-1:-1;;;;;1140:30990:78;;;;;;8025:15:82;1140:30990:78;;;;;;;;8118:12:82;;;8114:106;;1140:30990:78;;8525:46:82;1140:30990:78;;;;8025:15:82;1140:30990:78;;;;;;;;;;;;;;8391:16:82;1140:30990:78;;;;;;;;;;;8525:46:82;:::i;:::-;-1:-1:-1;;;;;1140:30990:78;;;;;;;;;;8587:102:82;1140:30990:78;908:10:79;8587:102:82;;1140:30990:78;8114:106:82;8153:56;;1140:30990:78;8153:56:82;1140:30990:78;;;;8153:56:82;895:116:79;941:59;1140:30990:78;941:59:79;1140:30990:78;;908:10:79;1140:30990:78;;;;941:59:79;1140:30990:78;;;;;;;;;-1:-1:-1;;1140:30990:78;;;;;;;;;:::i;:::-;;;:::i;:::-;519:76:81;;;:::i;:::-;1140:30990:78;;;3142:8:82;1140:30990:78;;;;;;;3142:27:82;1140:30990:78;;;;3141:28:82;3137:99;;14207:31:78;;;4183:38:82;14207:31:78;1140:30990;14207:31;;:::i;:::-;1140:30990;;;;;;;;4183:38:82;1140:30990:78;;;;;;;;;;;;;;;;;;;;;;;3137:99:82;3192:33;;1140:30990:78;3192:33:82;1140:30990:78;;;;3192:33:82;1140:30990:78;;;;;-1:-1:-1;;1140:30990:78;;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;519:76:81;9132:6:78;519:76:81;8975:62:78;519:76:81;;;:::i;:::-;8975:62:78;:::i;:::-;9132:6;;;:::i;:::-;1140:30990;;;;;;;;;;;-1:-1:-1;;1140:30990:78;;;;;;-1:-1:-1;;;;;1140:30990:78;;;;;;;;;;;;;;-1:-1:-1;;1140:30990:78;;;;;;;;;:::i;:::-;519:76:81;;:::i;:::-;1140:30990:78;;;3142:8:82;1140:30990:78;;;;;;;3142:27:82;1140:30990:78;;;;3141:28:82;3137:99;;1140:30990:78;;;3142:8:82;1140:30990:78;;;;;;;3649:27:82;1140:30990:78;;;;3645:106:82;;1140:30990:78;;;3142:8:82;1140:30990:78;;-1:-1:-1;;;;;1140:30990:78;;;;3901:25:82;1140:30990:78;;3887:10:82;:39;3883:130;;12886:13:78;;1140:30990;12886:13;4183:38:82;12886:13:78;;:::i;:::-;1140:30990;;;;;4183:38:82;1140:30990:78;3883:130:82;3949:53;;1140:30990:78;3949:53:82;1140:30990:78;;3887:10:82;1140:30990:78;;;;3949:53:82;3645:106;3699:41;;1140:30990:78;3699:41:82;1140:30990:78;;;;3699:41:82;3137:99;3192:33;;1140:30990:78;3192:33:82;1140:30990:78;;;;3192:33:82;1140:30990:78;;;;;-1:-1:-1;;1140:30990:78;;;;;;;;;;3142:8:82;1140:30990:78;;;;;;;3142:27:82;1140:30990:78;;;;3141:28:82;3137:99;;1140:30990:78;;3142:8:82;1140:30990:78;;;;;;;;5780:31:82;1140:30990:78;;;;;;;;;;3137:99:82;3192:33;1140:30990:78;3192:33:82;1140:30990:78;;;;3192:33:82;1140:30990:78;;;;;-1:-1:-1;;1140:30990:78;;;;;;;;;:::i;:::-;519:76:81;;:::i;:::-;1140:30990:78;;;3142:8:82;1140:30990:78;;;;;;;3142:27:82;1140:30990:78;;;;3141:28:82;3137:99;;14578:24:78;4183:38:82;14719:36:78;1140:30990;14578:24;;;;:::i;:::-;14719:36;;;:::i;1140:30990::-;;;;;-1:-1:-1;;1140:30990:78;;;;;;;:::i;:::-;-1:-1:-1;;;;;1140:30990:78;;:::i;:::-;;;;;4039:18:9;1140:30990:78;;-1:-1:-1;;;;;1140:30990:78;;;4039:35:9;1140:30990:78;-1:-1:-1;1140:30990:78;;;;;;-1:-1:-1;1140:30990:78;;;;;;;;;;;;;;;;-1:-1:-1;;1140:30990:78;;;;;;;;;;3142:8:82;1140:30990:78;;;;;;;3142:27:82;1140:30990:78;;;;3141:28:82;3137:99;;1140:30990:78;;3142:8:82;1140:30990:78;;;-1:-1:-1;;;;;6180:24:82;1140:30990:78;;;6180:24:82;1140:30990:78;;;;;;;;;;;;;-1:-1:-1;;1140:30990:78;;;;;;7033:26;1140:30990;;7033:26;:::i;:::-;1140:30990;;;;;;;;;;;;;-1:-1:-1;;1140:30990:78;;;;;;;;;;3142:8:82;1140:30990:78;;;;;;;3142:27:82;1140:30990:78;;;;3141:28:82;3137:99;;1140:30990:78;;;3142:8:82;1140:30990:78;;;;;;;;3382:46:82;3378:125;;2482:2272:78;1140:30990;2482:2272;;:::i;3378:125:82:-;3451:41;1140:30990:78;3451:41:82;1140:30990:78;;;;3451:41:82;1140:30990:78;;;;;-1:-1:-1;;1140:30990:78;;;;;;;7465:36:82;;;:::i;:::-;;1140:30990:78;-1:-1:-1;;;;;7573:13:82;1140:30990:78;;;7573:65:82;1140:30990:78;;7573:65:82;;;;1140:30990:78;7573:65:82;;7611:4;1140:30990:78;7573:65:82;;1140:30990:78;;;;;7573:65:82;;;;;;1140:30990:78;7573:65:82;;;1140:30990:78;;;;;;;;;;;;;;;;:::i;7573:65:82:-;;;;1140:30990:78;7573:65:82;;;;;;:::i;:::-;;;1140:30990:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7573:65:82;;;1140:30990:78;;;;;;;;;;;;;;-1:-1:-1;;1140:30990:78;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;;;519:76:81;;:::i;:::-;1140:30990:78;;;3142:8:82;1140:30990:78;;;;;;;3142:27:82;1140:30990:78;;;;3141:28:82;3137:99;;1140:30990:78;;;3142:8:82;1140:30990:78;;;;;;;3649:27:82;1140:30990:78;;;;3645:106:82;;10729:9:78;;;;:::i;:::-;1140:30990;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1140:30990:78;;;;;;;;;;;;;;;;;1484:6:82;1033:23:51;;1333:114:89;;1140:30990:78;-1:-1:-1;;;;;1140:30990:78;;;1525:28:89;1521:104;;4183:38:82;1140:30990:78;22798:13;1770:48:89;1140:30990:78;;22877:107;1140:30990;;1770:48:89;;:::i;:::-;22798:13:78;;;;;:::i;:::-;1140:30990;;;3142:8:82;1140:30990:78;;;-1:-1:-1;;;;;1140:30990:78;22877:24;1140:30990;;;22877:24;1140:30990;;;;;;;22927:10;;22877:107;;:::i;1521:104:89:-;1576:38;1140:30990:78;1576:38:89;1140:30990:78;;1576:38:89;1333:114;1381:55;1140:30990:78;1381:55:89;1140:30990:78;;1484:6:82;1140:30990:78;;;;1381:55:89;1140:30990:78;;;;;;;;;;3645:106:82;3699:41;;1140:30990:78;3699:41:82;1140:30990:78;;;;3699:41:82;3137:99;3192:33;;1140:30990:78;3192:33:82;1140:30990:78;;;;3192:33:82;1140:30990:78;;;;;-1:-1:-1;;1140:30990:78;;;;;;;;;;3142:8:82;1140:30990:78;;;;;;;3142:27:82;1140:30990:78;;;;3141:28:82;3137:99;;1140:30990:78;;3142:8:82;1140:30990:78;;;;;;;;;6639:46:82;1140:30990:78;;;;;;;;;;;-1:-1:-1;;1140:30990:78;;;;;;;;;:::i;:::-;519:76:81;;:::i;:::-;1140:30990:78;;;3142:8:82;1140:30990:78;;;;;;;3142:27:82;1140:30990:78;;;;3141:28:82;3137:99;;1140:30990:78;;;3142:8:82;1140:30990:78;;;;;;;;3382:46:82;3378:125;;1140:30990:78;;;3142:8:82;1140:30990:78;;-1:-1:-1;;;;;1140:30990:78;;;;3901:25:82;1140:30990:78;;3887:10:82;:39;3883:130;;10117:6:78;;1140:30990;10117:6;4183:38:82;10117:6:78;;:::i;:::-;10206:8;;;:::i;3378:125:82:-;3451:41;;1140:30990:78;3451:41:82;1140:30990:78;;;;3451:41:82;1140:30990:78;;;;;-1:-1:-1;;1140:30990:78;;;;;;;;;;3142:8:82;1140:30990:78;;;;;;;3142:27:82;1140:30990:78;;;;3141:28:82;3137:99;;6823:26:78;1140:30990;6823:26;;:::i;1140:30990::-;;;;;-1:-1:-1;;1140:30990:78;;;;;;;;1484:6:82;1140:30990:78;;;;;;;;-1:-1:-1;;1140:30990:78;;;;;;;;;;3142:8:82;1140:30990:78;;;;;;;3142:27:82;1140:30990:78;;;;3141:28:82;3137:99;;1140:30990:78;;3142:8:82;1140:30990:78;;;-1:-1:-1;;;;;1140:30990:78;;;;5277:25:82;1140:30990:78;;;;;;;;;;;;;-1:-1:-1;;1140:30990:78;;;;;;;;;6835:8:82;1140:30990:78;;;;;;;;6835:27:82;1140:30990:78;;;;;;;;;;;;;;;;;-1:-1:-1;;1140:30990:78;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;1140:30990:78;;;;;-1:-1:-1;;;;;1140:30990:78;;:::i;:::-;;;;1823:64:82;1140:30990:78;;;;;;;;;;;;;;;;;;-1:-1:-1;;1140:30990:78;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;519:76:81;;;:::i;:::-;1140:30990:78;;;3142:8:82;1140:30990:78;;;;;;;3142:27:82;1140:30990:78;;;;3141:28:82;3137:99;;1140:30990:78;;;3142:8:82;1140:30990:78;;;;;;;3649:27:82;1140:30990:78;;;;3645:106:82;;1140:30990:78;9607:9;;;;9712:6;9607:9;4183:38:82;9607:9:78;;:::i;:::-;9712:6;;:::i;1140:30990::-;;;;;-1:-1:-1;;1140:30990:78;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1140:30990:78;;;908:10:79;899:19;;895:116;;1033:23:51;1484:6:82;1033:23:51;;10113:128:82;;-1:-1:-1;;;;;1140:30990:78;;;;;10276:11:82;1140:30990:78;;;;;;;;;;10276:11:82;1140:30990:78;;;;;;;;;;;;;;;;10449:188:82;1140:30990:78;908:10:79;10449:188:82;;10757:12;1140:30990:78;;;;;;;;;;10706:70:82;1140:30990:78;;;;;;;;;;;10706:70:82;1140:30990:78;;;;;;;;;;;10113:128:82;10164:66;;1140:30990:78;10164:66:82;1140:30990:78;;1484:6:82;1140:30990:78;;;;10164:66:82;1140:30990:78;;;;;-1:-1:-1;;1140:30990:78;;;;;;;;;;3142:8:82;1140:30990:78;;;;;;;3142:27:82;1140:30990:78;;;;3141:28:82;3137:99;;1140:30990:78;;3142:8:82;1140:30990:78;;;;;;;;7036:33:82;1140:30990:78;;;;;;;;;;;;;;;;;-1:-1:-1;;1140:30990:78;;;;;;;;;;3142:8:82;1140:30990:78;;;;;;;3142:27:82;1140:30990:78;;;;3141:28:82;3137:99;;5337:1063:78;;;:::i;:::-;1140:30990;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1140:30990:78;;;;;;;;;:::i;:::-;519:76:81;;:::i;:::-;1140:30990:78;;;3142:8:82;1140:30990:78;;;;;;;3142:27:82;1140:30990:78;;;;3141:28:82;3137:99;;1140:30990:78;;;3142:8:82;1140:30990:78;;;;;;;;3382:46:82;3378:125;;1140:30990:78;;;3142:8:82;1140:30990:78;;-1:-1:-1;;;;;1140:30990:78;;;;3901:25:82;1140:30990:78;;3887:10:82;:39;3883:130;;1140:30990:78;;7901:216;1140:30990;;;4183:38:82;1140:30990:78;;;3142:8:82;1140:30990:78;;;;;;;;;7837:16;;;;;:::i;:::-;7988:22;;;:::i;:::-;1140:30990;;;;;;;;;;;;;;;7901:216;1140:30990;;;;;4183:38:82;1140:30990:78;;;;;;-1:-1:-1;;1140:30990:78;;;;;;;;;;3142:8:82;1140:30990:78;;;;;;;3142:27:82;1140:30990:78;;;;3141:28:82;3137:99;;1140:30990:78;;3142:8:82;1140:30990:78;;;;6439:32:82;1140:30990:78;;;6439:32:82;1140:30990:78;;;;;;;;;;;;;;;-1:-1:-1;;1140:30990:78;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1140:30990:78;15698:22:9;;;15694:91;;735:10:15;1140:30990:78;;15794:18:9;1140:30990:78;;;;;;-1:-1:-1;1140:30990:78;;;;-1:-1:-1;1140:30990:78;;;;;;;;;;;;;;;;15855:41:9;1140:30990:78;735:10:15;15855:41:9;;1140:30990:78;15694:91:9;15743:31;;1140:30990:78;15743:31:9;1140:30990:78;;;;15743:31:9;1140:30990:78;;;;;-1:-1:-1;;1140:30990:78;;;;;;;;2597:7:9;1140:30990:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;2597:7:9;1140:30990:78;;;;;;;;;;;;-1:-1:-1;1140:30990:78;;-1:-1:-1;1140:30990:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1140:30990:78;;-1:-1:-1;1140:30990:78;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1140:30990:78;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3142:8:82;1140:30990:78;;;;;;;3142:27:82;1140:30990:78;;;;3141:28:82;3137:99;;1140:30990:78;;3142:8:82;1140:30990:78;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1140:30990:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1140:30990:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1140:30990:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1140:30990:78;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1140:30990:78;;;;;;;;;:::i;:::-;519:76:81;;:::i;:::-;1140:30990:78;;;3142:8:82;1140:30990:78;;;;;;;3142:27:82;1140:30990:78;;;;3141:28:82;3137:99;;1140:30990:78;;;3142:8:82;1140:30990:78;;-1:-1:-1;;;;;1140:30990:78;;;;3901:25:82;1140:30990:78;;3887:10:82;:39;3883:130;;11582:6:78;;1140:30990;11582:6;4183:38:82;11582:6:78;;:::i;1140:30990::-;;;;;-1:-1:-1;;1140:30990:78;;;;;;;;;;3142:8:82;1140:30990:78;;;;;;;3142:27:82;1140:30990:78;;;;3141:28:82;3137:99;;1140:30990:78;;3142:8:82;1140:30990:78;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1140:30990:78;;;;;;;;;;3142:8:82;1140:30990:78;;;;;;;3142:27:82;1140:30990:78;;;;3141:28:82;3137:99;;4991:30:78;1140:30990;4991:30;;:::i;1140:30990::-;;;;;-1:-1:-1;;1140:30990:78;;;;;;;-1:-1:-1;;;;;1140:30990:78;;;;;;;-1:-1:-1;;;;;1140:30990:78;;;908:10:79;899:19;;895:116;;1140:30990:78;9452:13:82;1140:30990:78;;;;;;;9452:13:82;1140:30990:78;-1:-1:-1;;;;;1140:30990:78;;;;;;;;;;9572:172:82;1140:30990:78;908:10:79;9572:172:82;;9864:12;1140:30990:78;;;;;;;;;;9813:70:82;1140:30990:78;;;;9849:1:82;1140:30990:78;;;;;;9813:70:82;1140:30990:78;;;;;;-1:-1:-1;;1140:30990:78;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1140:30990:78;;908:10:79;899:19;;895:116;;1140:30990:78;-1:-1:-1;;;;;1140:30990:78;;;;;;;;;;908:10:79;1484:70;1140:30990:78;1484:70:79;;1140:30990:78;;;;;;-1:-1:-1;;1140:30990:78;;;;;-1:-1:-1;;;;;1140:30990:78;;:::i;:::-;;2006:19:9;;2002:87;;1140:30990:78;;;;;;;;;;;;;;;;2002:87:9;2048:30;1140:30990:78;2048:30:9;1140:30990:78;;;;;2048:30:9;1140:30990:78;;;;;-1:-1:-1;;1140:30990:78;;;;;;;;;;3142:8:82;1140:30990:78;;;;;;;3142:27:82;1140:30990:78;;;;3141:28:82;3137:99;;1140:30990:78;;5799:7:9;1140:30990:78;;;-1:-1:-1;;;;;1140:30990:78;;;;;;;;;;;;;;;;-1:-1:-1;;1140:30990:78;;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;1140:30990:78;;;908:10:79;899:19;;895:116;;1140:30990:78;-1:-1:-1;;;;;1140:30990:78;;;;;;8838:30:82;;8862:4;1140:30990:78;8838:30:82;;1140:30990:78;;8838:30:82;1140:30990:78;8838:30:82;;;;;;;;1140:30990:78;8838:30:82;;;1140:30990:78;8838:56:82;1140:30990:78;;;;;8871:16:82;1140:30990:78;;;;;;8838:56:82;;:::i;:::-;8958:12;;;8954:100;;9157:7;;9181:39;9157:7;;9181:39;9157:7;;:::i;:::-;1140:30990:78;;908:10:79;;;;9181:39:82;;1140:30990:78;;;;;;-1:-1:-1;;;;;1140:30990:78;;;;;;;;;;9181:39:82;;;;1140:30990:78;8954:100:82;8993:50;;1140:30990:78;8993:50:82;1140:30990:78;;;;8993:50:82;8838:30;;1140:30990:78;8838:30:82;;1140:30990:78;8838:30:82;;;;;;1140:30990:78;8838:30:82;;;:::i;:::-;;;1140:30990:78;;;;8838:56:82;1140:30990:78;;8838:30:82;;;;;-1:-1:-1;8838:30:82;;1140:30990:78;;;;;-1:-1:-1;;1140:30990:78;;;;;;2274:22:9;1140:30990:78;;2274:22:9;:::i;:::-;-1:-1:-1;;;;;1140:30990:78;;;;;;;;;;;;-1:-1:-1;;1140:30990:78;;;;;-1:-1:-1;;;;;1140:30990:78;;:::i;:::-;;;;1535:72:82;1140:30990:78;;;;;;;;;;;;;;;;;;-1:-1:-1;;1140:30990:78;;;;;;;519:76:81;;:::i;:::-;1140:30990:78;;;3142:8:82;1140:30990:78;;;;;;;3142:27:82;1140:30990:78;;;;3141:28:82;3137:99;;1140:30990:78;;;3142:8:82;1140:30990:78;;;;;;;3649:27:82;1140:30990:78;;;;3645:106:82;;1140:30990:78;;;3142:8:82;1140:30990:78;;-1:-1:-1;;;;;1140:30990:78;;;;26020:25;1140:30990;;26006:10;:39;;:88;;;1140:30990;26002:201;;1140:30990;26238:26;;4183:38:82;26238:26:78;;:::i;:::-;26348:19;;;26411:30;;;:::i;:::-;26459:21;26455:198;;26344:679;;;1140:30990;;;;3142:8:82;1140:30990:78;;;;;;27078:31;1140:30990;;;;27119:15;1140:30990;;;;;;;;;;3142:8:82;1140:30990:78;;;;;;;;;;;;;;3142:8:82;1140:30990:78;;;;;;27299:27;1140:30990;;;;;;;;;;;3142:8:82;1140:30990:78;;-1:-1:-1;;;;;1140:30990:78;;;;27456:25;1140:30990;;;;;5799:7:9;1140:30990:78;;;27374:287;1140:30990;-1:-1:-1;;;;;1140:30990:78;;;;;27584:22;;;;:::i;:::-;1140:30990;;;26006:10;;1140:30990;;;;;;;;;;27374:287;1140:30990;;;;;4183:38:82;1140:30990:78;26455:198;1140:30990;;;3142:8:82;1140:30990:78;;26580:58;:37;1140:30990;;;26580:37;1140:30990;;;26580:58;:::i;:::-;1140:30990;;26455:198;;;26344:679;1140:30990;;;3142:8:82;1140:30990:78;;26909:103;1140:30990;;;;;;;;;3142:8:82;1140:30990:78;;;26977:32;1140:30990;;;26977:32;1140:30990;;;;26909:103;;:::i;:::-;1140:30990;;;3142:8:82;1140:30990:78;;26853:37;1140:30990;;;26853:37;1140:30990;26344:679;;26002:201;26117:75;1140:30990;26117:75;1140:30990;;26006:10;1140:30990;;;;26117:75;26006:88;26050:44;;;;:::i;:::-;26049:45;26006:88;;3645:106:82;3699:41;1140:30990:78;3699:41:82;1140:30990:78;;;;3699:41:82;1140:30990:78;;;;;-1:-1:-1;;1140:30990:78;;;;;;8498:62;1140:30990;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;519:76:81;;;:::i;1140:30990:78:-;;;;;-1:-1:-1;;1140:30990:78;;;;;;;;;;3142:8:82;1140:30990:78;;;;;;;3142:27:82;1140:30990:78;;;;3141:28:82;3137:99;;1140:30990:78;;3142:8:82;1140:30990:78;;;;;;;;7237:27:82;1140:30990:78;;;;;;;;;;;;;;;;;-1:-1:-1;;1140:30990:78;;;;;;;;;;3142:8:82;1140:30990:78;;;;;;;3142:27:82;1140:30990:78;;;;3141:28:82;3137:99;;1140:30990:78;;3142:8:82;1140:30990:78;;;5554:37:82;1140:30990:78;;;5554:37:82;1140:30990:78;;;;;;;;;;;;-1:-1:-1;;1140:30990:78;;;;;;-1:-1:-1;;;;;1731:48:82;1140:30990:78;;;;;;;;;;;;4873:39:9;1140:30990:78;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;4873:39:9;:::i;1140:30990:78:-;;;;;-1:-1:-1;;1140:30990:78;;;;;;;;;:::i;:::-;519:76:81;;:::i;:::-;1140:30990:78;;;3142:8:82;1140:30990:78;;;;;;;3142:27:82;1140:30990:78;;;;3141:28:82;3137:99;;1140:30990:78;;;3142:8:82;1140:30990:78;;;;;;;;3382:46:82;3378:125;;1140:30990:78;;;3142:8:82;1140:30990:78;;-1:-1:-1;;;;;1140:30990:78;;;;3901:25:82;1140:30990:78;;3887:10:82;:39;3883:130;;11983:6:78;;1140:30990;11983:6;4183:38:82;11983:6:78;;:::i;1140:30990::-;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;-1:-1:-1;;1140:30990:78;;;;;;;;;:::i;:::-;;;:::i;:::-;519:76:81;;;:::i;:::-;1140:30990:78;;;3142:8:82;1140:30990:78;;;;;;;3142:27:82;1140:30990:78;;;;3141:28:82;3137:99;;1140:30990:78;;;3142:8:82;1140:30990:78;;;;;;;3649:27:82;1140:30990:78;;;;3645:106:82;;1140:30990:78;;;3142:8:82;1140:30990:78;;-1:-1:-1;;;;;1140:30990:78;;;;3901:25:82;1140:30990:78;;3887:10:82;:39;3883:130;;13332:13:78;13441:6;1140:30990;13332:13;;4183:38:82;13332:13:78;;;:::i;3883:130:82:-;3949:53;;1140:30990:78;3949:53:82;1140:30990:78;;3887:10:82;1140:30990:78;;;;3949:53:82;3645:106;3699:41;;1140:30990:78;3699:41:82;1140:30990:78;;;;3699:41:82;1140:30990:78;;;;;-1:-1:-1;;1140:30990:78;;;;;;1651:36:82;1140:30990:78;;;;;;;;;;;;-1:-1:-1;;1140:30990:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;750:13:80;1140:30990:78;;;;;;;745:227:80;776:3;765:9;;;;;;1140:30990:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;833:36:80;841:4;;833:36;;;;:::i;:::-;887:8;;883:79;;776:3;1140:30990:78;;750:13:80;;883:79;1140:30990:78;;;;922:25:80;;;;;;1140:30990:78;;922:25:80;;1140:30990:78;;;;;;:::i;:::-;922:25:80;;;1140:30990:78;;;;;-1:-1:-1;;1140:30990:78;;;;;;;;;;3142:8:82;1140:30990:78;;;;;;;3142:27:82;1140:30990:78;;;;3141:28:82;3137:99;;1140:30990:78;;3142:8:82;1140:30990:78;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1140:30990:78;;;;;;;;;;3142:8:82;1140:30990:78;;;;;;;3142:27:82;1140:30990:78;;;;3141:28:82;3137:99;;5262:29:78;1140:30990;5262:29;;:::i;1140:30990::-;;;;;-1:-1:-1;;1140:30990:78;;;;;;;519:76:81;;:::i;:::-;1140:30990:78;;;3142:8:82;1140:30990:78;;;;;;;3142:27:82;1140:30990:78;;;;3141:28:82;3137:99;;1140:30990:78;;;3142:8:82;1140:30990:78;;;;;;;;3382:46:82;3378:125;;1140:30990:78;;;3142:8:82;1140:30990:78;;-1:-1:-1;;;;;1140:30990:78;;;;3901:25:82;1140:30990:78;;3887:10:82;:39;3883:130;;1140:30990:78;11215:8;;4183:38:82;11215:8:78;;:::i;1140:30990::-;;;;;-1:-1:-1;;1140:30990:78;;;;;;;519:76:81;;:::i;:::-;1140:30990:78;;;3142:8:82;1140:30990:78;;;;;;;3142:27:82;1140:30990:78;;;;3141:28:82;3137:99;;1140:30990:78;;;3142:8:82;1140:30990:78;;-1:-1:-1;;;;;1140:30990:78;;;;3901:25:82;1140:30990:78;;3887:10:82;:39;3883:130;;1140:30990:78;12350:29;12471:16;12350:29;4183:38:82;12350:29:78;;:::i;:::-;12471:16;;:::i;1140:30990::-;;;;;-1:-1:-1;;1140:30990:78;;;;;-1:-1:-1;;;;;1140:30990:78;;:::i;:::-;;;;1931:72:82;1140:30990:78;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1140:30990:78;;;;;;;:::i;:::-;;;14943:22:9;;;:::i;:::-;735:10:15;15093:18:9;;:35;;;1140:30990:78;15093:69:9;;;1140:30990:78;15089:142:9;;1140:30990:78;;-1:-1:-1;;;;;1140:30990:78;;;;;15283:28:9;1140:30990:78;15283:28:9;;1140:30990:78;;15346:15:9;1140:30990:78;;-1:-1:-1;;;;;1140:30990:78;;;;;;;;;;;;;;;15089:142:9;15189:27;1140:30990:78;15189:27:9;735:10:15;1140:30990:78;;;;15189:27:9;15093:69;1140:30990:78;-1:-1:-1;;;;;1140:30990:78;;;;4039:18:9;1140:30990:78;;;;;-1:-1:-1;;;;;735:10:15;1140:30990:78;-1:-1:-1;1140:30990:78;;;;;-1:-1:-1;1140:30990:78;;;15132:30:9;15093:69;;:35;735:10:15;;-1:-1:-1;;;;;1140:30990:78;;15115:13:9;;15093:35;;1140:30990:78;;;;;-1:-1:-1;;1140:30990:78;;;;;;;;;;3142:8:82;1140:30990:78;;;;;;;3142:27:82;1140:30990:78;;;;3141:28:82;3137:99;;6569:22:78;1140:30990;6569:22;;:::i;1140:30990::-;;;;;-1:-1:-1;;1140:30990:78;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;1140:30990:78;;;;;;;;2442:5:9;1140:30990:78;;2442:5:9;1140:30990:78;;2442:5:9;1140:30990:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;2442:5:9;1140:30990:78;;;;;;;;;;;;-1:-1:-1;1140:30990:78;;-1:-1:-1;1140:30990:78;;;;;;;;;;2442:5:9;1140:30990:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1140:30990:78;;;;;;;;;;;;;;;;11004:25:82;1140:30990:78;;11004:25:82;;:65;;;;;1140:30990:78;;;;;;;11004:65:82;1713:25:9;1698:40;;;-1:-1:-1;1698:104:9;;;;11004:65:82;1698:156:9;;;;11004:65:82;;;;;1698:156:9;876:25:17;861:40;;;1698:156:9;;;:104;1769:33;1754:48;;;-1:-1:-1;1698:104:9;;1140:30990:78;;;;;;;;-1:-1:-1;;1140:30990:78;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1140:30990:78;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1140:30990:78;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1140:30990:78;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1140:30990:78;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;-1:-1:-1;;1140:30990:78;;;;;;;;-1:-1:-1;;;;;1140:30990:78;;;;;;;;;-1:-1:-1;;;;;1140:30990:78;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;3497:154:9:-;3583:22;;;:::i;:::-;;-1:-1:-1;1140:30990:78;6034:15:9;1140:30990:78;;-1:-1:-1;;;;;1140:30990:78;-1:-1:-1;1140:30990:78;;;3497:154:9;:::o;1140:30990:78:-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;1140:30990:78;;;;:::o;:::-;;;:::o;4143:578:9:-;;;-1:-1:-1;;;;;1140:30990:78;4237:16:9;;;4233:87;;1140:30990:78;4251:1:9;1140:30990:78;5799:7:9;1140:30990:78;;-1:-1:-1;;;;;1140:30990:78;4251:1:9;1140:30990:78;;;12947:18:82;;:56;;;4143:578:9;12943:142:82;;1140:30990:78;4251:1:9;1140:30990:78;5799:7:9;1140:30990:78;;-1:-1:-1;;;;;1140:30990:78;4251:1:9;1140:30990:78;;;735:10:15;;9035:18:9;;9031:86;;;4143:578;9161:18;;4183:38:82;1140:30990:78;-1:-1:-1;;;;;9161:18:9;;9157:256;;4143:578;1140:30990:78;4251:1:9;1140:30990:78;9487:9:9;1140:30990:78;;;4251:1:9;1140:30990:78;9427:16:9;1140:30990:78;;;;;;4251:1:9;1140:30990:78;5799:7:9;1140:30990:78;;;4251:1:9;1140:30990:78;;;;;;;;;;;;9577:27:9;;;4251:1;9577:27;;1140:30990:78;;;4183:38:82;1140:30990:78;4610:21:9;;;4606:109;;4143:578;;;:::o;4606:109::-;4654:50;4251:1;4654:50;9487:9;1140:30990:78;;;;;;4251:1:9;4654:50;9157:256;9319:5;;1140:30990:78;;15346:15:9;1140:30990:78;;;;;;;;;;;14720:662:9;9319:5;1140:30990:78;4251:1:9;1140:30990:78;9368:9:9;1140:30990:78;;;4251:1:9;1140:30990:78;;;;;;;9157:256:9;;9031:86;6514:127;;;9031:86;7193:39;7189:255;;9031:86;;;7189:255;7252:19;;1140:30990:78;;7298:31:9;4251:1;7298:31;;1140:30990:78;;4251:1:9;7298:31;7248:186;7375:44;4251:1;7375:44;735:10:15;7375:44:9;1140:30990:78;;;;4251:1:9;7375:44;6514:127;735:10:15;;6552:16:9;;:52;;;;6514:127;6552:88;6514:127;6552:88;1140:30990:78;;4251:1:9;1140:30990:78;6034:15:9;1140:30990:78;;735:10:15;-1:-1:-1;;;;;1140:30990:78;4251:1:9;1140:30990:78;;;6608:32:9;6514:127;;6552:52;1140:30990:78;;4251:1:9;1140:30990:78;4039:18:9;1140:30990:78;;;4251:1:9;1140:30990:78;-1:-1:-1;;;;;735:10:15;1140:30990:78;4251:1:9;1140:30990:78;;;;;4251:1:9;1140:30990:78;;;6552:52:9;;12943:142:82;13026:48;;4251:1:9;13026:48:82;;1140:30990:78;;4251:1:9;13026:48:82;12947:56;1140:30990:78;;4251:1:9;1140:30990:78;12970:8:82;1140:30990:78;;;12970:33:82;1140:30990:78;4251:1:9;1140:30990:78;12970:33:82;1140:30990:78;;;;12969:34:82;12947:56;;4233:87:9;4276:33;4251:1;4276:33;4251:1;4276:33;1140:30990:78;;4251:1:9;4276:33;3092:161:82;1140:30990:78;;;3142:8:82;1140:30990:78;;;3142:27:82;1140:30990:78;;;3142:27:82;1140:30990:78;;;;3141:28:82;3137:99;;2412:24:78;;;:::i;:::-;3092:161:82;:::o;1140:30990:78:-;;;;;;;;;;:::o;5337:1063::-;1140:30990;-1:-1:-1;1140:30990:78;5497:8;1140:30990;;;5497:27;1140:30990;-1:-1:-1;1140:30990:78;5497:27;1140:30990;;;;5493:83;;5655:26;;;:::i;:::-;:30;;1140:30990;-1:-1:-1;1140:30990:78;5497:8;1140:30990;;;-1:-1:-1;1140:30990:78;;;;5700:46;5696:382;;6178:76;;-1:-1:-1;5337:1063:78;:::o;6178:76::-;5497:27;6205:38;:::o;5696:382::-;5850:81;;6041:26;6034:33;:::o;5850:81::-;5888:28;5881:35;:::o;5493:83::-;5540:25;5547:18;5540:25;:::o;4985:208:9:-;;5121:7;;;;;:::i;:::-;17034:14;;17030:664;;4985:208;;;;;:::o;17030:664::-;1140:30990:78;;;-1:-1:-1;;;;;1140:30990:78;;;;;;17072:71:9;;;;;1140:30990:78;17072:71:9;;735:10:15;17072:71:9;;;1140:30990:78;;;;;;;;;;;;;;;;;;;;:::i;:::-;17072:71:9;;17051:1;17072:71;;;17051:1;;17072:71;;;17030:664;-1:-1:-1;17068:616:9;;17331:353;;;:::i;:::-;1140:30990:78;;;17381:18:9;;;17430:25;;17051:1;17430:25;17072:71;1140:30990:78;;17051:1:9;17430:25;17377:293;1140:30990:78;17557:95:9;;17068:616;1140:30990:78;;;;17190:51:9;17186:130;;17068:616;17030:664;;;;;;17186:130;17272:25;17051:1;17272:25;17072:71;1140:30990:78;;17051:1:9;17272:25;17072:71;;;;1140:30990:78;17072:71:9;;1140:30990:78;17072:71:9;;;;;;1140:30990:78;17072:71:9;;;:::i;:::-;;;1140:30990:78;;;;;;;;;;;;17072:71:9;;;;;;;-1:-1:-1;17072:71:9;;1140:30990:78;;;;;;;;;;:::o;:::-;;;;;;;:::o;:::-;;;;;;;;;;2482:2272;1140:30990;-1:-1:-1;1140:30990:78;2698:8;1140:30990;;;;-1:-1:-1;1140:30990:78;;;2832:12;;;2828:96;;1140:30990;-1:-1:-1;1140:30990:78;2698:8;1140:30990;;3022:65;1140:30990;2956:32;1140:30990;-1:-1:-1;1140:30990:78;2956:32;1140:30990;;;;3022:65;;;:::i;:::-;1140:30990;;-1:-1:-1;1140:30990:78;2698:8;1140:30990;;3354:59;3126:37;1140:30990;-1:-1:-1;1140:30990:78;3126:37;1140:30990;3354:59;;:::i;:::-;3508:30;3487:51;3508:30;;;:::i;:::-;3487:51;;:::i;:::-;3542:28;;;;:::i;:::-;-1:-1:-1;3487:83:78;3483:122;;1140:30990;-1:-1:-1;1140:30990:78;2698:8;1140:30990;;;-1:-1:-1;1140:30990:78;;;;;;;4251:30;;;;;:::i;:::-;1140:30990;;;;;;;;-1:-1:-1;1140:30990:78;2698:8;1140:30990;;;3384:1;1140:30990;-1:-1:-1;1140:30990:78;4439:31;1140:30990;;;;;4364:374;2482:2272::o;4364:374::-;1140:30990;3384:1;1140:30990;-1:-1:-1;1140:30990:78;2698:8;1140:30990;;;;;-1:-1:-1;1140:30990:78;4671:31;1140:30990;;;;;;4364:374;2482:2272::o;3483:122::-;3586:8;;;;-1:-1:-1;3586:8:78;:::o;2828:96::-;2867:46;-1:-1:-1;2867:46:78;;1140:30990;;-1:-1:-1;2867:46:78;16138:241:9;1140:30990:78;-1:-1:-1;1140:30990:78;5799:7:9;1140:30990:78;;-1:-1:-1;;;;;1140:30990:78;-1:-1:-1;1140:30990:78;;;16267:19:9;;;16263:88;;16360:12;16138:241;:::o;16263:88::-;16309:31;-1:-1:-1;16309:31:9;;1140:30990:78;;-1:-1:-1;16309:31:9;17170:296:78;17365:94;17170:296;17278:70;:30;;;:::i;:::-;1140:30990;-1:-1:-1;1140:30990:78;17311:8;1140:30990;;17311:37;1140:30990;-1:-1:-1;1140:30990:78;17311:37;1140:30990;17278:70;;:::i;:::-;1140:30990;-1:-1:-1;1140:30990:78;17311:8;1140:30990;;;17424:32;1140:30990;-1:-1:-1;1140:30990:78;17424:32;1140:30990;;;;17365:94;;:::i;1115:145:81:-;-1:-1:-1;;;;;1191:8:81;1140:30990:78;1182:4:81;1174:25;1170:84;;1115:145::o;1170:84::-;1222:21;;;;;;1140:30990:78;;;;;;;;;;;;;;;:::o;16839:156::-;16935:53;16839:156;1140:30990;-1:-1:-1;1140:30990:78;16935:8;1140:30990;;16964:24;1140:30990;;-1:-1:-1;1140:30990:78;;;16964:24;;:::i;:::-;16935:53;;:::i;23586:1518::-;1140:30990;;;23709:11;;23705:94;;1140:30990;23880:29;;;:::i;:::-;1140:30990;24003:25;;;23999:132;;1140:30990;23719:1;1140:30990;24312:8;1140:30990;;;;23719:1;1140:30990;;;-1:-1:-1;24289:166:78;;1140:30990;25038:59;1140:30990;;23719:1;1140:30990;24312:8;1140:30990;;24946:49;1140:30990;-1:-1:-1;;;;;24482:25:78;1140:30990;23719:1;1140:30990;24482:25;1140:30990;;;;;23719:1;1140:30990;24312:8;1140:30990;;-1:-1:-1;;;;;24532:24:78;1140:30990;23719:1;1140:30990;24532:24;1140:30990;;;;23719:1;1140:30990;24312:8;1140:30990;;;;;23719:1;1140:30990;;;;;;;;;;;;;;;;;23719:1;1140:30990;24839:16;1140:30990;;;23719:1;1140:30990;;;;;;;24946:49;:::i;:::-;1140:30990;;;;;25038:59;23586:1518::o;24289:166::-;1140:30990;;23719:1;1140:30990;24312:8;1140:30990;;;;23719:1;1140:30990;;;24361:83;;23719:1;24361:83;;1140:30990;;;;;;23719:1;24361:83;23999:132;24051:69;;23719:1;24051:69;;1140:30990;;;;;;23719:1;24051:69;23705:94;23743:45;;23719:1;23743:45;;1140:30990;;23719:1;23743:45;23096:385;1140:30990;23218:1;1140:30990;18879:8;1140:30990;;;23218:1;1140:30990;;;;18850:70;18846:180;;19064:30;;;:::i;:::-;19182:21;19178:159;;23096:385;-1:-1:-1;23218:1:78;1140:30990;;;18879:8;1140:30990;;;;;;;;19392:31;;;1140:30990;;;19433:15;1140:30990;;;;;;;;;;;;;;;;;5799:7:9;1140:30990:78;;;;;-1:-1:-1;;;;;1140:30990:78;;;;;;;;23265:209;;23441:22;1140:30990;23441:22;:::i;:::-;1140:30990;;;;;23265:209;23096:385::o;19178:159::-;1140:30990;23218:1;1140:30990;18879:8;1140:30990;;19268:58;:37;1140:30990;23218:1;1140:30990;19268:37;1140:30990;;;19268:58;:::i;:::-;1140:30990;;19178:159;;;18846:180;18943:72;23218:1;18943:72;;1140:30990;23218:1;1140:30990;;;23218:1;18943:72;25209:536;1140:30990;-1:-1:-1;1140:30990:78;25335:8;1140:30990;;;-1:-1:-1;1140:30990:78;;;;25331:128;;25611:13;;;;:::i;:::-;1140:30990;;;;;;;25671:67;1140:30990;25712:10;25671:67;;25209:536::o;25331:128::-;25404:44;-1:-1:-1;25404:44:78;;1140:30990;;-1:-1:-1;25404:44:78;21535:764;;1140:30990;;21660:11;;;21656:95;;21670:1;1140:30990;;;21776:8;1140:30990;;;;;21776:24;;;1140:30990;;;;;;;;;;-1:-1:-1;;;;;1140:30990:78;;;;;;22080:78;1140:30990;;;;;;;;;;;;;21670:1;1140:30990;21981:16;1140:30990;;;21670:1;1140:30990;;;;;;;22135:4;22111:10;;22080:78;;:::i;:::-;1140:30990;;;;;22202:90;1140:30990;22111:10;22202:90;;21535:764::o;21656:95::-;21694:46;21670:1;21694:46;;1140:30990;;21670:1;21694:46;15061:619;1140:30990;;;15163:8;1140:30990;;;;;;;;15252:12;;;15248:51;;15329:22;;;:::i;:::-;15467:19;;;15463:64;;15652:21;;;;:::i;15463:64::-;15502:14;;:::o;15248:51::-;15280:8;;1140:30990;15280:8;:::o;19671:1759::-;-1:-1:-1;;;;;19671:1759:78;;;;;;;1140:30990;19949:20;;;19945:96;;-1:-1:-1;;;;;1140:30990:78;;;;;20073:41;;;;;;;;;;;;;19967:1;20073:41;;;19671:1759;1140:30990;;;;20191:18;20207:2;20191:18;;20187:111;;20350:12;1140:30990;;;;;;;;;;:::i;:::-;19967:1;1140:30990;;20073:41;20432:370;;1140:30990;;;;;;;;20432:370;;1140:30990;;;;20432:370;;;20707:15;;1140:30990;;;;20432:370;;;20492:4;1140:30990;;20432:370;;;1140:30990;;;;;;;20432:370;;;1140:30990;19967:1;1140:30990;;;20432:370;;1140:30990;;;20432:370;;;1140:30990;;;20432:370;;;1140:30990;19967:1;1140:30990;;19967:1;1140:30990;20411:8;20073:41;1140:30990;;19967:1;1140:30990;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20492:4;1140:30990;;;;;;;;;;;;;-1:-1:-1;;;;;1140:30990:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1140:30990:78;-1:-1:-1;;;;;1140:30990:78;;;;;;;;;;;;20432:370;1140:30990;;;;;;;;;;;;;;20492:4;1140:30990;;20350:12;1140:30990;-1:-1:-1;;;;;1140:30990:78;10022:16:9;;;10018:87;;1140:30990:78;19967:1;1140:30990;;20073:41;1140:30990;-1:-1:-1;;;;;1140:30990:78;19967:1;1140:30990;;;12947:18:82;;:56;;;19671:1759:78;12943:142:82;;1140:30990:78;19967:1;1140:30990;;20073:41;1140:30990;-1:-1:-1;;;;;1140:30990:78;19967:1;1140:30990;;;4183:38:82;20073:41:78;9161:18:9;;;9157:256;;;;19671:1759:78;1140:30990;19967:1;1140:30990;20073:41;1140:30990;;;19967:1;1140:30990;20492:4;1140:30990;;;;;;19967:1;1140:30990;;;;;19967:1;1140:30990;;;;;;;;;;;9577:27:9;;;;;19967:1:78;9577:27:9;;1140:30990:78;;;;4183:38:82;10180:96:9;;21180:243:78;1140:30990;20432:370;1140:30990;;;;;;;20073:41;1140:30990;;;;;;;21180:243;19671:1759::o;10180:96:9:-;10234:31;19967:1:78;10234:31:9;19967:1:78;20073:41;1140:30990;;19967:1;10234:31:9;9157:256;9319:5;;1140:30990:78;;15346:15:9;1140:30990:78;;;;;;;;;;;14720:662:9;9319:5;1140:30990:78;19967:1;1140:30990;20073:41;1140:30990;;;19967:1;1140:30990;;;;;;;9157:256:9;;12943:142:82;13026:48;;19967:1:78;13026:48:82;20073:41:78;1140:30990;;19967:1;13026:48:82;12947:56;1140:30990:78;;19967:1;1140:30990;20411:8;20073:41;1140:30990;;20492:4;1140:30990;19967:1;1140:30990;12970:33:82;1140:30990:78;;;;12969:34:82;12947:56;;20187:111:78;20232:55;;19967:1;20232:55;20073:41;1140:30990;;19967:1;20232:55;20073:41;;;;;;;;;;;;;;;;:::i;:::-;;;1140:30990;;;;;;;;;;;;;20073:41;;;;;;-1:-1:-1;20073:41:78;;19945:96;19992:38;19967:1;19992:38;;19967:1;19992:38;1303:160:8;1140:30990:78;;;1412:43:8;;;;-1:-1:-1;;;;;1140:30990:78;;;;1412:43:8;;;1140:30990:78;;;;;;;;;1412:43:8;;;;;;1140:30990:78;;1412:43:8;:::i;:::-;;:::i;:::-;1303:160::o;15896:890:78:-;1140:30990;;;;16059:8;1140:30990;;;;;16059:31;;;1140:30990;;;;;;;;;;16287:18;;:52;;;;15896:890;16283:91;;16011:15;;1140:30990;;;;;;;;;16011:15;;1140:30990;;;;;15896:890;:::o;16287:52::-;16011:15;;;16309:30;;16287:52;;18664:902;;;1140:30990;;;;;-1:-1:-1;1140:30990:78;18879:8;1140:30990;;;-1:-1:-1;1140:30990:78;;;;18850:70;;18846:180;;19508:51;19064:30;;;;;;:::i;:::-;19182:21;19178:159;;18664:902;-1:-1:-1;;1140:30990:78;;;18879:8;1140:30990;;;;;19392:31;;;1140:30990;;;19433:15;1140:30990;;;;;;;;;;;;;;;;;;;;;;;;;;;;19178:159;1140:30990;-1:-1:-1;1140:30990:78;18879:8;1140:30990;;19268:58;:37;1140:30990;-1:-1:-1;1140:30990:78;19268:37;1140:30990;;;19268:58;:::i;:::-;1140:30990;;19178:159;;;18846:180;18943:72;;;-1:-1:-1;18943:72:78;;1140:30990;;;;-1:-1:-1;18943:72:78;17516:315;1140:30990;;;17620:8;1140:30990;;17677:22;1140:30990;;;;;;17677:22;;:::i;:::-;17714:19;;;;;;;17756;;;:::i;17927:410::-;;1140:30990;-1:-1:-1;1140:30990:78;18056:8;1140:30990;;-1:-1:-1;;;;;1140:30990:78;18056:25;1140:30990;-1:-1:-1;1140:30990:78;18056:25;1140:30990;;;;18046:35;;;18042:142;;1140:30990;;-1:-1:-1;1140:30990:78;5799:7:9;1140:30990:78;;-1:-1:-1;;;;;1140:30990:78;;-1:-1:-1;1140:30990:78;;;;;18198:31;;;18194:137;;17927:410;;:::o;18194:137::-;-1:-1:-1;1140:30990:78;5799:7:9;1140:30990:78;;-1:-1:-1;;;;;1140:30990:78;-1:-1:-1;1140:30990:78;;;18252:68;;-1:-1:-1;18252:68:78;;1140:30990;;;;-1:-1:-1;18252:68:78;18042:142;1140:30990;-1:-1:-1;1140:30990:78;18056:8;1140:30990;;-1:-1:-1;;;;;18056:25:78;1140:30990;-1:-1:-1;1140:30990:78;18147:25;1140:30990;;18104:69;;-1:-1:-1;18104:69:78;;1140:30990;;;;-1:-1:-1;18104:69:78;2341:288:89;2452:2;1140:30990:78;;;2440:14:89;2436:58;;2452:2;1140:30990:78;;;2550:2:89;1140:30990:78;;2341:288:89:o;2436:58::-;2470:13;3384:1:78;2470:13:89;:::o;2341:288::-;;2452:2;1140:30990:78;;;2440:14:89;2436:58;;2452:2;1140:30990:78;;;2550:2:89;1140:30990:78;;;2341:288:89:o;27773:4355:78:-;1140:30990;;27773:4355;;1140:30990;;;;28023:11;;28019:96;;-1:-1:-1;;;;;1140:30990:78;;28183:16;;;28179:104;;1140:30990;;;5799:7:9;1140:30990:78;;-1:-1:-1;;;;;1140:30990:78;;;;;28448:24;;;:73;;;27773:4355;28444:211;;1140:30990;;;28687:8;1140:30990;;;28687:32;1140:30990;;;28687:32;1140:30990;;;;28793:30;:70;:30;;;:::i;:::-;1140:30990;;;28687:8;1140:30990;;5799:7:9;1140:30990:78;;;28826:37;1140:30990;28793:70;;:::i;:::-;28893:53;;;;:::i;:::-;1140:30990;;;;28687:8;1140:30990;;;;;;;;29057:26;29098:19;;;29094:326;29098:19;;;1140:30990;29239:28;29094:326;1140:30990;29517:27;;;29513:130;;29716:42;;;;;:::i;:::-;1140:30990;;;;28687:8;1140:30990;;5799:7:9;1140:30990:78;;;30068:37;1140:30990;30052:53;;;30048:569;5799:7:9;;;1140:30990:78;;;;28687:8;1140:30990;;5799:7:9;1140:30990:78;;;30125:37;1140:30990;;;;;;30048:569;1140:30990;;;;28687:8;1140:30990;;;;;;;;;;;;;;;;;;;;;;;;;28687:32;30794:24;1140:30990;-1:-1:-1;;;;;1140:30990:78;;;;30850:11;1140:30990;;;;;;;;;;;30879:458;;30048:569;1140:30990;31749:36;31711:34;1140:30990;;31531:45;1140:30990;;;;;;;;31424:16;1140:30990;;;;;;;;;;;31531:45;;:::i;:::-;31723:22;;;:::i;:::-;31711:34;;:::i;:::-;1140:30990;;;;28687:8;1140:30990;;;;;;;;31749:36;;:::i;:::-;1140:30990;31711:74;1909:15:48;;;31833:243:78;1140:30990;;;31969:10;;1140:30990;;;1909:15:48;;1140:30990:78;;;;;1909:15:48;;1140:30990:78;31833:243;32087:34;27773:4355;:::o;1909:15:48:-;;1140:30990:78;1909:15:48;;;;;1140:30990:78;1909:15:48;30879:458:78;31711:34;31025:74;;;31749:36;31025:74;1140:30990;31025:74;;;:::i;:::-;30995:104;;;;;1140:30990;;;31269:15;1140:30990;;;;;;;;;;;;1909:15:48;1140:30990:78;;;;;;;;;30879:458;;;;;30048:569;1140:30990;;;;28687:8;1140:30990;;;;;;;;5799:7:9;30405:37:78;;1140:30990;30545:31;;1140:30990;;;;30586:15;1140:30990;;;;;;;30048:569;;29513:130;29567:65;;;1140:30990;29567:65;;1140:30990;;;;;;;29567:65;29094:326;1140:30990;29388:21;;;:::i;:::-;29094:326;;28444:211;28544:100;;1140:30990;28544:100;;1140:30990;28623:10;1140:30990;;;;;;28544:100;28448:73;28477:44;;;;:::i;:::-;28476:45;28448:73;;28179:104;28222:50;;1140:30990;28222:50;;1140:30990;;;28222:50;28019:96;28057:47;1140:30990;28057:47;;1140:30990;;;28057:47;1939:290:89;;2052:2;1140:30990:78;;;2040:14:89;2036:58;;1140:30990:78;;2192:20:89;1140:30990:78;2052:2:89;1140:30990:78;;2150:2:89;1140:30990:78;2192:20:89;;:::i;1702:188:8:-;;;;-1:-1:-1;;;;;1829:53:8;1702:188;1140:30990:78;;;1829:53:8;1140:30990:78;1829:53:8;;;;1140:30990:78;1829:53:8;;;1140:30990:78;;;;;;;;;;;1829:53:8;;;;;;:::i;9259:218:20:-;1140:30990:78;9339:25:20;;9335:105;;1140:30990:78;;9259:218:20;:::o;9335:105::-;9387:42;;;9418:3;9387:42;1140:30990:78;;;;9387:42:20;;11452:301:82;1140:30990:78;-1:-1:-1;1140:30990:78;5799:7:9;1140:30990:78;;-1:-1:-1;;;;;1140:30990:78;-1:-1:-1;1140:30990:78;;;11608:10:82;;;:23;:87;;;;;11452:301;11608:138;;;;;11601:145;11452:301;:::o;11608:138::-;:10;;-1:-1:-1;;;;;11711:21:82;11608:10;11711:21;;:::i;:::-;1140:30990:78;11711:35:82;11452:301;:::o;11608:87::-;1140:30990:78;;;-1:-1:-1;1140:30990:78;4039:18:9;1140:30990:78;;;-1:-1:-1;1140:30990:78;-1:-1:-1;;;;;11608:10:82;1140:30990:78;-1:-1:-1;1140:30990:78;;;;;-1:-1:-1;1140:30990:78;;;11608:87:82;;;;4059:629:8;2847:1:13;4059:629:8;-1:-1:-1;;;;;3510:55:13;4059:629:8;1140:30990:78;3462:31:13;;;;;;;;;;;;:::i;:::-;3510:55;;;:::i;:::-;1140:30990:78;;4551:22:8;;;;:57;;;;4059:629;4547:135;;;;4059:629;:::o;4547:135::-;4631:40;2847:1:13;4631:40:8;;1140:30990:78;;2847:1:13;4631:40:8;4551:57;4578:30;;;;3462:31:13;4578:30:8;;;1140:30990:78;;;;3462:31:13;4578:30:8;1140:30990:78;;;;;;;;;4551:57:8;;;;446:441:89;;;18999:39:52;446:441:89;1140:30990:78;;;18999:39:52;:::i;:::-;1140:30990:78;2953:19:47;;2949:102;;1140:30990:78;857:23:89;1140:30990:78;;857:23:89;;;:::i;2949:102:47:-;2991:53;-1:-1:-1;2991:53:47;;1140:30990:78;;-1:-1:-1;2991:53:47;19680:819:22;;;;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;;;1140:30990:78;20078:31:22;;1140:30990:78;1605:4:22;1140:30990:78;1605:4:22;1140:30990:78;20078:31:22;19950:86;-1:-1:-1;;1605:4:22;1140:30990:78;;;-1:-1:-1;20000:19:22:o;4625:582:13:-;;4797:8;;-1:-1:-1;1140:30990:78;;5874:21:13;:17;;6046:142;;;;;;5870:383;6225:17;5894:1;6225:17;;5894:1;6225:17;4793:408;1140:30990:78;;5045:22:13;:49;;;4793:408;5041:119;;5173:17;;:::o;5041:119::-;-1:-1:-1;;;;;5121:24:13;;5066:1;5121:24;1140:30990:78;5121:24:13;1140:30990:78;;5066:1:13;5121:24;5045:49;5071:18;;;:23;5045:49;","linkReferences":{},"immutableReferences":{"59841":[{"start":12713,"length":32}]}},"methodIdentifiers":{"MAX_FEE()":"bc063e1a","adjustRatePerSecond(uint256,uint128)":"a8a482a6","admin()":"f851a440","aggregateBalance(address)":"5f553152","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","batch(bytes[])":"1e897afb","collectProtocolRevenue(address,address)":"ffe3d9f8","coveredDebtOf(uint256)":"42e3e23d","create(address,address,uint128,address,bool)":"597150fa","createAndDeposit(address,address,uint128,address,bool,uint128)":"fbf2777e","depletionTimeOf(uint256)":"d4b80884","deposit(uint256,uint128,address,address)":"b61f7583","depositAndPause(uint256,uint128)":"bcbd019e","depositViaBroker(uint256,uint128,address,address,(address,uint256))":"c2f8e750","getApproved(uint256)":"081812fc","getBalance(uint256)":"1e010439","getRatePerSecond(uint256)":"80448da3","getRecipient(uint256)":"6d0cee75","getSender(uint256)":"b971302a","getSnapshotDebtScaled(uint256)":"450ac908","getSnapshotTime(uint256)":"eb5710d8","getStream(uint256)":"894e9a0d","getToken(uint256)":"e4b50cb8","getTokenDecimals(uint256)":"a7de07cd","isApprovedForAll(address,address)":"e985e9c5","isPaused(uint256)":"bdf2a43c","isStream(uint256)":"b8a3be66","isTransferable(uint256)":"b2564569","isVoided(uint256)":"569f4c59","name()":"06fdde03","nextStreamId()":"1e99d569","nftDescriptor()":"44267570","ongoingDebtScaledOf(uint256)":"7ddf9228","ownerOf(uint256)":"6352211e","pause(uint256)":"136439dd","protocolFee(address)":"b62b31e4","protocolRevenue(address)":"0c5fd195","recover(address,address)":"648bf774","refund(uint256,uint128)":"81632a86","refundAndPause(uint256,uint128)":"379d871a","refundMax(uint256)":"0c699624","refundableAmountOf(uint256)":"1400ecec","restart(uint256,uint128)":"ebb6f79a","restartAndDeposit(uint256,uint128,uint128)":"1f0cce58","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","setNFTDescriptor(address)":"7cad6cd1","setProtocolFee(address,uint256)":"b5b3ca2c","statusOf(uint256)":"ad35efd4","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","totalDebtOf(uint256)":"08b87923","transferAdmin(address)":"75829def","transferFrom(address,address,uint256)":"23b872dd","uncoveredDebtOf(uint256)":"bc7a2d6c","void(uint256)":"5ea2145b","withdraw(uint256,address,uint128)":"fdd46d60","withdrawMax(uint256,address)":"ea5ead19","withdrawableAmountOf(uint256)":"d975dfed"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialAdmin\",\"type\":\"address\"},{\"internalType\":\"contract IFlowNFTDescriptor\",\"name\":\"initialNFTDescriptor\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"errorData\",\"type\":\"bytes\"}],\"name\":\"BatchError\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"CallerNotAdmin\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelegateCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"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\":\"token\",\"type\":\"address\"}],\"name\":\"SablierFlowBase_NoProtocolRevenue\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"SablierFlowBase_NotTransferable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"UD60x18\",\"name\":\"newProtocolFee\",\"type\":\"uint256\"},{\"internalType\":\"UD60x18\",\"name\":\"maxFee\",\"type\":\"uint256\"}],\"name\":\"SablierFlowBase_ProtocolFeeTooHigh\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SablierFlowBase_SurplusZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SablierFlow_BrokerAddressZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"UD60x18\",\"name\":\"brokerFee\",\"type\":\"uint256\"},{\"internalType\":\"UD60x18\",\"name\":\"maxFee\",\"type\":\"uint256\"}],\"name\":\"SablierFlow_BrokerFeeTooHigh\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"SablierFlow_DepositAmountZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"availableAmount\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"}],\"name\":\"SablierFlow_InvalidCalculation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SablierFlow_InvalidTokenDecimals\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"streamRecipient\",\"type\":\"address\"}],\"name\":\"SablierFlow_NotStreamRecipient\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"streamSender\",\"type\":\"address\"}],\"name\":\"SablierFlow_NotStreamSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"SablierFlow_Null\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"withdrawableAmount\",\"type\":\"uint128\"}],\"name\":\"SablierFlow_Overdraw\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"internalType\":\"UD21x18\",\"name\":\"ratePerSecond\",\"type\":\"uint128\"}],\"name\":\"SablierFlow_RatePerSecondNotDifferent\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"SablierFlow_RefundAmountZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"refundAmount\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"refundableAmount\",\"type\":\"uint128\"}],\"name\":\"SablierFlow_RefundOverflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SablierFlow_SenderZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"SablierFlow_StreamBalanceZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"SablierFlow_StreamNotPaused\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"SablierFlow_StreamPaused\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"SablierFlow_StreamVoided\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"SablierFlow_Unauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"SablierFlow_WithdrawAmountZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"SablierFlow_WithdrawToZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"SablierFlow_WithdrawalAddressNotRecipient\",\"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\":true,\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalDebt\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"UD21x18\",\"name\":\"oldRatePerSecond\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"UD21x18\",\"name\":\"newRatePerSecond\",\"type\":\"uint128\"}],\"name\":\"AdjustFlowStream\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_fromTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_toTokenId\",\"type\":\"uint256\"}],\"name\":\"BatchMetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"revenue\",\"type\":\"uint128\"}],\"name\":\"CollectProtocolRevenue\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"UD21x18\",\"name\":\"ratePerSecond\",\"type\":\"uint128\"},{\"indexed\":true,\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"transferable\",\"type\":\"bool\"}],\"name\":\"CreateFlowStream\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"funder\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"}],\"name\":\"DepositFlowStream\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"MetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalDebt\",\"type\":\"uint256\"}],\"name\":\"PauseFlowStream\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"surplus\",\"type\":\"uint256\"}],\"name\":\"Recover\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"}],\"name\":\"RefundFromFlowStream\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"UD21x18\",\"name\":\"ratePerSecond\",\"type\":\"uint128\"}],\"name\":\"RestartFlowStream\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contract IFlowNFTDescriptor\",\"name\":\"oldNFTDescriptor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contract IFlowNFTDescriptor\",\"name\":\"newNFTDescriptor\",\"type\":\"address\"}],\"name\":\"SetNFTDescriptor\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"UD60x18\",\"name\":\"oldProtocolFee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"UD60x18\",\"name\":\"newProtocolFee\",\"type\":\"uint256\"}],\"name\":\"SetProtocolFee\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newTotalDebt\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"writtenOffDebt\",\"type\":\"uint256\"}],\"name\":\"VoidFlowStream\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"withdrawAmount\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"protocolFeeAmount\",\"type\":\"uint128\"}],\"name\":\"WithdrawFromFlowStream\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MAX_FEE\",\"outputs\":[{\"internalType\":\"UD60x18\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"internalType\":\"UD21x18\",\"name\":\"newRatePerSecond\",\"type\":\"uint128\"}],\"name\":\"adjustRatePerSecond\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"aggregateBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"calls\",\"type\":\"bytes[]\"}],\"name\":\"batch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"collectProtocolRevenue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"coveredDebtOf\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"coveredDebt\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"UD21x18\",\"name\":\"ratePerSecond\",\"type\":\"uint128\"},{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"transferable\",\"type\":\"bool\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"UD21x18\",\"name\":\"ratePerSecond\",\"type\":\"uint128\"},{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"transferable\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"}],\"name\":\"createAndDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"depletionTimeOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"depletionTime\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"}],\"name\":\"depositAndPause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"totalAmount\",\"type\":\"uint128\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"UD60x18\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct Broker\",\"name\":\"broker\",\"type\":\"tuple\"}],\"name\":\"depositViaBroker\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"balance\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"getRatePerSecond\",\"outputs\":[{\"internalType\":\"UD21x18\",\"name\":\"ratePerSecond\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"getRecipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"getSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"getSnapshotDebtScaled\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"snapshotDebtScaled\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"getSnapshotTime\",\"outputs\":[{\"internalType\":\"uint40\",\"name\":\"snapshotTime\",\"type\":\"uint40\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"getStream\",\"outputs\":[{\"components\":[{\"internalType\":\"uint128\",\"name\":\"balance\",\"type\":\"uint128\"},{\"internalType\":\"UD21x18\",\"name\":\"ratePerSecond\",\"type\":\"uint128\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"snapshotTime\",\"type\":\"uint40\"},{\"internalType\":\"bool\",\"name\":\"isStream\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isTransferable\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isVoided\",\"type\":\"bool\"},{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"tokenDecimals\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"snapshotDebtScaled\",\"type\":\"uint256\"}],\"internalType\":\"struct Flow.Stream\",\"name\":\"stream\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"getToken\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"getTokenDecimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"tokenDecimals\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"isPaused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"isStream\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"isTransferable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"isVoided\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextStreamId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nftDescriptor\",\"outputs\":[{\"internalType\":\"contract IFlowNFTDescriptor\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"ongoingDebtScaledOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"ongoingDebtScaled\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"protocolFee\",\"outputs\":[{\"internalType\":\"UD60x18\",\"name\":\"fee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"protocolRevenue\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"revenue\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"recover\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"}],\"name\":\"refund\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"}],\"name\":\"refundAndPause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"refundMax\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"refundableAmountOf\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"refundableAmount\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"internalType\":\"UD21x18\",\"name\":\"ratePerSecond\",\"type\":\"uint128\"}],\"name\":\"restart\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"internalType\":\"UD21x18\",\"name\":\"ratePerSecond\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"}],\"name\":\"restartAndDeposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IFlowNFTDescriptor\",\"name\":\"newNFTDescriptor\",\"type\":\"address\"}],\"name\":\"setNFTDescriptor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"UD60x18\",\"name\":\"newProtocolFee\",\"type\":\"uint256\"}],\"name\":\"setProtocolFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"statusOf\",\"outputs\":[{\"internalType\":\"enum Flow.Status\",\"name\":\"status\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"totalDebtOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalDebt\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"transferAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"uncoveredDebtOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"uncoveredDebt\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"void\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"withdrawnAmount\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"protocolFeeAmount\",\"type\":\"uint128\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"withdrawMax\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"withdrawnAmount\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"protocolFeeAmount\",\"type\":\"uint128\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"withdrawableAmountOf\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"withdrawableAmount\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"events\":{\"AdjustFlowStream(uint256,uint256,uint128,uint128)\":{\"params\":{\"newRatePerSecond\":\"The new rate per second, denoted as a fixed-point number where 1e18 is 1 token per second.\",\"oldRatePerSecond\":\"The old rate per second, denoted as a fixed-point number where 1e18 is 1 token per second.\",\"streamId\":\"The ID of the stream.\",\"totalDebt\":\"The total debt at the time of the update, denoted in token's decimals.\"}},\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"BatchMetadataUpdate(uint256,uint256)\":{\"details\":\"This event emits when the metadata of a range of tokens is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFTs.\"},\"CollectProtocolRevenue(address,address,address,uint128)\":{\"params\":{\"admin\":\"The address of the contract admin.\",\"revenue\":\"The amount of protocol revenue collected.\",\"to\":\"The address the protocol revenue has been sent to.\",\"token\":\"The address of the ERC-20 token the protocol revenue has been collected for.\"}},\"CreateFlowStream(uint256,address,address,uint128,address,bool)\":{\"params\":{\"ratePerSecond\":\"The amount by which the debt is increasing every second, denoted as a fixed-point number where 1e18 is 1 token per second.\",\"recipient\":\"The address receiving the tokens, as well as the NFT owner.\",\"sender\":\"The address streaming the tokens, which is able to adjust and pause the stream.\",\"streamId\":\"The ID of the newly created stream.\",\"token\":\"The contract address of the ERC-20 token to be streamed.\",\"transferable\":\"Boolean indicating whether the stream NFT is transferable or not.\"}},\"DepositFlowStream(uint256,address,uint128)\":{\"params\":{\"amount\":\"The amount of tokens deposited into the stream, denoted in token's decimals.\",\"funder\":\"The address that made the deposit.\",\"streamId\":\"The ID of the stream.\"}},\"MetadataUpdate(uint256)\":{\"details\":\"This event emits when the metadata of a token is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFT.\"},\"PauseFlowStream(uint256,address,address,uint256)\":{\"params\":{\"recipient\":\"The stream's recipient address.\",\"sender\":\"The stream's sender address.\",\"streamId\":\"The ID of the stream.\",\"totalDebt\":\"The amount of tokens owed by the sender to the recipient, denoted in token's decimals.\"}},\"Recover(address,address,address,uint256)\":{\"params\":{\"admin\":\"The address of the contract admin.\",\"surplus\":\"The amount of surplus tokens recovered.\",\"to\":\"The address the surplus amount has been sent to.\",\"token\":\"The address of the ERC-20 token the surplus amount has been recovered for.\"}},\"RefundFromFlowStream(uint256,address,uint128)\":{\"params\":{\"amount\":\"The amount of tokens refunded to the sender, denoted in token's decimals.\",\"sender\":\"The stream's sender address.\",\"streamId\":\"The ID of the stream.\"}},\"RestartFlowStream(uint256,address,uint128)\":{\"params\":{\"ratePerSecond\":\"The amount by which the debt is increasing every second, denoted as a fixed-point number where 1e18 is 1 token per second.\",\"sender\":\"The stream's sender address.\",\"streamId\":\"The ID of the stream.\"}},\"SetNFTDescriptor(address,address,address)\":{\"params\":{\"admin\":\"The address of the contract admin.\",\"newNFTDescriptor\":\"The address of the new NFT descriptor contract.\",\"oldNFTDescriptor\":\"The address of the old NFT descriptor contract.\"}},\"SetProtocolFee(address,address,uint256,uint256)\":{\"params\":{\"admin\":\"The address of the contract admin.\",\"newProtocolFee\":\"The new protocol fee, denoted as a fixed-point percentage.\",\"oldProtocolFee\":\"The old protocol fee, denoted as a fixed-point percentage.\",\"token\":\"The address of the ERC-20 token the new protocol fee has been set for.\"}},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"},\"TransferAdmin(address,address)\":{\"params\":{\"newAdmin\":\"The address of the new admin.\",\"oldAdmin\":\"The address of the old admin.\"}},\"VoidFlowStream(uint256,address,address,address,uint256,uint256)\":{\"params\":{\"caller\":\"The address that performed the void, which can be the sender, recipient or an approved operator.\",\"newTotalDebt\":\"The new total debt, denoted in token's decimals.\",\"recipient\":\"The stream's recipient address.\",\"sender\":\"The stream's sender address.\",\"streamId\":\"The ID of the stream.\",\"writtenOffDebt\":\"The amount of debt written off by the caller, denoted in token's decimals.\"}},\"WithdrawFromFlowStream(uint256,address,address,address,uint128,uint128)\":{\"params\":{\"caller\":\"The address that performed the withdrawal, which can be the recipient or an approved operator.\",\"protocolFeeAmount\":\"The amount of protocol fee deducted from the withdrawn amount, denoted in token's decimals.\",\"streamId\":\"The ID of the stream.\",\"to\":\"The address that received the withdrawn tokens.\",\"token\":\"The contract address of the ERC-20 token that was withdrawn.\",\"withdrawAmount\":\"The amount withdrawn to the recipient after subtracting the protocol fee, denoted in token's decimals.\"}}},\"kind\":\"dev\",\"methods\":{\"adjustRatePerSecond(uint256,uint128)\":{\"details\":\"Emits {AdjustFlowStream} and {MetadataUpdate} events. Notes: - It updates snapshot debt and snapshot time. Requirements: - Must not be delegate called. - `streamId` must not reference a null or a paused stream. - `msg.sender` must be the stream's sender. - `newRatePerSecond` must not equal to the current rate per second.\",\"params\":{\"newRatePerSecond\":\"The new rate per second, denoted as a fixed-point number where 1e18 is 1 token per second.\",\"streamId\":\"The ID of the stream to adjust.\"}},\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"batch(bytes[])\":{\"params\":{\"calls\":\"An array of inputs for each call.\"}},\"collectProtocolRevenue(address,address)\":{\"details\":\"Emits {CollectProtocolRevenue} event. Requirements: - `msg.sender` must be the contract admin. - The accrued protocol revenue must be greater than zero.\",\"params\":{\"to\":\"The address to send the protocol revenue.\",\"token\":\"The contract address of the ERC-20 token for which to claim protocol revenue.\"}},\"constructor\":{\"details\":\"Emits {TransferAdmin} event.\",\"params\":{\"initialAdmin\":\"The address of the initial contract admin.\",\"initialNFTDescriptor\":\"The address of the initial NFT descriptor.\"}},\"coveredDebtOf(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The stream ID for the query.\"}},\"create(address,address,uint128,address,bool)\":{\"details\":\"Emits {CreateFlowStream} event. Requirements: - Must not be delegate called. - `sender` must not be the zero address. - `recipient` must not be the zero address. - The `token`'s decimals must be less than or equal to 18.\",\"params\":{\"ratePerSecond\":\"The amount by which the debt is increasing every second, denoted as a fixed-point number where 1e18 is 1 token per second.\",\"recipient\":\"The address receiving the tokens.\",\"sender\":\"The address streaming the tokens, which is able to adjust and pause the stream. It doesn't have to be the same as `msg.sender`.\",\"token\":\"The contract address of the ERC-20 token to be streamed.\",\"transferable\":\"Boolean indicating if the stream NFT is transferable.\"},\"returns\":{\"streamId\":\"The ID of the newly created stream.\"}},\"createAndDeposit(address,address,uint128,address,bool,uint128)\":{\"details\":\"Emits {Transfer}, {CreateFlowStream}, and {DepositFlowStream} events. Notes: - Refer to the notes in {deposit}. Requirements: - Refer to the requirements in {create} and {deposit}.\",\"params\":{\"amount\":\"The deposit amount, denoted in token's decimals.\",\"ratePerSecond\":\"The amount by which the debt is increasing every second, denoted as a fixed-point number where 1e18 is 1 token per second.\",\"recipient\":\"The address receiving the tokens.\",\"sender\":\"The address streaming the tokens. It doesn't have to be the same as `msg.sender`.\",\"token\":\"The contract address of the ERC-20 token to be streamed.\",\"transferable\":\"Boolean indicating if the stream NFT is transferable.\"},\"returns\":{\"streamId\":\"The ID of the newly created stream.\"}},\"depletionTimeOf(uint256)\":{\"details\":\"Reverts on the following conditions: - If `streamId` references a paused or a null stream. - If stream balance is zero.\",\"params\":{\"streamId\":\"The stream ID for the query.\"}},\"deposit(uint256,uint128,address,address)\":{\"details\":\"Emits {Transfer} and {DepositFlowStream} events. Requirements: - Must not be delegate called. - `streamId` must not reference a null or a voided stream. - `amount` must be greater than zero. - `sender` and `recipient` must match the stream's sender and recipient addresses.\",\"params\":{\"amount\":\"The deposit amount, denoted in token's decimals.\",\"recipient\":\"The stream's recipient address.\",\"sender\":\"The stream's sender address.\",\"streamId\":\"The ID of the stream to deposit to.\"}},\"depositAndPause(uint256,uint128)\":{\"details\":\"Emits {Transfer}, {DepositFlowStream} and {PauseFlowStream} events. Notes: - Refer to the notes in {deposit} and {pause}. Requirements: - Refer to the requirements in {deposit} and {pause}.\",\"params\":{\"amount\":\"The deposit amount, denoted in token's decimals.\",\"streamId\":\"The ID of the stream to deposit to, and then pause.\"}},\"depositViaBroker(uint256,uint128,address,address,(address,uint256))\":{\"details\":\"Emits {Transfer} and {DepositFlowStream} events. Notes: - Refer to the notes in {deposit}. Requirements: - Must not be delegate called. - `streamId` must not reference a null stream. - `totalAmount` must be greater than zero. Otherwise it will revert inside {deposit}. - `broker.account` must not be 0 address. - `broker.fee` must not be greater than `MAX_FEE`. It can be zero.\",\"params\":{\"broker\":\"Struct encapsulating (i) the address of the broker assisting in creating the stream, and (ii) the percentage fee paid to the broker from `totalAmount`, denoted as a fixed-point percentage.\",\"recipient\":\"The stream's recipient address.\",\"sender\":\"The stream's sender address.\",\"streamId\":\"The ID of the stream to deposit on.\",\"totalAmount\":\"The total amount, including the deposit and any broker fee, denoted in token's decimals.\"}},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"getBalance(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The stream ID for the query.\"}},\"getRatePerSecond(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The ID of the stream to make the query for.\"}},\"getRecipient(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The stream ID for the query.\"}},\"getSender(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The stream ID for the query.\"}},\"getSnapshotDebtScaled(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The stream ID for the query.\"}},\"getSnapshotTime(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The ID of the stream to make the query for.\"}},\"getStream(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The stream ID for the query.\"}},\"getToken(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The ID of the stream to make the query for.\"}},\"getTokenDecimals(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The ID of the stream to make the query for.\"}},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"isPaused(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The stream ID for the query.\"}},\"isStream(uint256)\":{\"details\":\"Does not revert if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The stream ID for the query.\"}},\"isTransferable(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The stream ID for the query.\"}},\"isVoided(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The stream ID for the query.\"}},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ongoingDebtScaledOf(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The stream ID for the query.\"}},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"pause(uint256)\":{\"details\":\"Emits {PauseFlowStream} event. Notes: - It updates snapshot debt and snapshot time. - It sets the rate per second to zero. Requirements: - Must not be delegate called. - `streamId` must not reference a null or an already paused stream. - `msg.sender` must be the stream's sender.\",\"params\":{\"streamId\":\"The ID of the stream to pause.\"}},\"recover(address,address)\":{\"details\":\"Emits {Recover} event. Notes: - The surplus amount is defined as the difference between the total balance of the contract for the provided ERC-20 token and the sum of balances of all streams created using the same ERC-20 token. Requirements: - `msg.sender` must be the contract admin. - The surplus amount must be greater than zero.\",\"params\":{\"to\":\"The address to send the surplus amount.\",\"token\":\"The contract address of the ERC-20 token to recover for.\"}},\"refund(uint256,uint128)\":{\"details\":\"Emits {Transfer} and {RefundFromFlowStream} events. Requirements: - Must not be delegate called. - `streamId` must not reference a null stream. - `msg.sender` must be the sender. - `amount` must be greater than zero and must not exceed the refundable amount.\",\"params\":{\"amount\":\"The amount to refund, denoted in token's decimals.\",\"streamId\":\"The ID of the stream to refund from.\"}},\"refundAndPause(uint256,uint128)\":{\"details\":\"Emits {Transfer}, {RefundFromFlowStream} and {PauseFlowStream} events. Notes: - Refer to the notes in {pause}. Requirements: - Refer to the requirements in {refund} and {pause}.\",\"params\":{\"amount\":\"The amount to refund, denoted in token's decimals.\",\"streamId\":\"The ID of the stream to refund from and then pause.\"}},\"refundMax(uint256)\":{\"details\":\"Emits {Transfer} and {RefundFromFlowStream} events. Requirements: - Refer to the requirements in {refund}.\",\"params\":{\"streamId\":\"The ID of the stream to refund from.\"}},\"refundableAmountOf(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The stream ID for the query.\"}},\"restart(uint256,uint128)\":{\"details\":\"Emits {RestartFlowStream} event. Notes: - It updates snapshot debt and snapshot time. Requirements: - Must not be delegate called. - `streamId` must not reference a null, or a voided stream. - `msg.sender` must be the stream's sender. - `ratePerSecond` must be greater than zero.\",\"params\":{\"ratePerSecond\":\"The amount by which the debt is increasing every second, denoted as a fixed-point number where 1e18 is 1 token per second.\",\"streamId\":\"The ID of the stream to restart.\"}},\"restartAndDeposit(uint256,uint128,uint128)\":{\"details\":\"Emits {RestartFlowStream}, {Transfer}, and {DepositFlowStream} events. Notes: - Refer to the notes in {restart} and {deposit}. Requirements: - `amount` must be greater than zero. - Refer to the requirements in {restart}.\",\"params\":{\"amount\":\"The deposit amount, denoted in token's decimals.\",\"ratePerSecond\":\"The amount by which the debt is increasing every second, denoted as a fixed-point number where 1e18 is 1 token per second.\",\"streamId\":\"The ID of the stream to restart.\"}},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"setNFTDescriptor(address)\":{\"details\":\"Emits {SetNFTDescriptor} and {BatchMetadataUpdate} events. Notes: - Does not revert if the NFT descriptor is the same. Requirements: - `msg.sender` must be the contract admin.\",\"params\":{\"newNFTDescriptor\":\"The address of the new NFT descriptor contract.\"}},\"setProtocolFee(address,uint256)\":{\"details\":\"Emits {SetProtocolFee} and {BatchMetadataUpdate} events. Notes: - Does not revert if the fee is the same. - It can be zero. Requirements: - `msg.sender` must be the contract admin. - `newProtocolFee` must not be greater than `MAX_FEE`.\",\"params\":{\"newProtocolFee\":\"The new protocol fee, denoted as a fixed-point percentage where 1e18 is 100%.\",\"token\":\"The contract address of the ERC-20 token to update the fee for.\"}},\"statusOf(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The stream ID for the query.\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"totalDebtOf(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The stream ID for the query.\"}},\"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.\"}},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"uncoveredDebtOf(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The stream ID for the query.\"}},\"void(uint256)\":{\"details\":\"Emits {VoidFlowStream} event. Notes: - It sets snapshot time to the `block.timestamp` - Voiding an insolvent stream sets the snapshot debt to the stream's balance making the uncovered debt to become zero. - Voiding a solvent stream updates the snapshot debt by adding up ongoing debt. - It sets the rate per second to zero. - A voided stream cannot be restarted. Requirements: - Must not be delegate called. - `streamId` must not reference a null or a voided stream. - `msg.sender` must either be the stream's sender, recipient or an approved third party.\",\"params\":{\"streamId\":\"The ID of the stream to void.\"}},\"withdraw(uint256,address,uint128)\":{\"details\":\"Emits {Transfer} and {WithdrawFromFlowStream} events. Notes: - It sets the snapshot time to the `block.timestamp` if `amount` is greater than snapshot debt. - A protocol fee may be charged on the withdrawn amount if the protocol fee is enabled for the streaming token. Requirements: - Must not be delegate called. - `streamId` must not reference a null stream. - `to` must not be the zero address. - `to` must be the recipient if `msg.sender` is not the stream's recipient. - `amount` must  be greater than zero and must not exceed the withdrawable amount.\",\"params\":{\"amount\":\"The amount to withdraw, denoted in token's decimals.\",\"streamId\":\"The ID of the stream to withdraw from.\",\"to\":\"The address receiving the withdrawn tokens.\"},\"returns\":{\"protocolFeeAmount\":\"The protocol fee amount, denoted in the token's decimals.\",\"withdrawnAmount\":\"The amount withdrawn to the recipient, denoted in token's decimals. This is input amount minus the protocol fee.\"}},\"withdrawMax(uint256,address)\":{\"details\":\"Emits {Transfer} and {WithdrawFromFlowStream} events. Notes: - Refer to the notes in {withdraw}. Requirements: - Refer to the requirements in {withdraw}.\",\"params\":{\"streamId\":\"The ID of the stream to withdraw from.\",\"to\":\"The address receiving the withdrawn tokens.\"},\"returns\":{\"protocolFeeAmount\":\"The protocol fee amount, denoted in the token's decimals.\",\"withdrawnAmount\":\"The amount withdrawn to the recipient, denoted in token's decimals.\"}},\"withdrawableAmountOf(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The stream ID for the query.\"},\"returns\":{\"withdrawableAmount\":\"The amount that the recipient can withdraw.\"}}},\"title\":\"SablierFlow\",\"version\":1},\"userdoc\":{\"errors\":{\"BatchError(bytes)\":[{\"notice\":\"Thrown when an unexpected error occurs during a batch call.\"}],\"CallerNotAdmin(address,address)\":[{\"notice\":\"Thrown when `msg.sender` is not the admin.\"}],\"DelegateCall()\":[{\"notice\":\"Thrown when trying to delegate call to a function that disallows delegate calls.\"}],\"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.\"}],\"SablierFlowBase_NoProtocolRevenue(address)\":[{\"notice\":\"Thrown when trying to claim protocol revenue when the accrued amount is zero.\"}],\"SablierFlowBase_NotTransferable(uint256)\":[{\"notice\":\"Thrown when trying to transfer Stream NFT when transferability is disabled.\"}],\"SablierFlowBase_ProtocolFeeTooHigh(uint256,uint256)\":[{\"notice\":\"Thrown when trying to set protocol fee more than the allowed.\"}],\"SablierFlowBase_SurplusZero(address)\":[{\"notice\":\"Thrown when trying to recover for a token with zero surplus.\"}],\"SablierFlow_BrokerAddressZero()\":[{\"notice\":\"Thrown when trying to create a stream with a broker recipient address as zero.\"}],\"SablierFlow_BrokerFeeTooHigh(uint256,uint256)\":[{\"notice\":\"Thrown when trying to create a stream with a broker fee more than the allowed.\"}],\"SablierFlow_DepositAmountZero(uint256)\":[{\"notice\":\"Thrown when trying to create a stream with a zero deposit amount.\"}],\"SablierFlow_InvalidCalculation(uint256,uint128,uint128)\":[{\"notice\":\"Thrown when an unexpected error occurs during the calculation of an amount.\"}],\"SablierFlow_InvalidTokenDecimals(address)\":[{\"notice\":\"Thrown when trying to create a stream with an token with no decimals.\"}],\"SablierFlow_NotStreamRecipient(address,address)\":[{\"notice\":\"Thrown when the recipient address does not match the stream's recipient.\"}],\"SablierFlow_NotStreamSender(address,address)\":[{\"notice\":\"Thrown when the sender address does not match the stream's sender.\"}],\"SablierFlow_Null(uint256)\":[{\"notice\":\"Thrown when the ID references a null stream.\"}],\"SablierFlow_Overdraw(uint256,uint128,uint128)\":[{\"notice\":\"Thrown when trying to withdraw an amount greater than the withdrawable amount.\"}],\"SablierFlow_RatePerSecondNotDifferent(uint256,uint128)\":[{\"notice\":\"Thrown when trying to change the rate per second with the same rate per second.\"}],\"SablierFlow_RefundAmountZero(uint256)\":[{\"notice\":\"Thrown when trying to refund zero tokens from a stream.\"}],\"SablierFlow_RefundOverflow(uint256,uint128,uint128)\":[{\"notice\":\"Thrown when trying to refund an amount greater than the refundable amount.\"}],\"SablierFlow_SenderZeroAddress()\":[{\"notice\":\"Thrown when trying to create a stream with the sender as the zero address.\"}],\"SablierFlow_StreamBalanceZero(uint256)\":[{\"notice\":\"Thrown when trying to get depletion time of a stream with zero balance.\"}],\"SablierFlow_StreamNotPaused(uint256)\":[{\"notice\":\"Thrown when trying to restart a stream that is not paused.\"}],\"SablierFlow_StreamPaused(uint256)\":[{\"notice\":\"Thrown when trying to perform an action with a paused stream.\"}],\"SablierFlow_StreamVoided(uint256)\":[{\"notice\":\"Thrown when trying to perform an action with a voided stream.\"}],\"SablierFlow_Unauthorized(uint256,address)\":[{\"notice\":\"Thrown when `msg.sender` lacks authorization to perform an action.\"}],\"SablierFlow_WithdrawAmountZero(uint256)\":[{\"notice\":\"Thrown when trying to withdraw zero tokens from a stream.\"}],\"SablierFlow_WithdrawToZeroAddress(uint256)\":[{\"notice\":\"Thrown when trying to withdraw to the zero address.\"}],\"SablierFlow_WithdrawalAddressNotRecipient(uint256,address,address)\":[{\"notice\":\"Thrown when trying to withdraw to an address other than the recipient's.\"}]},\"events\":{\"AdjustFlowStream(uint256,uint256,uint128,uint128)\":{\"notice\":\"Emitted when the rate per second is updated by the sender.\"},\"CollectProtocolRevenue(address,address,address,uint128)\":{\"notice\":\"Emitted when the contract admin collects protocol revenue accrued.\"},\"CreateFlowStream(uint256,address,address,uint128,address,bool)\":{\"notice\":\"Emitted when a Flow stream is created.\"},\"DepositFlowStream(uint256,address,uint128)\":{\"notice\":\"Emitted when a stream is funded.\"},\"PauseFlowStream(uint256,address,address,uint256)\":{\"notice\":\"Emitted when a stream is paused by the sender.\"},\"Recover(address,address,address,uint256)\":{\"notice\":\"Emitted when the contract admin recovers the surplus amount of token.\"},\"RefundFromFlowStream(uint256,address,uint128)\":{\"notice\":\"Emitted when a sender is refunded from a stream.\"},\"RestartFlowStream(uint256,address,uint128)\":{\"notice\":\"Emitted when a stream is restarted by the sender.\"},\"SetNFTDescriptor(address,address,address)\":{\"notice\":\"Emitted when the contract admin sets a new NFT descriptor contract.\"},\"SetProtocolFee(address,address,uint256,uint256)\":{\"notice\":\"Emitted when the contract admin sets a new protocol fee for the provided ERC-20 token.\"},\"TransferAdmin(address,address)\":{\"notice\":\"Emitted when the admin is transferred.\"},\"VoidFlowStream(uint256,address,address,address,uint256,uint256)\":{\"notice\":\"Emitted when a stream is voided by the sender, recipient or an approved operator.\"},\"WithdrawFromFlowStream(uint256,address,address,address,uint128,uint128)\":{\"notice\":\"Emitted when tokens are withdrawn from a stream by a recipient or an approved operator.\"}},\"kind\":\"user\",\"methods\":{\"MAX_FEE()\":{\"notice\":\"Retrieves the maximum fee that can be charged by the broker and the protocol, denoted as a fixed-point percentage where 1e18 is 100%.\"},\"adjustRatePerSecond(uint256,uint128)\":{\"notice\":\"Changes the stream's rate per second.\"},\"admin()\":{\"notice\":\"The address of the admin account or contract.\"},\"aggregateBalance(address)\":{\"notice\":\"Retrieves the sum of balances of all streams.\"},\"batch(bytes[])\":{\"notice\":\"Allows batched call to self, `this` contract.\"},\"collectProtocolRevenue(address,address)\":{\"notice\":\"Collect the protocol revenue accrued for the provided ERC-20 token.\"},\"coveredDebtOf(uint256)\":{\"notice\":\"Returns the amount of debt covered by the stream balance, denoted in token's decimals.\"},\"create(address,address,uint128,address,bool)\":{\"notice\":\"Creates a new Flow stream by setting the snapshot time to `block.timestamp` and leaving the balance to zero. The stream is wrapped in an ERC-721 NFT.\"},\"createAndDeposit(address,address,uint128,address,bool,uint128)\":{\"notice\":\"Creates a new Flow stream by setting the snapshot time to `block.timestamp` and the balance to `amount`. The stream is wrapped in an ERC-721 NFT.\"},\"depletionTimeOf(uint256)\":{\"notice\":\"Returns the time at which the total debt exceeds stream balance. If the total debt is less than or equal to stream balance, it returns 0.\"},\"deposit(uint256,uint128,address,address)\":{\"notice\":\"Makes a deposit in a stream.\"},\"depositAndPause(uint256,uint128)\":{\"notice\":\"Deposits tokens in a stream and pauses it.\"},\"depositViaBroker(uint256,uint128,address,address,(address,uint256))\":{\"notice\":\"Deposits tokens in a stream.\"},\"getBalance(uint256)\":{\"notice\":\"Retrieves the balance of the stream, i.e. the total deposited amounts subtracted by the total withdrawn amounts, denoted in token's decimals.\"},\"getRatePerSecond(uint256)\":{\"notice\":\"Retrieves the rate per second of the stream, denoted as a fixed-point number where 1e18 is 1 token per second.\"},\"getRecipient(uint256)\":{\"notice\":\"Retrieves the stream's recipient.\"},\"getSender(uint256)\":{\"notice\":\"Retrieves the stream's sender.\"},\"getSnapshotDebtScaled(uint256)\":{\"notice\":\"Retrieves the snapshot debt of the stream, denoted as a fixed-point number where 1e18 is 1 token.\"},\"getSnapshotTime(uint256)\":{\"notice\":\"Retrieves the snapshot time of the stream, which is a Unix timestamp.\"},\"getStream(uint256)\":{\"notice\":\"Retrieves the stream entity.\"},\"getToken(uint256)\":{\"notice\":\"Retrieves the token of the stream.\"},\"getTokenDecimals(uint256)\":{\"notice\":\"Retrieves the token decimals of the stream.\"},\"isPaused(uint256)\":{\"notice\":\"Returns whether a stream is paused.\"},\"isStream(uint256)\":{\"notice\":\"Retrieves a flag indicating whether the stream exists.\"},\"isTransferable(uint256)\":{\"notice\":\"Retrieves a flag indicating whether the stream NFT is transferable.\"},\"isVoided(uint256)\":{\"notice\":\"Retrieves a flag indicating whether the stream is voided.\"},\"nextStreamId()\":{\"notice\":\"Counter for stream ids.\"},\"nftDescriptor()\":{\"notice\":\"Contract that generates the non-fungible token URI.\"},\"ongoingDebtScaledOf(uint256)\":{\"notice\":\"Returns the amount of debt accrued since the snapshot time until now, denoted as a fixed-point number where 1e18 is 1 token.\"},\"pause(uint256)\":{\"notice\":\"Pauses the stream.\"},\"protocolFee(address)\":{\"notice\":\"Protocol fee for the provided ERC-20 token, denoted as a fixed-point percentage where 1e18 is 100%.\"},\"protocolRevenue(address)\":{\"notice\":\"Protocol revenue accrued for the provided ERC-20 token, denoted in token's decimals.\"},\"recover(address,address)\":{\"notice\":\"Recover the surplus amount of tokens.\"},\"refund(uint256,uint128)\":{\"notice\":\"Refunds the provided amount of tokens from the stream to the sender's address.\"},\"refundAndPause(uint256,uint128)\":{\"notice\":\"Refunds the provided amount of tokens from the stream to the sender's address.\"},\"refundMax(uint256)\":{\"notice\":\"Refunds the entire refundable amount of tokens from the stream to the sender's address.\"},\"refundableAmountOf(uint256)\":{\"notice\":\"Returns the amount that the sender can be refunded from the stream, denoted in token's decimals.\"},\"restart(uint256,uint128)\":{\"notice\":\"Restarts the stream with the provided rate per second.\"},\"restartAndDeposit(uint256,uint128,uint128)\":{\"notice\":\"Restarts the stream with the provided rate per second, and makes a deposit.\"},\"setNFTDescriptor(address)\":{\"notice\":\"Sets a new NFT descriptor contract, which produces the URI describing the Sablier stream NFTs.\"},\"setProtocolFee(address,uint256)\":{\"notice\":\"Sets a new protocol fee that will be charged on all the withdrawals from streams created with the provided ERC-20 token.\"},\"statusOf(uint256)\":{\"notice\":\"Returns the stream's status.\"},\"totalDebtOf(uint256)\":{\"notice\":\"Returns the total amount owed by the sender to the recipient, denoted in token's decimals.\"},\"transferAdmin(address)\":{\"notice\":\"Transfers the contract admin to a new address.\"},\"uncoveredDebtOf(uint256)\":{\"notice\":\"Returns the amount of debt not covered by the stream balance, denoted in token's decimals.\"},\"void(uint256)\":{\"notice\":\"Voids a stream.\"},\"withdraw(uint256,address,uint128)\":{\"notice\":\"Withdraws the provided `amount` minus the protocol fee to the provided `to` address.\"},\"withdrawMax(uint256,address)\":{\"notice\":\"Withdraws the entire withdrawable amount minus the protocol fee to the provided `to` address.\"},\"withdrawableAmountOf(uint256)\":{\"notice\":\"Calculates the amount that the recipient can withdraw from the stream, denoted in token decimals. This is an alias for `coveredDebtOf`.\"}},\"notice\":\"See the documentation in {ISablierFlow}.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/SablierFlow.sol\":\"SablierFlow\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[\":@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/\",\":@prb/math/=node_modules/@prb/math/\",\":forge-std/=node_modules/forge-std/\",\":solady/=node_modules/solady/\"],\"viaIR\":true},\"sources\":{\"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC4906.sol\":{\"keccak256\":\"0xb31b86c03f4677dcffa4655285d62433509513be9bafa0e04984565052d34e44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a89c6fb0cd5fef4244500b633f63def9f2bb2134debb961e590bd5a2910662fd\",\"dweb:/ipfs/QmNqWyCxyopvb99RbRomPpfTZGXRi5MnzgpFXE2BFLLgMc\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xc4d7ebf63eb2f6bf3fee1b6c0ee775efa9f31b4843a5511d07eea147e212932d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01c66a2fad66bc710db7510419a7eee569b40b67cd9f01b70a3fc90d6f76c03b\",\"dweb:/ipfs/QmT1CjJZq4eTNA4nu8E9ZrWfaZu6ReUsDbjcK8DbEFqwx5\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850\",\"dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd\",\"dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"node_modules/@prb/math/src/Common.sol\":{\"keccak256\":\"0x8225a3898d2f11f585da1fb82234800e9717fa080dbe53d450fd429a3a632e99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2dcbf39ca575f68f32f0d1c66391de94082424956e7585e849813966f8c0fc05\",\"dweb:/ipfs/QmYvk8vXFDUJHrmqbtutYXfoLomLBosYLyBzuPoYBxsQ42\"]},\"node_modules/@prb/math/src/UD21x18.sol\":{\"keccak256\":\"0xb0176747ae9c9f329bce39730d4d315b839e73a815494ddf2de2094aa9056957\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://534a82fe091627f9d01e665ac763daf56981b30b3976269f8e5c33a84a2dbebc\",\"dweb:/ipfs/QmYiiGJNr4S4ypYB4KGBPMTMiNskert8Cp4s6uf1CU3k73\"]},\"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\"]},\"src/SablierFlow.sol\":{\"keccak256\":\"0xcfb532d081b7c7baa1a5d0fa06c8f226153f77dcf5e41c2b0ca726784170b0bf\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://609ebb7da755f1e9878b84f61aa91a03ee91eadaeca651987bb6b96d80648cd2\",\"dweb:/ipfs/QmfWgUKA9DA2HAWAoHmwbgagsogsstqSJapPh9BcJoHYHa\"]},\"src/abstracts/Adminable.sol\":{\"keccak256\":\"0xdbcb26718ab7e57e1df94fd9ecd7de1345b839e6fb4925dc1a1182da770651b6\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://02d559eaa018921cb60d10eb015d1d12e5a3ebe35c68afbbb8fb58370238dd37\",\"dweb:/ipfs/QmTKaj3GqGssMXiNjno8NvzkKrCLHwx3dsDdsoFajCDf5c\"]},\"src/abstracts/Batch.sol\":{\"keccak256\":\"0x2d1c3182274b22d7c1b21d2d7467e263298e901f36585cca21c5ae5b3f23eba1\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://896d6604aeef8b03abefb76f4a671d852b0d699df6e9a9ff8ae4aa44cfc24659\",\"dweb:/ipfs/QmSeBbBg5YMwTYokF8Met3mr9G7YJA1At9qz8doCW8GUGZ\"]},\"src/abstracts/NoDelegateCall.sol\":{\"keccak256\":\"0x6c9e22ca1303c5953ee5574c1605515bab67dc71e9325605087557c7faf71059\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://8f3de9954d1dfb54e6be6a082c2732b3bd5f4b88549e2d1b29ed5527fef13fc0\",\"dweb:/ipfs/QmfRzCfJRr2StpLTG93Qp6rvfMWfbRRoo7DKoy6yPDizwP\"]},\"src/abstracts/SablierFlowBase.sol\":{\"keccak256\":\"0x510931befe26302fb615f8f49882cd3de6400da09a2f1f62f17f65bed42d297e\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://a97412c5bbc8f3b96bfb783961286cb90c426f353f1cd81cdf7adf6802be150e\",\"dweb:/ipfs/Qmbizri4JGthZhqTiUyEoTqjyhAvS5S8rcv6ihJ8Pbxa9i\"]},\"src/interfaces/IAdminable.sol\":{\"keccak256\":\"0xa279c49e51228b571329164e36250e82b2c1378e8b549194ab7dd90fca9c3b2b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b0af605b82e64679db7039fb378fc206c4a000f8cd24b3ff17b019e27b81be8f\",\"dweb:/ipfs/QmUSr73cbnG7K79mVE9Nwcou5nJZEK2ZGekt3KpkfpxL4Z\"]},\"src/interfaces/IBatch.sol\":{\"keccak256\":\"0x4f72a27c49d12079550271ab90ba3df4b9a5f5b420f1fbe3004a22ba7e585d0b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d54b4ed31f6af3ce8ec5b14fe76c76f2bc5864dbad0eeda2ac0f3069a59e5b44\",\"dweb:/ipfs/QmYfib2HbKpE2m9ycq4UySUNszzsBroJrEEDQKuwoNwM42\"]},\"src/interfaces/IFlowNFTDescriptor.sol\":{\"keccak256\":\"0xdf964042ae7c74f03909d020fbb63e0ae56aeb2fa47213e3775a1e3263d00e54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://0d4ede276be940185ea0b638c8f38f68232b6f4394ce0a69c2c729bc761aec82\",\"dweb:/ipfs/QmSgivdvgxrY7n6XbLQcGp645nRw1y2272iJUVhQyfnWUp\"]},\"src/interfaces/ISablierFlow.sol\":{\"keccak256\":\"0x4c22532b14c6f7fe6fd739950e9bc38941d71bc0da613e9f3cfde02a2505812a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b2c2c077d008e6c859e1c25d3a519bb7e3e8b0767b4ca11e490d90468f38373b\",\"dweb:/ipfs/QmQJGQ96HENL2aYSPSntMbWf7qP3D9jDPYxefaDtCGwFrY\"]},\"src/interfaces/ISablierFlowBase.sol\":{\"keccak256\":\"0xe009b04a1fd3adfebec177ac72146cbac02f606b0fd633ec2a21a5a4413291b1\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://bc3675e093cc2b698e3a4647af12239a917778250874b2a2f2857ed401c68ee3\",\"dweb:/ipfs/QmTFUdKnKrdBif7LKM6cSNsut3ZVzG3i3RZdXYuYaF29Lf\"]},\"src/libraries/Errors.sol\":{\"keccak256\":\"0xfbbd2e51aa83ab959b149f66a5ba0f9abf352db87b6b2f260d7c72358f1d5da2\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://63570877a3596d3c825b9149eb05bc539bd0ab01c2f4eb27aee28760fa534246\",\"dweb:/ipfs/QmPojT86yxBZiB5cSyKCc5rWgDCBiiFX2JDnQFxBoUkTwW\"]},\"src/libraries/Helpers.sol\":{\"keccak256\":\"0x6557c9f556743a4a0d83a02cc65b07d29cfc6da989731bafb226bea2f622ca66\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://054fc3708bb6a03d2c0b6269394b252d6ffd5b0069c453121f1a26ea2e05306d\",\"dweb:/ipfs/QmbyFuGmnBUuifda686WLYYeqioFM7bEJAZfon9H6nggeF\"]},\"src/types/DataTypes.sol\":{\"keccak256\":\"0xaaa5b90094cfafd31ec968c769c88ff91b27677d6dcea172b0d4672a537f0a10\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://16b34fa9fa2fa7b791631c6a819b554692b8aeb8bb89c671fb0f6179c9e88e9d\",\"dweb:/ipfs/Qmcg91DDt8AjjnGrgHnDQogsq4Us8YPCfCHVG4DJVDNSB6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"initialAdmin","type":"address"},{"internalType":"contract IFlowNFTDescriptor","name":"initialNFTDescriptor","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[{"internalType":"bytes","name":"errorData","type":"bytes"}],"type":"error","name":"BatchError"},{"inputs":[{"internalType":"address","name":"admin","type":"address"},{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"CallerNotAdmin"},{"inputs":[],"type":"error","name":"DelegateCall"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721IncorrectOwner"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721InsufficientApproval"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC721InvalidApprover"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC721InvalidOperator"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721InvalidOwner"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC721InvalidSender"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721NonexistentToken"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"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":"token","type":"address"}],"type":"error","name":"SablierFlowBase_NoProtocolRevenue"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"type":"error","name":"SablierFlowBase_NotTransferable"},{"inputs":[{"internalType":"UD60x18","name":"newProtocolFee","type":"uint256"},{"internalType":"UD60x18","name":"maxFee","type":"uint256"}],"type":"error","name":"SablierFlowBase_ProtocolFeeTooHigh"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SablierFlowBase_SurplusZero"},{"inputs":[],"type":"error","name":"SablierFlow_BrokerAddressZero"},{"inputs":[{"internalType":"UD60x18","name":"brokerFee","type":"uint256"},{"internalType":"UD60x18","name":"maxFee","type":"uint256"}],"type":"error","name":"SablierFlow_BrokerFeeTooHigh"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"type":"error","name":"SablierFlow_DepositAmountZero"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"},{"internalType":"uint128","name":"availableAmount","type":"uint128"},{"internalType":"uint128","name":"amount","type":"uint128"}],"type":"error","name":"SablierFlow_InvalidCalculation"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SablierFlow_InvalidTokenDecimals"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"streamRecipient","type":"address"}],"type":"error","name":"SablierFlow_NotStreamRecipient"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"streamSender","type":"address"}],"type":"error","name":"SablierFlow_NotStreamSender"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"type":"error","name":"SablierFlow_Null"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"},{"internalType":"uint128","name":"amount","type":"uint128"},{"internalType":"uint128","name":"withdrawableAmount","type":"uint128"}],"type":"error","name":"SablierFlow_Overdraw"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"},{"internalType":"UD21x18","name":"ratePerSecond","type":"uint128"}],"type":"error","name":"SablierFlow_RatePerSecondNotDifferent"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"type":"error","name":"SablierFlow_RefundAmountZero"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"},{"internalType":"uint128","name":"refundAmount","type":"uint128"},{"internalType":"uint128","name":"refundableAmount","type":"uint128"}],"type":"error","name":"SablierFlow_RefundOverflow"},{"inputs":[],"type":"error","name":"SablierFlow_SenderZeroAddress"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"type":"error","name":"SablierFlow_StreamBalanceZero"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"type":"error","name":"SablierFlow_StreamNotPaused"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"type":"error","name":"SablierFlow_StreamPaused"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"type":"error","name":"SablierFlow_StreamVoided"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"},{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"SablierFlow_Unauthorized"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"type":"error","name":"SablierFlow_WithdrawAmountZero"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"type":"error","name":"SablierFlow_WithdrawToZeroAddress"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"},{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"to","type":"address"}],"type":"error","name":"SablierFlow_WithdrawalAddressNotRecipient"},{"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":"streamId","type":"uint256","indexed":true},{"internalType":"uint256","name":"totalDebt","type":"uint256","indexed":false},{"internalType":"UD21x18","name":"oldRatePerSecond","type":"uint128","indexed":false},{"internalType":"UD21x18","name":"newRatePerSecond","type":"uint128","indexed":false}],"type":"event","name":"AdjustFlowStream","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_fromTokenId","type":"uint256","indexed":false},{"internalType":"uint256","name":"_toTokenId","type":"uint256","indexed":false}],"type":"event","name":"BatchMetadataUpdate","anonymous":false},{"inputs":[{"internalType":"address","name":"admin","type":"address","indexed":true},{"internalType":"contract IERC20","name":"token","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"uint128","name":"revenue","type":"uint128","indexed":false}],"type":"event","name":"CollectProtocolRevenue","anonymous":false},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256","indexed":false},{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"UD21x18","name":"ratePerSecond","type":"uint128","indexed":false},{"internalType":"contract IERC20","name":"token","type":"address","indexed":true},{"internalType":"bool","name":"transferable","type":"bool","indexed":false}],"type":"event","name":"CreateFlowStream","anonymous":false},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256","indexed":true},{"internalType":"address","name":"funder","type":"address","indexed":true},{"internalType":"uint128","name":"amount","type":"uint128","indexed":false}],"type":"event","name":"DepositFlowStream","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256","indexed":false}],"type":"event","name":"MetadataUpdate","anonymous":false},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"totalDebt","type":"uint256","indexed":false}],"type":"event","name":"PauseFlowStream","anonymous":false},{"inputs":[{"internalType":"address","name":"admin","type":"address","indexed":true},{"internalType":"contract IERC20","name":"token","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"uint256","name":"surplus","type":"uint256","indexed":false}],"type":"event","name":"Recover","anonymous":false},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"uint128","name":"amount","type":"uint128","indexed":false}],"type":"event","name":"RefundFromFlowStream","anonymous":false},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"UD21x18","name":"ratePerSecond","type":"uint128","indexed":false}],"type":"event","name":"RestartFlowStream","anonymous":false},{"inputs":[{"internalType":"address","name":"admin","type":"address","indexed":true},{"internalType":"contract IFlowNFTDescriptor","name":"oldNFTDescriptor","type":"address","indexed":false},{"internalType":"contract IFlowNFTDescriptor","name":"newNFTDescriptor","type":"address","indexed":false}],"type":"event","name":"SetNFTDescriptor","anonymous":false},{"inputs":[{"internalType":"address","name":"admin","type":"address","indexed":true},{"internalType":"contract IERC20","name":"token","type":"address","indexed":true},{"internalType":"UD60x18","name":"oldProtocolFee","type":"uint256","indexed":false},{"internalType":"UD60x18","name":"newProtocolFee","type":"uint256","indexed":false}],"type":"event","name":"SetProtocolFee","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","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":[{"internalType":"uint256","name":"streamId","type":"uint256","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"address","name":"caller","type":"address","indexed":false},{"internalType":"uint256","name":"newTotalDebt","type":"uint256","indexed":false},{"internalType":"uint256","name":"writtenOffDebt","type":"uint256","indexed":false}],"type":"event","name":"VoidFlowStream","anonymous":false},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"contract IERC20","name":"token","type":"address","indexed":true},{"internalType":"address","name":"caller","type":"address","indexed":false},{"internalType":"uint128","name":"withdrawAmount","type":"uint128","indexed":false},{"internalType":"uint128","name":"protocolFeeAmount","type":"uint128","indexed":false}],"type":"event","name":"WithdrawFromFlowStream","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"MAX_FEE","outputs":[{"internalType":"UD60x18","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"},{"internalType":"UD21x18","name":"newRatePerSecond","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"adjustRatePerSecond"},{"inputs":[],"stateMutability":"view","type":"function","name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"stateMutability":"view","type":"function","name":"aggregateBalance","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes[]","name":"calls","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"batch"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"collectProtocolRevenue"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"view","type":"function","name":"coveredDebtOf","outputs":[{"internalType":"uint128","name":"coveredDebt","type":"uint128"}]},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"UD21x18","name":"ratePerSecond","type":"uint128"},{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"bool","name":"transferable","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"create","outputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"UD21x18","name":"ratePerSecond","type":"uint128"},{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"bool","name":"transferable","type":"bool"},{"internalType":"uint128","name":"amount","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"createAndDeposit","outputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"view","type":"function","name":"depletionTimeOf","outputs":[{"internalType":"uint256","name":"depletionTime","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"},{"internalType":"uint128","name":"amount","type":"uint128"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deposit"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"},{"internalType":"uint128","name":"amount","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"depositAndPause"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"},{"internalType":"uint128","name":"totalAmount","type":"uint128"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"struct Broker","name":"broker","type":"tuple","components":[{"internalType":"address","name":"account","type":"address"},{"internalType":"UD60x18","name":"fee","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"depositViaBroker"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getBalance","outputs":[{"internalType":"uint128","name":"balance","type":"uint128"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getRatePerSecond","outputs":[{"internalType":"UD21x18","name":"ratePerSecond","type":"uint128"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getRecipient","outputs":[{"internalType":"address","name":"recipient","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getSender","outputs":[{"internalType":"address","name":"sender","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getSnapshotDebtScaled","outputs":[{"internalType":"uint256","name":"snapshotDebtScaled","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getSnapshotTime","outputs":[{"internalType":"uint40","name":"snapshotTime","type":"uint40"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getStream","outputs":[{"internalType":"struct Flow.Stream","name":"stream","type":"tuple","components":[{"internalType":"uint128","name":"balance","type":"uint128"},{"internalType":"UD21x18","name":"ratePerSecond","type":"uint128"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint40","name":"snapshotTime","type":"uint40"},{"internalType":"bool","name":"isStream","type":"bool"},{"internalType":"bool","name":"isTransferable","type":"bool"},{"internalType":"bool","name":"isVoided","type":"bool"},{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint8","name":"tokenDecimals","type":"uint8"},{"internalType":"uint256","name":"snapshotDebtScaled","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getToken","outputs":[{"internalType":"contract IERC20","name":"token","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getTokenDecimals","outputs":[{"internalType":"uint8","name":"tokenDecimals","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"view","type":"function","name":"isPaused","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"view","type":"function","name":"isStream","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"view","type":"function","name":"isTransferable","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"view","type":"function","name":"isVoided","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nextStreamId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nftDescriptor","outputs":[{"internalType":"contract IFlowNFTDescriptor","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ongoingDebtScaledOf","outputs":[{"internalType":"uint256","name":"ongoingDebtScaled","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"stateMutability":"view","type":"function","name":"protocolFee","outputs":[{"internalType":"UD60x18","name":"fee","type":"uint256"}]},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"stateMutability":"view","type":"function","name":"protocolRevenue","outputs":[{"internalType":"uint128","name":"revenue","type":"uint128"}]},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"recover"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"},{"internalType":"uint128","name":"amount","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"refund"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"},{"internalType":"uint128","name":"amount","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"refundAndPause"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"refundMax"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"view","type":"function","name":"refundableAmountOf","outputs":[{"internalType":"uint128","name":"refundableAmount","type":"uint128"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"},{"internalType":"UD21x18","name":"ratePerSecond","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"restart"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"},{"internalType":"UD21x18","name":"ratePerSecond","type":"uint128"},{"internalType":"uint128","name":"amount","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"restartAndDeposit"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"contract IFlowNFTDescriptor","name":"newNFTDescriptor","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setNFTDescriptor"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"UD60x18","name":"newProtocolFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setProtocolFee"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"view","type":"function","name":"statusOf","outputs":[{"internalType":"enum Flow.Status","name":"status","type":"uint8"}]},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"uri","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"view","type":"function","name":"totalDebtOf","outputs":[{"internalType":"uint256","name":"totalDebt","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferAdmin"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"view","type":"function","name":"uncoveredDebtOf","outputs":[{"internalType":"uint256","name":"uncoveredDebt","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"void"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint128","name":"amount","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"withdraw","outputs":[{"internalType":"uint128","name":"withdrawnAmount","type":"uint128"},{"internalType":"uint128","name":"protocolFeeAmount","type":"uint128"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"withdrawMax","outputs":[{"internalType":"uint128","name":"withdrawnAmount","type":"uint128"},{"internalType":"uint128","name":"protocolFeeAmount","type":"uint128"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawableAmountOf","outputs":[{"internalType":"uint128","name":"withdrawableAmount","type":"uint128"}]}],"devdoc":{"kind":"dev","methods":{"adjustRatePerSecond(uint256,uint128)":{"details":"Emits {AdjustFlowStream} and {MetadataUpdate} events. Notes: - It updates snapshot debt and snapshot time. Requirements: - Must not be delegate called. - `streamId` must not reference a null or a paused stream. - `msg.sender` must be the stream's sender. - `newRatePerSecond` must not equal to the current rate per second.","params":{"newRatePerSecond":"The new rate per second, denoted as a fixed-point number where 1e18 is 1 token per second.","streamId":"The ID of the stream to adjust."}},"approve(address,uint256)":{"details":"See {IERC721-approve}."},"balanceOf(address)":{"details":"See {IERC721-balanceOf}."},"batch(bytes[])":{"params":{"calls":"An array of inputs for each call."}},"collectProtocolRevenue(address,address)":{"details":"Emits {CollectProtocolRevenue} event. Requirements: - `msg.sender` must be the contract admin. - The accrued protocol revenue must be greater than zero.","params":{"to":"The address to send the protocol revenue.","token":"The contract address of the ERC-20 token for which to claim protocol revenue."}},"constructor":{"details":"Emits {TransferAdmin} event.","params":{"initialAdmin":"The address of the initial contract admin.","initialNFTDescriptor":"The address of the initial NFT descriptor."}},"coveredDebtOf(uint256)":{"details":"Reverts if `streamId` references a null stream.","params":{"streamId":"The stream ID for the query."}},"create(address,address,uint128,address,bool)":{"details":"Emits {CreateFlowStream} event. Requirements: - Must not be delegate called. - `sender` must not be the zero address. - `recipient` must not be the zero address. - The `token`'s decimals must be less than or equal to 18.","params":{"ratePerSecond":"The amount by which the debt is increasing every second, denoted as a fixed-point number where 1e18 is 1 token per second.","recipient":"The address receiving the tokens.","sender":"The address streaming the tokens, which is able to adjust and pause the stream. It doesn't have to be the same as `msg.sender`.","token":"The contract address of the ERC-20 token to be streamed.","transferable":"Boolean indicating if the stream NFT is transferable."},"returns":{"streamId":"The ID of the newly created stream."}},"createAndDeposit(address,address,uint128,address,bool,uint128)":{"details":"Emits {Transfer}, {CreateFlowStream}, and {DepositFlowStream} events. Notes: - Refer to the notes in {deposit}. Requirements: - Refer to the requirements in {create} and {deposit}.","params":{"amount":"The deposit amount, denoted in token's decimals.","ratePerSecond":"The amount by which the debt is increasing every second, denoted as a fixed-point number where 1e18 is 1 token per second.","recipient":"The address receiving the tokens.","sender":"The address streaming the tokens. It doesn't have to be the same as `msg.sender`.","token":"The contract address of the ERC-20 token to be streamed.","transferable":"Boolean indicating if the stream NFT is transferable."},"returns":{"streamId":"The ID of the newly created stream."}},"depletionTimeOf(uint256)":{"details":"Reverts on the following conditions: - If `streamId` references a paused or a null stream. - If stream balance is zero.","params":{"streamId":"The stream ID for the query."}},"deposit(uint256,uint128,address,address)":{"details":"Emits {Transfer} and {DepositFlowStream} events. Requirements: - Must not be delegate called. - `streamId` must not reference a null or a voided stream. - `amount` must be greater than zero. - `sender` and `recipient` must match the stream's sender and recipient addresses.","params":{"amount":"The deposit amount, denoted in token's decimals.","recipient":"The stream's recipient address.","sender":"The stream's sender address.","streamId":"The ID of the stream to deposit to."}},"depositAndPause(uint256,uint128)":{"details":"Emits {Transfer}, {DepositFlowStream} and {PauseFlowStream} events. Notes: - Refer to the notes in {deposit} and {pause}. Requirements: - Refer to the requirements in {deposit} and {pause}.","params":{"amount":"The deposit amount, denoted in token's decimals.","streamId":"The ID of the stream to deposit to, and then pause."}},"depositViaBroker(uint256,uint128,address,address,(address,uint256))":{"details":"Emits {Transfer} and {DepositFlowStream} events. Notes: - Refer to the notes in {deposit}. Requirements: - Must not be delegate called. - `streamId` must not reference a null stream. - `totalAmount` must be greater than zero. Otherwise it will revert inside {deposit}. - `broker.account` must not be 0 address. - `broker.fee` must not be greater than `MAX_FEE`. It can be zero.","params":{"broker":"Struct encapsulating (i) the address of the broker assisting in creating the stream, and (ii) the percentage fee paid to the broker from `totalAmount`, denoted as a fixed-point percentage.","recipient":"The stream's recipient address.","sender":"The stream's sender address.","streamId":"The ID of the stream to deposit on.","totalAmount":"The total amount, including the deposit and any broker fee, denoted in token's decimals."}},"getApproved(uint256)":{"details":"See {IERC721-getApproved}."},"getBalance(uint256)":{"details":"Reverts if `streamId` references a null stream.","params":{"streamId":"The stream ID for the query."}},"getRatePerSecond(uint256)":{"details":"Reverts if `streamId` references a null stream.","params":{"streamId":"The ID of the stream to make the query for."}},"getRecipient(uint256)":{"details":"Reverts if `streamId` references a null stream.","params":{"streamId":"The stream ID for the query."}},"getSender(uint256)":{"details":"Reverts if `streamId` references a null stream.","params":{"streamId":"The stream ID for the query."}},"getSnapshotDebtScaled(uint256)":{"details":"Reverts if `streamId` references a null stream.","params":{"streamId":"The stream ID for the query."}},"getSnapshotTime(uint256)":{"details":"Reverts if `streamId` references a null stream.","params":{"streamId":"The ID of the stream to make the query for."}},"getStream(uint256)":{"details":"Reverts if `streamId` references a null stream.","params":{"streamId":"The stream ID for the query."}},"getToken(uint256)":{"details":"Reverts if `streamId` references a null stream.","params":{"streamId":"The ID of the stream to make the query for."}},"getTokenDecimals(uint256)":{"details":"Reverts if `streamId` references a null stream.","params":{"streamId":"The ID of the stream to make the query for."}},"isApprovedForAll(address,address)":{"details":"See {IERC721-isApprovedForAll}."},"isPaused(uint256)":{"details":"Reverts if `streamId` references a null stream.","params":{"streamId":"The stream ID for the query."}},"isStream(uint256)":{"details":"Does not revert if `streamId` references a null stream.","params":{"streamId":"The stream ID for the query."}},"isTransferable(uint256)":{"details":"Reverts if `streamId` references a null stream.","params":{"streamId":"The stream ID for the query."}},"isVoided(uint256)":{"details":"Reverts if `streamId` references a null stream.","params":{"streamId":"The stream ID for the query."}},"name()":{"details":"See {IERC721Metadata-name}."},"ongoingDebtScaledOf(uint256)":{"details":"Reverts if `streamId` references a null stream.","params":{"streamId":"The stream ID for the query."}},"ownerOf(uint256)":{"details":"See {IERC721-ownerOf}."},"pause(uint256)":{"details":"Emits {PauseFlowStream} event. Notes: - It updates snapshot debt and snapshot time. - It sets the rate per second to zero. Requirements: - Must not be delegate called. - `streamId` must not reference a null or an already paused stream. - `msg.sender` must be the stream's sender.","params":{"streamId":"The ID of the stream to pause."}},"recover(address,address)":{"details":"Emits {Recover} event. Notes: - The surplus amount is defined as the difference between the total balance of the contract for the provided ERC-20 token and the sum of balances of all streams created using the same ERC-20 token. Requirements: - `msg.sender` must be the contract admin. - The surplus amount must be greater than zero.","params":{"to":"The address to send the surplus amount.","token":"The contract address of the ERC-20 token to recover for."}},"refund(uint256,uint128)":{"details":"Emits {Transfer} and {RefundFromFlowStream} events. Requirements: - Must not be delegate called. - `streamId` must not reference a null stream. - `msg.sender` must be the sender. - `amount` must be greater than zero and must not exceed the refundable amount.","params":{"amount":"The amount to refund, denoted in token's decimals.","streamId":"The ID of the stream to refund from."}},"refundAndPause(uint256,uint128)":{"details":"Emits {Transfer}, {RefundFromFlowStream} and {PauseFlowStream} events. Notes: - Refer to the notes in {pause}. Requirements: - Refer to the requirements in {refund} and {pause}.","params":{"amount":"The amount to refund, denoted in token's decimals.","streamId":"The ID of the stream to refund from and then pause."}},"refundMax(uint256)":{"details":"Emits {Transfer} and {RefundFromFlowStream} events. Requirements: - Refer to the requirements in {refund}.","params":{"streamId":"The ID of the stream to refund from."}},"refundableAmountOf(uint256)":{"details":"Reverts if `streamId` references a null stream.","params":{"streamId":"The stream ID for the query."}},"restart(uint256,uint128)":{"details":"Emits {RestartFlowStream} event. Notes: - It updates snapshot debt and snapshot time. Requirements: - Must not be delegate called. - `streamId` must not reference a null, or a voided stream. - `msg.sender` must be the stream's sender. - `ratePerSecond` must be greater than zero.","params":{"ratePerSecond":"The amount by which the debt is increasing every second, denoted as a fixed-point number where 1e18 is 1 token per second.","streamId":"The ID of the stream to restart."}},"restartAndDeposit(uint256,uint128,uint128)":{"details":"Emits {RestartFlowStream}, {Transfer}, and {DepositFlowStream} events. Notes: - Refer to the notes in {restart} and {deposit}. Requirements: - `amount` must be greater than zero. - Refer to the requirements in {restart}.","params":{"amount":"The deposit amount, denoted in token's decimals.","ratePerSecond":"The amount by which the debt is increasing every second, denoted as a fixed-point number where 1e18 is 1 token per second.","streamId":"The ID of the stream to restart."}},"safeTransferFrom(address,address,uint256)":{"details":"See {IERC721-safeTransferFrom}."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"See {IERC721-safeTransferFrom}."},"setApprovalForAll(address,bool)":{"details":"See {IERC721-setApprovalForAll}."},"setNFTDescriptor(address)":{"details":"Emits {SetNFTDescriptor} and {BatchMetadataUpdate} events. Notes: - Does not revert if the NFT descriptor is the same. Requirements: - `msg.sender` must be the contract admin.","params":{"newNFTDescriptor":"The address of the new NFT descriptor contract."}},"setProtocolFee(address,uint256)":{"details":"Emits {SetProtocolFee} and {BatchMetadataUpdate} events. Notes: - Does not revert if the fee is the same. - It can be zero. Requirements: - `msg.sender` must be the contract admin. - `newProtocolFee` must not be greater than `MAX_FEE`.","params":{"newProtocolFee":"The new protocol fee, denoted as a fixed-point percentage where 1e18 is 100%.","token":"The contract address of the ERC-20 token to update the fee for."}},"statusOf(uint256)":{"details":"Reverts if `streamId` references a null stream.","params":{"streamId":"The stream ID for the query."}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"symbol()":{"details":"See {IERC721Metadata-symbol}."},"tokenURI(uint256)":{"details":"See {IERC721Metadata-tokenURI}."},"totalDebtOf(uint256)":{"details":"Reverts if `streamId` references a null stream.","params":{"streamId":"The stream ID for the query."}},"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."}},"transferFrom(address,address,uint256)":{"details":"See {IERC721-transferFrom}."},"uncoveredDebtOf(uint256)":{"details":"Reverts if `streamId` references a null stream.","params":{"streamId":"The stream ID for the query."}},"void(uint256)":{"details":"Emits {VoidFlowStream} event. Notes: - It sets snapshot time to the `block.timestamp` - Voiding an insolvent stream sets the snapshot debt to the stream's balance making the uncovered debt to become zero. - Voiding a solvent stream updates the snapshot debt by adding up ongoing debt. - It sets the rate per second to zero. - A voided stream cannot be restarted. Requirements: - Must not be delegate called. - `streamId` must not reference a null or a voided stream. - `msg.sender` must either be the stream's sender, recipient or an approved third party.","params":{"streamId":"The ID of the stream to void."}},"withdraw(uint256,address,uint128)":{"details":"Emits {Transfer} and {WithdrawFromFlowStream} events. Notes: - It sets the snapshot time to the `block.timestamp` if `amount` is greater than snapshot debt. - A protocol fee may be charged on the withdrawn amount if the protocol fee is enabled for the streaming token. Requirements: - Must not be delegate called. - `streamId` must not reference a null stream. - `to` must not be the zero address. - `to` must be the recipient if `msg.sender` is not the stream's recipient. - `amount` must  be greater than zero and must not exceed the withdrawable amount.","params":{"amount":"The amount to withdraw, denoted in token's decimals.","streamId":"The ID of the stream to withdraw from.","to":"The address receiving the withdrawn tokens."},"returns":{"protocolFeeAmount":"The protocol fee amount, denoted in the token's decimals.","withdrawnAmount":"The amount withdrawn to the recipient, denoted in token's decimals. This is input amount minus the protocol fee."}},"withdrawMax(uint256,address)":{"details":"Emits {Transfer} and {WithdrawFromFlowStream} events. Notes: - Refer to the notes in {withdraw}. Requirements: - Refer to the requirements in {withdraw}.","params":{"streamId":"The ID of the stream to withdraw from.","to":"The address receiving the withdrawn tokens."},"returns":{"protocolFeeAmount":"The protocol fee amount, denoted in the token's decimals.","withdrawnAmount":"The amount withdrawn to the recipient, denoted in token's decimals."}},"withdrawableAmountOf(uint256)":{"details":"Reverts if `streamId` references a null stream.","params":{"streamId":"The stream ID for the query."},"returns":{"withdrawableAmount":"The amount that the recipient can withdraw."}}},"version":1},"userdoc":{"kind":"user","methods":{"MAX_FEE()":{"notice":"Retrieves the maximum fee that can be charged by the broker and the protocol, denoted as a fixed-point percentage where 1e18 is 100%."},"adjustRatePerSecond(uint256,uint128)":{"notice":"Changes the stream's rate per second."},"admin()":{"notice":"The address of the admin account or contract."},"aggregateBalance(address)":{"notice":"Retrieves the sum of balances of all streams."},"batch(bytes[])":{"notice":"Allows batched call to self, `this` contract."},"collectProtocolRevenue(address,address)":{"notice":"Collect the protocol revenue accrued for the provided ERC-20 token."},"coveredDebtOf(uint256)":{"notice":"Returns the amount of debt covered by the stream balance, denoted in token's decimals."},"create(address,address,uint128,address,bool)":{"notice":"Creates a new Flow stream by setting the snapshot time to `block.timestamp` and leaving the balance to zero. The stream is wrapped in an ERC-721 NFT."},"createAndDeposit(address,address,uint128,address,bool,uint128)":{"notice":"Creates a new Flow stream by setting the snapshot time to `block.timestamp` and the balance to `amount`. The stream is wrapped in an ERC-721 NFT."},"depletionTimeOf(uint256)":{"notice":"Returns the time at which the total debt exceeds stream balance. If the total debt is less than or equal to stream balance, it returns 0."},"deposit(uint256,uint128,address,address)":{"notice":"Makes a deposit in a stream."},"depositAndPause(uint256,uint128)":{"notice":"Deposits tokens in a stream and pauses it."},"depositViaBroker(uint256,uint128,address,address,(address,uint256))":{"notice":"Deposits tokens in a stream."},"getBalance(uint256)":{"notice":"Retrieves the balance of the stream, i.e. the total deposited amounts subtracted by the total withdrawn amounts, denoted in token's decimals."},"getRatePerSecond(uint256)":{"notice":"Retrieves the rate per second of the stream, denoted as a fixed-point number where 1e18 is 1 token per second."},"getRecipient(uint256)":{"notice":"Retrieves the stream's recipient."},"getSender(uint256)":{"notice":"Retrieves the stream's sender."},"getSnapshotDebtScaled(uint256)":{"notice":"Retrieves the snapshot debt of the stream, denoted as a fixed-point number where 1e18 is 1 token."},"getSnapshotTime(uint256)":{"notice":"Retrieves the snapshot time of the stream, which is a Unix timestamp."},"getStream(uint256)":{"notice":"Retrieves the stream entity."},"getToken(uint256)":{"notice":"Retrieves the token of the stream."},"getTokenDecimals(uint256)":{"notice":"Retrieves the token decimals of the stream."},"isPaused(uint256)":{"notice":"Returns whether a stream is paused."},"isStream(uint256)":{"notice":"Retrieves a flag indicating whether the stream exists."},"isTransferable(uint256)":{"notice":"Retrieves a flag indicating whether the stream NFT is transferable."},"isVoided(uint256)":{"notice":"Retrieves a flag indicating whether the stream is voided."},"nextStreamId()":{"notice":"Counter for stream ids."},"nftDescriptor()":{"notice":"Contract that generates the non-fungible token URI."},"ongoingDebtScaledOf(uint256)":{"notice":"Returns the amount of debt accrued since the snapshot time until now, denoted as a fixed-point number where 1e18 is 1 token."},"pause(uint256)":{"notice":"Pauses the stream."},"protocolFee(address)":{"notice":"Protocol fee for the provided ERC-20 token, denoted as a fixed-point percentage where 1e18 is 100%."},"protocolRevenue(address)":{"notice":"Protocol revenue accrued for the provided ERC-20 token, denoted in token's decimals."},"recover(address,address)":{"notice":"Recover the surplus amount of tokens."},"refund(uint256,uint128)":{"notice":"Refunds the provided amount of tokens from the stream to the sender's address."},"refundAndPause(uint256,uint128)":{"notice":"Refunds the provided amount of tokens from the stream to the sender's address."},"refundMax(uint256)":{"notice":"Refunds the entire refundable amount of tokens from the stream to the sender's address."},"refundableAmountOf(uint256)":{"notice":"Returns the amount that the sender can be refunded from the stream, denoted in token's decimals."},"restart(uint256,uint128)":{"notice":"Restarts the stream with the provided rate per second."},"restartAndDeposit(uint256,uint128,uint128)":{"notice":"Restarts the stream with the provided rate per second, and makes a deposit."},"setNFTDescriptor(address)":{"notice":"Sets a new NFT descriptor contract, which produces the URI describing the Sablier stream NFTs."},"setProtocolFee(address,uint256)":{"notice":"Sets a new protocol fee that will be charged on all the withdrawals from streams created with the provided ERC-20 token."},"statusOf(uint256)":{"notice":"Returns the stream's status."},"totalDebtOf(uint256)":{"notice":"Returns the total amount owed by the sender to the recipient, denoted in token's decimals."},"transferAdmin(address)":{"notice":"Transfers the contract admin to a new address."},"uncoveredDebtOf(uint256)":{"notice":"Returns the amount of debt not covered by the stream balance, denoted in token's decimals."},"void(uint256)":{"notice":"Voids a stream."},"withdraw(uint256,address,uint128)":{"notice":"Withdraws the provided `amount` minus the protocol fee to the provided `to` address."},"withdrawMax(uint256,address)":{"notice":"Withdraws the entire withdrawable amount minus the protocol fee to the provided `to` address."},"withdrawableAmountOf(uint256)":{"notice":"Calculates the amount that the recipient can withdraw from the stream, denoted in token decimals. This is an alias for `coveredDebtOf`."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/","@prb/math/=node_modules/@prb/math/","forge-std/=node_modules/forge-std/","solady/=node_modules/solady/"],"optimizer":{"enabled":true,"runs":10000},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/SablierFlow.sol":"SablierFlow"},"evmVersion":"shanghai","libraries":{},"viaIR":true},"sources":{"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC4906.sol":{"keccak256":"0xb31b86c03f4677dcffa4655285d62433509513be9bafa0e04984565052d34e44","urls":["bzz-raw://a89c6fb0cd5fef4244500b633f63def9f2bb2134debb961e590bd5a2910662fd","dweb:/ipfs/QmNqWyCxyopvb99RbRomPpfTZGXRi5MnzgpFXE2BFLLgMc"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC721.sol":{"keccak256":"0xc4d7ebf63eb2f6bf3fee1b6c0ee775efa9f31b4843a5511d07eea147e212932d","urls":["bzz-raw://01c66a2fad66bc710db7510419a7eee569b40b67cd9f01b70a3fc90d6f76c03b","dweb:/ipfs/QmT1CjJZq4eTNA4nu8E9ZrWfaZu6ReUsDbjcK8DbEFqwx5"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7","urls":["bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f","dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2","urls":["bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850","dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol":{"keccak256":"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784","urls":["bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd","dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4","urls":["bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7","dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49","urls":["bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22","dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"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/UD21x18.sol":{"keccak256":"0xb0176747ae9c9f329bce39730d4d315b839e73a815494ddf2de2094aa9056957","urls":["bzz-raw://534a82fe091627f9d01e665ac763daf56981b30b3976269f8e5c33a84a2dbebc","dweb:/ipfs/QmYiiGJNr4S4ypYB4KGBPMTMiNskert8Cp4s6uf1CU3k73"],"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"},"src/SablierFlow.sol":{"keccak256":"0xcfb532d081b7c7baa1a5d0fa06c8f226153f77dcf5e41c2b0ca726784170b0bf","urls":["bzz-raw://609ebb7da755f1e9878b84f61aa91a03ee91eadaeca651987bb6b96d80648cd2","dweb:/ipfs/QmfWgUKA9DA2HAWAoHmwbgagsogsstqSJapPh9BcJoHYHa"],"license":"BUSL-1.1"},"src/abstracts/Adminable.sol":{"keccak256":"0xdbcb26718ab7e57e1df94fd9ecd7de1345b839e6fb4925dc1a1182da770651b6","urls":["bzz-raw://02d559eaa018921cb60d10eb015d1d12e5a3ebe35c68afbbb8fb58370238dd37","dweb:/ipfs/QmTKaj3GqGssMXiNjno8NvzkKrCLHwx3dsDdsoFajCDf5c"],"license":"GPL-3.0-or-later"},"src/abstracts/Batch.sol":{"keccak256":"0x2d1c3182274b22d7c1b21d2d7467e263298e901f36585cca21c5ae5b3f23eba1","urls":["bzz-raw://896d6604aeef8b03abefb76f4a671d852b0d699df6e9a9ff8ae4aa44cfc24659","dweb:/ipfs/QmSeBbBg5YMwTYokF8Met3mr9G7YJA1At9qz8doCW8GUGZ"],"license":"GPL-3.0-or-later"},"src/abstracts/NoDelegateCall.sol":{"keccak256":"0x6c9e22ca1303c5953ee5574c1605515bab67dc71e9325605087557c7faf71059","urls":["bzz-raw://8f3de9954d1dfb54e6be6a082c2732b3bd5f4b88549e2d1b29ed5527fef13fc0","dweb:/ipfs/QmfRzCfJRr2StpLTG93Qp6rvfMWfbRRoo7DKoy6yPDizwP"],"license":"GPL-3.0-or-later"},"src/abstracts/SablierFlowBase.sol":{"keccak256":"0x510931befe26302fb615f8f49882cd3de6400da09a2f1f62f17f65bed42d297e","urls":["bzz-raw://a97412c5bbc8f3b96bfb783961286cb90c426f353f1cd81cdf7adf6802be150e","dweb:/ipfs/Qmbizri4JGthZhqTiUyEoTqjyhAvS5S8rcv6ihJ8Pbxa9i"],"license":"GPL-3.0-or-later"},"src/interfaces/IAdminable.sol":{"keccak256":"0xa279c49e51228b571329164e36250e82b2c1378e8b549194ab7dd90fca9c3b2b","urls":["bzz-raw://b0af605b82e64679db7039fb378fc206c4a000f8cd24b3ff17b019e27b81be8f","dweb:/ipfs/QmUSr73cbnG7K79mVE9Nwcou5nJZEK2ZGekt3KpkfpxL4Z"],"license":"GPL-3.0-or-later"},"src/interfaces/IBatch.sol":{"keccak256":"0x4f72a27c49d12079550271ab90ba3df4b9a5f5b420f1fbe3004a22ba7e585d0b","urls":["bzz-raw://d54b4ed31f6af3ce8ec5b14fe76c76f2bc5864dbad0eeda2ac0f3069a59e5b44","dweb:/ipfs/QmYfib2HbKpE2m9ycq4UySUNszzsBroJrEEDQKuwoNwM42"],"license":"GPL-3.0-or-later"},"src/interfaces/IFlowNFTDescriptor.sol":{"keccak256":"0xdf964042ae7c74f03909d020fbb63e0ae56aeb2fa47213e3775a1e3263d00e54","urls":["bzz-raw://0d4ede276be940185ea0b638c8f38f68232b6f4394ce0a69c2c729bc761aec82","dweb:/ipfs/QmSgivdvgxrY7n6XbLQcGp645nRw1y2272iJUVhQyfnWUp"],"license":"GPL-3.0-or-later"},"src/interfaces/ISablierFlow.sol":{"keccak256":"0x4c22532b14c6f7fe6fd739950e9bc38941d71bc0da613e9f3cfde02a2505812a","urls":["bzz-raw://b2c2c077d008e6c859e1c25d3a519bb7e3e8b0767b4ca11e490d90468f38373b","dweb:/ipfs/QmQJGQ96HENL2aYSPSntMbWf7qP3D9jDPYxefaDtCGwFrY"],"license":"GPL-3.0-or-later"},"src/interfaces/ISablierFlowBase.sol":{"keccak256":"0xe009b04a1fd3adfebec177ac72146cbac02f606b0fd633ec2a21a5a4413291b1","urls":["bzz-raw://bc3675e093cc2b698e3a4647af12239a917778250874b2a2f2857ed401c68ee3","dweb:/ipfs/QmTFUdKnKrdBif7LKM6cSNsut3ZVzG3i3RZdXYuYaF29Lf"],"license":"GPL-3.0-or-later"},"src/libraries/Errors.sol":{"keccak256":"0xfbbd2e51aa83ab959b149f66a5ba0f9abf352db87b6b2f260d7c72358f1d5da2","urls":["bzz-raw://63570877a3596d3c825b9149eb05bc539bd0ab01c2f4eb27aee28760fa534246","dweb:/ipfs/QmPojT86yxBZiB5cSyKCc5rWgDCBiiFX2JDnQFxBoUkTwW"],"license":"GPL-3.0-or-later"},"src/libraries/Helpers.sol":{"keccak256":"0x6557c9f556743a4a0d83a02cc65b07d29cfc6da989731bafb226bea2f622ca66","urls":["bzz-raw://054fc3708bb6a03d2c0b6269394b252d6ffd5b0069c453121f1a26ea2e05306d","dweb:/ipfs/QmbyFuGmnBUuifda686WLYYeqioFM7bEJAZfon9H6nggeF"],"license":"GPL-3.0-or-later"},"src/types/DataTypes.sol":{"keccak256":"0xaaa5b90094cfafd31ec968c769c88ff91b27677d6dcea172b0d4672a537f0a10","urls":["bzz-raw://16b34fa9fa2fa7b791631c6a819b554692b8aeb8bb89c671fb0f6179c9e88e9d","dweb:/ipfs/Qmcg91DDt8AjjnGrgHnDQogsq4Us8YPCfCHVG4DJVDNSB6"],"license":"GPL-3.0-or-later"}},"version":1},"id":78}