Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 152 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Execute | 13028544 | 1122 days ago | IN | 0 ETH | 0.03970461 | ||||
Execute | 13022125 | 1123 days ago | IN | 0 ETH | 0.04886721 | ||||
Execute | 13009297 | 1125 days ago | IN | 0 ETH | 0.04539686 | ||||
Execute | 12996467 | 1127 days ago | IN | 0 ETH | 0.07228275 | ||||
Execute | 12753103 | 1165 days ago | IN | 0 ETH | 0.00036845 | ||||
Execute | 12753102 | 1165 days ago | IN | 0 ETH | 0.01721166 | ||||
Execute | 12746702 | 1166 days ago | IN | 0 ETH | 0.01721166 | ||||
Execute | 12740302 | 1167 days ago | IN | 0 ETH | 0.01975788 | ||||
Execute | 12733901 | 1168 days ago | IN | 0 ETH | 0.01549049 | ||||
Execute | 12727501 | 1169 days ago | IN | 0 ETH | 0.01755366 | ||||
Execute | 12721099 | 1170 days ago | IN | 0 ETH | 0.01286433 | ||||
Execute | 12702847 | 1173 days ago | IN | 0 ETH | 0.00021728 | ||||
Execute | 12701896 | 1173 days ago | IN | 0 ETH | 0.00065578 | ||||
Execute | 12701896 | 1173 days ago | IN | 0 ETH | 0.01692674 | ||||
Execute | 12695490 | 1174 days ago | IN | 0 ETH | 0.00921567 | ||||
Execute | 12694855 | 1174 days ago | IN | 0 ETH | 0.00020178 | ||||
Execute | 12694795 | 1174 days ago | IN | 0 ETH | 0.0003363 | ||||
Execute | 12694700 | 1174 days ago | IN | 0 ETH | 0.00043719 | ||||
Execute | 12694551 | 1174 days ago | IN | 0 ETH | 0.00080712 | ||||
Execute | 12689089 | 1175 days ago | IN | 0 ETH | 0.01372195 | ||||
Execute | 12682646 | 1176 days ago | IN | 0 ETH | 0.01635107 | ||||
Execute | 12676233 | 1177 days ago | IN | 0 ETH | 0.04600601 | ||||
Execute | 12669803 | 1178 days ago | IN | 0 ETH | 0.00946641 | ||||
Execute | 12663379 | 1179 days ago | IN | 0 ETH | 0.00860583 | ||||
Execute | 12656944 | 1180 days ago | IN | 0 ETH | 0.00040341 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
13041344 | 1120 days ago | 0.44915694 ETH | ||||
13041344 | 1120 days ago | 0.03076417 ETH | ||||
13041344 | 1120 days ago | 0.13536236 ETH | ||||
13041344 | 1120 days ago | 0.61528349 ETH | ||||
13034944 | 1121 days ago | 0.47661892 ETH | ||||
13034944 | 1121 days ago | 0.03264513 ETH | ||||
13034944 | 1121 days ago | 0.14363858 ETH | ||||
13034944 | 1121 days ago | 0.65290264 ETH | ||||
13028544 | 1122 days ago | 0.47518735 ETH | ||||
13028544 | 1122 days ago | 0.03254707 ETH | ||||
13028544 | 1122 days ago | 0.14320714 ETH | ||||
13028544 | 1122 days ago | 0.65094158 ETH | ||||
13022125 | 1123 days ago | 0.48207813 ETH | ||||
13022125 | 1123 days ago | 0.03301905 ETH | ||||
13022125 | 1123 days ago | 0.14528382 ETH | ||||
13022125 | 1123 days ago | 0.66038101 ETH | ||||
13022100 | 1123 days ago | 0.48207813 ETH | ||||
13022100 | 1123 days ago | 0.03301905 ETH | ||||
13022100 | 1123 days ago | 0.14528382 ETH | ||||
13022100 | 1123 days ago | 0.66038101 ETH | ||||
13022098 | 1123 days ago | 0.48207813 ETH | ||||
13022098 | 1123 days ago | 0.03301905 ETH | ||||
13022098 | 1123 days ago | 0.14528382 ETH | ||||
13022098 | 1123 days ago | 0.66038101 ETH | ||||
13015698 | 1124 days ago | 0.55899496 ETH |
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x0da367ac...7De9Bf2cf The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
FixedInflation
Compiler Version
v0.7.6+commit.7338295f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-02-22 */ // File: contracts\fixed-inflation\FixedInflationData.sol //SPDX-License-Identifier: MIT pragma solidity ^0.7.6; struct FixedInflationEntry { string name; uint256 blockInterval; uint256 lastBlock; uint256 callerRewardPercentage; } struct FixedInflationOperation { address inputTokenAddress; uint256 inputTokenAmount; bool inputTokenAmountIsPercentage; bool inputTokenAmountIsByMint; address ammPlugin; address[] liquidityPoolAddresses; address[] swapPath; bool enterInETH; bool exitInETH; address[] receivers; uint256[] receiversPercentages; } // File: contracts\fixed-inflation\IFixedInflationExtension.sol //SPDX_License_Identifier: MIT pragma solidity ^0.7.6; pragma abicoder v2; interface IFixedInflationExtension { function init(address host) external; function setHost(address host) external; function data() external view returns(address fixedInflationContract, address host); function receiveTokens(address[] memory tokenAddresses, uint256[] memory transferAmounts, uint256[] memory amountsToMint) external; function flushBack(address[] memory tokenAddresses) external; function deactivationByFailure() external; function setEntry(FixedInflationEntry memory entryData, FixedInflationOperation[] memory operations) external; function active() external view returns(bool); function setActive(bool _active) external; } // File: contracts\fixed-inflation\util\IERC20.sol //SPDX_License_Identifier: MIT pragma solidity ^0.7.6; interface IERC20 { function totalSupply() external view returns(uint256); function balanceOf(address account) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transfer(address recipient, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); function decimals() external view returns (uint8); } // File: contracts\amm-aggregator\common\AMMData.sol //SPDX_License_Identifier: MIT pragma solidity ^0.7.6; struct LiquidityPoolData { address liquidityPoolAddress; uint256 amount; address tokenAddress; bool amountIsLiquidityPool; bool involvingETH; address receiver; } struct SwapData { bool enterInETH; bool exitInETH; address[] liquidityPoolAddresses; address[] path; address inputToken; uint256 amount; address receiver; } // File: contracts\amm-aggregator\common\IAMM.sol //SPDX_License_Identifier: MIT pragma solidity ^0.7.6; //pragma abicoder v2; interface IAMM { event NewLiquidityPoolAddress(address indexed); function info() external view returns(string memory name, uint256 version); function data() external view returns(address ethereumAddress, uint256 maxTokensPerLiquidityPool, bool hasUniqueLiquidityPools); function balanceOf(address liquidityPoolAddress, address owner) external view returns(uint256, uint256[] memory, address[] memory); function byLiquidityPool(address liquidityPoolAddress) external view returns(uint256, uint256[] memory, address[] memory); function byTokens(address[] calldata liquidityPoolTokens) external view returns(uint256, uint256[] memory, address, address[] memory); function byPercentage(address liquidityPoolAddress, uint256 numerator, uint256 denominator) external view returns (uint256, uint256[] memory, address[] memory); function byLiquidityPoolAmount(address liquidityPoolAddress, uint256 liquidityPoolAmount) external view returns(uint256[] memory, address[] memory); function byTokenAmount(address liquidityPoolAddress, address tokenAddress, uint256 tokenAmount) external view returns(uint256, uint256[] memory, address[] memory); function createLiquidityPoolAndAddLiquidity(address[] calldata tokenAddresses, uint256[] calldata amounts, bool involvingETH, address receiver) external payable returns(uint256, uint256[] memory, address, address[] memory); function addLiquidity(LiquidityPoolData calldata data) external payable returns(uint256, uint256[] memory, address[] memory); function addLiquidityBatch(LiquidityPoolData[] calldata data) external payable returns(uint256[] memory, uint256[][] memory, address[][] memory); function removeLiquidity(LiquidityPoolData calldata data) external returns(uint256, uint256[] memory, address[] memory); function removeLiquidityBatch(LiquidityPoolData[] calldata data) external returns(uint256[] memory, uint256[][] memory, address[][] memory); function getSwapOutput(address tokenAddress, uint256 tokenAmount, address[] calldata, address[] calldata path) view external returns(uint256[] memory); function swapLiquidity(SwapData calldata data) external payable returns(uint256); function swapLiquidityBatch(SwapData[] calldata data) external payable returns(uint256[] memory); } // File: contracts\fixed-inflation\IFixedInflationFactory.sol //SPDX_License_Identifier: MIT pragma solidity ^0.7.6; interface IFixedInflationFactory { event ExtensionCloned(address indexed); function fixedInflationDefaultExtension() external view returns (address); function feePercentageInfo() external view returns (uint256, address); function cloneFixedInflationDefaultExtension() external returns(address clonedExtension); } // File: contracts\fixed-inflation\IFixedInflation.sol //SPDX_License_Identifier: MIT pragma solidity ^0.7.6; //pragma abicoder v2; interface IFixedInflation { function setEntry(FixedInflationEntry memory entryData, FixedInflationOperation[] memory operations) external; function flushBack(address[] memory tokenAddresses) external; } // File: contracts\fixed-inflation\FixedInflation.sol //SPDX_License_Identifier: MIT pragma solidity ^0.7.6; //pragma abicoder v2; contract FixedInflation is IFixedInflation { event Executed(bool); uint256 public constant ONE_HUNDRED = 1e18; address public _factory; mapping(address => uint256) private _tokenIndex; address[] private _tokensToTransfer; uint256[] private _tokenTotalSupply; uint256[] private _tokenAmounts; uint256[] private _tokenMintAmounts; uint256[] private _tokenBalanceOfBefore; address public extension; FixedInflationEntry private _entry; FixedInflationOperation[] private _operations; function init(address _extension, bytes memory extensionPayload, FixedInflationEntry memory newEntry, FixedInflationOperation[] memory newOperations) public returns(bytes memory extensionInitResult) { require(_factory == address(0), "Already init"); require(_extension != address(0), "Blank extension"); _factory = msg.sender; extension = _extension; if(_extension == address(0)) { _extension = _clone(IFixedInflationFactory(_factory).fixedInflationDefaultExtension()); } if(keccak256(extensionPayload) != keccak256("")) { extensionInitResult = _call(_extension, extensionPayload); } _set(newEntry, newOperations); } receive() external payable { } modifier extensionOnly() { require(msg.sender == extension, "Unauthorized"); _; } modifier activeExtensionOnly() { require(IFixedInflationExtension(extension).active(), "not active extension"); _; } function entry() public view returns(FixedInflationEntry memory, FixedInflationOperation[] memory) { return (_entry, _operations); } function setEntry(FixedInflationEntry memory newEntry, FixedInflationOperation[] memory newOperations) public override extensionOnly { _set(newEntry, newOperations); } function nextBlock() public view returns(uint256) { return _entry.lastBlock == 0 ? block.number : (_entry.lastBlock + _entry.blockInterval); } function flushBack(address[] memory tokenAddresses) public override extensionOnly { for(uint256 i = 0; i < tokenAddresses.length; i++) { _transferTo(tokenAddresses[i], extension, _balanceOf(tokenAddresses[i])); } } function execute(bool earnByAmounts) public activeExtensionOnly returns(bool executed) { require(block.number >= nextBlock(), "Too early to execute"); require(_operations.length > 0, "No operations"); emit Executed(executed = _ensureExecute()); if(executed) { _entry.lastBlock = block.number; _execute(earnByAmounts, msg.sender); } else { try IFixedInflationExtension(extension).deactivationByFailure() { } catch { } } _clearVars(); } function _ensureExecute() private returns(bool) { _collectFixedInflationOperationsTokens(); try IFixedInflationExtension(extension).receiveTokens(_tokensToTransfer, _tokenAmounts, _tokenMintAmounts) { } catch { return false; } for(uint256 i = 0; i < _tokensToTransfer.length; i++) { if(_balanceOf(_tokensToTransfer[i]) != (_tokenBalanceOfBefore[i] + _tokenAmounts[i] + _tokenMintAmounts[i])) { return false; } } return true; } function _collectFixedInflationOperationsTokens() private { for(uint256 i = 0; i < _operations.length; i++) { FixedInflationOperation memory operation = _operations[i]; _collectTokenData(operation.ammPlugin != address(0) && operation.enterInETH ? address(0) : operation.inputTokenAddress, operation.inputTokenAmount, operation.inputTokenAmountIsPercentage, operation.inputTokenAmountIsByMint); } } function _collectTokenData(address inputTokenAddress, uint256 inputTokenAmount, bool inputTokenAmountIsPercentage, bool inputTokenAmountIsByMint) private { if(inputTokenAmount == 0) { return; } uint256 position = _tokenIndex[inputTokenAddress]; if(_tokensToTransfer.length == 0 || _tokensToTransfer[position] != inputTokenAddress) { _tokenIndex[inputTokenAddress] = (position = _tokensToTransfer.length); _tokensToTransfer.push(inputTokenAddress); _tokenAmounts.push(0); _tokenMintAmounts.push(0); _tokenBalanceOfBefore.push(_balanceOf(inputTokenAddress)); _tokenTotalSupply.push(0); } uint256 amount = _calculateTokenAmount(inputTokenAddress, inputTokenAmount, inputTokenAmountIsPercentage); if(inputTokenAmountIsByMint) { _tokenMintAmounts[position] = _tokenMintAmounts[position] + amount; } else { _tokenAmounts[position] = _tokenAmounts[position] + amount; } } function _balanceOf(address tokenAddress) private view returns (uint256) { if(tokenAddress == address(0)) { return address(this).balance; } return IERC20(tokenAddress).balanceOf(address(this)); } function _calculateTokenAmount(address tokenAddress, uint256 tokenAmount, bool tokenAmountIsPercentage) private returns(uint256) { if(!tokenAmountIsPercentage) { return tokenAmount; } uint256 tokenIndex = _tokenIndex[tokenAddress]; _tokenTotalSupply[tokenIndex] = _tokenTotalSupply[tokenIndex] != 0 ? _tokenTotalSupply[tokenIndex] : IERC20(tokenAddress).totalSupply(); return (_tokenTotalSupply[tokenIndex] * ((tokenAmount * 1e18) / ONE_HUNDRED)) / 1e18; } function _clearVars() private { for(uint256 i = 0; i < _tokensToTransfer.length; i++) { delete _tokenIndex[_tokensToTransfer[i]]; } delete _tokensToTransfer; delete _tokenTotalSupply; delete _tokenAmounts; delete _tokenMintAmounts; delete _tokenBalanceOfBefore; } function _execute(bool earnByInput, address rewardReceiver) private { for(uint256 i = 0 ; i < _operations.length; i++) { FixedInflationOperation memory operation = _operations[i]; uint256 amountIn = _calculateTokenAmount(operation.inputTokenAddress, operation.inputTokenAmount, operation.inputTokenAmountIsPercentage); if(operation.ammPlugin == address(0)) { _transferTo(operation.inputTokenAddress, amountIn, rewardReceiver, _entry.callerRewardPercentage, operation.receivers, operation.receiversPercentages); } else { _swap(operation, amountIn, rewardReceiver, _entry.callerRewardPercentage, earnByInput); } } } function _swap(FixedInflationOperation memory operation, uint256 amountIn, address rewardReceiver, uint256 callerRewardPercentage, bool earnByInput) private { uint256 inputReward = earnByInput ? _calculateRewardPercentage(amountIn, callerRewardPercentage) : 0; (address ethereumAddress,,) = IAMM(operation.ammPlugin).data(); if(operation.exitInETH) { operation.swapPath[operation.swapPath.length - 1] = ethereumAddress; } address outputToken = operation.swapPath[operation.swapPath.length - 1]; SwapData memory swapData = SwapData( operation.enterInETH, operation.exitInETH, operation.liquidityPoolAddresses, operation.swapPath, operation.enterInETH ? ethereumAddress : operation.inputTokenAddress, amountIn - inputReward, address(this) ); if(swapData.inputToken != address(0) && !swapData.enterInETH) { _safeApprove(swapData.inputToken, operation.ammPlugin, swapData.amount); } uint256 amountOut; if(swapData.enterInETH) { amountOut = IAMM(operation.ammPlugin).swapLiquidity{value : amountIn}(swapData); } else { amountOut = IAMM(operation.ammPlugin).swapLiquidity(swapData); } if(earnByInput) { _transferTo(operation.enterInETH ? address(0) : operation.inputTokenAddress, rewardReceiver, inputReward); } _transferTo(operation.exitInETH ? address(0) : outputToken, amountOut, earnByInput ? address(0) : rewardReceiver, earnByInput ? 0 : callerRewardPercentage, operation.receivers, operation.receiversPercentages); } function _calculateRewardPercentage(uint256 totalAmount, uint256 rewardPercentage) private pure returns (uint256) { return (totalAmount * ((rewardPercentage * 1e18) / ONE_HUNDRED)) / 1e18; } function _transferTo(address erc20TokenAddress, uint256 totalAmount, address rewardReceiver, uint256 callerRewardPercentage, address[] memory receivers, uint256[] memory receiversPercentages) private { uint256 availableAmount = totalAmount; uint256 currentPartialAmount = rewardReceiver == address(0) ? 0 : _calculateRewardPercentage(availableAmount, callerRewardPercentage); _transferTo(erc20TokenAddress, rewardReceiver, currentPartialAmount); availableAmount -= currentPartialAmount; (uint256 dfoFeePercentage, address dfoWallet) = IFixedInflationFactory(_factory).feePercentageInfo(); currentPartialAmount = dfoFeePercentage == 0 || dfoWallet == address(0) ? 0 : _calculateRewardPercentage(availableAmount, dfoFeePercentage); _transferTo(erc20TokenAddress, dfoWallet, currentPartialAmount); availableAmount -= currentPartialAmount; uint256 stillAvailableAmount = availableAmount; for(uint256 i = 0; i < receivers.length - 1; i++) { _transferTo(erc20TokenAddress, receivers[i], currentPartialAmount = _calculateRewardPercentage(stillAvailableAmount, receiversPercentages[i])); availableAmount -= currentPartialAmount; } _transferTo(erc20TokenAddress, receivers[receivers.length - 1], availableAmount); } function _transferTo(address erc20TokenAddress, address to, uint256 value) private { if(value == 0) { return; } if(erc20TokenAddress == address(0)) { (bool result,) = to.call{value:value}(""); require(result, "ETH transfer failed"); return; } _safeTransfer(erc20TokenAddress, to, value); } function _safeApprove(address erc20TokenAddress, address to, uint256 value) internal { bytes memory returnData = _call(erc20TokenAddress, abi.encodeWithSelector(IERC20(erc20TokenAddress).approve.selector, to, value)); require(returnData.length == 0 || abi.decode(returnData, (bool)), 'APPROVE_FAILED'); } function _safeTransfer(address erc20TokenAddress, address to, uint256 value) private { bytes memory returnData = _call(erc20TokenAddress, abi.encodeWithSelector(IERC20(erc20TokenAddress).transfer.selector, to, value)); require(returnData.length == 0 || abi.decode(returnData, (bool)), 'TRANSFER_FAILED'); } function _call(address location, bytes memory payload) private returns(bytes memory returnData) { assembly { let result := call(gas(), location, 0, add(payload, 0x20), mload(payload), 0, 0) let size := returndatasize() returnData := mload(0x40) mstore(returnData, size) let returnDataPayloadStart := add(returnData, 0x20) returndatacopy(returnDataPayloadStart, 0, size) mstore(0x40, add(returnDataPayloadStart, size)) switch result case 0 {revert(returnDataPayloadStart, size)} } } function _set(FixedInflationEntry memory fixedInflationEntry, FixedInflationOperation[] memory operations) private { require(keccak256(bytes(fixedInflationEntry.name)) != keccak256(""), "Name"); require(fixedInflationEntry.blockInterval > 0, "Interval"); require(fixedInflationEntry.callerRewardPercentage < ONE_HUNDRED, "Percentage"); _entry = fixedInflationEntry; _setOperations(operations); } function _setOperations(FixedInflationOperation[] memory operations) private { delete _operations; for(uint256 i = 0; i < operations.length; i++) { FixedInflationOperation memory operation = operations[i]; require(operation.receivers.length > 0, "No receivers"); require(operation.receiversPercentages.length == (operation.receivers.length - 1), "Last receiver percentage is calculated automatically"); uint256 percentage = 0; for(uint256 j = 0; j < operation.receivers.length - 1; j++) { percentage += operation.receiversPercentages[j]; require(operation.receivers[j] != address(0), "Void receiver"); } require(operation.receivers[operation.receivers.length - 1] != address(0), "Void receiver"); require(percentage < ONE_HUNDRED, "More than one hundred"); _operations.push(operation); } } /** @dev clones the input contract address and returns the copied contract address. * @param original address of the original contract. * @return copy copied contract address. */ function _clone(address original) private returns (address copy) { assembly { mstore( 0, or( 0x5880730000000000000000000000000000000000000000803b80938091923cF3, mul(original, 0x1000000000000000000) ) ) copy := create(0, 0, 32) switch extcodesize(copy) case 0 { invalid() } } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"","type":"bool"}],"name":"Executed","type":"event"},{"inputs":[],"name":"ONE_HUNDRED","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"entry","outputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"blockInterval","type":"uint256"},{"internalType":"uint256","name":"lastBlock","type":"uint256"},{"internalType":"uint256","name":"callerRewardPercentage","type":"uint256"}],"internalType":"struct FixedInflationEntry","name":"","type":"tuple"},{"components":[{"internalType":"address","name":"inputTokenAddress","type":"address"},{"internalType":"uint256","name":"inputTokenAmount","type":"uint256"},{"internalType":"bool","name":"inputTokenAmountIsPercentage","type":"bool"},{"internalType":"bool","name":"inputTokenAmountIsByMint","type":"bool"},{"internalType":"address","name":"ammPlugin","type":"address"},{"internalType":"address[]","name":"liquidityPoolAddresses","type":"address[]"},{"internalType":"address[]","name":"swapPath","type":"address[]"},{"internalType":"bool","name":"enterInETH","type":"bool"},{"internalType":"bool","name":"exitInETH","type":"bool"},{"internalType":"address[]","name":"receivers","type":"address[]"},{"internalType":"uint256[]","name":"receiversPercentages","type":"uint256[]"}],"internalType":"struct FixedInflationOperation[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"earnByAmounts","type":"bool"}],"name":"execute","outputs":[{"internalType":"bool","name":"executed","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"extension","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"tokenAddresses","type":"address[]"}],"name":"flushBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_extension","type":"address"},{"internalType":"bytes","name":"extensionPayload","type":"bytes"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"blockInterval","type":"uint256"},{"internalType":"uint256","name":"lastBlock","type":"uint256"},{"internalType":"uint256","name":"callerRewardPercentage","type":"uint256"}],"internalType":"struct FixedInflationEntry","name":"newEntry","type":"tuple"},{"components":[{"internalType":"address","name":"inputTokenAddress","type":"address"},{"internalType":"uint256","name":"inputTokenAmount","type":"uint256"},{"internalType":"bool","name":"inputTokenAmountIsPercentage","type":"bool"},{"internalType":"bool","name":"inputTokenAmountIsByMint","type":"bool"},{"internalType":"address","name":"ammPlugin","type":"address"},{"internalType":"address[]","name":"liquidityPoolAddresses","type":"address[]"},{"internalType":"address[]","name":"swapPath","type":"address[]"},{"internalType":"bool","name":"enterInETH","type":"bool"},{"internalType":"bool","name":"exitInETH","type":"bool"},{"internalType":"address[]","name":"receivers","type":"address[]"},{"internalType":"uint256[]","name":"receiversPercentages","type":"uint256[]"}],"internalType":"struct FixedInflationOperation[]","name":"newOperations","type":"tuple[]"}],"name":"init","outputs":[{"internalType":"bytes","name":"extensionInitResult","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"nextBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"blockInterval","type":"uint256"},{"internalType":"uint256","name":"lastBlock","type":"uint256"},{"internalType":"uint256","name":"callerRewardPercentage","type":"uint256"}],"internalType":"struct FixedInflationEntry","name":"newEntry","type":"tuple"},{"components":[{"internalType":"address","name":"inputTokenAddress","type":"address"},{"internalType":"uint256","name":"inputTokenAmount","type":"uint256"},{"internalType":"bool","name":"inputTokenAmountIsPercentage","type":"bool"},{"internalType":"bool","name":"inputTokenAmountIsByMint","type":"bool"},{"internalType":"address","name":"ammPlugin","type":"address"},{"internalType":"address[]","name":"liquidityPoolAddresses","type":"address[]"},{"internalType":"address[]","name":"swapPath","type":"address[]"},{"internalType":"bool","name":"enterInETH","type":"bool"},{"internalType":"bool","name":"exitInETH","type":"bool"},{"internalType":"address[]","name":"receivers","type":"address[]"},{"internalType":"uint256[]","name":"receiversPercentages","type":"uint256[]"}],"internalType":"struct FixedInflationOperation[]","name":"newOperations","type":"tuple[]"}],"name":"setEntry","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Deployed Bytecode
0x60806040526004361061008a5760003560e01c80639b8c7c22116100595780639b8c7c2214610133578063bfaa8cca14610155578063c5cc6b6a1461016a578063c854862b1461017f578063f811a30b1461019f57610091565b80632d5537b01461009657806367f239dd146100c157806383788fce146100e4578063972213ad1461010657610091565b3661009157005b600080fd5b3480156100a257600080fd5b506100ab6101cc565b6040516100b891906126e0565b60405180910390f35b3480156100cd57600080fd5b506100d66101db565b6040516100b8929190612a4f565b3480156100f057600080fd5b506100f96104ef565b6040516100b89190612c50565b34801561011257600080fd5b506101266101213660046124fe565b61050e565b6040516100b89190612787565b34801561013f57600080fd5b5061015361014e366004612536565b6106c0565b005b34801561016157600080fd5b506100f96106f8565b34801561017657600080fd5b506100ab610704565b34801561018b57600080fd5b5061015361019a3660046124cb565b610713565b3480156101ab57600080fd5b506101bf6101ba3660046123dc565b61079f565b6040516100b89190612792565b6007546001600160a01b031681565b6101e3611e6b565b604080516008805460a06020601f600260001961010060018716150201909416939093049283018190040284018101909452608083018181526060949293600c939092859284929091849184018282801561027f5780601f106102545761010080835404028352916020019161027f565b820191906000526020600020905b81548152906001019060200180831161026257829003601f168201915b505050505081526020016001820154815260200160028201548152602001600382015481525050915080805480602002602001604051908101604052809291908181526020016000905b828210156104e157600084815260209081902060408051610160810182526008860290920180546001600160a01b039081168452600182015484860152600282015460ff808216151586860152610100820416151560608601526201000090041660808401526003810180548351818702810187019094528084529394919360a08601939283018282801561038757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610369575b50505050508152602001600482018054806020026020016040519081016040528092919081815260200182805480156103e957602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116103cb575b5050509183525050600582015460ff8082161515602080850191909152610100909204161515604080840191909152600684018054825181850281018501909352808352606090940193919290919083018282801561047157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610453575b50505050508152602001600782018054806020026020016040519081016040528092919081815260200182805480156104c957602002820191906000526020600020905b8154815260200190600101908083116104b5575b505050505081525050815260200190600101906102c9565b505050509050915091509091565b600a546000901561050657600954600a5401610508565b435b90505b90565b6007546040805163017d862f60e11b815290516000926001600160a01b0316916302fb0c5e916004808301926020929190829003018186803b15801561055357600080fd5b505afa158015610567573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061058b919061251a565b6105b05760405162461bcd60e51b81526004016105a7906127a5565b60405180910390fd5b6105b86104ef565b4310156105d75760405162461bcd60e51b81526004016105a790612a21565b600c546105f65760405162461bcd60e51b81526004016105a7906128f0565b7f80e57eda879f13a99b66f28d0393488a683e123e369db82e85ccc3dcb2fd6cb261061f6108f0565b91508160405161062f9190612787565b60405180910390a180156106505743600a5561064b8233610a07565b6106b3565b600760009054906101000a90046001600160a01b03166001600160a01b031663a65b99086040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156106a057600080fd5b505af19250505080156106b1575060015b505b6106bb610c9c565b919050565b6007546001600160a01b031633146106ea5760405162461bcd60e51b81526004016105a7906127d3565b6106f48282610d26565b5050565b670de0b6b3a764000081565b6000546001600160a01b031681565b6007546001600160a01b0316331461073d5760405162461bcd60e51b81526004016105a7906127d3565b60005b81518110156106f45761079782828151811061075857fe5b6020026020010151600760009054906101000a90046001600160a01b031661079285858151811061078557fe5b6020026020010151610e02565b610e9b565b600101610740565b6000546060906001600160a01b0316156107cb5760405162461bcd60e51b81526004016105a7906129a6565b6001600160a01b0385166107f15760405162461bcd60e51b81526004016105a7906128a3565b600080546001600160a01b03199081163317909155600780546001600160a01b0388169216821790556108a457600054604080516354c05cef60e11b815290516108a1926001600160a01b03169163a980b9de916004808301926020929190829003018186803b15801561086457600080fd5b505afa158015610878573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089c91906123c0565b610f40565b94505b835160208501207fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470146108de576108db8585610f82565b90505b6108e88383610d26565b949350505050565b60006108fa610fc4565b60075460405163eb26061960e01b81526001600160a01b039091169063eb2606199061093090600290600490600590820161270d565b600060405180830381600087803b15801561094a57600080fd5b505af192505050801561095b575060015b6109675750600061050b565b60005b6002548110156109ff576005818154811061098157fe5b90600052602060002001546004828154811061099957fe5b9060005260206000200154600683815481106109b157fe5b906000526020600020015401016109e8600283815481106109ce57fe5b6000918252602090912001546001600160a01b0316610e02565b146109f757600091505061050b565b60010161096a565b506001905090565b60005b600c54811015610c97576000600c8281548110610a2357fe5b60009182526020918290206040805161016081018252600890930290910180546001600160a01b039081168452600182015484860152600282015460ff808216151586860152610100820416151560608601526201000090041660808401526003810180548351818702810187019094528084529394919360a086019392830182828015610ada57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610abc575b5050505050815260200160048201805480602002602001604051908101604052809291908181526020018280548015610b3c57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b1e575b5050509183525050600582015460ff80821615156020808501919091526101009092041615156040808401919091526006840180548251818502810185019093528083526060909401939192909190830182828015610bc457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ba6575b5050505050815260200160078201805480602002602001604051908101604052809291908181526020018280548015610c1c57602002820191906000526020600020905b815481526020019060010190808311610c08575b50505050508152505090506000610c4082600001518360200151846040015161123d565b60808301519091506001600160a01b0316610c7b57610c7682600001518286600860030154866101200151876101400151611367565b610c8d565b610c8d828286600860030154896114e2565b5050600101610a0a565b505050565b60005b600254811015610ce7576001600060028381548110610cba57fe5b60009182526020808320909101546001600160a01b03168352820192909252604001812055600101610c9f565b50610cf460026000611e93565b610d0060036000611e93565b610d0c60046000611e93565b610d1860056000611e93565b610d2460066000611e93565b565b815180516020909101207fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4701415610d6f5760405162461bcd60e51b81526004016105a790612917565b6000826020015111610d935760405162461bcd60e51b81526004016105a790612984565b670de0b6b3a7640000826060015110610dbe5760405162461bcd60e51b81526004016105a7906128cc565b815180518391600891610dd8918391602090910190611eb1565b5060208201516001820155604082015160028201556060909101516003909101556106f48161181d565b60006001600160a01b038216610e195750476106bb565b6040516370a0823160e01b81526001600160a01b038316906370a0823190610e459030906004016126e0565b60206040518083038186803b158015610e5d57600080fd5b505afa158015610e71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e959190612597565b92915050565b80610ea557610c97565b6001600160a01b038316610f35576000826001600160a01b031682604051610ecc9061050b565b60006040518083038185875af1925050503d8060008114610f09576040519150601f19603f3d011682016040523d82523d6000602084013e610f0e565b606091505b5050905080610f2f5760405162461bcd60e51b81526004016105a7906129cc565b50610c97565b610c97838383611b55565b60006901000000000000000000820268803b80938091923cf36258807360e81b01176000526020600080f09050803b8015610f7a57610f7c565bfe5b50919050565b60606000808351602085016000875af13d604051925080835260208301816000823e808201604052828015610fb657610fba565b8282fd5b5050505092915050565b60005b600c5481101561123a576000600c8281548110610fe057fe5b60009182526020918290206040805161016081018252600890930290910180546001600160a01b039081168452600182015484860152600282015460ff808216151586860152610100820416151560608601526201000090041660808401526003810180548351818702810187019094528084529394919360a08601939283018282801561109757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611079575b50505050508152602001600482018054806020026020016040519081016040528092919081815260200182805480156110f957602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116110db575b5050509183525050600582015460ff8082161515602080850191909152610100909204161515604080840191909152600684018054825181850281018501909352808352606090940193919290919083018282801561118157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611163575b50505050508152602001600782018054806020026020016040519081016040528092919081815260200182805480156111d957602002820191906000526020600020905b8154815260200190600101908083116111c5575b505050505081525050905061123160006001600160a01b031682608001516001600160a01b03161415801561120f57508160e001515b61121a57815161121d565b60005b826020015183604001518460600151611bf0565b50600101610fc7565b50565b60008161124b575081611360565b6001600160a01b038416600090815260016020526040902054600380548290811061127257fe5b9060005260206000200154600014156112fb57846001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156112be57600080fd5b505afa1580156112d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f69190612597565b611314565b6003818154811061130857fe5b90600052602060002001545b6003828154811061132157fe5b600091825260209091200155670de0b6b3a764000080858102046003838154811061134857fe5b9060005260206000200154028161135b57fe5b049150505b9392505050565b8460006001600160a01b03861615611388576113838286611dec565b61138b565b60005b9050611398888783610e9b565b6000805460408051631f9de8b560e21b81528151958590039584936001600160a01b031692637e77a2d49260048082019391829003018186803b1580156113de57600080fd5b505afa1580156113f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141691906125af565b91509150816000148061143057506001600160a01b038116155b6114435761143e8483611dec565b611446565b60005b92506114538a8285610e9b565b92829003928360005b60018851038110156114b2576114a58c89838151811061147857fe5b602002602001015161149d858b868151811061149057fe5b6020026020010151611dec565b975087610e9b565b948490039460010161145c565b506114d58b8860018a5103815181106114c757fe5b602002602001015187610e9b565b5050505050505050505050565b6000816114f05760006114fa565b6114fa8584611dec565b9050600086608001516001600160a01b03166373d4a13a6040518163ffffffff1660e01b815260040160606040518083038186803b15801561153b57600080fd5b505afa15801561154f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115739190612489565b50509050866101000151156115bb5760c08701518051829190600019810190811061159a57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250505b60c087015180516000919060001981019081106115d457fe5b6020026020010151905060006040518060e001604052808a60e00151151581526020018a6101000151151581526020018a60a0015181526020018a60c0015181526020018a60e00151611628578a5161162a565b845b6001600160a01b03168152602001858a038152602001306001600160a01b0316815250905060006001600160a01b031681608001516001600160a01b03161415801561167557508051155b156116915761169181608001518a608001518360a00151611e0d565b8051600090156117255789608001516001600160a01b0316635ff94cbf8a846040518363ffffffff1660e01b81526004016116cc9190612bc5565b6020604051808303818588803b1580156116e557600080fd5b505af11580156116f9573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061171e9190612597565b90506117aa565b89608001516001600160a01b0316635ff94cbf836040518263ffffffff1660e01b81526004016117559190612bc5565b602060405180830381600087803b15801561176f57600080fd5b505af1158015611783573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a79190612597565b90505b85156117cd576117cd8a60e001516117c3578a516117c6565b60005b8987610e9b565b6118118a61010001516117e057836117e3565b60005b82886117ef578a6117f2565b60005b896117fd578a611800565b60005b8e61012001518f6101400151611367565b50505050505050505050565b611829600c6000611f3d565b60005b81518110156106f457600082828151811061184357fe5b60200260200101519050600081610120015151116118735760405162461bcd60e51b81526004016105a79061295e565b6001816101200151510381610140015151146118a15760405162461bcd60e51b81526004016105a79061284f565b6000805b600183610120015151038110156119265782610140015181815181106118c757fe5b60200260200101518201915060006001600160a01b031683610120015182815181106118ef57fe5b60200260200101516001600160a01b0316141561191e5760405162461bcd60e51b81526004016105a7906127f9565b6001016118a5565b50610120820151805160009190600019810190811061194157fe5b60200260200101516001600160a01b031614156119705760405162461bcd60e51b81526004016105a7906127f9565b670de0b6b3a764000081106119975760405162461bcd60e51b81526004016105a790612820565b600c8054600181018255600091909152825160089091027fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7810180546001600160a01b039384166001600160a01b03199091161781556020808601517fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c884015560408601517fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c984018054606089015160808a0151909716620100000262010000600160b01b03199715156101000261ff001994151560ff19909316929092179390931617959095161790935560a0850151805186949293611abe937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8ca909101920190611f5e565b5060c08201518051611ada916004840191602090910190611f5e565b5060e08201516005820180546101008086015115150261ff001993151560ff1990921691909117929092169190911790556101208201518051611b27916006840191602090910190611f5e565b506101408201518051611b44916007840191602090910190611fb3565b50506001909301925061182c915050565b6000611bad8463a9059cbb60e01b8585604051602401611b769291906126f4565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610f82565b9050805160001480611bce575080806020019051810190611bce919061251a565b611bea5760405162461bcd60e51b81526004016105a790612935565b50505050565b82611bfa57611bea565b6001600160a01b0384166000908152600160205260409020546002541580611c4c5750846001600160a01b031660028281548110611c3457fe5b6000918252602090912001546001600160a01b031614155b15611d635750600280546001600160a01b038616600081815260016020819052604082208490558084019094557f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace830180546001600160a01b031916909217909155600480548085019091557f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0181905560058054938401815581527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0909201919091556006611d1b86610e02565b8154600181810184556000938452602084209091019190915560038054918201815582527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01555b6000611d7086868661123d565b90508215611db0578060058381548110611d8657fe5b90600052602060002001540160058381548110611d9f57fe5b600091825260209091200155611de4565b8060048381548110611dbe57fe5b90600052602060002001540160048381548110611dd757fe5b6000918252602090912001555b505050505050565b6000670de0b6b3a76400008083810204840281611e0557fe5b049392505050565b6000611e2e8463095ea7b360e01b8585604051602401611b769291906126f4565b9050805160001480611e4f575080806020019051810190611e4f919061251a565b611bea5760405162461bcd60e51b81526004016105a7906129f9565b6040518060800160405280606081526020016000815260200160008152602001600081525090565b508054600082559060005260206000209081019061123a9190611fed565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282611ee75760008555611f2d565b82601f10611f0057805160ff1916838001178555611f2d565b82800160010185558215611f2d579182015b82811115611f2d578251825591602001919060010190611f12565b50611f39929150611fed565b5090565b508054600082556008029060005260206000209081019061123a9190612002565b828054828255906000526020600020908101928215611f2d579160200282015b82811115611f2d57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611f7e565b828054828255906000526020600020908101928215611f2d5791602002820182811115611f2d578251825591602001919060010190611f12565b5b80821115611f395760008155600101611fee565b80821115611f395780546001600160a01b03191681556000600182018190556002820180546001600160b01b03191690556120406003830182611e93565b61204e600483016000611e93565b60058201805461ffff19169055612069600683016000611e93565b612077600783016000611e93565b50600801612002565b600067ffffffffffffffff83111561209457fe5b6120a7601f8401601f1916602001612c59565b90508281528383830111156120bb57600080fd5b828260208301376000602084830101529392505050565b80356106bb81612c9b565b600082601f8301126120ed578081fd5b813560206121026120fd83612c7d565b612c59565b828152818101908583018385028701840188101561211e578586fd5b855b8581101561214557813561213381612c9b565b84529284019290840190600101612120565b5090979650505050505050565b600082601f830112612162578081fd5b813560206121726120fd83612c7d565b82815281810190858301855b85811015612145578135880161016080601f19838d0301121561219f578889fd5b6121a881612c59565b6121b38884016120d2565b81526040830135888201526121ca60608401612325565b60408201526121db60808401612325565b60608201526121ec60a084016120d2565b608082015260c083013567ffffffffffffffff8082111561220b578b8cfd5b6122198e8b848801016120dd565b60a084015260e0850135915080821115612231578b8cfd5b61223f8e8b848801016120dd565b60c08401526122516101008601612325565b60e08401526122636101208601612325565b6101008401526101409150818501358181111561227e578c8dfd5b61228c8f8c838901016120dd565b610120850152509284013592808411156122a4578b8cfd5b506122b38d8a858701016122cb565b9082015286525050928401929084019060010161217e565b600082601f8301126122db578081fd5b813560206122eb6120fd83612c7d565b8281528181019085830183850287018401881015612307578586fd5b855b8581101561214557813584529284019290840190600101612309565b80356106bb81612cb0565b600060808284031215612341578081fd5b6040516080810167ffffffffffffffff828210818311171561235f57fe5b81604052829350843591508082111561237757600080fd5b508301601f8101851361238957600080fd5b61239885823560208401612080565b8252506020830135602082015260408301356040820152606083013560608201525092915050565b6000602082840312156123d1578081fd5b815161136081612c9b565b600080600080608085870312156123f1578283fd5b84356123fc81612c9b565b9350602085013567ffffffffffffffff80821115612418578485fd5b818701915087601f83011261242b578485fd5b61243a88833560208501612080565b9450604087013591508082111561244f578384fd5b61245b88838901612330565b93506060870135915080821115612470578283fd5b5061247d87828801612152565b91505092959194509250565b60008060006060848603121561249d578283fd5b83516124a881612c9b565b6020850151604086015191945092506124c081612cb0565b809150509250925092565b6000602082840312156124dc578081fd5b813567ffffffffffffffff8111156124f2578182fd5b6108e8848285016120dd565b60006020828403121561250f578081fd5b813561136081612cb0565b60006020828403121561252b578081fd5b815161136081612cb0565b60008060408385031215612548578182fd5b823567ffffffffffffffff8082111561255f578384fd5b61256b86838701612330565b93506020850135915080821115612580578283fd5b5061258d85828601612152565b9150509250929050565b6000602082840312156125a8578081fd5b5051919050565b600080604083850312156125c1578182fd5b8251915060208301516125d381612c9b565b809150509250929050565b6001600160a01b03169052565b6000815180845260208085019450808401835b838110156126235781516001600160a01b0316875295820195908201906001016125fe565b509495945050505050565b6000815180845260208085019450808401835b8381101561262357815187529582019590820190600101612641565b6000815480845260208085019450838352808320835b8381101561262357815487529582019560019182019101612673565b15159052565b60008151808452815b818110156126ba5760208185018101518683018201520161269e565b818111156126cb5782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6000606082016060835280865480835260808501915087845260209250828420845b828110156127545781546001600160a01b03168452928401926001918201910161272f565b50505083810382850152612768818761265d565b915050828103604084015261277d818561265d565b9695505050505050565b901515815260200190565b6000602082526113606020830184612695565b6020808252601490820152733737ba1030b1ba34bb329032bc3a32b739b4b7b760611b604082015260600190565b6020808252600c908201526b155b985d5d1a1bdc9a5e995960a21b604082015260600190565b6020808252600d908201526c2b37b4b2103932b1b2b4bb32b960991b604082015260600190565b602080825260159082015274135bdc99481d1a185b881bdb99481a1d5b991c9959605a1b604082015260600190565b60208082526034908201527f4c6173742072656365697665722070657263656e746167652069732063616c63604082015273756c61746564206175746f6d61746963616c6c7960601b606082015260800190565b6020808252600f908201526e213630b7359032bc3a32b739b4b7b760891b604082015260600190565b6020808252600a908201526950657263656e7461676560b01b604082015260600190565b6020808252600d908201526c4e6f206f7065726174696f6e7360981b604082015260600190565b6020808252600490820152634e616d6560e01b604082015260600190565b6020808252600f908201526e1514905394d1915497d19052531151608a1b604082015260600190565b6020808252600c908201526b4e6f2072656365697665727360a01b604082015260600190565b602080825260089082015267125b9d195c9d985b60c21b604082015260600190565b6020808252600c908201526b105b1c9958591e481a5b9a5d60a21b604082015260600190565b602080825260139082015272115512081d1c985b9cd9995c8819985a5b1959606a1b604082015260600190565b6020808252600e908201526d1054141493d59157d1905253115160921b604082015260600190565b602080825260149082015273546f6f206561726c7920746f206578656375746560601b604082015260600190565b6000604080835260c0855160808084870152612a6d83870183612695565b9150602080890151606081818a0152868b0151848a0152808b0151915060a082818b0152898603848b01528592508a51808752848701935084858202880101858d018b5b83811015612bb157601f198a84030187528151610160612ad28583516125de565b898201518a8601528d820151612aea8f87018261268f565b5087820151612afb8987018261268f565b508a820151612b0c8c8701826125de565b50868201518188870152612b22828701826125eb565b9150508c8201518582038e870152612b3a82826125eb565b91505060e080830151612b4f8288018261268f565b505061010080830151612b648288018261268f565b50506101208083015186830382880152612b7e83826125eb565b925050506101408083015192508582038187015250612b9d818361262e565b988a01989450505090870190600101612ab1565b50909e9d5050505050505050505050505050565b600060208252825115156020830152602083015115156040830152604083015160e06060840152612bfa6101008401826125eb565b90506060840151601f19848303016080850152612c1782826125eb565b91505060018060a01b0360808501511660a084015260a084015160c084015260c0840151612c4860e08501826125de565b509392505050565b90815260200190565b60405181810167ffffffffffffffff81118282101715612c7557fe5b604052919050565b600067ffffffffffffffff821115612c9157fe5b5060209081020190565b6001600160a01b038116811461123a57600080fd5b801515811461123a57600080fdfea2646970667358221220be5f2d438a85e1c4931bd09dace6f37e3da1cdcbbed2808ff1ac0b6fe72e25cf64736f6c63430007060033
Deployed Bytecode Sourcemap
6152:14042:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6582:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7748:146;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;8091:156::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;8513:567::-;;;;;;;;;;-1:-1:-1;8513:567:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;7902:181::-;;;;;;;;;;-1:-1:-1;7902:181:0;;;;;:::i;:::-;;:::i;:::-;;6233:42;;;;;;;;;;;;;:::i;6284:23::-;;;;;;;;;;;;;:::i;8255:250::-;;;;;;;;;;-1:-1:-1;8255:250:0;;;;;:::i;:::-;;:::i;6710:728::-;;;;;;;;;;-1:-1:-1;6710:728:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;6582:24::-;;;-1:-1:-1;;;;;6582:24:0;;:::o;7748:146::-;7785:26;;:::i;:::-;7858:28;;;7866:6;7858:28;;;;;;-1:-1:-1;;7858:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7813:32;;7866:6;;7874:11;;7858:28;;7866:6;;7858:28;;;;7866:6;;7858:28;;7866:6;7858:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7858:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7858:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7858:28:0;;;;;;;;;;;;;;;;-1:-1:-1;;;7858:28:0;;;-1:-1:-1;;7858:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7858:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7748:146;;:::o;8091:156::-;8159:16;;8132:7;;8159:21;:80;;8218:20;;8199:16;;:39;8159:80;;;8183:12;8159:80;8152:87;;8091:156;;:::o;8513:567::-;7676:9;;7651:44;;;-1:-1:-1;;;7651:44:0;;;;8585:13;;-1:-1:-1;;;;;7676:9:0;;7651:42;;:44;;;;;;;;;;;;;;7676:9;7651:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7643:77;;;;-1:-1:-1;;;7643:77:0;;;;;;;:::i;:::-;;;;;;;;;8635:11:::1;:9;:11::i;:::-;8619:12;:27;;8611:60;;;;-1:-1:-1::0;;;8611:60:0::1;;;;;;;:::i;:::-;8690:11;:18:::0;8682:48:::1;;;;-1:-1:-1::0;;;8682:48:0::1;;;;;;;:::i;:::-;8746:37;8766:16;:14;:16::i;:::-;8755:27;;;8746:37;;;;;;:::i;:::-;;;;;;;;8797:8;8794:256;;;8841:12;8822:16:::0;:31;8868:35:::1;8877:13:::0;8892:10:::1;8868:8;:35::i;:::-;8794:256;;;8965:9;;;;;;;;;-1:-1:-1::0;;;;;8965:9:0::1;-1:-1:-1::0;;;;;8940:57:0::1;;:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;8936:103:::0;::::1;9060:12;:10;:12::i;:::-;8513:567:::0;;;:::o;7902:181::-;7547:9;;-1:-1:-1;;;;;7547:9:0;7533:10;:23;7525:48;;;;-1:-1:-1;;;7525:48:0;;;;;;;:::i;:::-;8046:29:::1;8051:8;8061:13;8046:4;:29::i;:::-;7902:181:::0;;:::o;6233:42::-;6271:4;6233:42;:::o;6284:23::-;;;-1:-1:-1;;;;;6284:23:0;;:::o;8255:250::-;7547:9;;-1:-1:-1;;;;;7547:9:0;7533:10;:23;7525:48;;;;-1:-1:-1;;;7525:48:0;;;;;;;:::i;:::-;8352:9:::1;8348:150;8371:14;:21;8367:1;:25;8348:150;;;8414:72;8426:14;8441:1;8426:17;;;;;;;;;;;;;;8445:9;;;;;;;;;-1:-1:-1::0;;;;;8445:9:0::1;8456:29;8467:14;8482:1;8467:17;;;;;;;;;;;;;;8456:10;:29::i;:::-;8414:11;:72::i;:::-;8394:3;;8348:150;;6710:728:::0;6948:1;6928:8;6875:32;;-1:-1:-1;;;;;6928:8:0;:22;6920:47;;;;-1:-1:-1;;;6920:47:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6986:24:0;;6978:52;;;;-1:-1:-1;;;6978:52:0;;;;;;;:::i;:::-;7041:8;:21;;-1:-1:-1;;;;;;7041:21:0;;;7052:10;7041:21;;;;7073:9;:22;;-1:-1:-1;;;;;7073:22:0;;;;;;;;7106:142;;7193:8;;7170:65;;;-1:-1:-1;;;7170:65:0;;;;7163:73;;-1:-1:-1;;;;;7193:8:0;;7170:63;;:65;;;;;;;;;;;;;;7193:8;7170:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7163:6;:73::i;:::-;7150:86;;7106:142;7261:27;;;;;;7292:13;7261:44;7258:133;;7344:35;7350:10;7362:16;7344:5;:35::i;:::-;7322:57;;7258:133;7401:29;7406:8;7416:13;7401:4;:29::i;:::-;6710:728;;;;;;:::o;9088:550::-;9130:4;9147:40;:38;:40::i;:::-;9227:9;;9202:102;;-1:-1:-1;;;9202:102:0;;-1:-1:-1;;;;;9227:9:0;;;;9202:49;;:102;;9252:17;;9271:13;;9286:17;;9202:102;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9198:165;;-1:-1:-1;9346:5:0;9339:12;;9198:165;9377:9;9373:236;9396:17;:24;9392:28;;9373:236;;;9528:17;9546:1;9528:20;;;;;;;;;;;;;;;;9509:13;9523:1;9509:16;;;;;;;;;;;;;;;;9482:21;9504:1;9482:24;;;;;;;;;;;;;;;;:43;:66;9445:32;9456:17;9474:1;9456:20;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9456:20:0;9445:10;:32::i;:::-;:104;9442:156;;9577:5;9570:12;;;;;9442:156;9422:3;;9373:236;;;;9626:4;9619:11;;9088:550;:::o;12306:735::-;12389:9;12385:649;12409:11;:18;12405:22;;12385:649;;;12449:40;12492:11;12504:1;12492:14;;;;;;;;;;;;;;;;;12449:57;;;;;;;;12492:14;;;;;;;12449:57;;-1:-1:-1;;;;;12449:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12492:14;;12449:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12449:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12449:57:0;;;;;;;;;;;;;;;;-1:-1:-1;;;12449:57:0;;;-1:-1:-1;;12449:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12449:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12521:16;12540:118;12562:9;:27;;;12591:9;:26;;;12619:9;:38;;;12540:21;:118::i;:::-;12676:19;;;;12521:137;;-1:-1:-1;;;;;;12676:33:0;12673:350;;12730:150;12742:9;:27;;;12771:8;12781:14;12797:6;:29;;;12828:9;:19;;;12849:9;:30;;;12730:11;:150::i;:::-;12673:350;;;12921:86;12927:9;12938:8;12948:14;12964:6;:29;;;12995:11;12921:5;:86::i;:::-;-1:-1:-1;;12429:3:0;;12385:649;;;;12306:735;;:::o;11954:344::-;11999:9;11995:121;12018:17;:24;12014:28;;11995:121;;;12071:11;:33;12083:17;12101:1;12083:20;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12083:20:0;12071:33;;;;;;;;;;;;12064:40;12083:20;12044:3;11995:121;;;-1:-1:-1;12126:24:0;12133:17;;12126:24;:::i;:::-;12161;12168:17;;12161:24;:::i;:::-;12196:20;12203:13;;12196:20;:::i;:::-;12227:24;12234:17;;12227:24;:::i;:::-;12262:28;12269:21;;12262:28;:::i;:::-;11954:344::o;18057:445::-;18207:24;;18191:42;;;;;;;18237:13;18191:59;;18183:76;;;;-1:-1:-1;;;18183:76:0;;;;;;;:::i;:::-;18314:1;18278:19;:33;;;:37;18270:58;;;;-1:-1:-1;;;18270:58:0;;;;;;;:::i;:::-;6271:4;18347:19;:42;;;:56;18339:79;;;;-1:-1:-1;;;18339:79:0;;;;;;;:::i;:::-;18429:28;;;;18438:19;;18429:6;;:28;;:6;;:28;;;;;;:::i;:::-;-1:-1:-1;18429:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;18468:26;18483:10;18468:14;:26::i;11179:240::-;11243:7;-1:-1:-1;;;;;11266:26:0;;11263:86;;-1:-1:-1;11316:21:0;11309:28;;11263:86;11366:45;;-1:-1:-1;;;11366:45:0;;-1:-1:-1;;;;;11366:30:0;;;;;:45;;11405:4;;11366:45;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11359:52;11179:240;-1:-1:-1;;11179:240:0:o;16370:391::-;16467:10;16464:48;;16494:7;;16464:48;-1:-1:-1;;;;;16525:31:0;;16522:178;;16574:11;16590:2;-1:-1:-1;;;;;16590:7:0;16604:5;16590:24;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16573:41;;;16637:6;16629:38;;;;-1:-1:-1;;;16629:38:0;;;;;;;:::i;:::-;16682:7;;;16522:178;16710:43;16724:17;16743:2;16747:5;16710:13;:43::i;19692:499::-;19743:12;19965:21;19955:8;19951:36;-1:-1:-1;;;;;19837:169:0;19817:1;19792:229;20056:2;20053:1;20050;20043:16;20035:24;-1:-1:-1;20080:17:0;;20115:58;;;;20073:100;;20115:58;20145:9;20073:100;;19777:407;;;:::o;17441:608::-;17512:23;17650:1;17647;17637:7;17631:14;17624:4;17615:7;17611:18;17608:1;17598:8;17591:5;17586:66;17678:16;17728:4;17722:11;17708:25;;17766:4;17754:10;17747:24;17831:4;17819:10;17815:21;17892:4;17889:1;17865:22;17850:47;17924:33;;;17918:4;17911:47;17979:6;17986:45;;;;17972:59;;17986:45;18025:4;18001:22;17994:36;17972:59;;;;;17557:485;;;;:::o;9646:446::-;9719:9;9715:370;9738:11;:18;9734:22;;9715:370;;;9778:40;9821:11;9833:1;9821:14;;;;;;;;;;;;;;;;;9778:57;;;;;;;;9821:14;;;;;;;9778:57;;-1:-1:-1;;;;;9778:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9821:14;;9778:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9778:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9778:57:0;;;;;;;;;;;;;;;;-1:-1:-1;;;9778:57:0;;;-1:-1:-1;;9778:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9778:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9850:223;9899:1;-1:-1:-1;;;;;9868:33:0;:9;:19;;;-1:-1:-1;;;;;9868:33:0;;;:57;;;;;9905:9;:20;;;9868:57;:100;;9941:27;;9868:100;;;9936:1;9868:100;9970:9;:26;;;9998:9;:38;;;10038:9;:34;;;9850:17;:223::i;:::-;-1:-1:-1;9758:3:0;;9715:370;;;;9646:446::o;11427:519::-;11547:7;11571:23;11567:74;;-1:-1:-1;11618:11:0;11611:18;;11567:74;-1:-1:-1;;;;;11672:25:0;;11651:18;11672:25;;;:11;:25;;;;;;11740:17;:29;;11672:25;;11740:29;;;;;;;;;;;;;;11773:1;11740:34;;:103;;11816:12;-1:-1:-1;;;;;11809:32:0;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11740:103;;;11777:17;11795:10;11777:29;;;;;;;;;;;;;;;;11740:103;11708:17;11726:10;11708:29;;;;;;;;;;;;;;;;;:135;11934:4;;11896:18;;;11895:34;11862:17;11880:10;11862:29;;;;;;;;;;;;;;;;:68;11861:77;;;;;;11854:84;;;11427:519;;;;;;:::o;15007:1355::-;15244:11;15218:23;-1:-1:-1;;;;;15299:28:0;;;:102;;15334:67;15361:15;15378:22;15334:26;:67::i;:::-;15299:102;;;15330:1;15299:102;15268:133;;15412:68;15424:17;15443:14;15459:20;15412:11;:68::i;:::-;15544:24;15614:8;;15591:52;;;-1:-1:-1;;;15591:52:0;;;;15491:39;;;;;15544:24;;-1:-1:-1;;;;;15614:8:0;;15591:50;;:52;;;;;;;;;;;15614:8;15591:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15543:100;;;;15677:16;15697:1;15677:21;:48;;;-1:-1:-1;;;;;;15702:23:0;;;15677:48;:116;;15732:61;15759:15;15776:16;15732:26;:61::i;:::-;15677:116;;;15728:1;15677:116;15654:139;;15804:63;15816:17;15835:9;15846:20;15804:11;:63::i;:::-;15878:39;;;;;;15930:28;15989:273;16031:1;16012:9;:16;:20;16008:1;:24;15989:273;;;16054:142;16066:17;16085:9;16095:1;16085:12;;;;;;;;;;;;;;16122:73;16149:20;16171;16192:1;16171:23;;;;;;;;;;;;;;16122:26;:73::i;:::-;16099:96;;;16054:11;:142::i;:::-;16211:39;;;;;16034:3;;15989:273;;;;16274:80;16286:17;16305:9;16334:1;16315:9;:16;:20;16305:31;;;;;;;;;;;;;;16338:15;16274:11;:80::i;:::-;15007:1355;;;;;;;;;;;:::o;13049:1738::-;13219:19;13241:11;:78;;13318:1;13241:78;;;13255:60;13282:8;13292:22;13255:26;:60::i;:::-;13219:100;;13333:23;13367:9;:19;;;-1:-1:-1;;;;;13362:30:0;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13332:62;;;;13410:9;:19;;;13407:118;;;13446:18;;;;13465:25;;13498:15;;13446:18;-1:-1:-1;;13465:29:0;;;13446:49;;;;;;;;;;;:67;-1:-1:-1;;;;;13446:67:0;;;-1:-1:-1;;;;;13446:67:0;;;;;13407:118;13559:18;;;;13578:25;;13537:19;;13559:18;-1:-1:-1;;13578:29:0;;;13559:49;;;;;;;;;;;;13537:71;;13621:24;13648:316;;;;;;;;13671:9;:20;;;13648:316;;;;;;13706:9;:19;;;13648:316;;;;;;13740:9;:32;;;13648:316;;;;13787:9;:18;;;13648:316;;;;13820:9;:20;;;:68;;13861:27;;13820:68;;;13843:15;13820:68;-1:-1:-1;;;;;13648:316:0;;;;;13914:11;13903:8;:22;13648:316;;;;13948:4;-1:-1:-1;;;;;13648:316:0;;;;13621:343;;14011:1;-1:-1:-1;;;;;13980:33:0;:8;:19;;;-1:-1:-1;;;;;13980:33:0;;;:57;;;;-1:-1:-1;14018:19:0;;14017:20;13980:57;13977:160;;;14054:71;14067:8;:19;;;14088:9;:19;;;14109:8;:15;;;14054:12;:71::i;:::-;14180:19;;14149:17;;14177:224;;;14233:9;:19;;;-1:-1:-1;;;;;14228:39:0;;14276:8;14286;14228:67;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14216:79;;14177:224;;;14345:9;:19;;;-1:-1:-1;;;;;14340:39:0;;14380:8;14340:49;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14328:61;;14177:224;14416:11;14413:148;;;14444:105;14456:9;:20;;;:63;;14492:27;;14456:63;;;14487:1;14456:63;14521:14;14537:11;14444;:105::i;:::-;14571:208;14583:9;:19;;;:46;;14618:11;14583:46;;;14613:1;14583:46;14631:9;14642:11;:41;;14669:14;14642:41;;;14664:1;14642:41;14685:11;:40;;14703:22;14685:40;;;14699:1;14685:40;14727:9;:19;;;14748:9;:30;;;14571:11;:208::i;:::-;13049:1738;;;;;;;;;;:::o;18510:972::-;18598:18;18605:11;;18598:18;:::i;:::-;18631:9;18627:848;18650:10;:17;18646:1;:21;18627:848;;;18689:40;18732:10;18743:1;18732:13;;;;;;;;;;;;;;18689:56;;18797:1;18768:9;:19;;;:26;:30;18760:55;;;;-1:-1:-1;;;18760:55:0;;;;;;;:::i;:::-;18909:1;18880:9;:19;;;:26;:30;18838:9;:30;;;:37;:73;18830:138;;;;-1:-1:-1;;;18830:138:0;;;;;;;:::i;:::-;18983:18;19024:9;19020:223;19072:1;19043:9;:19;;;:26;:30;19039:1;:34;19020:223;;;19113:9;:30;;;19144:1;19113:33;;;;;;;;;;;;;;19099:47;;;;19207:1;-1:-1:-1;;;;;19173:36:0;:9;:19;;;19193:1;19173:22;;;;;;;;;;;;;;-1:-1:-1;;;;;19173:36:0;;;19165:62;;;;-1:-1:-1;;;19165:62:0;;;;;;;:::i;:::-;19075:3;;19020:223;;;-1:-1:-1;19265:19:0;;;;19285:26;;19328:1;;19265:19;-1:-1:-1;;19285:30:0;;;19265:51;;;;;;;;;;;;-1:-1:-1;;;;;19265:65:0;;;19257:91;;;;-1:-1:-1;;;19257:91:0;;;;;;;:::i;:::-;6271:4;19371:10;:24;19363:58;;;;-1:-1:-1;;;19363:58:0;;;;;;;:::i;:::-;19436:11;:27;;;;;;;-1:-1:-1;19436:27:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;19436:27:0;;;-1:-1:-1;;;;;;19436:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;19436:27:0;;;;;-1:-1:-1;;19436:27:0;;;-1:-1:-1;;19436:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;19453:9;;19436:27;;;;;;;;;;;;:::i;:::-;-1:-1:-1;19436:27:0;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;19436:27:0;;;;;;;;;;;;;;;;;-1:-1:-1;;19436:27:0;;;-1:-1:-1;;19436:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;19436:27:0;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;18669:3:0;;;;;-1:-1:-1;18627:848:0;;-1:-1:-1;;18627:848:0;17104:329;17200:23;17226:104;17232:17;17274:43;;;17319:2;17323:5;17251:78;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;17251:78:0;;;;;;;;;;;;;;-1:-1:-1;;;;;17251:78:0;-1:-1:-1;;;;;;17251:78:0;;;;;;;;;;17226:5;:104::i;:::-;17200:130;;17349:10;:17;17370:1;17349:22;:56;;;;17386:10;17375:30;;;;;;;;;;;;:::i;:::-;17341:84;;;;-1:-1:-1;;;17341:84:0;;;;;;;:::i;:::-;17104:329;;;;:::o;10100:1071::-;10268:21;10265:59;;10306:7;;10265:59;-1:-1:-1;;;;;10355:30:0;;10336:16;10355:30;;;:11;:30;;;;;;10401:17;:24;:29;;:81;;;10465:17;-1:-1:-1;;;;;10434:48:0;:17;10452:8;10434:27;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10434:27:0;:48;;10401:81;10398:427;;;-1:-1:-1;10544:17:0;:24;;-1:-1:-1;;;;;10499:30:0;;;;;;:11;:30;;;;;;;:70;;;10584:41;;;;;;;;;;;-1:-1:-1;;;;;;10584:41:0;;;;;;;10640:13;:21;;;;;;;;;;;;;10676:17;:25;;;;;;;;;;;;;;;;;10716:21;10743:29;10511:17;10743:10;:29::i;:::-;10716:57;;;;;;;;-1:-1:-1;10716:57:0;;;;;;;;;;;;;10788:17;:25;;;;;;;;;;;;10398:427;10835:14;10852:88;10874:17;10893:16;10911:28;10852:21;:88::i;:::-;10835:105;;10954:24;10951:213;;;11055:6;11025:17;11043:8;11025:27;;;;;;;;;;;;;;;;:36;10995:17;11013:8;10995:27;;;;;;;;;;;;;;;;;:66;10951:213;;;11146:6;11120:13;11134:8;11120:23;;;;;;;;;;;;;;;;:32;11094:13;11108:8;11094:23;;;;;;;;;;;;;;;;;:58;10951:213;10100:1071;;;;;;:::o;14795:204::-;14900:7;14987:4;;14944:23;;;14943:39;14928:11;:55;14927:64;;;;;;;14795:204;-1:-1:-1;;;14795:204:0:o;16769:327::-;16865:23;16891:103;16897:17;16939:42;;;16983:2;16987:5;16916:77;;;;;;;;;:::i;16891:103::-;16865:129;;17013:10;:17;17034:1;17013:22;:56;;;;17050:10;17039:30;;;;;;;;;;;;:::i;:::-;17005:83;;;;-1:-1:-1;;;17005:83:0;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;14:400:1;;114:18;106:6;103:30;100:2;;;136:9;100:2;165:58;211:2;188:17;;-1:-1:-1;;184:31:1;217:4;180:42;165:58;:::i;:::-;156:67;;246:6;239:5;232:21;286:3;277:6;272:3;268:16;265:25;262:2;;;303:1;300;293:12;262:2;352:6;347:3;340:4;333:5;329:16;316:43;406:1;399:4;390:6;383:5;379:18;375:29;368:40;90:324;;;;;:::o;419:138::-;489:20;;518:33;489:20;518:33;:::i;562:782::-;;675:3;668:4;660:6;656:17;652:27;642:2;;697:5;690;683:20;642:2;737:6;724:20;763:4;787:65;802:49;848:2;802:49;:::i;:::-;787:65;:::i;:::-;886:15;;;917:12;;;;949:15;;;995:11;;;983:24;;979:33;;976:42;-1:-1:-1;973:2:1;;;1035:5;1028;1021:20;973:2;1061:5;1075:240;1089:2;1086:1;1083:9;1075:240;;;1160:3;1147:17;1177:33;1204:5;1177:33;:::i;:::-;1223:18;;1261:12;;;;1293;;;;1107:1;1100:9;1075:240;;;-1:-1:-1;1333:5:1;;632:712;-1:-1:-1;;;;;;;632:712:1:o;1349:2240::-;;1486:3;1479:4;1471:6;1467:17;1463:27;1453:2;;1508:5;1501;1494:20;1453:2;1548:6;1535:20;1574:4;1598:65;1613:49;1659:2;1613:49;:::i;1598:65::-;1697:15;;;1728:12;;;;1760:15;;;1793:5;1807:1753;1821:2;1818:1;1815:9;1807:1753;;;1901:3;1888:17;1880:6;1876:30;1929:6;1983:2;1977;1973:7;1968:2;1963:3;1959:12;1955:26;1951:35;1948:2;;;2003:5;1996;1989:20;1948:2;2037:18;2052:2;2037:18;:::i;:::-;2082:33;2111:2;2107;2103:11;2082:33;:::i;:::-;2075:5;2068:48;2173:2;2169;2165:11;2152:25;2147:2;2140:5;2136:14;2129:49;2214:30;2240:2;2236;2232:11;2214:30;:::i;:::-;2209:2;2202:5;2198:14;2191:54;2281:31;2307:3;2303:2;2299:12;2281:31;:::i;:::-;2276:2;2269:5;2265:14;2258:55;2350:34;2379:3;2375:2;2371:12;2350:34;:::i;:::-;2344:3;2337:5;2333:15;2326:59;2435:3;2431:2;2427:12;2414:26;2463:18;2510:2;2500:8;2497:16;2494:2;;;2530:5;2523;2516:20;2494:2;2575:67;2638:3;2633:2;2622:8;2618:2;2614:17;2610:26;2575:67;:::i;:::-;2569:3;2562:5;2558:15;2551:92;2693:3;2689:2;2685:12;2672:26;2656:42;;2727:2;2717:8;2714:16;2711:2;;;2747:5;2740;2733:20;2711:2;2792:67;2855:3;2850:2;2839:8;2835:2;2831:17;2827:26;2792:67;:::i;:::-;2786:3;2779:5;2775:15;2768:92;2897:31;2923:3;2919:2;2915:12;2897:31;:::i;:::-;2891:3;2884:5;2880:15;2873:56;2966:31;2992:3;2988:2;2984:12;2966:31;:::i;:::-;2960:3;2953:5;2949:15;2942:56;3021:3;3011:13;;3074:2;3070;3066:11;3053:25;3107:2;3097:8;3094:16;3091:2;;;3127:5;3120;3113:20;3091:2;3172:67;3235:3;3230:2;3219:8;3215:2;3211:17;3207:26;3172:67;:::i;:::-;3166:3;3155:15;;3148:92;-1:-1:-1;3282:11:1;;;3269:25;;3310:16;;;3307:2;;;3343:5;3336;3329:20;3307:2;;3387:67;3450:3;3445:2;3434:8;3430:2;3426:17;3422:26;3387:67;:::i;:::-;3371:14;;;3364:91;3468:18;;-1:-1:-1;;3506:12:1;;;;3538;;;;1839:1;1832:9;1807:1753;;3594:705;;3707:3;3700:4;3692:6;3688:17;3684:27;3674:2;;3729:5;3722;3715:20;3674:2;3769:6;3756:20;3795:4;3819:65;3834:49;3880:2;3834:49;:::i;3819:65::-;3918:15;;;3949:12;;;;3981:15;;;4027:11;;;4015:24;;4011:33;;4008:42;-1:-1:-1;4005:2:1;;;4067:5;4060;4053:20;4005:2;4093:5;4107:163;4121:2;4118:1;4115:9;4107:163;;;4178:17;;4166:30;;4216:12;;;;4248;;;;4139:1;4132:9;4107:163;;4304:132;4371:20;;4400:30;4371:20;4400:30;:::i;4441:883::-;;4558:4;4546:9;4541:3;4537:19;4533:30;4530:2;;;4580:5;4573;4566:20;4530:2;4617;4611:9;4659:4;4651:6;4647:17;4683:18;4751:6;4739:10;4736:22;4731:2;4719:10;4716:18;4713:46;4710:2;;;4762:9;4710:2;4793:10;4789:2;4782:22;4822:6;4813:15;;4864:9;4851:23;4837:37;;4897:2;4889:6;4886:14;4883:2;;;4913:1;4910;4903:12;4883:2;-1:-1:-1;4936:22:1;;4989:4;4981:13;;4977:23;-1:-1:-1;4967:2:1;;5014:1;5011;5004:12;4967:2;5042:73;5111:3;5106:2;5093:16;5086:4;5082:2;5078:13;5042:73;:::i;:::-;5034:6;5027:89;;5179:4;5168:9;5164:20;5151:34;5144:4;5136:6;5132:17;5125:61;5247:2;5236:9;5232:18;5219:32;5214:2;5206:6;5202:15;5195:57;5313:2;5302:9;5298:18;5285:32;5280:2;5272:6;5268:15;5261:57;;4520:804;;;;:::o;5329:263::-;;5452:2;5440:9;5431:7;5427:23;5423:32;5420:2;;;5473:6;5465;5458:22;5420:2;5510:9;5504:16;5529:33;5556:5;5529:33;:::i;5597:1203::-;;;;;5868:3;5856:9;5847:7;5843:23;5839:33;5836:2;;;5890:6;5882;5875:22;5836:2;5934:9;5921:23;5953:33;5980:5;5953:33;:::i;:::-;6005:5;-1:-1:-1;6061:2:1;6046:18;;6033:32;6084:18;6114:14;;;6111:2;;;6146:6;6138;6131:22;6111:2;6189:6;6178:9;6174:22;6164:32;;6234:7;6227:4;6223:2;6219:13;6215:27;6205:2;;6261:6;6253;6246:22;6205:2;6289:75;6356:7;6351:2;6338:16;6333:2;6329;6325:11;6289:75;:::i;:::-;6279:85;;6417:2;6406:9;6402:18;6389:32;6373:48;;6446:2;6436:8;6433:16;6430:2;;;6467:6;6459;6452:22;6430:2;6495:75;6562:7;6551:8;6540:9;6536:24;6495:75;:::i;:::-;6485:85;;6623:2;6612:9;6608:18;6595:32;6579:48;;6652:2;6642:8;6639:16;6636:2;;;6673:6;6665;6658:22;6636:2;;6701:93;6786:7;6775:8;6764:9;6760:24;6701:93;:::i;:::-;6691:103;;;5826:974;;;;;;;:::o;6805:454::-;;;;6959:2;6947:9;6938:7;6934:23;6930:32;6927:2;;;6980:6;6972;6965:22;6927:2;7017:9;7011:16;7036:33;7063:5;7036:33;:::i;:::-;7133:2;7118:18;;7112:25;7182:2;7167:18;;7161:25;7088:5;;-1:-1:-1;7112:25:1;-1:-1:-1;7195:32:1;7161:25;7195:32;:::i;:::-;7246:7;7236:17;;;6917:342;;;;;:::o;7264:374::-;;7401:2;7389:9;7380:7;7376:23;7372:32;7369:2;;;7422:6;7414;7407:22;7369:2;7467:9;7454:23;7500:18;7492:6;7489:30;7486:2;;;7537:6;7529;7522:22;7486:2;7565:67;7624:7;7615:6;7604:9;7600:22;7565:67;:::i;7643:253::-;;7752:2;7740:9;7731:7;7727:23;7723:32;7720:2;;;7773:6;7765;7758:22;7720:2;7817:9;7804:23;7836:30;7860:5;7836:30;:::i;7901:257::-;;8021:2;8009:9;8000:7;7996:23;7992:32;7989:2;;;8042:6;8034;8027:22;7989:2;8079:9;8073:16;8098:30;8122:5;8098:30;:::i;8163:716::-;;;8391:2;8379:9;8370:7;8366:23;8362:32;8359:2;;;8412:6;8404;8397:22;8359:2;8457:9;8444:23;8486:18;8527:2;8519:6;8516:14;8513:2;;;8548:6;8540;8533:22;8513:2;8576:73;8641:7;8632:6;8621:9;8617:22;8576:73;:::i;:::-;8566:83;;8702:2;8691:9;8687:18;8674:32;8658:48;;8731:2;8721:8;8718:16;8715:2;;;8752:6;8744;8737:22;8715:2;;8780:93;8865:7;8854:8;8843:9;8839:24;8780:93;:::i;:::-;8770:103;;;8349:530;;;;;:::o;8884:194::-;;9007:2;8995:9;8986:7;8982:23;8978:32;8975:2;;;9028:6;9020;9013:22;8975:2;-1:-1:-1;9056:16:1;;8965:113;-1:-1:-1;8965:113:1:o;9083:324::-;;;9223:2;9211:9;9202:7;9198:23;9194:32;9191:2;;;9244:6;9236;9229:22;9191:2;9278:9;9272:16;9262:26;;9331:2;9320:9;9316:18;9310:25;9344:33;9371:5;9344:33;:::i;:::-;9396:5;9386:15;;;9181:226;;;;;:::o;9412:106::-;-1:-1:-1;;;;;9480:31:1;9468:44;;9458:60::o;9523:469::-;;9620:5;9614:12;9647:6;9642:3;9635:19;9673:4;9702:2;9697:3;9693:12;9686:19;;9739:2;9732:5;9728:14;9760:3;9772:195;9786:6;9783:1;9780:13;9772:195;;;9851:13;;-1:-1:-1;;;;;9847:39:1;9835:52;;9907:12;;;;9942:15;;;;9883:1;9801:9;9772:195;;;-1:-1:-1;9983:3:1;;9590:402;-1:-1:-1;;;;;9590:402:1:o;9997:443::-;;10094:5;10088:12;10121:6;10116:3;10109:19;10147:4;10176:2;10171:3;10167:12;10160:19;;10213:2;10206:5;10202:14;10234:3;10246:169;10260:6;10257:1;10254:13;10246:169;;;10321:13;;10309:26;;10355:12;;;;10390:15;;;;10282:1;10275:9;10246:169;;10445:481;;10550:5;10544:12;10577:6;10572:3;10565:19;10603:4;10632:2;10627:3;10623:12;10616:19;;10656:5;10651:3;10644:18;10700:2;10695:3;10685:18;10721:3;10733:168;10747:6;10744:1;10741:13;10733:168;;;10808:13;;10796:26;;10842:12;;;;10889:1;10877:14;;;;10762:9;10733:168;;10931:93;11003:13;10996:21;10984:34;;10974:50::o;11029:477::-;;11110:5;11104:12;11137:6;11132:3;11125:19;11162:3;11174:162;11188:6;11185:1;11182:13;11174:162;;;11250:4;11306:13;;;11302:22;;11296:29;11278:11;;;11274:20;;11267:59;11203:12;11174:162;;;11354:6;11351:1;11348:13;11345:2;;;11420:3;11413:4;11404:6;11399:3;11395:16;11391:27;11384:40;11345:2;-1:-1:-1;11488:2:1;11467:15;-1:-1:-1;;11463:29:1;11454:39;;;;11495:4;11450:50;;11080:426;-1:-1:-1;;11080:426:1:o;11721:203::-;-1:-1:-1;;;;;11885:32:1;;;;11867:51;;11855:2;11840:18;;11822:102::o;12145:274::-;-1:-1:-1;;;;;12337:32:1;;;;12319:51;;12401:2;12386:18;;12379:34;12307:2;12292:18;;12274:145::o;12424:1091::-;;12761:2;12750:9;12746:18;12791:2;12780:9;12773:21;12814:6;12849;12843:13;12880:6;12872;12865:22;12918:3;12907:9;12903:19;12896:26;;12944:6;12938:4;12931:20;12970:4;12960:14;;13013:2;13007:4;12997:19;13034:4;13047:194;13061:6;13058:1;13055:13;13047:194;;;13126:13;;-1:-1:-1;;;;;13122:39:1;13110:52;;13182:12;;;;13158:1;13217:14;;;;13076:9;13047:194;;;13051:3;;;13286:9;13281:3;13277:19;13272:2;13261:9;13257:18;13250:47;13320:55;13371:3;13363:6;13320:55;:::i;:::-;13306:69;;;13423:9;13415:6;13411:22;13406:2;13395:9;13391:18;13384:50;13451:58;13502:6;13494;13451:58;:::i;:::-;13443:66;12722:793;-1:-1:-1;;;;;;12722:793:1:o;13520:187::-;13685:14;;13678:22;13660:41;;13648:2;13633:18;;13615:92::o;13712:219::-;;13859:2;13848:9;13841:21;13879:46;13921:2;13910:9;13906:18;13898:6;13879:46;:::i;13936:344::-;14138:2;14120:21;;;14177:2;14157:18;;;14150:30;-1:-1:-1;;;14211:2:1;14196:18;;14189:50;14271:2;14256:18;;14110:170::o;14285:336::-;14487:2;14469:21;;;14526:2;14506:18;;;14499:30;-1:-1:-1;;;14560:2:1;14545:18;;14538:42;14612:2;14597:18;;14459:162::o;14626:337::-;14828:2;14810:21;;;14867:2;14847:18;;;14840:30;-1:-1:-1;;;14901:2:1;14886:18;;14879:43;14954:2;14939:18;;14800:163::o;14968:345::-;15170:2;15152:21;;;15209:2;15189:18;;;15182:30;-1:-1:-1;;;15243:2:1;15228:18;;15221:51;15304:2;15289:18;;15142:171::o;15318:416::-;15520:2;15502:21;;;15559:2;15539:18;;;15532:30;15598:34;15593:2;15578:18;;15571:62;-1:-1:-1;;;15664:2:1;15649:18;;15642:50;15724:3;15709:19;;15492:242::o;15739:339::-;15941:2;15923:21;;;15980:2;15960:18;;;15953:30;-1:-1:-1;;;16014:2:1;15999:18;;15992:45;16069:2;16054:18;;15913:165::o;16083:334::-;16285:2;16267:21;;;16324:2;16304:18;;;16297:30;-1:-1:-1;;;16358:2:1;16343:18;;16336:40;16408:2;16393:18;;16257:160::o;16422:337::-;16624:2;16606:21;;;16663:2;16643:18;;;16636:30;-1:-1:-1;;;16697:2:1;16682:18;;16675:43;16750:2;16735:18;;16596:163::o;16764:327::-;16966:2;16948:21;;;17005:1;16985:18;;;16978:29;-1:-1:-1;;;17038:2:1;17023:18;;17016:34;17082:2;17067:18;;16938:153::o;17096:339::-;17298:2;17280:21;;;17337:2;17317:18;;;17310:30;-1:-1:-1;;;17371:2:1;17356:18;;17349:45;17426:2;17411:18;;17270:165::o;17440:336::-;17642:2;17624:21;;;17681:2;17661:18;;;17654:30;-1:-1:-1;;;17715:2:1;17700:18;;17693:42;17767:2;17752:18;;17614:162::o;17781:331::-;17983:2;17965:21;;;18022:1;18002:18;;;17995:29;-1:-1:-1;;;18055:2:1;18040:18;;18033:38;18103:2;18088:18;;17955:157::o;18117:336::-;18319:2;18301:21;;;18358:2;18338:18;;;18331:30;-1:-1:-1;;;18392:2:1;18377:18;;18370:42;18444:2;18429:18;;18291:162::o;18458:343::-;18660:2;18642:21;;;18699:2;18679:18;;;18672:30;-1:-1:-1;;;18733:2:1;18718:18;;18711:49;18792:2;18777:18;;18632:169::o;18806:338::-;19008:2;18990:21;;;19047:2;19027:18;;;19020:30;-1:-1:-1;;;19081:2:1;19066:18;;19059:44;19135:2;19120:18;;18980:164::o;19149:344::-;19351:2;19333:21;;;19390:2;19370:18;;;19363:30;-1:-1:-1;;;19424:2:1;19409:18;;19402:50;19484:2;19469:18;;19323:170::o;19498:3048::-;;19845:2;19874;19863:9;19856:21;19896:3;19934:6;19928:13;19960:4;20000:2;19995;19984:9;19980:18;19973:30;20026:52;20074:2;20063:9;20059:18;20045:12;20026:52;:::i;:::-;20012:66;;20097:4;20138:2;20130:6;20126:15;20120:22;20161:2;20199;20194;20183:9;20179:18;20172:30;20256:2;20248:6;20244:15;20238:22;20233:2;20222:9;20218:18;20211:50;20298:2;20290:6;20286:15;20280:22;20270:32;;20321:3;20360:2;20355;20344:9;20340:18;20333:30;20411:9;20403:6;20399:22;20394:2;20383:9;20379:18;20372:50;20442:6;20431:17;;20477:6;20471:13;20508:6;20500;20493:22;20543:2;20535:6;20531:15;20524:22;;20603:2;20597;20589:6;20585:15;20577:6;20573:28;20569:37;20641:2;20633:6;20629:15;20662:4;20675:1842;20689:6;20686:1;20683:13;20675:1842;;;20779:2;20775:7;20766:6;20758;20754:19;20750:33;20745:3;20738:46;20813:6;20807:13;20844:6;20863:39;20895:6;20890:2;20884:9;20863:39;:::i;:::-;20953:2;20949;20945:11;20939:18;20934:2;20926:6;20922:15;20915:43;21007:2;21003;20999:11;20993:18;21024:50;21070:2;21062:6;21058:15;21042:14;21024:50;:::i;:::-;;21123:2;21119;21115:11;21109:18;21140:50;21186:2;21178:6;21174:15;21158:14;21140:50;:::i;:::-;;21239:2;21235;21231:11;21225:18;21256:53;21305:2;21297:6;21293:15;21277:14;21256:53;:::i;:::-;;21358:2;21354;21350:11;21344:18;21399:3;21394:2;21386:6;21382:15;21375:28;21430:68;21493:3;21485:6;21481:16;21465:14;21430:68;:::i;:::-;21416:82;;;21547:2;21543;21539:11;21533:18;21600:6;21592;21588:19;21583:2;21575:6;21571:15;21564:44;21635:58;21686:6;21670:14;21635:58;:::i;:::-;21621:72;;;21717:4;21770:3;21766:2;21762:12;21756:19;21788:51;21834:3;21826:6;21822:16;21806:14;21788:51;:::i;:::-;;;21863:6;21918:3;21914:2;21910:12;21904:19;21936:51;21982:3;21974:6;21970:16;21954:14;21936:51;:::i;:::-;;;22011:6;22066:3;22062:2;22058:12;22052:19;22121:6;22113;22109:19;22103:3;22095:6;22091:16;22084:45;22156:58;22207:6;22191:14;22156:58;:::i;:::-;22142:72;;;;22238:6;22293:3;22289:2;22285:12;22279:19;22257:41;;22348:6;22340;22336:19;22330:3;22322:6;22318:16;22311:45;;22379:58;22430:6;22414:14;22379:58;:::i;:::-;22495:12;;;;22369:68;-1:-1:-1;;;22460:15:1;;;;20711:1;20704:9;20675:1842;;;-1:-1:-1;22534:6:1;;19825:2721;-1:-1:-1;;;;;;;;;;;;;;19825:2721:1:o;22551:1013::-;;22730:2;22719:9;22712:21;22789:6;22783:13;22776:21;22769:29;22764:2;22753:9;22749:18;22742:57;22867:2;22859:6;22855:15;22849:22;22842:30;22835:38;22830:2;22819:9;22815:18;22808:66;22921:2;22913:6;22909:15;22903:22;22961:4;22956:2;22945:9;22941:18;22934:32;22989:69;23053:3;23042:9;23038:19;23024:12;22989:69;:::i;:::-;22975:83;;23107:2;23099:6;23095:15;23089:22;23180:2;23176:7;23164:9;23156:6;23152:22;23148:36;23142:3;23131:9;23127:19;23120:65;23208:58;23259:6;23243:14;23208:58;:::i;:::-;23194:72;;;23349:1;23345;23340:3;23336:11;23332:19;23325:3;23317:6;23313:16;23307:23;23303:49;23297:3;23286:9;23282:19;23275:78;23408:3;23400:6;23396:16;23390:23;23384:3;23373:9;23369:19;23362:52;23463:3;23455:6;23451:16;23445:23;23477:58;23529:4;23518:9;23514:20;23498:14;23477:58;:::i;:::-;-1:-1:-1;23552:6:1;22702:862;-1:-1:-1;;;22702:862:1:o;23569:177::-;23715:25;;;23703:2;23688:18;;23670:76::o;23751:242::-;23821:2;23815:9;23851:17;;;23898:18;23883:34;;23919:22;;;23880:62;23877:2;;;23945:9;23877:2;23972;23965:22;23795:198;;-1:-1:-1;23795:198:1:o;23998:183::-;;24097:18;24089:6;24086:30;24083:2;;;24119:9;24083:2;-1:-1:-1;24170:4:1;24151:17;;;24147:28;;24073:108::o;24186:133::-;-1:-1:-1;;;;;24263:31:1;;24253:42;;24243:2;;24309:1;24306;24299:12;24324:120;24412:5;24405:13;24398:21;24391:5;24388:32;24378:2;;24434:1;24431;24424:12
Swarm Source
ipfs://be5f2d438a85e1c4931bd09dace6f37e3da1cdcbbed2808ff1ac0b6fe72e25cf
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.