FTM Price: $0.5272 (+2.49%)
Gas: 1.1 GWei

Contract

0x94E9bC39950B4be9DF5d032B0129128686829F52
 

Overview

FTM Balance

Fantom LogoFantom LogoFantom Logo84.01 FTM

FTM Value

$44.29 (@ $0.53/FTM)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Deploy Contract ...1030452632025-01-19 19:35:3328 days ago1737315333IN
0x94E9bC39...686829F52
3 FTM0.004196692.71102733
Deploy Contract ...1004649262024-12-19 9:21:0959 days ago1734600069IN
0x94E9bC39...686829F52
3 FTM0.008224546.33372037
Deploy Contract ...1003934122024-12-18 16:38:1660 days ago1734539896IN
0x94E9bC39...686829F52
3 FTM0.0225769117.3853555
Deploy Contract ...1000487692024-12-14 22:13:3564 days ago1734214415IN
0x94E9bC39...686829F52
3 FTM0.003763592.89807307
Deploy Contract ...990312122024-12-03 14:17:3275 days ago1733235452IN
0x94E9bC39...686829F52
3 FTM0.0204505615
Deploy Contract ...989481302024-12-02 17:55:4276 days ago1733162142IN
0x94E9bC39...686829F52
3 FTM0.009255837.12831051
Deploy Contract ...989472872024-12-02 17:43:0776 days ago1733161387IN
0x94E9bC39...686829F52
3 FTM0.008751296
Deploy Contract ...983938962024-11-26 18:54:2982 days ago1732647269IN
0x94E9bC39...686829F52
3 FTM0.0262301319.51645497
Deploy Contract ...983580732024-11-26 10:26:3582 days ago1732616795IN
0x94E9bC39...686829F52
3 FTM0.0165261312.29622069
Deploy Contract ...971826972024-11-12 15:29:2796 days ago1731425367IN
0x94E9bC39...686829F52
3 FTM0.14928067114.95995508
Deploy Contract ...964162272024-11-03 14:40:17105 days ago1730644817IN
0x94E9bC39...686829F52
3 FTM0.0132169810.17839821
Deploy Contract ...964162162024-11-03 14:40:08105 days ago1730644808IN
0x94E9bC39...686829F52
3 FTM0.0132169810.17839821
Deploy Contract ...960498202024-10-30 10:49:18109 days ago1730285358IN
0x94E9bC39...686829F52
3 FTM0.006817295
Deploy Contract ...959817632024-10-29 15:54:13110 days ago1730217253IN
0x94E9bC39...686829F52
3 FTM0.0245429418
Deploy Contract ...959817472024-10-29 15:53:53110 days ago1730217233IN
0x94E9bC39...686829F52
3 FTM0.0159907118
Deploy Contract ...958735582024-10-28 10:42:11111 days ago1730112131IN
0x94E9bC39...686829F52
3 FTM0.008180686
Deploy Contract ...947370102024-10-15 9:25:20124 days ago1728984320IN
0x94E9bC39...686829F52
3 FTM0.35858656263
Deploy Contract ...937548782024-10-06 11:02:02133 days ago1728212522IN
0x94E9bC39...686829F52
3 FTM0.0671221448.32161023
Deploy Contract ...937522812024-10-06 10:30:57133 days ago1728210657IN
0x94E9bC39...686829F52
3 FTM0.0601903246.35255988
Deploy Contract ...932308292024-10-01 13:10:46138 days ago1727788246IN
0x94E9bC39...686829F52
3 FTM0.0291756122.46813802
Deploy Contract ...923752072024-09-22 19:28:50147 days ago1727033330IN
0x94E9bC39...686829F52
3 FTM0.1366607100
Deploy Contract ...911332542024-09-09 6:16:23160 days ago1725862583IN
0x94E9bC39...686829F52
3 FTM0.006818245
Deploy Contract ...902874832024-08-30 9:39:24170 days ago1725010764IN
0x94E9bC39...686829F52
3 FTM0.0147341311.15076326
Deploy Contract ...899421662024-08-26 6:33:13174 days ago1724653993IN
0x94E9bC39...686829F52
3 FTM0.007006415.39489074
Deploy Contract ...886473602024-08-12 22:39:23188 days ago1723502363IN
0x94E9bC39...686829F52
3 FTM0.0211180115.71519435
View all transactions

Latest 25 internal transactions (View All)

Parent Transaction Hash Block From To
1030452632025-01-19 19:35:3328 days ago1737315333
0x94E9bC39...686829F52
 Contract Creation0 FTM
1004649262024-12-19 9:21:0959 days ago1734600069
0x94E9bC39...686829F52
 Contract Creation0 FTM
1003934122024-12-18 16:38:1660 days ago1734539896
0x94E9bC39...686829F52
 Contract Creation0 FTM
1000487692024-12-14 22:13:3564 days ago1734214415
0x94E9bC39...686829F52
 Contract Creation0 FTM
990312122024-12-03 14:17:3275 days ago1733235452
0x94E9bC39...686829F52
 Contract Creation0 FTM
989481302024-12-02 17:55:4276 days ago1733162142
0x94E9bC39...686829F52
 Contract Creation0 FTM
989472872024-12-02 17:43:0776 days ago1733161387
0x94E9bC39...686829F52
 Contract Creation0 FTM
983938962024-11-26 18:54:2982 days ago1732647269
0x94E9bC39...686829F52
 Contract Creation0 FTM
983580732024-11-26 10:26:3582 days ago1732616795
0x94E9bC39...686829F52
 Contract Creation0 FTM
971826972024-11-12 15:29:2796 days ago1731425367
0x94E9bC39...686829F52
 Contract Creation0 FTM
964162272024-11-03 14:40:17105 days ago1730644817
0x94E9bC39...686829F52
 Contract Creation0 FTM
964162162024-11-03 14:40:08105 days ago1730644808
0x94E9bC39...686829F52
 Contract Creation0 FTM
960498202024-10-30 10:49:18109 days ago1730285358
0x94E9bC39...686829F52
 Contract Creation0 FTM
959817632024-10-29 15:54:13110 days ago1730217253
0x94E9bC39...686829F52
 Contract Creation0 FTM
959817472024-10-29 15:53:53110 days ago1730217233
0x94E9bC39...686829F52
 Contract Creation0 FTM
958735582024-10-28 10:42:11111 days ago1730112131
0x94E9bC39...686829F52
 Contract Creation0 FTM
947370102024-10-15 9:25:20124 days ago1728984320
0x94E9bC39...686829F52
 Contract Creation0 FTM
937548782024-10-06 11:02:02133 days ago1728212522
0x94E9bC39...686829F52
 Contract Creation0 FTM
937522812024-10-06 10:30:57133 days ago1728210657
0x94E9bC39...686829F52
 Contract Creation0 FTM
932308292024-10-01 13:10:46138 days ago1727788246
0x94E9bC39...686829F52
 Contract Creation0 FTM
923752072024-09-22 19:28:50147 days ago1727033330
0x94E9bC39...686829F52
 Contract Creation0 FTM
911332542024-09-09 6:16:23160 days ago1725862583
0x94E9bC39...686829F52
 Contract Creation0 FTM
902874832024-08-30 9:39:24170 days ago1725010764
0x94E9bC39...686829F52
 Contract Creation0 FTM
899421662024-08-26 6:33:13174 days ago1724653993
0x94E9bC39...686829F52
 Contract Creation0 FTM
886473602024-08-12 22:39:23188 days ago1723502363
0x94E9bC39...686829F52
 Contract Creation0 FTM
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MultiTokens

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
File 1 of 8 : MultiTokens.sol
// SPDX-License-Identifier: MIT

/**
 * DAppCrypto
 * GitHub Website: https://dappcrypto.github.io/
 * GitHub: https://github.com/dappcrypto
 */

/**
 * MultiTokens allows you to create simple tokens v2
 */

pragma solidity >=0.8.0;

import "./Ownable.sol";
import "./SimpleToken.sol";
import "./Wallet.sol";
import "./TaxCreationBlock.sol";

interface iSimpleToken {
    function initToken(string memory t_name, string memory t_symbol, uint8 t_decimals, uint256 t_totalSupply, address addressOwner) external returns (bool);
}

contract MultiTokens is Wallet, TaxCreationBlock {

    event NewContractTokenDeployed(address indexed newContractTokenAddress, uint256 indexed numberToken);

    uint256 public amountTokens = 0;
    uint256 public version=2;

    // mappingTokensContracts[addressContractToken] = numberToken.
    mapping(address => uint256) public mappingTokensContracts;

    struct TokenData {
        uint256 numberToken;
        uint256 timeToken;
        address addressContractToken;
        string sTextData;
    }
    // mappingTokensData[numberToken] = TokenData
    mapping(uint256 => TokenData) public mappingTokensData;

    function getVersion() public view returns (uint256) {
        return version;
    }

    function getNumberToken(address _aToken) public view returns (uint256) {
        return mappingTokensContracts[_aToken];
    }

    function getTokenAllData(uint256 _numberToken, address _addressAccount, address _addressSpender) public view returns (uint256[] memory, address[] memory, bool[] memory, string[] memory) {
        uint256[] memory uintArr = new uint256[](40);
        address[] memory addressArr = new address[](40);
        bool[] memory boolArr = new bool[](40);
        string[] memory stringArr = new string[](40);

        if(mappingTokensData[_numberToken].numberToken==0){
            return (uintArr, addressArr, boolArr, stringArr);
        }

        (uintArr, addressArr, stringArr) = getTokenInfo(mappingTokensData[_numberToken].addressContractToken, _addressAccount, _addressSpender);

        // uintArr
        uintArr[10] = mappingTokensData[_numberToken].numberToken;
        uintArr[11] = mappingTokensData[_numberToken].timeToken;
        uintArr[12] = version;

        // addressArr
        addressArr[10] = mappingTokensData[_numberToken].addressContractToken;

        stringArr[10] = mappingTokensData[_numberToken].sTextData;

        return (uintArr, addressArr, boolArr, stringArr);
    }

    function getTokenInfo(address _addressToken, address _addressAccount, address addressSpender) public view returns (uint256[] memory, address[] memory, string[] memory) {
        uint256[] memory uintArr = new uint256[](40);
        address[] memory addressArr = new address[](40);
        string[] memory stringArr = new string[](40);

        // uintArr
        uintArr[0] = IERC20(_addressToken).decimals();
        uintArr[1] = IERC20(_addressToken).totalSupply();

        uintArr[2] = IERC20(_addressToken).balanceOf(_addressAccount);
        uintArr[3] = IERC20(_addressToken).allowance(_addressAccount, addressSpender);

        // addressArr
        addressArr[0] = IERC20(_addressToken).owner();

        // stringArr
        stringArr[0] = IERC20(_addressToken).name();
        stringArr[1] = IERC20(_addressToken).symbol();


        return (uintArr, addressArr, stringArr);
    }

    function getTokenAllDataByContract(address _addressContractToken, address _addressOwner, address _addressSpender) public view returns (uint256[] memory, address[] memory, bool[] memory, string[] memory) {
        uint256 _numberToken = mappingTokensContracts[_addressContractToken];
        return getTokenAllData(_numberToken, _addressOwner, _addressSpender);
    }

    function editTextData(uint256 _numberToken, string memory _sTextData) payable public {
        sendTaxCreation();
        require(IERC20(mappingTokensData[_numberToken].addressContractToken).owner() == msg.sender, "only owner");
        mappingTokensData[_numberToken].sTextData = _sTextData;
    }

    function deployContractToken(string memory t_name, string memory t_symbol, uint8 t_decimals, uint256 t_totalSupply, address addressOwner, string memory _sTextData) payable public {
        sendTaxCreation();

        amountTokens++;

        SimpleToken SimpleToken1 = new SimpleToken();
        address addressContractToken = address(SimpleToken1);

        iSimpleToken(addressContractToken).initToken(t_name, t_symbol, t_decimals, t_totalSupply, addressOwner);

        mappingTokensContracts[addressContractToken] = amountTokens;

        mappingTokensData[amountTokens].timeToken = block.timestamp;
        mappingTokensData[amountTokens].numberToken = amountTokens;
        mappingTokensData[amountTokens].addressContractToken = addressContractToken;
        mappingTokensData[amountTokens].sTextData = _sTextData;

        emit NewContractTokenDeployed(addressContractToken, amountTokens);
    }
}

File 2 of 8 : TaxCreationBlock.sol
// SPDX-License-Identifier: MIT

/**
 * DAppCrypto
 * GitHub Website: https://dappcrypto.github.io/
 * GitHub: https://github.com/dappcrypto
 */

pragma solidity >=0.8.0;

import "./Ownable.sol";

contract TaxCreationBlock is Ownable {
    uint256 public taxCreation = 10000000000000000; // 0.01
    address public taxCreationAddress = address(this); // 0.01

    function setTaxCreation(uint256 _amountTax) public onlyOwner {
        taxCreation = _amountTax;
        return;
    }

    function setTaxCreationAddress(address _addressTax) public onlyOwner {
        taxCreationAddress = _addressTax;
        return;
    }

    function sendTaxCreation() payable public {
        require(msg.value >= taxCreation, "taxCreation error");
        if(taxCreationAddress!=address(this)){
            payable(taxCreationAddress).transfer(taxCreation);
        }
        return;
    }
}

File 3 of 8 : Wallet.sol
// SPDX-License-Identifier: MIT

/**
 * DAppCrypto
 * GitHub Website: https://dappcrypto.github.io/
 * GitHub: https://github.com/dappcrypto
 */

pragma solidity >=0.8.0;

import "./Ownable.sol";
import "./IERC20.sol";

contract Wallet is Ownable {
    receive() external payable {}
    fallback() external payable {}

    // Transfer Eth
    function transferEth(address _to, uint256 _amount) public onlyOwner {
        (bool sent, ) = _to.call{value: _amount}("");
        require(sent, "Failed to send Ether");
    }

    // Transfer Tokens
    function transferTokens(address addressToken, address _to, uint256 _amount) public onlyOwner {
        IERC20 contractToken = IERC20(addressToken);
        contractToken.transfer(_to, _amount);
    }

}

File 4 of 8 : SimpleToken.sol
// SPDX-License-Identifier: MIT

/**
 * SimpleToken is a simple token contract without cheating
 * This contract contains the minimum functions required for the token to operate.
 * Read Contract: _decimals, decimals, _name, name, _symbol, symbol, allowance, balanceOf, getOwner, totalSupply, owner.
 * Write Contract: transfer, transferFrom, approve, decreaseAllowance, increaseAllowance.
 * Write Contract, only for owner: renounceOwnership, transferOwnership.
 * Token created using DAppCrypto https://dappcrypto.github.io/
 */

 /**
 * Important! Always check liquidity lock before investing
 * Important! Always check if the token address is available in DAppCrypto https://dappcrypto.github.io/
 */

pragma solidity >=0.8.0;

import "./IERC20.sol";
import "./SafeMath.sol";
import "./Ownable.sol";

contract SimpleToken is Ownable, IERC20 {
    using SafeMath for uint256;
    bool private initializeToken = false;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;
    uint8 public _decimals;
    string public _symbol;
    string public _name;

    constructor() {}

    // Token initialization is only available once
    function initToken(string memory t_name, string memory t_symbol, uint8 t_decimals, uint256 t_totalSupply, address addressOwner) public onlyOwner returns (bool) {
        require(initializeToken == false, "The token is already initialized");
        initializeToken = true;

        _name = t_name;
        _symbol = t_symbol;
        _decimals = t_decimals;
        _totalSupply = t_totalSupply;
        _balances[addressOwner] = _totalSupply;

        transferOwnership(addressOwner);

        emit Transfer(address(0), addressOwner, _totalSupply);

        return true;
    }

    function owner() external view returns (address) {
        return getOwner();
    }

    function decimals() external view returns (uint8) {
        return _decimals;
    }

    function symbol() external view returns (string memory) {
        return _symbol;
    }

    function name() external view returns (string memory) {
        return _name;
    }

    function totalSupply() external view returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) external view returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount) external returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function allowance(address addressOwner, address spender) external view returns (uint256) {
        return _allowances[addressOwner][spender];
    }

    function approve(address spender, uint256 amount) external returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "Transfer amount exceeds allowance"));
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].sub(subtractedValue, "Decreased allowance below zero"));
        return true;
    }

    function _transfer(address sender, address recipient, uint256 amount) internal {
        require(sender != address(0), "Transfer from the zero address");
        require(recipient != address(0), "Transfer to the zero address");
        require(amount <= _balances[sender], "Transfer amount exceeds balance");

        _balances[sender] = _balances[sender].sub(amount);
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

    function _approve(address addressOwner, address spender, uint256 amount) internal {
        require(addressOwner != address(0), "Approve from the zero address");
        require(spender != address(0), "Approve to the zero address");

        _allowances[addressOwner][spender] = amount;
        emit Approval(addressOwner, spender, amount);
    }
}

File 5 of 8 : Ownable.sol
// SPDX-License-Identifier: MIT

/**
 * contract Ownable
 */

pragma solidity >=0.8.0;

import "./Context.sol";

contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function getOwner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "onlyOwner");
        _;
    }

    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    function transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

File 6 of 8 : IERC20.sol
// SPDX-License-Identifier: MIT

/**
 * interface IERC20
 */

pragma solidity >=0.8.0;

interface IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
    function totalSupply() external view returns (uint256);
    function owner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function allowance(address owner, address spender) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

File 7 of 8 : SafeMath.sol
// SPDX-License-Identifier: MIT

/**
 * Library for mathematical operations
 */

pragma solidity >=0.8.0;

// @dev Wrappers over Solidity's arithmetic operations with added overflow * checks.
library SafeMath {
    // Counterpart to Solidity's `+` operator.
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    // Counterpart to Solidity's `-` operator.
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    // Counterpart to Solidity's `-` operator.
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    // Counterpart to Solidity's `*` operator.
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    // Counterpart to Solidity's `/` operator.
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    // Counterpart to Solidity's `/` operator.
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

    // Counterpart to Solidity's `%` operator.
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    // Counterpart to Solidity's `%` operator.
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

File 8 of 8 : Context.sol
// SPDX-License-Identifier: MIT

/**
 * abstract contract Context
 */

pragma solidity >=0.8.0;

abstract contract Context {
    // Empty internal constructor, to prevent people from mistakenly deploying
    // an instance of this contract, which should be used via inheritance.
    //constructor () { }

    function _msgSender() internal view returns (address payable) {
        return payable(msg.sender);
    }

    function _msgData() internal view returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  },
  "remappings": []
}

Contract Security Audit

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newContractTokenAddress","type":"address"},{"indexed":true,"internalType":"uint256","name":"numberToken","type":"uint256"}],"name":"NewContractTokenDeployed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"amountTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"t_name","type":"string"},{"internalType":"string","name":"t_symbol","type":"string"},{"internalType":"uint8","name":"t_decimals","type":"uint8"},{"internalType":"uint256","name":"t_totalSupply","type":"uint256"},{"internalType":"address","name":"addressOwner","type":"address"},{"internalType":"string","name":"_sTextData","type":"string"}],"name":"deployContractToken","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_numberToken","type":"uint256"},{"internalType":"string","name":"_sTextData","type":"string"}],"name":"editTextData","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_aToken","type":"address"}],"name":"getNumberToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_numberToken","type":"uint256"},{"internalType":"address","name":"_addressAccount","type":"address"},{"internalType":"address","name":"_addressSpender","type":"address"}],"name":"getTokenAllData","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"bool[]","name":"","type":"bool[]"},{"internalType":"string[]","name":"","type":"string[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addressContractToken","type":"address"},{"internalType":"address","name":"_addressOwner","type":"address"},{"internalType":"address","name":"_addressSpender","type":"address"}],"name":"getTokenAllDataByContract","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"bool[]","name":"","type":"bool[]"},{"internalType":"string[]","name":"","type":"string[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addressToken","type":"address"},{"internalType":"address","name":"_addressAccount","type":"address"},{"internalType":"address","name":"addressSpender","type":"address"}],"name":"getTokenInfo","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"string[]","name":"","type":"string[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getVersion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"mappingTokensContracts","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"mappingTokensData","outputs":[{"internalType":"uint256","name":"numberToken","type":"uint256"},{"internalType":"uint256","name":"timeToken","type":"uint256"},{"internalType":"address","name":"addressContractToken","type":"address"},{"internalType":"string","name":"sTextData","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sendTaxCreation","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amountTax","type":"uint256"}],"name":"setTaxCreation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addressTax","type":"address"}],"name":"setTaxCreationAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"taxCreation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxCreationAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transferEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addressToken","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transferTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052662386f26fc10000600155600280546001600160a01b03191630178155600060035560045534801561003557600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350612a82806100866000396000f3fe6080604052600436106101225760003560e01c8063893d20e8116100a5578063b30160c21161006c578063b30160c214610320578063d1b943441461034f578063d39e9af714610362578063e9bb84c214610382578063f2fde38b146103a2578063f820fec1146103c257005b8063893d20e8146102485780639dcb075e1461027a5780639ed3c3dc1461029a578063a51eb79b146102d0578063a64b6e5f1461030057005b806343472829116100e957806343472829146101c757806354fd4d50146101da57806362bb5c93146101f05780636de89acc1461021d578063715018a61461023357005b80630d8e6e2c1461012b578063118a854c1461014f57806313c887561461017f578063216e7529146101875780633ecaacc9146101a757005b3661012957005b005b34801561013757600080fd5b506004545b6040519081526020015b60405180910390f35b34801561015b57600080fd5b5061016f61016a366004611215565b6103d8565b604051610146949392919061136d565b610129610676565b34801561019357600080fd5b506101296101a23660046113eb565b610713565b3480156101b357600080fd5b506101296101c236600461140f565b61075d565b6101296101d53660046114fc565b61078c565b3480156101e657600080fd5b5061013c60045481565b3480156101fc57600080fd5b5061013c61020b3660046113eb565b60056020526000908152604090205481565b34801561022957600080fd5b5061013c60015481565b34801561023f57600080fd5b506101296108f6565b34801561025457600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610146565b34801561028657600080fd5b50600254610262906001600160a01b031681565b3480156102a657600080fd5b5061013c6102b53660046113eb565b6001600160a01b031660009081526005602052604090205490565b3480156102dc57600080fd5b506102f06102eb36600461140f565b61096a565b60405161014694939291906115b6565b34801561030c57600080fd5b5061012961031b3660046115ed565b610a27565b34801561032c57600080fd5b5061034061033b36600461162e565b610ace565b6040516101469392919061165e565b61012961035d366004611697565b610f1b565b34801561036e57600080fd5b5061016f61037d36600461162e565b611002565b34801561038e57600080fd5b5061012961039d3660046116de565b611041565b3480156103ae57600080fd5b506101296103bd3660046113eb565b611105565b3480156103ce57600080fd5b5061013c60035481565b6040805160288082526105208201909252606091829182918291600091602082016105008036833750506040805160288082526105208201909252929350600092915060208201610500803683375050604080516028808252610520820190925292935060009291506020820161050080368337505060408051602880825261052082019092529293506000929150602082015b606081526020019060019003908161046c57505060008c815260066020526040812054919250036104a6579296509094509250905061066d565b60008b8152600660205260409020600201546104cc906001600160a01b03168b8b610ace565b60008e81526006602052604090205483519397509195509250908590600a9081106104f9576104f961170a565b602002602001018181525050600660008c81526020019081526020016000206001015484600b8151811061052f5761052f61170a565b60200260200101818152505060045484600c815181106105515761055161170a565b60209081029190910181019190915260008c81526006909152604090206002015483516001600160a01b03909116908490600a9081106105935761059361170a565b6001600160a01b0390921660209283029190910182015260008c815260069091526040902060030180546105c690611720565b80601f01602080910402602001604051908101604052809291908181526020018280546105f290611720565b801561063f5780601f106106145761010080835404028352916020019161063f565b820191906000526020600020905b81548152906001019060200180831161062257829003601f168201915b505050505081600a815181106106575761065761170a565b6020908102919091010152929650909450925090505b93509350935093565b6001543410156106c15760405162461bcd60e51b81526020600482015260116024820152703a30bc21b932b0ba34b7b71032b93937b960791b60448201526064015b60405180910390fd5b6002546001600160a01b03163014610711576002546001546040516001600160a01b039092169181156108fc0291906000818181858888f1935050505015801561070f573d6000803e3d6000fd5b505b565b6000546001600160a01b0316331461073d5760405162461bcd60e51b81526004016106b89061175a565b600280546001600160a01b0383166001600160a01b031990911617905550565b6000546001600160a01b031633146107875760405162461bcd60e51b81526004016106b89061175a565b600155565b610794610676565b600380549060006107a48361177d565b919050555060006040516107b7906111f3565b604051809103906000f0801580156107d3573d6000803e3d6000fd5b5060405163073b25f560e51b815290915081906001600160a01b0382169063e764bea09061080d908b908b908b908b908b906004016117a4565b6020604051808303816000875af115801561082c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085091906117f3565b50600380546001600160a01b03831660008181526005602090815260408083208590559382526006905282812042600190910155835480825283822090815560020180546001600160a01b0319169092179091558254815220016108b48482611863565b506003546040516001600160a01b038316907fff05b42175a726f8ea16bfc680c6b52e011fe2afb29b5153ffa5d576a3f303b290600090a35050505050505050565b6000546001600160a01b031633146109205760405162461bcd60e51b81526004016106b89061175a565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6006602052600090815260409020805460018201546002830154600384018054939492936001600160a01b0390921692916109a490611720565b80601f01602080910402602001604051908101604052809291908181526020018280546109d090611720565b8015610a1d5780601f106109f257610100808354040283529160200191610a1d565b820191906000526020600020905b815481529060010190602001808311610a0057829003601f168201915b5050505050905084565b6000546001600160a01b03163314610a515760405162461bcd60e51b81526004016106b89061175a565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284919082169063a9059cbb906044016020604051808303816000875af1158015610aa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac791906117f3565b5050505050565b6040805160288082526105208201909252606091829182916000919060208201610500803683375050604080516028808252610520820190925292935060009291506020820161050080368337505060408051602880825261052082019092529293506000929150602082015b6060815260200190600190039081610b3b579050509050886001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb49190611923565b60ff1683600081518110610bca57610bca61170a565b602002602001018181525050886001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c389190611940565b83600181518110610c4b57610c4b61170a565b60209081029190910101526040516370a0823160e01b81526001600160a01b0389811660048301528a16906370a0823190602401602060405180830381865afa158015610c9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc09190611940565b83600281518110610cd357610cd361170a565b6020908102919091010152604051636eb1769f60e11b81526001600160a01b03898116600483015288811660248301528a169063dd62ed3e90604401602060405180830381865afa158015610d2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d509190611940565b83600381518110610d6357610d6361170a565b602002602001018181525050886001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd19190611959565b82600081518110610de457610de461170a565b60200260200101906001600160a01b031690816001600160a01b031681525050886001600160a01b03166306fdde036040518163ffffffff1660e01b8152600401600060405180830381865afa158015610e42573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e6a9190810190611976565b81600081518110610e7d57610e7d61170a565b6020026020010181905250886001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015610ec6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610eee9190810190611976565b81600181518110610f0157610f0161170a565b602090810291909101015291989097509095509350505050565b610f23610676565b600082815260066020908152604091829020600201548251638da5cb5b60e01b8152925133936001600160a01b0390921692638da5cb5b92600480820193918290030181865afa158015610f7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9f9190611959565b6001600160a01b031614610fe25760405162461bcd60e51b815260206004820152600a60248201526937b7363c9037bbb732b960b11b60448201526064016106b8565b6000828152600660205260409020600301610ffd8282611863565b505050565b6001600160a01b03831660009081526005602052604090205460609081908190819061102f8188886103d8565b94509450945094505093509350935093565b6000546001600160a01b0316331461106b5760405162461bcd60e51b81526004016106b89061175a565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146110b8576040519150601f19603f3d011682016040523d82523d6000602084013e6110bd565b606091505b5050905080610ffd5760405162461bcd60e51b81526020600482015260146024820152732330b4b632b2103a379039b2b7321022ba3432b960611b60448201526064016106b8565b6000546001600160a01b0316331461112f5760405162461bcd60e51b81526004016106b89061175a565b61070f816001600160a01b0381166111985760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106b8565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b61105f806119ee83390190565b6001600160a01b038116811461070f57600080fd5b60008060006060848603121561122a57600080fd5b83359250602084013561123c81611200565b9150604084013561124c81611200565b809150509250925092565b600081518084526020808501945080840160005b838110156112875781518752958201959082019060010161126b565b509495945050505050565b600081518084526020808501945080840160005b838110156112875781516001600160a01b0316875295820195908201906001016112a6565b60005b838110156112e65781810151838201526020016112ce565b50506000910152565b600081518084526113078160208601602086016112cb565b601f01601f19169290920160200192915050565b6000815180845260208085019450848260051b860182860160005b8581101561136057838303895261134e8383516112ef565b98850198925090840190600101611336565b5090979650505050505050565b6080815260006113806080830187611257565b6020838203818501526113938288611292565b8481036040860152865180825282880193509082019060005b818110156113ca5784511515835293830193918301916001016113ac565b505084810360608601526113de818761131b565b9998505050505050505050565b6000602082840312156113fd57600080fd5b813561140881611200565b9392505050565b60006020828403121561142157600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561146757611467611428565b604052919050565b600067ffffffffffffffff82111561148957611489611428565b50601f01601f191660200190565b600082601f8301126114a857600080fd5b81356114bb6114b68261146f565b61143e565b8181528460208386010111156114d057600080fd5b816020850160208301376000918101602001919091529392505050565b60ff8116811461070f57600080fd5b60008060008060008060c0878903121561151557600080fd5b863567ffffffffffffffff8082111561152d57600080fd5b6115398a838b01611497565b9750602089013591508082111561154f57600080fd5b61155b8a838b01611497565b96506040890135915061156d826114ed565b9094506060880135935060808801359061158682611200565b90925060a0880135908082111561159c57600080fd5b506115a989828a01611497565b9150509295509295509295565b84815283602082015260018060a01b03831660408201526080606082015260006115e360808301846112ef565b9695505050505050565b60008060006060848603121561160257600080fd5b833561160d81611200565b9250602084013561161d81611200565b929592945050506040919091013590565b60008060006060848603121561164357600080fd5b833561164e81611200565b9250602084013561123c81611200565b6060815260006116716060830186611257565b82810360208401526116838186611292565b905082810360408401526115e3818561131b565b600080604083850312156116aa57600080fd5b82359150602083013567ffffffffffffffff8111156116c857600080fd5b6116d485828601611497565b9150509250929050565b600080604083850312156116f157600080fd5b82356116fc81611200565b946020939093013593505050565b634e487b7160e01b600052603260045260246000fd5b600181811c9082168061173457607f821691505b60208210810361175457634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526009908201526837b7363ca7bbb732b960b91b604082015260600190565b60006001820161179d57634e487b7160e01b600052601160045260246000fd5b5060010190565b60a0815260006117b760a08301886112ef565b82810360208401526117c981886112ef565b60ff969096166040840152505060608101929092526001600160a01b031660809091015292915050565b60006020828403121561180557600080fd5b8151801515811461140857600080fd5b601f821115610ffd57600081815260208120601f850160051c8101602086101561183c5750805b601f850160051c820191505b8181101561185b57828155600101611848565b505050505050565b815167ffffffffffffffff81111561187d5761187d611428565b6118918161188b8454611720565b84611815565b602080601f8311600181146118c657600084156118ae5750858301515b600019600386901b1c1916600185901b17855561185b565b600085815260208120601f198616915b828110156118f5578886015182559484019460019091019084016118d6565b50858210156119135787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121561193557600080fd5b8151611408816114ed565b60006020828403121561195257600080fd5b5051919050565b60006020828403121561196b57600080fd5b815161140881611200565b60006020828403121561198857600080fd5b815167ffffffffffffffff81111561199f57600080fd5b8201601f810184136119b057600080fd5b80516119be6114b68261146f565b8181528560208385010111156119d357600080fd5b6119e48260208301602086016112cb565b9594505050505056fe60806040526000805460ff60a01b1916905534801561001d57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350610ff18061006e6000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c8063893d20e8116100ad578063b09f126611610071578063b09f12661461025c578063d28d885214610264578063dd62ed3e1461026c578063e764bea0146102a5578063f2fde38b146102b857600080fd5b8063893d20e8146101f85780638da5cb5b1461021d57806395d89b411461022e578063a457c2d714610236578063a9059cbb1461024957600080fd5b8063313ce567116100f4578063313ce5671461018c57806332424aa3146101a557806339509351146101b257806370a08231146101c5578063715018a6146101ee57600080fd5b806306fdde0314610126578063095ea7b31461014457806318160ddd1461016757806323b872dd14610179575b600080fd5b61012e6102cb565b60405161013b9190610b9a565b60405180910390f35b610157610152366004610c04565b61035d565b604051901515815260200161013b565b6003545b60405190815260200161013b565b610157610187366004610c2e565b610374565b60045460ff165b60405160ff909116815260200161013b565b6004546101939060ff1681565b6101576101c0366004610c04565b6103dd565b61016b6101d3366004610c6a565b6001600160a01b031660009081526001602052604090205490565b6101f6610413565b005b6000546001600160a01b03165b6040516001600160a01b03909116815260200161013b565b6000546001600160a01b0316610205565b61012e610490565b610157610244366004610c04565b61049f565b610157610257366004610c04565b61050c565b61012e610519565b61012e6105a7565b61016b61027a366004610c85565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6101576102b3366004610d5b565b6105b4565b6101f66102c6366004610c6a565b6106fa565b6060600680546102da90610df2565b80601f016020809104026020016040519081016040528092919081815260200182805461030690610df2565b80156103535780601f1061032857610100808354040283529160200191610353565b820191906000526020600020905b81548152906001019060200180831161033657829003601f168201915b5050505050905090565b600061036a338484610730565b5060015b92915050565b600061038184848461083e565b6103d384336103ce85604051806060016040528060218152602001610f9b602191396001600160a01b038a16600090815260026020908152604080832033845290915290205491906109f8565b610730565b5060019392505050565b3360008181526002602090815260408083206001600160a01b0387168452909152812054909161036a9185906103ce9086610a32565b6000546001600160a01b031633146104465760405162461bcd60e51b815260040161043d90610e2c565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6060600580546102da90610df2565b604080518082018252601e81527f44656372656173656420616c6c6f77616e63652062656c6f77207a65726f0000602080830191909152336000818152600283528481206001600160a01b038816825290925292812054909261036a92909186916103ce919087906109f8565b600061036a33848461083e565b6005805461052690610df2565b80601f016020809104026020016040519081016040528092919081815260200182805461055290610df2565b801561059f5780601f106105745761010080835404028352916020019161059f565b820191906000526020600020905b81548152906001019060200180831161058257829003601f168201915b505050505081565b6006805461052690610df2565b600080546001600160a01b031633146105df5760405162461bcd60e51b815260040161043d90610e2c565b600054600160a01b900460ff16156106395760405162461bcd60e51b815260206004820181905260248201527f54686520746f6b656e20697320616c726561647920696e697469616c697a6564604482015260640161043d565b6000805460ff60a01b1916600160a01b17905560066106588782610e9e565b5060056106658682610e9e565b506004805460ff191660ff861617905560038390556001600160a01b038216600090815260016020526040902083905561069e826106fa565b816001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6003546040516106e691815260200190565b60405180910390a350600195945050505050565b6000546001600160a01b031633146107245760405162461bcd60e51b815260040161043d90610e2c565b61072d81610a98565b50565b6001600160a01b0383166107865760405162461bcd60e51b815260206004820152601d60248201527f417070726f76652066726f6d20746865207a65726f2061646472657373000000604482015260640161043d565b6001600160a01b0382166107dc5760405162461bcd60e51b815260206004820152601b60248201527f417070726f766520746f20746865207a65726f20616464726573730000000000604482015260640161043d565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166108945760405162461bcd60e51b815260206004820152601e60248201527f5472616e736665722066726f6d20746865207a65726f20616464726573730000604482015260640161043d565b6001600160a01b0382166108ea5760405162461bcd60e51b815260206004820152601c60248201527f5472616e7366657220746f20746865207a65726f206164647265737300000000604482015260640161043d565b6001600160a01b0383166000908152600160205260409020548111156109525760405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657220616d6f756e7420657863656564732062616c616e636500604482015260640161043d565b6001600160a01b0383166000908152600160205260409020546109759082610b58565b6001600160a01b0380851660009081526001602052604080822093909355908416815220546109a49082610a32565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906108319085815260200190565b60008184841115610a1c5760405162461bcd60e51b815260040161043d9190610b9a565b506000610a298486610f74565b95945050505050565b600080610a3f8385610f87565b905083811015610a915760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161043d565b9392505050565b6001600160a01b038116610afd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161043d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000610a9183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506109f8565b600060208083528351808285015260005b81811015610bc757858101830151858201604001528201610bab565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610bff57600080fd5b919050565b60008060408385031215610c1757600080fd5b610c2083610be8565b946020939093013593505050565b600080600060608486031215610c4357600080fd5b610c4c84610be8565b9250610c5a60208501610be8565b9150604084013590509250925092565b600060208284031215610c7c57600080fd5b610a9182610be8565b60008060408385031215610c9857600080fd5b610ca183610be8565b9150610caf60208401610be8565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610cdf57600080fd5b813567ffffffffffffffff80821115610cfa57610cfa610cb8565b604051601f8301601f19908116603f01168101908282118183101715610d2257610d22610cb8565b81604052838152866020858801011115610d3b57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060a08688031215610d7357600080fd5b853567ffffffffffffffff80821115610d8b57600080fd5b610d9789838a01610cce565b96506020880135915080821115610dad57600080fd5b50610dba88828901610cce565b945050604086013560ff81168114610dd157600080fd5b925060608601359150610de660808701610be8565b90509295509295909350565b600181811c90821680610e0657607f821691505b602082108103610e2657634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526009908201526837b7363ca7bbb732b960b91b604082015260600190565b601f821115610e9957600081815260208120601f850160051c81016020861015610e765750805b601f850160051c820191505b81811015610e9557828155600101610e82565b5050505b505050565b815167ffffffffffffffff811115610eb857610eb8610cb8565b610ecc81610ec68454610df2565b84610e4f565b602080601f831160018114610f015760008415610ee95750858301515b600019600386901b1c1916600185901b178555610e95565b600085815260208120601f198616915b82811015610f3057888601518255948401946001909101908401610f11565b5085821015610f4e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b8181038181111561036e5761036e610f5e565b8082018082111561036e5761036e610f5e56fe5472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208d216150fefb11301d2fa11e83ed48026dcd5a79b9ff821d8b1bc8a676ac9b3f64736f6c63430008120033a26469706673582212205ebcf521f84ebbbd5a8b55d16b0f0adba9c3be75f2bcd2bb1d0febf61383686a64736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101225760003560e01c8063893d20e8116100a5578063b30160c21161006c578063b30160c214610320578063d1b943441461034f578063d39e9af714610362578063e9bb84c214610382578063f2fde38b146103a2578063f820fec1146103c257005b8063893d20e8146102485780639dcb075e1461027a5780639ed3c3dc1461029a578063a51eb79b146102d0578063a64b6e5f1461030057005b806343472829116100e957806343472829146101c757806354fd4d50146101da57806362bb5c93146101f05780636de89acc1461021d578063715018a61461023357005b80630d8e6e2c1461012b578063118a854c1461014f57806313c887561461017f578063216e7529146101875780633ecaacc9146101a757005b3661012957005b005b34801561013757600080fd5b506004545b6040519081526020015b60405180910390f35b34801561015b57600080fd5b5061016f61016a366004611215565b6103d8565b604051610146949392919061136d565b610129610676565b34801561019357600080fd5b506101296101a23660046113eb565b610713565b3480156101b357600080fd5b506101296101c236600461140f565b61075d565b6101296101d53660046114fc565b61078c565b3480156101e657600080fd5b5061013c60045481565b3480156101fc57600080fd5b5061013c61020b3660046113eb565b60056020526000908152604090205481565b34801561022957600080fd5b5061013c60015481565b34801561023f57600080fd5b506101296108f6565b34801561025457600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610146565b34801561028657600080fd5b50600254610262906001600160a01b031681565b3480156102a657600080fd5b5061013c6102b53660046113eb565b6001600160a01b031660009081526005602052604090205490565b3480156102dc57600080fd5b506102f06102eb36600461140f565b61096a565b60405161014694939291906115b6565b34801561030c57600080fd5b5061012961031b3660046115ed565b610a27565b34801561032c57600080fd5b5061034061033b36600461162e565b610ace565b6040516101469392919061165e565b61012961035d366004611697565b610f1b565b34801561036e57600080fd5b5061016f61037d36600461162e565b611002565b34801561038e57600080fd5b5061012961039d3660046116de565b611041565b3480156103ae57600080fd5b506101296103bd3660046113eb565b611105565b3480156103ce57600080fd5b5061013c60035481565b6040805160288082526105208201909252606091829182918291600091602082016105008036833750506040805160288082526105208201909252929350600092915060208201610500803683375050604080516028808252610520820190925292935060009291506020820161050080368337505060408051602880825261052082019092529293506000929150602082015b606081526020019060019003908161046c57505060008c815260066020526040812054919250036104a6579296509094509250905061066d565b60008b8152600660205260409020600201546104cc906001600160a01b03168b8b610ace565b60008e81526006602052604090205483519397509195509250908590600a9081106104f9576104f961170a565b602002602001018181525050600660008c81526020019081526020016000206001015484600b8151811061052f5761052f61170a565b60200260200101818152505060045484600c815181106105515761055161170a565b60209081029190910181019190915260008c81526006909152604090206002015483516001600160a01b03909116908490600a9081106105935761059361170a565b6001600160a01b0390921660209283029190910182015260008c815260069091526040902060030180546105c690611720565b80601f01602080910402602001604051908101604052809291908181526020018280546105f290611720565b801561063f5780601f106106145761010080835404028352916020019161063f565b820191906000526020600020905b81548152906001019060200180831161062257829003601f168201915b505050505081600a815181106106575761065761170a565b6020908102919091010152929650909450925090505b93509350935093565b6001543410156106c15760405162461bcd60e51b81526020600482015260116024820152703a30bc21b932b0ba34b7b71032b93937b960791b60448201526064015b60405180910390fd5b6002546001600160a01b03163014610711576002546001546040516001600160a01b039092169181156108fc0291906000818181858888f1935050505015801561070f573d6000803e3d6000fd5b505b565b6000546001600160a01b0316331461073d5760405162461bcd60e51b81526004016106b89061175a565b600280546001600160a01b0383166001600160a01b031990911617905550565b6000546001600160a01b031633146107875760405162461bcd60e51b81526004016106b89061175a565b600155565b610794610676565b600380549060006107a48361177d565b919050555060006040516107b7906111f3565b604051809103906000f0801580156107d3573d6000803e3d6000fd5b5060405163073b25f560e51b815290915081906001600160a01b0382169063e764bea09061080d908b908b908b908b908b906004016117a4565b6020604051808303816000875af115801561082c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085091906117f3565b50600380546001600160a01b03831660008181526005602090815260408083208590559382526006905282812042600190910155835480825283822090815560020180546001600160a01b0319169092179091558254815220016108b48482611863565b506003546040516001600160a01b038316907fff05b42175a726f8ea16bfc680c6b52e011fe2afb29b5153ffa5d576a3f303b290600090a35050505050505050565b6000546001600160a01b031633146109205760405162461bcd60e51b81526004016106b89061175a565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6006602052600090815260409020805460018201546002830154600384018054939492936001600160a01b0390921692916109a490611720565b80601f01602080910402602001604051908101604052809291908181526020018280546109d090611720565b8015610a1d5780601f106109f257610100808354040283529160200191610a1d565b820191906000526020600020905b815481529060010190602001808311610a0057829003601f168201915b5050505050905084565b6000546001600160a01b03163314610a515760405162461bcd60e51b81526004016106b89061175a565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284919082169063a9059cbb906044016020604051808303816000875af1158015610aa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac791906117f3565b5050505050565b6040805160288082526105208201909252606091829182916000919060208201610500803683375050604080516028808252610520820190925292935060009291506020820161050080368337505060408051602880825261052082019092529293506000929150602082015b6060815260200190600190039081610b3b579050509050886001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb49190611923565b60ff1683600081518110610bca57610bca61170a565b602002602001018181525050886001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c389190611940565b83600181518110610c4b57610c4b61170a565b60209081029190910101526040516370a0823160e01b81526001600160a01b0389811660048301528a16906370a0823190602401602060405180830381865afa158015610c9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc09190611940565b83600281518110610cd357610cd361170a565b6020908102919091010152604051636eb1769f60e11b81526001600160a01b03898116600483015288811660248301528a169063dd62ed3e90604401602060405180830381865afa158015610d2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d509190611940565b83600381518110610d6357610d6361170a565b602002602001018181525050886001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd19190611959565b82600081518110610de457610de461170a565b60200260200101906001600160a01b031690816001600160a01b031681525050886001600160a01b03166306fdde036040518163ffffffff1660e01b8152600401600060405180830381865afa158015610e42573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e6a9190810190611976565b81600081518110610e7d57610e7d61170a565b6020026020010181905250886001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015610ec6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610eee9190810190611976565b81600181518110610f0157610f0161170a565b602090810291909101015291989097509095509350505050565b610f23610676565b600082815260066020908152604091829020600201548251638da5cb5b60e01b8152925133936001600160a01b0390921692638da5cb5b92600480820193918290030181865afa158015610f7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9f9190611959565b6001600160a01b031614610fe25760405162461bcd60e51b815260206004820152600a60248201526937b7363c9037bbb732b960b11b60448201526064016106b8565b6000828152600660205260409020600301610ffd8282611863565b505050565b6001600160a01b03831660009081526005602052604090205460609081908190819061102f8188886103d8565b94509450945094505093509350935093565b6000546001600160a01b0316331461106b5760405162461bcd60e51b81526004016106b89061175a565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146110b8576040519150601f19603f3d011682016040523d82523d6000602084013e6110bd565b606091505b5050905080610ffd5760405162461bcd60e51b81526020600482015260146024820152732330b4b632b2103a379039b2b7321022ba3432b960611b60448201526064016106b8565b6000546001600160a01b0316331461112f5760405162461bcd60e51b81526004016106b89061175a565b61070f816001600160a01b0381166111985760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106b8565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b61105f806119ee83390190565b6001600160a01b038116811461070f57600080fd5b60008060006060848603121561122a57600080fd5b83359250602084013561123c81611200565b9150604084013561124c81611200565b809150509250925092565b600081518084526020808501945080840160005b838110156112875781518752958201959082019060010161126b565b509495945050505050565b600081518084526020808501945080840160005b838110156112875781516001600160a01b0316875295820195908201906001016112a6565b60005b838110156112e65781810151838201526020016112ce565b50506000910152565b600081518084526113078160208601602086016112cb565b601f01601f19169290920160200192915050565b6000815180845260208085019450848260051b860182860160005b8581101561136057838303895261134e8383516112ef565b98850198925090840190600101611336565b5090979650505050505050565b6080815260006113806080830187611257565b6020838203818501526113938288611292565b8481036040860152865180825282880193509082019060005b818110156113ca5784511515835293830193918301916001016113ac565b505084810360608601526113de818761131b565b9998505050505050505050565b6000602082840312156113fd57600080fd5b813561140881611200565b9392505050565b60006020828403121561142157600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561146757611467611428565b604052919050565b600067ffffffffffffffff82111561148957611489611428565b50601f01601f191660200190565b600082601f8301126114a857600080fd5b81356114bb6114b68261146f565b61143e565b8181528460208386010111156114d057600080fd5b816020850160208301376000918101602001919091529392505050565b60ff8116811461070f57600080fd5b60008060008060008060c0878903121561151557600080fd5b863567ffffffffffffffff8082111561152d57600080fd5b6115398a838b01611497565b9750602089013591508082111561154f57600080fd5b61155b8a838b01611497565b96506040890135915061156d826114ed565b9094506060880135935060808801359061158682611200565b90925060a0880135908082111561159c57600080fd5b506115a989828a01611497565b9150509295509295509295565b84815283602082015260018060a01b03831660408201526080606082015260006115e360808301846112ef565b9695505050505050565b60008060006060848603121561160257600080fd5b833561160d81611200565b9250602084013561161d81611200565b929592945050506040919091013590565b60008060006060848603121561164357600080fd5b833561164e81611200565b9250602084013561123c81611200565b6060815260006116716060830186611257565b82810360208401526116838186611292565b905082810360408401526115e3818561131b565b600080604083850312156116aa57600080fd5b82359150602083013567ffffffffffffffff8111156116c857600080fd5b6116d485828601611497565b9150509250929050565b600080604083850312156116f157600080fd5b82356116fc81611200565b946020939093013593505050565b634e487b7160e01b600052603260045260246000fd5b600181811c9082168061173457607f821691505b60208210810361175457634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526009908201526837b7363ca7bbb732b960b91b604082015260600190565b60006001820161179d57634e487b7160e01b600052601160045260246000fd5b5060010190565b60a0815260006117b760a08301886112ef565b82810360208401526117c981886112ef565b60ff969096166040840152505060608101929092526001600160a01b031660809091015292915050565b60006020828403121561180557600080fd5b8151801515811461140857600080fd5b601f821115610ffd57600081815260208120601f850160051c8101602086101561183c5750805b601f850160051c820191505b8181101561185b57828155600101611848565b505050505050565b815167ffffffffffffffff81111561187d5761187d611428565b6118918161188b8454611720565b84611815565b602080601f8311600181146118c657600084156118ae5750858301515b600019600386901b1c1916600185901b17855561185b565b600085815260208120601f198616915b828110156118f5578886015182559484019460019091019084016118d6565b50858210156119135787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121561193557600080fd5b8151611408816114ed565b60006020828403121561195257600080fd5b5051919050565b60006020828403121561196b57600080fd5b815161140881611200565b60006020828403121561198857600080fd5b815167ffffffffffffffff81111561199f57600080fd5b8201601f810184136119b057600080fd5b80516119be6114b68261146f565b8181528560208385010111156119d357600080fd5b6119e48260208301602086016112cb565b9594505050505056fe60806040526000805460ff60a01b1916905534801561001d57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350610ff18061006e6000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c8063893d20e8116100ad578063b09f126611610071578063b09f12661461025c578063d28d885214610264578063dd62ed3e1461026c578063e764bea0146102a5578063f2fde38b146102b857600080fd5b8063893d20e8146101f85780638da5cb5b1461021d57806395d89b411461022e578063a457c2d714610236578063a9059cbb1461024957600080fd5b8063313ce567116100f4578063313ce5671461018c57806332424aa3146101a557806339509351146101b257806370a08231146101c5578063715018a6146101ee57600080fd5b806306fdde0314610126578063095ea7b31461014457806318160ddd1461016757806323b872dd14610179575b600080fd5b61012e6102cb565b60405161013b9190610b9a565b60405180910390f35b610157610152366004610c04565b61035d565b604051901515815260200161013b565b6003545b60405190815260200161013b565b610157610187366004610c2e565b610374565b60045460ff165b60405160ff909116815260200161013b565b6004546101939060ff1681565b6101576101c0366004610c04565b6103dd565b61016b6101d3366004610c6a565b6001600160a01b031660009081526001602052604090205490565b6101f6610413565b005b6000546001600160a01b03165b6040516001600160a01b03909116815260200161013b565b6000546001600160a01b0316610205565b61012e610490565b610157610244366004610c04565b61049f565b610157610257366004610c04565b61050c565b61012e610519565b61012e6105a7565b61016b61027a366004610c85565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6101576102b3366004610d5b565b6105b4565b6101f66102c6366004610c6a565b6106fa565b6060600680546102da90610df2565b80601f016020809104026020016040519081016040528092919081815260200182805461030690610df2565b80156103535780601f1061032857610100808354040283529160200191610353565b820191906000526020600020905b81548152906001019060200180831161033657829003601f168201915b5050505050905090565b600061036a338484610730565b5060015b92915050565b600061038184848461083e565b6103d384336103ce85604051806060016040528060218152602001610f9b602191396001600160a01b038a16600090815260026020908152604080832033845290915290205491906109f8565b610730565b5060019392505050565b3360008181526002602090815260408083206001600160a01b0387168452909152812054909161036a9185906103ce9086610a32565b6000546001600160a01b031633146104465760405162461bcd60e51b815260040161043d90610e2c565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6060600580546102da90610df2565b604080518082018252601e81527f44656372656173656420616c6c6f77616e63652062656c6f77207a65726f0000602080830191909152336000818152600283528481206001600160a01b038816825290925292812054909261036a92909186916103ce919087906109f8565b600061036a33848461083e565b6005805461052690610df2565b80601f016020809104026020016040519081016040528092919081815260200182805461055290610df2565b801561059f5780601f106105745761010080835404028352916020019161059f565b820191906000526020600020905b81548152906001019060200180831161058257829003601f168201915b505050505081565b6006805461052690610df2565b600080546001600160a01b031633146105df5760405162461bcd60e51b815260040161043d90610e2c565b600054600160a01b900460ff16156106395760405162461bcd60e51b815260206004820181905260248201527f54686520746f6b656e20697320616c726561647920696e697469616c697a6564604482015260640161043d565b6000805460ff60a01b1916600160a01b17905560066106588782610e9e565b5060056106658682610e9e565b506004805460ff191660ff861617905560038390556001600160a01b038216600090815260016020526040902083905561069e826106fa565b816001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6003546040516106e691815260200190565b60405180910390a350600195945050505050565b6000546001600160a01b031633146107245760405162461bcd60e51b815260040161043d90610e2c565b61072d81610a98565b50565b6001600160a01b0383166107865760405162461bcd60e51b815260206004820152601d60248201527f417070726f76652066726f6d20746865207a65726f2061646472657373000000604482015260640161043d565b6001600160a01b0382166107dc5760405162461bcd60e51b815260206004820152601b60248201527f417070726f766520746f20746865207a65726f20616464726573730000000000604482015260640161043d565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166108945760405162461bcd60e51b815260206004820152601e60248201527f5472616e736665722066726f6d20746865207a65726f20616464726573730000604482015260640161043d565b6001600160a01b0382166108ea5760405162461bcd60e51b815260206004820152601c60248201527f5472616e7366657220746f20746865207a65726f206164647265737300000000604482015260640161043d565b6001600160a01b0383166000908152600160205260409020548111156109525760405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657220616d6f756e7420657863656564732062616c616e636500604482015260640161043d565b6001600160a01b0383166000908152600160205260409020546109759082610b58565b6001600160a01b0380851660009081526001602052604080822093909355908416815220546109a49082610a32565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906108319085815260200190565b60008184841115610a1c5760405162461bcd60e51b815260040161043d9190610b9a565b506000610a298486610f74565b95945050505050565b600080610a3f8385610f87565b905083811015610a915760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161043d565b9392505050565b6001600160a01b038116610afd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161043d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000610a9183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506109f8565b600060208083528351808285015260005b81811015610bc757858101830151858201604001528201610bab565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610bff57600080fd5b919050565b60008060408385031215610c1757600080fd5b610c2083610be8565b946020939093013593505050565b600080600060608486031215610c4357600080fd5b610c4c84610be8565b9250610c5a60208501610be8565b9150604084013590509250925092565b600060208284031215610c7c57600080fd5b610a9182610be8565b60008060408385031215610c9857600080fd5b610ca183610be8565b9150610caf60208401610be8565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610cdf57600080fd5b813567ffffffffffffffff80821115610cfa57610cfa610cb8565b604051601f8301601f19908116603f01168101908282118183101715610d2257610d22610cb8565b81604052838152866020858801011115610d3b57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060a08688031215610d7357600080fd5b853567ffffffffffffffff80821115610d8b57600080fd5b610d9789838a01610cce565b96506020880135915080821115610dad57600080fd5b50610dba88828901610cce565b945050604086013560ff81168114610dd157600080fd5b925060608601359150610de660808701610be8565b90509295509295909350565b600181811c90821680610e0657607f821691505b602082108103610e2657634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526009908201526837b7363ca7bbb732b960b91b604082015260600190565b601f821115610e9957600081815260208120601f850160051c81016020861015610e765750805b601f850160051c820191505b81811015610e9557828155600101610e82565b5050505b505050565b815167ffffffffffffffff811115610eb857610eb8610cb8565b610ecc81610ec68454610df2565b84610e4f565b602080601f831160018114610f015760008415610ee95750858301515b600019600386901b1c1916600185901b178555610e95565b600085815260208120601f198616915b82811015610f3057888601518255948401946001909101908401610f11565b5085821015610f4e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b8181038181111561036e5761036e610f5e565b8082018082111561036e5761036e610f5e56fe5472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208d216150fefb11301d2fa11e83ed48026dcd5a79b9ff821d8b1bc8a676ac9b3f64736f6c63430008120033a26469706673582212205ebcf521f84ebbbd5a8b55d16b0f0adba9c3be75f2bcd2bb1d0febf61383686a64736f6c63430008120033

Deployed Bytecode Sourcemap

551:4528:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1192:85;;;;;;;;;;-1:-1:-1;1262:7:2;;1192:85;;;160:25:8;;;148:2;133:18;1192:85:2;;;;;;;;1421:1120;;;;;;;;;;-1:-1:-1;1421:1120:2;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;654:255:6:-;;;:::i;509:137::-;;;;;;;;;;-1:-1:-1;509:137:6;;;;;:::i;:::-;;:::i;380:121::-;;;;;;;;;;-1:-1:-1;380:121:6;;;;;:::i;:::-;;:::i;4156:920:2:-;;;;;;:::i;:::-;;:::i;756:24::-;;;;;;;;;;;;;;;;857:57;;;;;;;;;;-1:-1:-1;857:57:2;;;;;:::i;:::-;;;;;;;;;;;;;;253:46:6;;;;;;;;;;;;;;;;637:140:3;;;;;;;;;;;;;:::i;443:82::-;;;;;;;;;;-1:-1:-1;484:7:3;511:6;-1:-1:-1;;;;;511:6:3;443:82;;;-1:-1:-1;;;;;6902:32:8;;;6884:51;;6872:2;6857:18;443:82:3;6738:203:8;314:49:6;;;;;;;;;;-1:-1:-1;314:49:6;;;;-1:-1:-1;;;;;314:49:6;;;1285:128:2;;;;;;;;;;-1:-1:-1;1285:128:2;;;;;:::i;:::-;-1:-1:-1;;;;;1374:31:2;1347:7;1374:31;;;:22;:31;;;;;;;1285:128;1129:54;;;;;;;;;;-1:-1:-1;1129:54:2;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;572:202:7:-;;;;;;;;;;-1:-1:-1;572:202:7;;;;;:::i;:::-;;:::i;2549:912:2:-;;;;;;;;;;-1:-1:-1;2549:912:2;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;3846:302::-;;;;;;:::i;:::-;;:::i;3469:369::-;;;;;;;;;;-1:-1:-1;3469:369:2;;;;;:::i;:::-;;:::i;361:179:7:-;;;;;;;;;;-1:-1:-1;361:179:7;;;;;:::i;:::-;;:::i;785:109:3:-;;;;;;;;;;-1:-1:-1;785:109:3;;;;;:::i;:::-;;:::i;718:31:2:-;;;;;;;;;;;;;;;;1421:1120;1645:17;;;1659:2;1645:17;;;;;;;;;1539:16;;;;;;;;1618:24;;1645:17;;;;;;;;-1:-1:-1;;1703:17:2;;;1717:2;1703:17;;;;;;;;;1618:44;;-1:-1:-1;1673:27:2;;1703:17;-1:-1:-1;1703:17:2;;;;;;;;-1:-1:-1;;1755:14:2;;;1766:2;1755:14;;;;;;;;;1673:47;;-1:-1:-1;1731:21:2;;1755:14;-1:-1:-1;1755:14:2;;;;;;;;-1:-1:-1;;1808:16:2;;;1821:2;1808:16;;;;;;;;;1731:38;;-1:-1:-1;1780:25:2;;1808:16;-1:-1:-1;1808:16:2;;;;;;;;;;;;;;;;;-1:-1:-1;;1840:31:2;;;;:17;:31;;;;;:43;1780:44;;-1:-1:-1;1840:46:2;1837:125;;1910:7;;-1:-1:-1;1919:10:2;;-1:-1:-1;1931:7:2;-1:-1:-1;1940:9:2;-1:-1:-1;1902:48:2;;1837:125;2022:31;;;;:17;:31;;;;;:52;;;2009:100;;-1:-1:-1;;;;;2022:52:2;2076:15;2093;2009:12;:100::i;:::-;2156:31;;;;:17;:31;;;;;:43;2142:11;;1974:135;;-1:-1:-1;1974:135:2;;-1:-1:-1;1974:135:2;-1:-1:-1;2156:43:2;1974:135;;2150:2;;2142:11;;;;;;:::i;:::-;;;;;;:57;;;;;2224:17;:31;2242:12;2224:31;;;;;;;;;;;:41;;;2210:7;2218:2;2210:11;;;;;;;;:::i;:::-;;;;;;:55;;;;;2290:7;;2276;2284:2;2276:11;;;;;;;;:::i;:::-;;;;;;;;;;;:21;;;;2350:31;;;;:17;:31;;;;;;:52;;;2333:14;;-1:-1:-1;;;;;2350:52:2;;;;2333:10;;2344:2;;2333:14;;;;;;:::i;:::-;-1:-1:-1;;;;;2333:69:2;;;:14;;;;;;;;;;:69;2431:31;;;;:17;:31;;;;;;:41;;2415:57;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:9;2425:2;2415:13;;;;;;;;:::i;:::-;;;;;;;;;;:57;2493:7;;-1:-1:-1;2502:10:2;;-1:-1:-1;2514:7:2;-1:-1:-1;2523:9:2;-1:-1:-1;1421:1120:2;;;;;;;;:::o;654:255:6:-;728:11;;715:9;:24;;707:54;;;;-1:-1:-1;;;707:54:6;;10534:2:8;707:54:6;;;10516:21:8;10573:2;10553:18;;;10546:30;-1:-1:-1;;;10592:18:8;;;10585:47;10649:18;;707:54:6;;;;;;;;;775:18;;-1:-1:-1;;;;;775:18:6;803:4;775:33;772:113;;832:18;;;861:11;824:49;;-1:-1:-1;;;;;832:18:6;;;;824:49;;;;;861:11;832:18;824:49;832:18;824:49;861:11;832:18;824:49;;;;;;;;;;;;;;;;;;;;;772:113;654:255::o;509:137::-;573:6:3;;-1:-1:-1;;;;;573:6:3;410:10:0;573:22:3;565:44;;;;-1:-1:-1;;;565:44:3;;;;;;;:::i;:::-;589:18:6::1;:32:::0;;-1:-1:-1;;;;;589:32:6;::::1;-1:-1:-1::0;;;;;;589:32:6;;::::1;;::::0;;509:137;:::o;380:121::-;573:6:3;;-1:-1:-1;;;;;573:6:3;410:10:0;573:22:3;565:44;;;;-1:-1:-1;;;565:44:3;;;;;;;:::i;:::-;452:11:6::1;:24:::0;380:121::o;4156:920:2:-;4346:17;:15;:17::i;:::-;4376:12;:14;;;:12;:14;;;:::i;:::-;;;;;;4403:24;4430:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4523:103:2;;-1:-1:-1;;;4523:103:2;;4403:44;;-1:-1:-1;4403:44:2;;-1:-1:-1;;;;;4523:44:2;;;;;:103;;4568:6;;4576:8;;4586:10;;4598:13;;4613:12;;4523:103;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;4686:12:2;;;-1:-1:-1;;;;;4639:44:2;;;;;;:22;:44;;;;;;;;:59;;;4711:31;;;:17;:31;;;;;4755:15;4711:41;;;;:59;4827:12;;4781:31;;;;;;:58;;;4850:52;;:75;;-1:-1:-1;;;;;;4850:75:2;;;;;;;4954:12;;4936:31;;;:41;:54;4980:10;4936:41;:54;:::i;:::-;-1:-1:-1;5055:12:2;;5008:60;;-1:-1:-1;;;;;5008:60:2;;;;;;;;4335:741;;4156:920;;;;;;:::o;637:140:3:-;573:6;;-1:-1:-1;;;;;573:6:3;410:10:0;573:22:3;565:44;;;;-1:-1:-1;;;565:44:3;;;;;;;:::i;:::-;736:1:::1;720:6:::0;;699:40:::1;::::0;-1:-1:-1;;;;;720:6:3;;::::1;::::0;699:40:::1;::::0;736:1;;699:40:::1;767:1;750:19:::0;;-1:-1:-1;;;;;;750:19:3::1;::::0;;637:140::o;1129:54:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1129:54:2;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;572:202:7:-;573:6:3;;-1:-1:-1;;;;;573:6:3;410:10:0;573:22:3;565:44;;;;-1:-1:-1;;;565:44:3;;;;;;;:::i;:::-;730:36:7::1;::::0;-1:-1:-1;;;730:36:7;;-1:-1:-1;;;;;14567:32:8;;;730:36:7::1;::::0;::::1;14549:51:8::0;14616:18;;;14609:34;;;706:12:7;;730:22;;::::1;::::0;::::1;::::0;14522:18:8;;730:36:7::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;665:109;572:202:::0;;;:::o;2549:912:2:-;2755:17;;;2769:2;2755:17;;;;;;;;;2664:16;;;;;;2728:24;;2755:17;;;;;;;;;-1:-1:-1;;2813:17:2;;;2827:2;2813:17;;;;;;;;;2728:44;;-1:-1:-1;2783:27:2;;2813:17;-1:-1:-1;2813:17:2;;;;;;;;-1:-1:-1;;2869:16:2;;;2882:2;2869:16;;;;;;;;;2783:47;;-1:-1:-1;2841:25:2;;2869:16;-1:-1:-1;2869:16:2;;;;;;;;;;;;;;;;;;;;2841:44;;2938:13;-1:-1:-1;;;;;2931:30:2;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2918:45;;:7;2926:1;2918:10;;;;;;;;:::i;:::-;;;;;;:45;;;;;2994:13;-1:-1:-1;;;;;2987:33:2;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2974:7;2982:1;2974:10;;;;;;;;:::i;:::-;;;;;;;;;;:48;3048;;-1:-1:-1;;;3048:48:2;;-1:-1:-1;;;;;6902:32:8;;;3048:48:2;;;6884:51:8;3048:31:2;;;;;6857:18:8;;3048:48:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3035:7;3043:1;3035:10;;;;;;;;:::i;:::-;;;;;;;;;;:61;3120:64;;-1:-1:-1;;;3120:64:2;;-1:-1:-1;;;;;15325:15:8;;;3120:64:2;;;15307:34:8;15377:15;;;15357:18;;;15350:43;3120:31:2;;;;;15242:18:8;;3120:64:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3107:7;3115:1;3107:10;;;;;;;;:::i;:::-;;;;;;:77;;;;;3243:13;-1:-1:-1;;;;;3236:27:2;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3220:10;3231:1;3220:13;;;;;;;;:::i;:::-;;;;;;:45;-1:-1:-1;;;;;3220:45:2;;;-1:-1:-1;;;;;3220:45:2;;;;;3322:13;-1:-1:-1;;;;;3315:26:2;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3315:28:2;;;;;;;;;;;;:::i;:::-;3300:9;3310:1;3300:12;;;;;;;;:::i;:::-;;;;;;:43;;;;3376:13;-1:-1:-1;;;;;3369:28:2;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3369:30:2;;;;;;;;;;;;:::i;:::-;3354:9;3364:1;3354:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;3422:7;;3431:10;;-1:-1:-1;3422:7:2;;-1:-1:-1;2549:912:2;-1:-1:-1;;;;2549:912:2:o;3846:302::-;3942:17;:15;:17::i;:::-;3985:31;;;;:17;:31;;;;;;;;;:52;;;3978:68;;-1:-1:-1;;;3978:68:2;;;;4050:10;;-1:-1:-1;;;;;3985:52:2;;;;3978:66;;:68;;;;;;;;;;;3985:52;3978:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3978:82:2;;3970:105;;;;-1:-1:-1;;;3970:105:2;;16516:2:8;3970:105:2;;;16498:21:8;16555:2;16535:18;;;16528:30;-1:-1:-1;;;16574:18:8;;;16567:40;16624:18;;3970:105:2;16314:334:8;3970:105:2;4086:31;;;;:17;:31;;;;;:41;;:54;4130:10;4086:41;:54;:::i;:::-;;3846:302;;:::o;3469:369::-;-1:-1:-1;;;;;3706:45:2;;3683:20;3706:45;;;:22;:45;;;;;;3604:16;;;;;;;;3769:61;3706:45;3799:13;3814:15;3769;:61::i;:::-;3762:68;;;;;;;;;3469:369;;;;;;;:::o;361:179:7:-;573:6:3;;-1:-1:-1;;;;;573:6:3;410:10:0;573:22:3;565:44;;;;-1:-1:-1;;;565:44:3;;;;;;;:::i;:::-;441:9:7::1;456:3;-1:-1:-1::0;;;;;456:8:7::1;472:7;456:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;440:44;;;503:4;495:37;;;::::0;-1:-1:-1;;;495:37:7;;17065:2:8;495:37:7::1;::::0;::::1;17047:21:8::0;17104:2;17084:18;;;17077:30;-1:-1:-1;;;17123:18:8;;;17116:50;17183:18;;495:37:7::1;16863:344:8::0;785:109:3;573:6;;-1:-1:-1;;;;;573:6:3;410:10:0;573:22:3;565:44;;;;-1:-1:-1;;;565:44:3;;;;;;;:::i;:::-;858:28:::1;877:8;-1:-1:-1::0;;;;;976:22:3;;968:73;;;;-1:-1:-1;;;968:73:3;;17414:2:8;968:73:3;;;17396:21:8;17453:2;17433:18;;;17426:30;17492:34;17472:18;;;17465:62;-1:-1:-1;;;17543:18:8;;;17536:36;17589:19;;968:73:3;17212:402:8;968:73:3;1078:6;;;1057:38;;-1:-1:-1;;;;;1057:38:3;;;;1078:6;;;1057:38;;;1106:6;:17;;-1:-1:-1;;;;;;1106:17:3;-1:-1:-1;;;;;1106:17:3;;;;;;;;;;902:229::o;-1:-1:-1:-;;;;;;;;:::o;196:131:8:-;-1:-1:-1;;;;;271:31:8;;261:42;;251:70;;317:1;314;307:12;332:456;409:6;417;425;478:2;466:9;457:7;453:23;449:32;446:52;;;494:1;491;484:12;446:52;530:9;517:23;507:33;;590:2;579:9;575:18;562:32;603:31;628:5;603:31;:::i;:::-;653:5;-1:-1:-1;710:2:8;695:18;;682:32;723:33;682:32;723:33;:::i;:::-;775:7;765:17;;;332:456;;;;;:::o;793:435::-;846:3;884:5;878:12;911:6;906:3;899:19;937:4;966:2;961:3;957:12;950:19;;1003:2;996:5;992:14;1024:1;1034:169;1048:6;1045:1;1042:13;1034:169;;;1109:13;;1097:26;;1143:12;;;;1178:15;;;;1070:1;1063:9;1034:169;;;-1:-1:-1;1219:3:8;;793:435;-1:-1:-1;;;;;793:435:8:o;1233:461::-;1286:3;1324:5;1318:12;1351:6;1346:3;1339:19;1377:4;1406:2;1401:3;1397:12;1390:19;;1443:2;1436:5;1432:14;1464:1;1474:195;1488:6;1485:1;1482:13;1474:195;;;1553:13;;-1:-1:-1;;;;;1549:39:8;1537:52;;1609:12;;;;1644:15;;;;1585:1;1503:9;1474:195;;1699:250;1784:1;1794:113;1808:6;1805:1;1802:13;1794:113;;;1884:11;;;1878:18;1865:11;;;1858:39;1830:2;1823:10;1794:113;;;-1:-1:-1;;1941:1:8;1923:16;;1916:27;1699:250::o;1954:271::-;1996:3;2034:5;2028:12;2061:6;2056:3;2049:19;2077:76;2146:6;2139:4;2134:3;2130:14;2123:4;2116:5;2112:16;2077:76;:::i;:::-;2207:2;2186:15;-1:-1:-1;;2182:29:8;2173:39;;;;2214:4;2169:50;;1954:271;-1:-1:-1;;1954:271:8:o;2230:567::-;2282:3;2320:5;2314:12;2347:6;2342:3;2335:19;2373:4;2402:2;2397:3;2393:12;2386:19;;2427:3;2467:6;2464:1;2460:14;2455:3;2451:24;2509:2;2502:5;2498:14;2530:1;2540:231;2554:6;2551:1;2548:13;2540:231;;;2625:5;2619:4;2615:16;2610:3;2603:29;2653:38;2686:4;2677:6;2671:13;2653:38;:::i;:::-;2749:12;;;;2645:46;-1:-1:-1;2714:15:8;;;;2576:1;2569:9;2540:231;;;-1:-1:-1;2787:4:8;;2230:567;-1:-1:-1;;;;;;;2230:567:8:o;2802:1211::-;3229:3;3218:9;3211:22;3192:4;3256:57;3308:3;3297:9;3293:19;3285:6;3256:57;:::i;:::-;3332:2;3382:9;3374:6;3370:22;3365:2;3354:9;3350:18;3343:50;3416:44;3453:6;3445;3416:44;:::i;:::-;3496:22;;;3491:2;3476:18;;3469:50;3568:13;;3590:22;;;3666:15;;;;-1:-1:-1;3628:15:8;;;;3699:1;3709:185;3723:6;3720:1;3717:13;3709:185;;;3798:13;;3791:21;3784:29;3772:42;;3869:15;;;;3834:12;;;;3745:1;3738:9;3709:185;;;3713:3;;3939:9;3934:3;3930:19;3925:2;3914:9;3910:18;3903:47;3967:40;4003:3;3995:6;3967:40;:::i;:::-;3959:48;2802:1211;-1:-1:-1;;;;;;;;;2802:1211:8:o;4018:247::-;4077:6;4130:2;4118:9;4109:7;4105:23;4101:32;4098:52;;;4146:1;4143;4136:12;4098:52;4185:9;4172:23;4204:31;4229:5;4204:31;:::i;:::-;4254:5;4018:247;-1:-1:-1;;;4018:247:8:o;4270:180::-;4329:6;4382:2;4370:9;4361:7;4357:23;4353:32;4350:52;;;4398:1;4395;4388:12;4350:52;-1:-1:-1;4421:23:8;;4270:180;-1:-1:-1;4270:180:8:o;4455:127::-;4516:10;4511:3;4507:20;4504:1;4497:31;4547:4;4544:1;4537:15;4571:4;4568:1;4561:15;4587:275;4658:2;4652:9;4723:2;4704:13;;-1:-1:-1;;4700:27:8;4688:40;;4758:18;4743:34;;4779:22;;;4740:62;4737:88;;;4805:18;;:::i;:::-;4841:2;4834:22;4587:275;;-1:-1:-1;4587:275:8:o;4867:187::-;4916:4;4949:18;4941:6;4938:30;4935:56;;;4971:18;;:::i;:::-;-1:-1:-1;5037:2:8;5016:15;-1:-1:-1;;5012:29:8;5043:4;5008:40;;4867:187::o;5059:464::-;5102:5;5155:3;5148:4;5140:6;5136:17;5132:27;5122:55;;5173:1;5170;5163:12;5122:55;5209:6;5196:20;5240:49;5256:32;5285:2;5256:32;:::i;:::-;5240:49;:::i;:::-;5314:2;5305:7;5298:19;5360:3;5353:4;5348:2;5340:6;5336:15;5332:26;5329:35;5326:55;;;5377:1;5374;5367:12;5326:55;5442:2;5435:4;5427:6;5423:17;5416:4;5407:7;5403:18;5390:55;5490:1;5465:16;;;5483:4;5461:27;5454:38;;;;5469:7;5059:464;-1:-1:-1;;;5059:464:8:o;5528:114::-;5612:4;5605:5;5601:16;5594:5;5591:27;5581:55;;5632:1;5629;5622:12;5647:1086;5779:6;5787;5795;5803;5811;5819;5872:3;5860:9;5851:7;5847:23;5843:33;5840:53;;;5889:1;5886;5879:12;5840:53;5929:9;5916:23;5958:18;5999:2;5991:6;5988:14;5985:34;;;6015:1;6012;6005:12;5985:34;6038:50;6080:7;6071:6;6060:9;6056:22;6038:50;:::i;:::-;6028:60;;6141:2;6130:9;6126:18;6113:32;6097:48;;6170:2;6160:8;6157:16;6154:36;;;6186:1;6183;6176:12;6154:36;6209:52;6253:7;6242:8;6231:9;6227:24;6209:52;:::i;:::-;6199:62;;6311:2;6300:9;6296:18;6283:32;6270:45;;6324:29;6347:5;6324:29;:::i;:::-;6372:5;;-1:-1:-1;6424:2:8;6409:18;;6396:32;;-1:-1:-1;6480:3:8;6465:19;;6452:33;;6494;6452;6494;:::i;:::-;6546:7;;-1:-1:-1;6606:3:8;6591:19;;6578:33;;6623:16;;;6620:36;;;6652:1;6649;6642:12;6620:36;;6675:52;6719:7;6708:8;6697:9;6693:24;6675:52;:::i;:::-;6665:62;;;5647:1086;;;;;;;;:::o;6946:461::-;7179:6;7168:9;7161:25;7222:6;7217:2;7206:9;7202:18;7195:34;7294:1;7290;7285:3;7281:11;7277:19;7269:6;7265:32;7260:2;7249:9;7245:18;7238:60;7334:3;7329:2;7318:9;7314:18;7307:31;7142:4;7355:46;7396:3;7385:9;7381:19;7373:6;7355:46;:::i;:::-;7347:54;6946:461;-1:-1:-1;;;;;;6946:461:8:o;7412:456::-;7489:6;7497;7505;7558:2;7546:9;7537:7;7533:23;7529:32;7526:52;;;7574:1;7571;7564:12;7526:52;7613:9;7600:23;7632:31;7657:5;7632:31;:::i;:::-;7682:5;-1:-1:-1;7739:2:8;7724:18;;7711:32;7752:33;7711:32;7752:33;:::i;:::-;7412:456;;7804:7;;-1:-1:-1;;;7858:2:8;7843:18;;;;7830:32;;7412:456::o;7873:529::-;7950:6;7958;7966;8019:2;8007:9;7998:7;7994:23;7990:32;7987:52;;;8035:1;8032;8025:12;7987:52;8074:9;8061:23;8093:31;8118:5;8093:31;:::i;:::-;8143:5;-1:-1:-1;8200:2:8;8185:18;;8172:32;8213:33;8172:32;8213:33;:::i;8407:688::-;8762:2;8751:9;8744:21;8725:4;8788:56;8840:2;8829:9;8825:18;8817:6;8788:56;:::i;:::-;8892:9;8884:6;8880:22;8875:2;8864:9;8860:18;8853:50;8926:44;8963:6;8955;8926:44;:::i;:::-;8912:58;;9018:9;9010:6;9006:22;9001:2;8990:9;8986:18;8979:50;9046:43;9082:6;9074;9046:43;:::i;9100:390::-;9178:6;9186;9239:2;9227:9;9218:7;9214:23;9210:32;9207:52;;;9255:1;9252;9245:12;9207:52;9291:9;9278:23;9268:33;;9352:2;9341:9;9337:18;9324:32;9379:18;9371:6;9368:30;9365:50;;;9411:1;9408;9401:12;9365:50;9434;9476:7;9467:6;9456:9;9452:22;9434:50;:::i;:::-;9424:60;;;9100:390;;;;;:::o;9495:315::-;9563:6;9571;9624:2;9612:9;9603:7;9599:23;9595:32;9592:52;;;9640:1;9637;9630:12;9592:52;9679:9;9666:23;9698:31;9723:5;9698:31;:::i;:::-;9748:5;9800:2;9785:18;;;;9772:32;;-1:-1:-1;;;9495:315:8:o;9815:127::-;9876:10;9871:3;9867:20;9864:1;9857:31;9907:4;9904:1;9897:15;9931:4;9928:1;9921:15;9947:380;10026:1;10022:12;;;;10069;;;10090:61;;10144:4;10136:6;10132:17;10122:27;;10090:61;10197:2;10189:6;10186:14;10166:18;10163:38;10160:161;;10243:10;10238:3;10234:20;10231:1;10224:31;10278:4;10275:1;10268:15;10306:4;10303:1;10296:15;10160:161;;9947:380;;;:::o;10678:332::-;10880:2;10862:21;;;10919:1;10899:18;;;10892:29;-1:-1:-1;;;10952:2:8;10937:18;;10930:39;11001:2;10986:18;;10678:332::o;11015:232::-;11054:3;11075:17;;;11072:140;;11134:10;11129:3;11125:20;11122:1;11115:31;11169:4;11166:1;11159:15;11197:4;11194:1;11187:15;11072:140;-1:-1:-1;11239:1:8;11228:13;;11015:232::o;11252:632::-;11529:3;11518:9;11511:22;11492:4;11556:46;11597:3;11586:9;11582:19;11574:6;11556:46;:::i;:::-;11650:9;11642:6;11638:22;11633:2;11622:9;11618:18;11611:50;11678:33;11704:6;11696;11678:33;:::i;:::-;11759:4;11747:17;;;;11742:2;11727:18;;11720:45;-1:-1:-1;;11796:2:8;11781:18;;11774:34;;;;-1:-1:-1;;;;;11845:32:8;11839:3;11824:19;;;11817:61;11670:41;11252:632;-1:-1:-1;;11252:632:8:o;11889:277::-;11956:6;12009:2;11997:9;11988:7;11984:23;11980:32;11977:52;;;12025:1;12022;12015:12;11977:52;12057:9;12051:16;12110:5;12103:13;12096:21;12089:5;12086:32;12076:60;;12132:1;12129;12122:12;12297:545;12399:2;12394:3;12391:11;12388:448;;;12435:1;12460:5;12456:2;12449:17;12505:4;12501:2;12491:19;12575:2;12563:10;12559:19;12556:1;12552:27;12546:4;12542:38;12611:4;12599:10;12596:20;12593:47;;;-1:-1:-1;12634:4:8;12593:47;12689:2;12684:3;12680:12;12677:1;12673:20;12667:4;12663:31;12653:41;;12744:82;12762:2;12755:5;12752:13;12744:82;;;12807:17;;;12788:1;12777:13;12744:82;;;12748:3;;;12297:545;;;:::o;13018:1352::-;13144:3;13138:10;13171:18;13163:6;13160:30;13157:56;;;13193:18;;:::i;:::-;13222:97;13312:6;13272:38;13304:4;13298:11;13272:38;:::i;:::-;13266:4;13222:97;:::i;:::-;13374:4;;13438:2;13427:14;;13455:1;13450:663;;;;14157:1;14174:6;14171:89;;;-1:-1:-1;14226:19:8;;;14220:26;14171:89;-1:-1:-1;;12975:1:8;12971:11;;;12967:24;12963:29;12953:40;12999:1;12995:11;;;12950:57;14273:81;;13420:944;;13450:663;12244:1;12237:14;;;12281:4;12268:18;;-1:-1:-1;;13486:20:8;;;13604:236;13618:7;13615:1;13612:14;13604:236;;;13707:19;;;13701:26;13686:42;;13799:27;;;;13767:1;13755:14;;;;13634:19;;13604:236;;;13608:3;13868:6;13859:7;13856:19;13853:201;;;13929:19;;;13923:26;-1:-1:-1;;14012:1:8;14008:14;;;14024:3;14004:24;14000:37;13996:42;13981:58;13966:74;;13853:201;-1:-1:-1;;;;;14100:1:8;14084:14;;;14080:22;14067:36;;-1:-1:-1;13018:1352:8:o;14654:247::-;14722:6;14775:2;14763:9;14754:7;14750:23;14746:32;14743:52;;;14791:1;14788;14781:12;14743:52;14823:9;14817:16;14842:29;14865:5;14842:29;:::i;14906:184::-;14976:6;15029:2;15017:9;15008:7;15004:23;15000:32;14997:52;;;15045:1;15042;15035:12;14997:52;-1:-1:-1;15068:16:8;;14906:184;-1:-1:-1;14906:184:8:o;15404:251::-;15474:6;15527:2;15515:9;15506:7;15502:23;15498:32;15495:52;;;15543:1;15540;15533:12;15495:52;15575:9;15569:16;15594:31;15619:5;15594:31;:::i;15660:649::-;15740:6;15793:2;15781:9;15772:7;15768:23;15764:32;15761:52;;;15809:1;15806;15799:12;15761:52;15842:9;15836:16;15875:18;15867:6;15864:30;15861:50;;;15907:1;15904;15897:12;15861:50;15930:22;;15983:4;15975:13;;15971:27;-1:-1:-1;15961:55:8;;16012:1;16009;16002:12;15961:55;16041:2;16035:9;16066:49;16082:32;16111:2;16082:32;:::i;16066:49::-;16138:2;16131:5;16124:17;16178:7;16173:2;16168;16164;16160:11;16156:20;16153:33;16150:53;;;16199:1;16196;16189:12;16150:53;16212:67;16276:2;16271;16264:5;16260:14;16255:2;16251;16247:11;16212:67;:::i;:::-;16298:5;15660:649;-1:-1:-1;;;;;15660:649:8:o

Swarm Source

ipfs://5ebcf521f84ebbbd5a8b55d16b0f0adba9c3be75f2bcd2bb1d0febf61383686a

Block Transaction Gas Used Reward
view all blocks produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.