ETH Price: $2,048.14 (-4.23%)

Contract

0xea3983Fc6D0fbbC41fb6F6091f68F3e08894dC06
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

TokenTracker

Unido (UDO) ($0.0002)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer245835642026-03-04 10:41:472 days ago1772620907IN
Unido: UDO Token
0 ETH0.000003680.108
Approve245328772026-02-25 8:57:239 days ago1772009843IN
Unido: UDO Token
0 ETH0.000002670.11044629
Approve245013322026-02-20 23:24:1113 days ago1771629851IN
Unido: UDO Token
0 ETH0.000095562.05783495
Approve244711372026-02-16 18:20:4717 days ago1771266047IN
Unido: UDO Token
0 ETH0.000094142.03718003
Approve244652062026-02-15 22:30:3518 days ago1771194635IN
Unido: UDO Token
0 ETH0.000001890.0410333
Transfer244063802026-02-07 17:17:1126 days ago1770484631IN
Unido: UDO Token
0 ETH0.000062081.1072976
Approve243717662026-02-02 21:09:3531 days ago1770066575IN
Unido: UDO Token
0 ETH0.00001260.27300041
Approve243099452026-01-25 6:10:4740 days ago1769321447IN
Unido: UDO Token
0 ETH0.000006050.13095332
Approve242757762026-01-20 11:45:5945 days ago1768909559IN
Unido: UDO Token
0 ETH0.00000550.119262
Approve242492902026-01-16 19:09:3548 days ago1768590575IN
Unido: UDO Token
0 ETH0.000002470.05321163
Approve242224482026-01-13 1:14:4752 days ago1768266887IN
Unido: UDO Token
0 ETH0.000098752.13588517
Transfer242007172026-01-10 0:29:1155 days ago1768004951IN
Unido: UDO Token
0 ETH0.000057881.03252327
Transfer241715512026-01-05 22:49:3559 days ago1767653375IN
Unido: UDO Token
0 ETH0.000004180.08165616
Approve241422402026-01-01 20:42:3563 days ago1767300155IN
Unido: UDO Token
0 ETH0.000006550.14180327
Approve241345312025-12-31 18:54:3564 days ago1767207275IN
Unido: UDO Token
0 ETH0.000095592.06742726
Transfer241216642025-12-29 23:45:1166 days ago1767051911IN
Unido: UDO Token
0 ETH0.000107712.10042616
Approve240766842025-12-23 17:03:5972 days ago1766509439IN
Unido: UDO Token
0 ETH0.000073883.05094576
Transfer240753332025-12-23 12:32:2373 days ago1766493143IN
Unido: UDO Token
0 ETH0.000058141.03706223
Approve240508452025-12-20 2:33:1176 days ago1766197991IN
Unido: UDO Token
0 ETH0.00000120.02601702
Approve240486822025-12-19 19:18:5976 days ago1766171939IN
Unido: UDO Token
0 ETH0.000009770.40456688
Approve240486252025-12-19 19:07:3576 days ago1766171255IN
Unido: UDO Token
0 ETH0.000001510.03260597
Approve240370192025-12-18 4:11:1178 days ago1766031071IN
Unido: UDO Token
0 ETH0.000001360.02957277
Approve240358122025-12-18 0:08:2378 days ago1766016503IN
Unido: UDO Token
0 ETH0.000094362.0293443
Approve240040422025-12-13 13:40:4782 days ago1765633247IN
Unido: UDO Token
0 ETH0.000001710.03692742
Approve239832502025-12-10 15:37:4785 days ago1765381067IN
Unido: UDO Token
0 ETH0.000030920.66496226
View all transactions

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer189674132024-01-09 5:45:11787 days ago1704779111
Unido: UDO Token
0.12627828 ETH
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
UnidoDistribution

Compiler Version
v0.7.0+commit.9e61f92b

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2021-03-02
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.7.0;

contract Ownable {
    address public owner;
    address private _nextOwner;
    
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    
    constructor() {
        owner = msg.sender;
        emit OwnershipTransferred(address(0), owner);
    }
    
    modifier onlyOwner() {
        require(msg.sender == owner, 'Only the owner of the contract can do that');
        _;
    }
    
    function transferOwnership(address nextOwner) public onlyOwner {
        _nextOwner = nextOwner;
    }
    
    function takeOwnership() public {
        require(msg.sender == _nextOwner, 'Must be given ownership to do that');
        emit OwnershipTransferred(owner, _nextOwner);
        owner = _nextOwner;
    }
}

library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "SafeMath: subtraction overflow");
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b != 0, "SafeMath: division by zero");
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b != 0, "SafeMath: modulo by zero");
        return a % b;
    }
}

contract UnidoDistribution is Ownable {
    using SafeMath for uint256;
    
    // 0 - SEED
    // 1 - PRIVATE
    // 2 - TEAM
    // 3 - ADVISOR
    // 4 - ECOSYSTEM
    // 5 - LIQUIDITY
    // 6 - RESERVE
    enum POOL{SEED, PRIVATE, TEAM, ADVISOR, ECOSYSTEM, LIQUIDITY, RESERVE}
    
    mapping (POOL => uint) public pools;
    
    uint256 public totalSupply;
    string public constant name = "Unido";
    uint256 public constant decimals = 18;
    string public constant symbol = "UDO";
    address[] public participants;
    
    bool private isActive;
    uint256 private scanLength = 150;
    uint256 private continuePoint;
    uint256[] private deletions;
    
    mapping (address => uint256) private balances;
    mapping (address => mapping(address => uint256)) private allowances;
    mapping (address => uint256) public lockoutPeriods;
    mapping (address => uint256) public lockoutBalances;
    mapping (address => uint256) public lockoutReleaseRates;
    
    event Active(bool isActive);
    event Approval(address indexed tokenOwner, address indexed spender, uint tokens);
    event Transfer(address indexed from, address indexed to, uint tokens);
    event Burn(address indexed tokenOwner, uint tokens);
    
    constructor () {
        pools[POOL.SEED] = 15000000 * 10**decimals;
        pools[POOL.PRIVATE] = 16000000 * 10**decimals;
        pools[POOL.TEAM] = 18400000 * 10**decimals;
        pools[POOL.ADVISOR] = 10350000 * 10**decimals;
        pools[POOL.ECOSYSTEM] = 14375000 * 10**decimals;
        pools[POOL.LIQUIDITY] = 8625000 * 10**decimals;
        pools[POOL.RESERVE] = 32250000 * 10**decimals;
        
        totalSupply = pools[POOL.SEED] + pools[POOL.PRIVATE] + pools[POOL.TEAM] + pools[POOL.ADVISOR] + pools[POOL.ECOSYSTEM] + pools[POOL.LIQUIDITY] + pools[POOL.RESERVE];

        // Give POLS private sale directly
        uint pols = 2000000 * 10**decimals;
        pools[POOL.PRIVATE] = pools[POOL.PRIVATE].sub(pols);
        balances[address(0xeFF02cB28A05EebF76cB6aF993984731df8479b1)] = pols;
        
        // Give LIQUIDITY pool their half directly
        uint liquid = pools[POOL.LIQUIDITY].div(2);
        pools[POOL.LIQUIDITY] = pools[POOL.LIQUIDITY].sub(liquid);
        balances[address(0xd6221a4f8880e9Aa355079F039a6012555556974)] = liquid;
    }
    
    function _isTradeable() internal view returns (bool) {
        return isActive;
    }
    
    function isTradeable() public view returns (bool) {
        return _isTradeable();
    }
    
    function setTradeable() external onlyOwner {
        require (!isActive, "Can only set tradeable when its not already tradeable");
        isActive = true;
        Active(true);
    }
    
    function setScanLength(uint256 len) external onlyOwner {
        require (len > 20, "Values 20 or less are impractical");
        require (len <= 200, "Values greater than 200 may cause the updateRelease function to fail");
        scanLength = len;
    }
    
    function balanceOf(address tokenOwner) public view returns (uint) {
        return balances[tokenOwner];
    }
    
    function allowance(address tokenOwner, address spender) public view returns (uint) {
        return allowances[tokenOwner][spender];
    }
    
    function spendable(address tokenOwner) public view returns (uint) {
        return balances[tokenOwner].sub(lockoutBalances[tokenOwner]);
    }
    
    function transfer(address to, uint tokens) public returns (bool) {
        require (_isTradeable(), "Contract is not tradeable yet");
        require (balances[msg.sender].sub(lockoutBalances[msg.sender]) >= tokens, "Must have enough spendable tokens");
        require (tokens > 0, "Must transfer non-zero amount");
        require (to != address(0), "Cannot send to the 0 address");
        
        balances[msg.sender] = balances[msg.sender].sub(tokens);
        balances[to] = balances[to].add(tokens);
        Transfer(msg.sender, to, tokens);
        return true;
    }
    
    function increaseAllowance(address spender, uint addedValue) public returns (bool) {
        _approve(msg.sender, spender, allowances[msg.sender][spender].add(addedValue));
        return true;
    }
    
    function decreaseAllowance(address spender, uint subtractedValue) public returns (bool) {
        _approve(msg.sender, spender, allowances[msg.sender][spender].sub(subtractedValue));
        return true;
    }
    
    function approve(address spender, uint tokens) public returns (bool) {
        _approve(msg.sender, spender, tokens);
        return true;
    }
    
    function _approve(address owner, address spender, uint tokens) internal {
        require (owner != address(0), "Cannot approve from the 0 address");
        require (spender != address(0), "Cannot approve the 0 address");
        
        allowances[owner][spender] = tokens;
        Approval(owner, spender, tokens);
    }
    
    function burn(uint tokens) public {
        require (balances[msg.sender].sub(lockoutBalances[msg.sender]) >= tokens, "Must have enough spendable tokens");
        require (tokens > 0, "Must burn non-zero amount");
        
        balances[msg.sender] = balances[msg.sender].sub(tokens);
        totalSupply = totalSupply.sub(tokens);
        Burn(msg.sender, tokens);
    }
    
    function transferFrom(address from, address to, uint tokens) public returns (bool) {
        require (_isTradeable(), "Contract is not trading yet");
        require (balances[from].sub(lockoutBalances[from]) >= tokens, "Must have enough spendable tokens");
        require (allowances[from][msg.sender] >= tokens, "Must be approved to spend that much");
        require (tokens > 0, "Must transfer non-zero amount");
        require (from != address(0), "Cannot send from the 0 address");
        require (to != address(0), "Cannot send to the 0 address");
        
        balances[from] = balances[from].sub(tokens);
        balances[to] = balances[to].add(tokens);
        allowances[from][msg.sender] = allowances[from][msg.sender].sub(tokens);
        Transfer(from, to, tokens);
        return true;
    }
    
    function addParticipants(POOL pool, address[] calldata _participants, uint256[] calldata _stakes) external onlyOwner {
        require (pool >= POOL.SEED && pool <= POOL.RESERVE, "Must select a valid pool");
        require (_participants.length == _stakes.length, "Must have equal array sizes");
        
        uint lockoutPeriod;
        uint lockoutReleaseRate;
        
        if (pool == POOL.SEED) {
            lockoutPeriod = 1;
            lockoutReleaseRate = 5;
        } else if (pool == POOL.PRIVATE) {
            lockoutReleaseRate = 4;
        } else if (pool == POOL.TEAM) {
            lockoutPeriod = 12;
            lockoutReleaseRate = 12;
        } else if (pool == POOL.ADVISOR) {
            lockoutPeriod = 6;
            lockoutReleaseRate = 6;
        } else if (pool == POOL.ECOSYSTEM) {
            lockoutPeriod = 3;
            lockoutReleaseRate = 9;
        } else if (pool == POOL.LIQUIDITY) {
            lockoutReleaseRate = 1;
            lockoutPeriod = 1;
        } else if (pool == POOL.RESERVE) {
            lockoutReleaseRate = 18;
        }
        
        uint256 sum;
        uint256 len = _participants.length;
        for (uint256 i = 0; i < len; i++) {
            address p = _participants[i];
            require(lockoutBalances[p] == 0, "Participants can't be involved in multiple lock ups simultaneously");
        
            participants.push(p);
            lockoutBalances[p] = _stakes[i];
            balances[p] = balances[p].add(_stakes[i]);
            lockoutPeriods[p] = lockoutPeriod;
            lockoutReleaseRates[p] = lockoutReleaseRate;
            sum = sum.add(_stakes[i]);
        }
        
        require(sum <= pools[pool], "Insufficient amount left in pool for this");
        pools[pool] = pools[pool].sub(sum);
    }
    
    function finalizeParticipants(POOL pool) external onlyOwner {
        uint leftover = pools[pool];
        pools[pool] = 0;
        totalSupply = totalSupply.sub(leftover);
    }
    
    /**
     * For each account with an active lockout, if their lockout has expired 
     * then release their lockout at the lockout release rate
     * If the lockout release rate is 0, assume its all released at the date
     * Only do max 100 at a time, call repeatedly which it returns true
     */
    function updateRelease() external onlyOwner returns (bool) {
        uint scan = scanLength;
        uint len = participants.length;
        uint continueAddScan = continuePoint.add(scan);
        for (uint i = continuePoint; i < len && i < continueAddScan; i++) {
            address p = participants[i];
            if (lockoutPeriods[p] > 0) {
                lockoutPeriods[p]--;
            } else if (lockoutReleaseRates[p] > 0) {
                uint rate = lockoutReleaseRates[p];
                
                uint release;
                if (rate == 18) {
                    // First release of reserve is 12.5%
                    release = lockoutBalances[p].div(8);
                } else {
                    release = lockoutBalances[p].div(lockoutReleaseRates[p]);
                }
                
                lockoutBalances[p] = lockoutBalances[p].sub(release);
                lockoutReleaseRates[p]--;
            } else {
                deletions.push(i);
            }
        }
        continuePoint = continuePoint.add(scan);
        if (continuePoint >= len) {
            continuePoint = 0;
            while (deletions.length > 0) {
                uint index = deletions[deletions.length-1];
                deletions.pop();

                participants[index] = participants[participants.length - 1];
                participants.pop();
            }
            return false;
        }
        
        return true;
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"isActive","type":"bool"}],"name":"Active","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"tokenOwner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"tokenOwner","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Burn","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"enum UnidoDistribution.POOL","name":"pool","type":"uint8"},{"internalType":"address[]","name":"_participants","type":"address[]"},{"internalType":"uint256[]","name":"_stakes","type":"uint256[]"}],"name":"addParticipants","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenOwner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenOwner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"enum UnidoDistribution.POOL","name":"pool","type":"uint8"}],"name":"finalizeParticipants","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isTradeable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lockoutBalances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lockoutPeriods","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lockoutReleaseRates","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"participants","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"enum UnidoDistribution.POOL","name":"","type":"uint8"}],"name":"pools","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"len","type":"uint256"}],"name":"setScanLength","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setTradeable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenOwner","type":"address"}],"name":"spendable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"nextOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"updateRelease","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

608060405260966006553480156200001657600080fd5b50600080546001600160a01b03191633178082556040516001600160a01b039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600260208190526a0c685fa11e01ec6f0000007fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b556a0d3c21bcecceda100000006000805160206200211f833981519152556a0f3859ffa9ede12c0000007f679795a0195a1b76cdebb7c51d74e058aee92919b8c3389af86ef24535e8a28c556a088fb29fcf95cea8c000007f88601476d11616a71c5be67555bd1dff4b1cbf21533d2669b768b61518cfe1c3556a0be4064fbcc1d7ea6000007fee60d0579bcffd98e668647d59fec1ff86a7fb340ce572e844f234ae73a6918f556a07226a2fd7a7818ca00000600080516020620020ff833981519152556a1aad3400cd50ef884000007f59dd4b18488d12f51eda69757a0ed42a2010c14b564330cc74a06895e60c077b5560008080526a5f20327de60ebf530000006003556a01a784379d99db4200000091620001e29183919060015b6006811115620001bf57fe5b815260200190815260200160002054620002b660201b620019541790919060201c565b6000805160206200211f833981519152557f590178d1498a979fc3832287ccbefce2efde38f172472c72eb1ebdff3eeca4888190556005600090815260026020818152600080516020620020ff833981519152546200024c929091620019b162000314821b17901c565b90506200025f81600260006005620001b3565b600080516020620020ff8339815191525573d6221a4f8880e9aa355079f039a601255555697460005260096020527f111a1d5d0d14ab7c043fe32f3f8887699d1edbba5d8ecb8175ca9ded0d0c9ae155506200037e565b6000828211156200030e576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60008162000369576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b60008284816200037557fe5b04949350505050565b611d71806200038e6000396000f3fe608060405234801561001057600080fd5b50600436106101a85760003560e01c806360536172116100f9578063a457c2d711610097578063c36d16a911610071578063c36d16a914610578578063dd62ed3e14610595578063f2fde38b146105c3578063fb87a635146105e9576101a8565b8063a457c2d714610518578063a9059cbb14610544578063c1cda90214610570576101a8565b80638da5cb5b116100d35780638da5cb5b146104bc57806395d89b41146104c457806398fd6108146104cc578063a219fdd6146104f2576101a8565b8063605361721461046857806363ae9f6e1461047057806370a0823114610496576101a8565b806323b872dd11610166578063395093511161014057806339509351146103f157806342966c681461041d57806344fa7b241461043a5780635db5f57b14610442576101a8565b806323b872dd1461037a578063313ce567146103b057806335c1d349146103b8576101a8565b8062ab73e2146101ad57806306fdde03146101cf578063095ea7b31461024c57806318160ddd1461028c5780631b4c84d2146102a657806321563ebd146102ae575b600080fd5b6101cd600480360360208110156101c357600080fd5b503560ff16610609565b005b6101d76106c2565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102115781810151838201526020016101f9565b50505050905090810190601f16801561023e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102786004803603604081101561026257600080fd5b506001600160a01b0381351690602001356106e3565b604080519115158252519081900360200190f35b6102946106f9565b60408051918252519081900360200190f35b6102786106ff565b6101cd600480360360608110156102c457600080fd5b60ff82351691908101906040810160208201356401000000008111156102e957600080fd5b8201836020820111156102fb57600080fd5b8035906020019184602083028401116401000000008311171561031d57600080fd5b91939092909160208101903564010000000081111561033b57600080fd5b82018360208201111561034d57600080fd5b8035906020019184602083028401116401000000008311171561036f57600080fd5b50909250905061070f565b6102786004803603606081101561039057600080fd5b506001600160a01b03813581169160208101359091169060400135610b7a565b610294610eab565b6103d5600480360360208110156103ce57600080fd5b5035610eb0565b604080516001600160a01b039092168252519081900360200190f35b6102786004803603604081101561040757600080fd5b506001600160a01b038135169060200135610ed7565b6101cd6004803603602081101561043357600080fd5b5035610f12565b61027861103f565b6102946004803603602081101561045857600080fd5b50356001600160a01b031661136a565b6101cd61137c565b6102946004803603602081101561048657600080fd5b50356001600160a01b0316611426565b610294600480360360208110156104ac57600080fd5b50356001600160a01b0316611438565b6103d5611453565b6101d7611462565b610294600480360360208110156104e257600080fd5b50356001600160a01b0316611481565b6102946004803603602081101561050857600080fd5b50356001600160a01b0316611493565b6102786004803603604081101561052e57600080fd5b506001600160a01b0381351690602001356114c6565b6102786004803603604081101561055a57600080fd5b506001600160a01b0381351690602001356114fc565b6101cd611710565b6101cd6004803603602081101561058e57600080fd5b50356117df565b610294600480360360408110156105ab57600080fd5b506001600160a01b03813581169160200135166118ac565b6101cd600480360360208110156105d957600080fd5b50356001600160a01b03166118d7565b610294600480360360208110156105ff57600080fd5b503560ff16611942565b6000546001600160a01b031633146106525760405162461bcd60e51b815260040180806020018281038252602a815260200180611cc7602a913960400191505060405180910390fd5b60006002600083600681111561066457fe5b600681111561066f57fe5b815260200190815260200160002054905060006002600084600681111561069257fe5b600681111561069d57fe5b81526020810191909152604001600020556003546106bb9082611954565b6003555050565b60405180604001604052806005815260200164556e69646f60d81b81525081565b60006106f0338484611a19565b50600192915050565b60035481565b6000610709611b1b565b90505b90565b6000546001600160a01b031633146107585760405162461bcd60e51b815260040180806020018281038252602a815260200180611cc7602a913960400191505060405180910390fd5b600085600681111561076657fe5b101580156107805750600685600681111561077d57fe5b11155b6107d1576040805162461bcd60e51b815260206004820152601860248201527f4d7573742073656c65637420612076616c696420706f6f6c0000000000000000604482015290519081900360640190fd5b828114610825576040805162461bcd60e51b815260206004820152601b60248201527f4d757374206861766520657175616c2061727261792073697a65730000000000604482015290519081900360640190fd5b6000808087600681111561083557fe5b141561084757506001905060056108f8565b600187600681111561085557fe5b1415610863575060046108f8565b600287600681111561087157fe5b14156108825750600c9050806108f8565b600387600681111561089057fe5b14156108a1575060069050806108f8565b60048760068111156108af57fe5b14156108c157506003905060096108f8565b60058760068111156108cf57fe5b14156108e0575060019050806108f8565b60068760068111156108ee57fe5b14156108f8575060125b600085815b81811015610a9e57600089898381811061091357fe5b905060200201356001600160a01b03169050600c6000826001600160a01b03166001600160a01b03168152602001908152602001600020546000146109895760405162461bcd60e51b8152600401808060200182810382526042815260200180611bff6042913960600191505060405180910390fd5b600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0319166001600160a01b0383161790558787838181106109e057fe5b6001600160a01b0384166000908152600c602090815260409091209102929092013590915550610a3d888884818110610a1557fe5b6001600160a01b03851660009081526009602090815260409091205493910201359050611b24565b6001600160a01b038216600090815260096020908152604080832093909355600b8152828220899055600d905220859055610a93888884818110610a7d57fe5b9050602002013585611b2490919063ffffffff16565b9350506001016108fd565b50600260008a6006811115610aaf57fe5b6006811115610aba57fe5b815260200190815260200160002054821115610b075760405162461bcd60e51b8152600401808060200182810382526029815260200180611d136029913960400191505060405180910390fd5b610b4382600260008c6006811115610b1b57fe5b6006811115610b2657fe5b81526020019081526020016000205461195490919063ffffffff16565b600260008b6006811115610b5357fe5b6006811115610b5e57fe5b8152602081019190915260400160002055505050505050505050565b6000610b84611b1b565b610bd5576040805162461bcd60e51b815260206004820152601b60248201527f436f6e7472616374206973206e6f742074726164696e67207965740000000000604482015290519081900360640190fd5b6001600160a01b0384166000908152600c60209081526040808320546009909252909120548391610c069190611954565b1015610c435760405162461bcd60e51b8152600401808060200182810382526021815260200180611ca66021913960400191505060405180910390fd5b6001600160a01b0384166000908152600a60209081526040808320338452909152902054821115610ca55760405162461bcd60e51b8152600401808060200182810382526023815260200180611c626023913960400191505060405180910390fd5b60008211610cfa576040805162461bcd60e51b815260206004820152601d60248201527f4d757374207472616e73666572206e6f6e2d7a65726f20616d6f756e74000000604482015290519081900360640190fd5b6001600160a01b038416610d55576040805162461bcd60e51b815260206004820152601e60248201527f43616e6e6f742073656e642066726f6d20746865203020616464726573730000604482015290519081900360640190fd5b6001600160a01b038316610db0576040805162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742073656e6420746f207468652030206164647265737300000000604482015290519081900360640190fd5b6001600160a01b038416600090815260096020526040902054610dd39083611954565b6001600160a01b038086166000908152600960205260408082209390935590851681522054610e029083611b24565b6001600160a01b038085166000908152600960209081526040808320949094559187168152600a82528281203382529091522054610e409083611954565b6001600160a01b038086166000818152600a6020908152604080832033845282529182902094909455805186815290519287169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35060019392505050565b601281565b60048181548110610ebd57fe5b6000918252602090912001546001600160a01b0316905081565b336000818152600a602090815260408083206001600160a01b038716845290915281205490916106f0918590610f0d9086611b24565b611a19565b336000908152600c60209081526040808320546009909252909120548291610f3a9190611954565b1015610f775760405162461bcd60e51b8152600401808060200182810382526021815260200180611ca66021913960400191505060405180910390fd5b60008111610fcc576040805162461bcd60e51b815260206004820152601960248201527f4d757374206275726e206e6f6e2d7a65726f20616d6f756e7400000000000000604482015290519081900360640190fd5b33600090815260096020526040902054610fe69082611954565b336000908152600960205260409020556003546110039082611954565b60035560408051828152905133917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a250565b600080546001600160a01b031633146110895760405162461bcd60e51b815260040180806020018281038252602a815260200180611cc7602a913960400191505060405180910390fd5b60065460045460075460009061109f9084611b24565b6007549091505b82811080156110b457508181105b1561124d576000600482815481106110c857fe5b60009182526020808320909101546001600160a01b0316808352600b9091526040909120549091501561111a576001600160a01b0381166000908152600b602052604090208054600019019055611244565b6001600160a01b0381166000908152600d60205260409020541561120e576001600160a01b0381166000908152600d6020526040812054906012821415611186576001600160a01b0383166000908152600c602052604090205461117f9060086119b1565b90506111b7565b6001600160a01b0383166000908152600d6020908152604080832054600c909252909120546111b4916119b1565b90505b6001600160a01b0383166000908152600c60205260409020546111da9082611954565b6001600160a01b0384166000908152600c6020908152604080832093909355600d9052208054600019019055506112449050565b600880546001810182556000919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3018290555b506001016110a6565b5060075461125b9084611b24565b600781905582116113605760006007555b60085415611354576008805460009190600019810190811061128a57fe5b9060005260206000200154905060088054806112a257fe5b600190038181906000526020600020016000905590556004600160048054905003815481106112cd57fe5b600091825260209091200154600480546001600160a01b0390921691839081106112f357fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600480548061132c57fe5b600082815260209020810160001990810180546001600160a01b03191690550190555061126c565b6000935050505061070c565b6001935050505090565b600d6020526000908152604090205481565b6001546001600160a01b031633146113c55760405162461bcd60e51b8152600401808060200182810382526022815260200180611cf16022913960400191505060405180910390fd5b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b600b6020526000908152604090205481565b6001600160a01b031660009081526009602052604090205490565b6000546001600160a01b031681565b6040518060400160405280600381526020016255444f60e81b81525081565b600c6020526000908152604090205481565b6001600160a01b0381166000908152600c602090815260408083205460099092528220546114c091611954565b92915050565b336000818152600a602090815260408083206001600160a01b038716845290915281205490916106f0918590610f0d9086611954565b6000611506611b1b565b611557576040805162461bcd60e51b815260206004820152601d60248201527f436f6e7472616374206973206e6f7420747261646561626c6520796574000000604482015290519081900360640190fd5b336000908152600c6020908152604080832054600990925290912054839161157f9190611954565b10156115bc5760405162461bcd60e51b8152600401808060200182810382526021815260200180611ca66021913960400191505060405180910390fd5b60008211611611576040805162461bcd60e51b815260206004820152601d60248201527f4d757374207472616e73666572206e6f6e2d7a65726f20616d6f756e74000000604482015290519081900360640190fd5b6001600160a01b03831661166c576040805162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742073656e6420746f207468652030206164647265737300000000604482015290519081900360640190fd5b336000908152600960205260409020546116869083611954565b33600090815260096020526040808220929092556001600160a01b038516815220546116b29083611b24565b6001600160a01b0384166000818152600960209081526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b6000546001600160a01b031633146117595760405162461bcd60e51b815260040180806020018281038252602a815260200180611cc7602a913960400191505060405180910390fd5b60055460ff161561179b5760405162461bcd60e51b8152600401808060200182810382526035815260200180611bca6035913960400191505060405180910390fd5b6005805460ff1916600190811790915560408051918252517fe4c97c0b674016b317b52dd3fbb57699889c86e187b096bc5a7f6dc3fcb12c209181900360200190a1565b6000546001600160a01b031633146118285760405162461bcd60e51b815260040180806020018281038252602a815260200180611cc7602a913960400191505060405180910390fd5b601481116118675760405162461bcd60e51b8152600401808060200182810382526021815260200180611c416021913960400191505060405180910390fd5b60c88111156118a75760405162461bcd60e51b8152600401808060200182810382526044815260200180611b866044913960600191505060405180910390fd5b600655565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b6000546001600160a01b031633146119205760405162461bcd60e51b815260040180806020018281038252602a815260200180611cc7602a913960400191505060405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60026020526000908152604090205481565b6000828211156119ab576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600081611a05576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481611a1057fe5b04949350505050565b6001600160a01b038316611a5e5760405162461bcd60e51b8152600401808060200182810382526021815260200180611c856021913960400191505060405180910390fd5b6001600160a01b038216611ab9576040805162461bcd60e51b815260206004820152601c60248201527f43616e6e6f7420617070726f7665207468652030206164647265737300000000604482015290519081900360640190fd5b6001600160a01b038084166000818152600a6020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b60055460ff1690565b600082820183811015611b7e576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b939250505056fe56616c7565732067726561746572207468616e20323030206d6179206361757365207468652075706461746552656c656173652066756e6374696f6e20746f206661696c43616e206f6e6c792073657420747261646561626c65207768656e20697473206e6f7420616c726561647920747261646561626c655061727469636970616e74732063616e277420626520696e766f6c76656420696e206d756c7469706c65206c6f636b207570732073696d756c74616e656f75736c7956616c756573203230206f72206c6573732061726520696d70726163746963616c4d75737420626520617070726f76656420746f207370656e642074686174206d75636843616e6e6f7420617070726f76652066726f6d20746865203020616464726573734d757374206861766520656e6f756768207370656e6461626c6520746f6b656e734f6e6c7920746865206f776e6572206f662074686520636f6e74726163742063616e20646f20746861744d75737420626520676976656e206f776e65727368697020746f20646f2074686174496e73756666696369656e7420616d6f756e74206c65667420696e20706f6f6c20666f722074686973a2646970667358221220163dd399dbcb9d96b3d2fc7e9c9fbacac075e65014922566bd96aed78dbc213464736f6c63430007000033b98b78633099fa36ed8b8680c4f8092689e1e04080eb9cbb077ca38a14d7e384e90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101a85760003560e01c806360536172116100f9578063a457c2d711610097578063c36d16a911610071578063c36d16a914610578578063dd62ed3e14610595578063f2fde38b146105c3578063fb87a635146105e9576101a8565b8063a457c2d714610518578063a9059cbb14610544578063c1cda90214610570576101a8565b80638da5cb5b116100d35780638da5cb5b146104bc57806395d89b41146104c457806398fd6108146104cc578063a219fdd6146104f2576101a8565b8063605361721461046857806363ae9f6e1461047057806370a0823114610496576101a8565b806323b872dd11610166578063395093511161014057806339509351146103f157806342966c681461041d57806344fa7b241461043a5780635db5f57b14610442576101a8565b806323b872dd1461037a578063313ce567146103b057806335c1d349146103b8576101a8565b8062ab73e2146101ad57806306fdde03146101cf578063095ea7b31461024c57806318160ddd1461028c5780631b4c84d2146102a657806321563ebd146102ae575b600080fd5b6101cd600480360360208110156101c357600080fd5b503560ff16610609565b005b6101d76106c2565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102115781810151838201526020016101f9565b50505050905090810190601f16801561023e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102786004803603604081101561026257600080fd5b506001600160a01b0381351690602001356106e3565b604080519115158252519081900360200190f35b6102946106f9565b60408051918252519081900360200190f35b6102786106ff565b6101cd600480360360608110156102c457600080fd5b60ff82351691908101906040810160208201356401000000008111156102e957600080fd5b8201836020820111156102fb57600080fd5b8035906020019184602083028401116401000000008311171561031d57600080fd5b91939092909160208101903564010000000081111561033b57600080fd5b82018360208201111561034d57600080fd5b8035906020019184602083028401116401000000008311171561036f57600080fd5b50909250905061070f565b6102786004803603606081101561039057600080fd5b506001600160a01b03813581169160208101359091169060400135610b7a565b610294610eab565b6103d5600480360360208110156103ce57600080fd5b5035610eb0565b604080516001600160a01b039092168252519081900360200190f35b6102786004803603604081101561040757600080fd5b506001600160a01b038135169060200135610ed7565b6101cd6004803603602081101561043357600080fd5b5035610f12565b61027861103f565b6102946004803603602081101561045857600080fd5b50356001600160a01b031661136a565b6101cd61137c565b6102946004803603602081101561048657600080fd5b50356001600160a01b0316611426565b610294600480360360208110156104ac57600080fd5b50356001600160a01b0316611438565b6103d5611453565b6101d7611462565b610294600480360360208110156104e257600080fd5b50356001600160a01b0316611481565b6102946004803603602081101561050857600080fd5b50356001600160a01b0316611493565b6102786004803603604081101561052e57600080fd5b506001600160a01b0381351690602001356114c6565b6102786004803603604081101561055a57600080fd5b506001600160a01b0381351690602001356114fc565b6101cd611710565b6101cd6004803603602081101561058e57600080fd5b50356117df565b610294600480360360408110156105ab57600080fd5b506001600160a01b03813581169160200135166118ac565b6101cd600480360360208110156105d957600080fd5b50356001600160a01b03166118d7565b610294600480360360208110156105ff57600080fd5b503560ff16611942565b6000546001600160a01b031633146106525760405162461bcd60e51b815260040180806020018281038252602a815260200180611cc7602a913960400191505060405180910390fd5b60006002600083600681111561066457fe5b600681111561066f57fe5b815260200190815260200160002054905060006002600084600681111561069257fe5b600681111561069d57fe5b81526020810191909152604001600020556003546106bb9082611954565b6003555050565b60405180604001604052806005815260200164556e69646f60d81b81525081565b60006106f0338484611a19565b50600192915050565b60035481565b6000610709611b1b565b90505b90565b6000546001600160a01b031633146107585760405162461bcd60e51b815260040180806020018281038252602a815260200180611cc7602a913960400191505060405180910390fd5b600085600681111561076657fe5b101580156107805750600685600681111561077d57fe5b11155b6107d1576040805162461bcd60e51b815260206004820152601860248201527f4d7573742073656c65637420612076616c696420706f6f6c0000000000000000604482015290519081900360640190fd5b828114610825576040805162461bcd60e51b815260206004820152601b60248201527f4d757374206861766520657175616c2061727261792073697a65730000000000604482015290519081900360640190fd5b6000808087600681111561083557fe5b141561084757506001905060056108f8565b600187600681111561085557fe5b1415610863575060046108f8565b600287600681111561087157fe5b14156108825750600c9050806108f8565b600387600681111561089057fe5b14156108a1575060069050806108f8565b60048760068111156108af57fe5b14156108c157506003905060096108f8565b60058760068111156108cf57fe5b14156108e0575060019050806108f8565b60068760068111156108ee57fe5b14156108f8575060125b600085815b81811015610a9e57600089898381811061091357fe5b905060200201356001600160a01b03169050600c6000826001600160a01b03166001600160a01b03168152602001908152602001600020546000146109895760405162461bcd60e51b8152600401808060200182810382526042815260200180611bff6042913960600191505060405180910390fd5b600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0319166001600160a01b0383161790558787838181106109e057fe5b6001600160a01b0384166000908152600c602090815260409091209102929092013590915550610a3d888884818110610a1557fe5b6001600160a01b03851660009081526009602090815260409091205493910201359050611b24565b6001600160a01b038216600090815260096020908152604080832093909355600b8152828220899055600d905220859055610a93888884818110610a7d57fe5b9050602002013585611b2490919063ffffffff16565b9350506001016108fd565b50600260008a6006811115610aaf57fe5b6006811115610aba57fe5b815260200190815260200160002054821115610b075760405162461bcd60e51b8152600401808060200182810382526029815260200180611d136029913960400191505060405180910390fd5b610b4382600260008c6006811115610b1b57fe5b6006811115610b2657fe5b81526020019081526020016000205461195490919063ffffffff16565b600260008b6006811115610b5357fe5b6006811115610b5e57fe5b8152602081019190915260400160002055505050505050505050565b6000610b84611b1b565b610bd5576040805162461bcd60e51b815260206004820152601b60248201527f436f6e7472616374206973206e6f742074726164696e67207965740000000000604482015290519081900360640190fd5b6001600160a01b0384166000908152600c60209081526040808320546009909252909120548391610c069190611954565b1015610c435760405162461bcd60e51b8152600401808060200182810382526021815260200180611ca66021913960400191505060405180910390fd5b6001600160a01b0384166000908152600a60209081526040808320338452909152902054821115610ca55760405162461bcd60e51b8152600401808060200182810382526023815260200180611c626023913960400191505060405180910390fd5b60008211610cfa576040805162461bcd60e51b815260206004820152601d60248201527f4d757374207472616e73666572206e6f6e2d7a65726f20616d6f756e74000000604482015290519081900360640190fd5b6001600160a01b038416610d55576040805162461bcd60e51b815260206004820152601e60248201527f43616e6e6f742073656e642066726f6d20746865203020616464726573730000604482015290519081900360640190fd5b6001600160a01b038316610db0576040805162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742073656e6420746f207468652030206164647265737300000000604482015290519081900360640190fd5b6001600160a01b038416600090815260096020526040902054610dd39083611954565b6001600160a01b038086166000908152600960205260408082209390935590851681522054610e029083611b24565b6001600160a01b038085166000908152600960209081526040808320949094559187168152600a82528281203382529091522054610e409083611954565b6001600160a01b038086166000818152600a6020908152604080832033845282529182902094909455805186815290519287169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35060019392505050565b601281565b60048181548110610ebd57fe5b6000918252602090912001546001600160a01b0316905081565b336000818152600a602090815260408083206001600160a01b038716845290915281205490916106f0918590610f0d9086611b24565b611a19565b336000908152600c60209081526040808320546009909252909120548291610f3a9190611954565b1015610f775760405162461bcd60e51b8152600401808060200182810382526021815260200180611ca66021913960400191505060405180910390fd5b60008111610fcc576040805162461bcd60e51b815260206004820152601960248201527f4d757374206275726e206e6f6e2d7a65726f20616d6f756e7400000000000000604482015290519081900360640190fd5b33600090815260096020526040902054610fe69082611954565b336000908152600960205260409020556003546110039082611954565b60035560408051828152905133917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a250565b600080546001600160a01b031633146110895760405162461bcd60e51b815260040180806020018281038252602a815260200180611cc7602a913960400191505060405180910390fd5b60065460045460075460009061109f9084611b24565b6007549091505b82811080156110b457508181105b1561124d576000600482815481106110c857fe5b60009182526020808320909101546001600160a01b0316808352600b9091526040909120549091501561111a576001600160a01b0381166000908152600b602052604090208054600019019055611244565b6001600160a01b0381166000908152600d60205260409020541561120e576001600160a01b0381166000908152600d6020526040812054906012821415611186576001600160a01b0383166000908152600c602052604090205461117f9060086119b1565b90506111b7565b6001600160a01b0383166000908152600d6020908152604080832054600c909252909120546111b4916119b1565b90505b6001600160a01b0383166000908152600c60205260409020546111da9082611954565b6001600160a01b0384166000908152600c6020908152604080832093909355600d9052208054600019019055506112449050565b600880546001810182556000919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3018290555b506001016110a6565b5060075461125b9084611b24565b600781905582116113605760006007555b60085415611354576008805460009190600019810190811061128a57fe5b9060005260206000200154905060088054806112a257fe5b600190038181906000526020600020016000905590556004600160048054905003815481106112cd57fe5b600091825260209091200154600480546001600160a01b0390921691839081106112f357fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600480548061132c57fe5b600082815260209020810160001990810180546001600160a01b03191690550190555061126c565b6000935050505061070c565b6001935050505090565b600d6020526000908152604090205481565b6001546001600160a01b031633146113c55760405162461bcd60e51b8152600401808060200182810382526022815260200180611cf16022913960400191505060405180910390fd5b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b600b6020526000908152604090205481565b6001600160a01b031660009081526009602052604090205490565b6000546001600160a01b031681565b6040518060400160405280600381526020016255444f60e81b81525081565b600c6020526000908152604090205481565b6001600160a01b0381166000908152600c602090815260408083205460099092528220546114c091611954565b92915050565b336000818152600a602090815260408083206001600160a01b038716845290915281205490916106f0918590610f0d9086611954565b6000611506611b1b565b611557576040805162461bcd60e51b815260206004820152601d60248201527f436f6e7472616374206973206e6f7420747261646561626c6520796574000000604482015290519081900360640190fd5b336000908152600c6020908152604080832054600990925290912054839161157f9190611954565b10156115bc5760405162461bcd60e51b8152600401808060200182810382526021815260200180611ca66021913960400191505060405180910390fd5b60008211611611576040805162461bcd60e51b815260206004820152601d60248201527f4d757374207472616e73666572206e6f6e2d7a65726f20616d6f756e74000000604482015290519081900360640190fd5b6001600160a01b03831661166c576040805162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742073656e6420746f207468652030206164647265737300000000604482015290519081900360640190fd5b336000908152600960205260409020546116869083611954565b33600090815260096020526040808220929092556001600160a01b038516815220546116b29083611b24565b6001600160a01b0384166000818152600960209081526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b6000546001600160a01b031633146117595760405162461bcd60e51b815260040180806020018281038252602a815260200180611cc7602a913960400191505060405180910390fd5b60055460ff161561179b5760405162461bcd60e51b8152600401808060200182810382526035815260200180611bca6035913960400191505060405180910390fd5b6005805460ff1916600190811790915560408051918252517fe4c97c0b674016b317b52dd3fbb57699889c86e187b096bc5a7f6dc3fcb12c209181900360200190a1565b6000546001600160a01b031633146118285760405162461bcd60e51b815260040180806020018281038252602a815260200180611cc7602a913960400191505060405180910390fd5b601481116118675760405162461bcd60e51b8152600401808060200182810382526021815260200180611c416021913960400191505060405180910390fd5b60c88111156118a75760405162461bcd60e51b8152600401808060200182810382526044815260200180611b866044913960600191505060405180910390fd5b600655565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b6000546001600160a01b031633146119205760405162461bcd60e51b815260040180806020018281038252602a815260200180611cc7602a913960400191505060405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60026020526000908152604090205481565b6000828211156119ab576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600081611a05576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481611a1057fe5b04949350505050565b6001600160a01b038316611a5e5760405162461bcd60e51b8152600401808060200182810382526021815260200180611c856021913960400191505060405180910390fd5b6001600160a01b038216611ab9576040805162461bcd60e51b815260206004820152601c60248201527f43616e6e6f7420617070726f7665207468652030206164647265737300000000604482015290519081900360640190fd5b6001600160a01b038084166000818152600a6020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b60055460ff1690565b600082820183811015611b7e576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b939250505056fe56616c7565732067726561746572207468616e20323030206d6179206361757365207468652075706461746552656c656173652066756e6374696f6e20746f206661696c43616e206f6e6c792073657420747261646561626c65207768656e20697473206e6f7420616c726561647920747261646561626c655061727469636970616e74732063616e277420626520696e766f6c76656420696e206d756c7469706c65206c6f636b207570732073696d756c74616e656f75736c7956616c756573203230206f72206c6573732061726520696d70726163746963616c4d75737420626520617070726f76656420746f207370656e642074686174206d75636843616e6e6f7420617070726f76652066726f6d20746865203020616464726573734d757374206861766520656e6f756768207370656e6461626c6520746f6b656e734f6e6c7920746865206f776e6572206f662074686520636f6e74726163742063616e20646f20746861744d75737420626520676976656e206f776e65727368697020746f20646f2074686174496e73756666696369656e7420616d6f756e74206c65667420696e20706f6f6c20666f722074686973a2646970667358221220163dd399dbcb9d96b3d2fc7e9c9fbacac075e65014922566bd96aed78dbc213464736f6c63430007000033

Deployed Bytecode Sourcemap

3864:10116:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11968:182;;;;;;;;;;;;;;;;-1:-1:-1;11968:182:0;;;;:::i;:::-;;4249:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8380:147;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8380:147:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;4216:26;;;:::i;:::-;;;;;;;;;;;;;;;;6339:90;;;:::i;10112:1844::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10112:1844:0;;-1:-1:-1;10112:1844:0;-1:-1:-1;10112:1844:0;:::i;9275:825::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9275:825:0;;;;;;;;;;;;;;;;;:::i;4293:37::-;;;:::i;4381:29::-;;;;;;;;;;;;;;;;-1:-1:-1;4381:29:0;;:::i;:::-;;;;-1:-1:-1;;;;;4381:29:0;;;;;;;;;;;;;;7942:202;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7942:202:0;;;;;;;;:::i;8881:382::-;;;;;;;;;;;;;;;;-1:-1:-1;8881:382:0;;:::i;12473:1504::-;;;:::i;4807:55::-;;;;;;;;;;;;;;;;-1:-1:-1;4807:55:0;-1:-1:-1;;;;;4807:55:0;;:::i;617:206::-;;;:::i;4692:50::-;;;;;;;;;;;;;;;;-1:-1:-1;4692:50:0;-1:-1:-1;;;;;4692:50:0;;:::i;6911:112::-;;;;;;;;;;;;;;;;-1:-1:-1;6911:112:0;-1:-1:-1;;;;;6911:112:0;;:::i;83:20::-;;;:::i;4337:37::-;;;:::i;4749:51::-;;;;;;;;;;;;;;;;-1:-1:-1;4749:51:0;-1:-1:-1;;;;;4749:51:0;;:::i;7187:145::-;;;;;;;;;;;;;;;;-1:-1:-1;7187:145:0;-1:-1:-1;;;;;7187:145:0;;:::i;8156:212::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8156:212:0;;;;;;;;:::i;7344:586::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7344:586:0;;;;;;;;:::i;6441:187::-;;;:::i;6640:259::-;;;;;;;;;;;;;;;;-1:-1:-1;6640:259:0;;:::i;7035:140::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7035:140:0;;;;;;;;;;:::i;501:104::-;;;;;;;;;;;;;;;;-1:-1:-1;501:104:0;-1:-1:-1;;;;;501:104:0;;:::i;4168:35::-;;;;;;;;;;;;;;;;-1:-1:-1;4168:35:0;;;;:::i;11968:182::-;417:5;;-1:-1:-1;;;;;417:5:0;403:10;:19;395:74;;;;-1:-1:-1;;;395:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12039:13:::1;12055:5;:11;12061:4;12055:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;12039:27;;12091:1;12077:5;:11;12083:4;12077:11;;;;;;;;;;;;;;;;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;12077:11:0;:15;12117:11:::1;::::0;:25:::1;::::0;12133:8;12117:15:::1;:25::i;:::-;12103:11;:39:::0;-1:-1:-1;;11968:182:0:o;4249:37::-;;;;;;;;;;;;;;-1:-1:-1;;;4249:37:0;;;;:::o;8380:147::-;8443:4;8460:37;8469:10;8481:7;8490:6;8460:8;:37::i;:::-;-1:-1:-1;8515:4:0;8380:147;;;;:::o;4216:26::-;;;;:::o;6339:90::-;6383:4;6407:14;:12;:14::i;:::-;6400:21;;6339:90;;:::o;10112:1844::-;417:5;;-1:-1:-1;;;;;417:5:0;403:10;:19;395:74;;;;-1:-1:-1;;;395:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10257:9:::1;10249:4;:17;;;;;;;;;;:41;;;;-1:-1:-1::0;10278:12:0::1;10270:4;:20;;;;;;;;;;10249:41;10240:79;;;::::0;;-1:-1:-1;;;10240:79:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;10339:38:::0;;::::1;10330:79;;;::::0;;-1:-1:-1;;;10330:79:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;10430:18;::::0;;10507:4:::1;:17;;;;;;;;;10503:722;;;-1:-1:-1::0;10557:1:0::1;::::0;-1:-1:-1;10594:1:0::1;10503:722;;;10625:12;10617:4;:20;;;;;;;;;10613:612;;;-1:-1:-1::0;10675:1:0::1;10613:612;;;10706:9;10698:4;:17;;;;;;;;;10694:531;;;-1:-1:-1::0;10748:2:0::1;::::0;-1:-1:-1;10748:2:0;10694:531:::1;;;10818:12;10810:4;:20;;;;;;;;;10806:419;;;-1:-1:-1::0;10863:1:0::1;::::0;-1:-1:-1;10863:1:0;10806:419:::1;;;10931:14;10923:4;:22;;;;;;;;;10919:306;;;-1:-1:-1::0;10978:1:0::1;::::0;-1:-1:-1;11015:1:0::1;10919:306;;;11046:14;11038:4;:22;;;;;;;;;11034:191;;;-1:-1:-1::0;11098:1:0::1;::::0;-1:-1:-1;11098:1:0;11034:191:::1;;;11161:12;11153:4;:20;;;;;;;;;11149:76;;;-1:-1:-1::0;11211:2:0::1;11149:76;11245:11;11281:13:::0;11245:11;11312:499:::1;11336:3;11332:1;:7;11312:499;;;11361:9;11373:13;;11387:1;11373:16;;;;;;;;;;;;;-1:-1:-1::0;;;;;11373:16:0::1;11361:28;;11412:15;:18;11428:1;-1:-1:-1::0;;;;;11412:18:0::1;-1:-1:-1::0;;;;;11412:18:0::1;;;;;;;;;;;;;11434:1;11412:23;11404:102;;;;-1:-1:-1::0;;;11404:102:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11531:12;:20:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;11531:20:0;;;;;::::1;::::0;;-1:-1:-1;;;;;;11531:20:0::1;-1:-1:-1::0;;;;;11531:20:0;::::1;;::::0;;11587:7;;11595:1;11587:10;;::::1;;;;;-1:-1:-1::0;;;;;11566:18:0;::::1;;::::0;;;:15:::1;11587:10;11566:18:::0;;;;;;;11587:10;::::1;::::0;;;::::1;;11566:31:::0;;;-1:-1:-1;11626:27:0::1;11642:7:::0;;11650:1;11642:10;;::::1;;;;;-1:-1:-1::0;;;;;11626:11:0;::::1;;::::0;;;:8:::1;11642:10;11626:11:::0;;;;;;;;;11642:10;::::1;;;::::0;-1:-1:-1;11626:15:0::1;:27::i;:::-;-1:-1:-1::0;;;;;11612:11:0;::::1;;::::0;;;:8:::1;:11;::::0;;;;;;;:41;;;;11668:14:::1;:17:::0;;;;;:33;;;11716:19:::1;:22:::0;;;:43;;;11780:19:::1;11788:7:::0;;11796:1;11788:10;;::::1;;;;;;;;;;;11780:3;:7;;:19;;;;:::i;:::-;11774:25:::0;-1:-1:-1;;11341:3:0::1;;11312:499;;;;11846:5;:11;11852:4;11846:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;11839:3;:18;;11831:72;;;;-1:-1:-1::0;;;11831:72:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11928:20;11944:3;11928:5;:11;11934:4;11928:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;:15;;:20;;;;:::i;:::-;11914:5;:11;11920:4;11914:11;;;;;;;;;;;;;;;;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;11914:11:0;:34;-1:-1:-1;;;;;;;;;10112:1844:0:o;9275:825::-;9352:4;9378:14;:12;:14::i;:::-;9369:55;;;;;-1:-1:-1;;;9369:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9463:21:0;;;;;;:15;:21;;;;;;;;;9444:8;:14;;;;;;;9489:6;;9444:41;;:14;:18;:41::i;:::-;:51;;9435:98;;;;-1:-1:-1;;;9435:98:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9553:16:0;;;;;;:10;:16;;;;;;;;9570:10;9553:28;;;;;;;;:38;-1:-1:-1;9553:38:0;9544:87;;;;-1:-1:-1;;;9544:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9660:1;9651:6;:10;9642:53;;;;;-1:-1:-1;;;9642:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9715:18:0;;9706:62;;;;;-1:-1:-1;;;9706:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9788:16:0;;9779:58;;;;;-1:-1:-1;;;9779:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9875:14:0;;;;;;:8;:14;;;;;;:26;;9894:6;9875:18;:26::i;:::-;-1:-1:-1;;;;;9858:14:0;;;;;;;:8;:14;;;;;;:43;;;;9927:12;;;;;;;:24;;9944:6;9927:16;:24::i;:::-;-1:-1:-1;;;;;9912:12:0;;;;;;;:8;:12;;;;;;;;:39;;;;9993:16;;;;;:10;:16;;;;;10010:10;9993:28;;;;;;;:40;;10026:6;9993:32;:40::i;:::-;-1:-1:-1;;;;;9962:16:0;;;;;;;:10;:16;;;;;;;;9979:10;9962:28;;;;;;;;:71;;;;10044:26;;;;;;;;;;;9962:16;;10044:26;;;;;;;;;;;-1:-1:-1;10088:4:0;9275:825;;;;;:::o;4293:37::-;4328:2;4293:37;:::o;4381:29::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4381:29:0;;-1:-1:-1;4381:29:0;:::o;7942:202::-;8045:10;8019:4;8066:22;;;:10;:22;;;;;;;;-1:-1:-1;;;;;8066:31:0;;;;;;;;;;8019:4;;8036:78;;8057:7;;8066:47;;8102:10;8066:35;:47::i;:::-;8036:8;:78::i;8881:382::-;8976:10;8960:27;;;;:15;:27;;;;;;;;;8935:8;:20;;;;;;;8992:6;;8935:53;;:20;:24;:53::i;:::-;:63;;8926:110;;;;-1:-1:-1;;;8926:110:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9065:1;9056:6;:10;9047:49;;;;;-1:-1:-1;;;9047:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;9149:10;9140:20;;;;:8;:20;;;;;;:32;;9165:6;9140:24;:32::i;:::-;9126:10;9117:20;;;;:8;:20;;;;;:55;9197:11;;:23;;9213:6;9197:15;:23::i;:::-;9183:11;:37;9231:24;;;;;;;;9236:10;;9231:24;;;;;;;;;;8881:382;:::o;12473:1504::-;12526:4;417:5;;-1:-1:-1;;;;;417:5:0;403:10;:19;395:74;;;;-1:-1:-1;;;395:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12555:10:::1;::::0;12587:12:::1;:19:::0;12640:13:::1;::::0;12543:9:::1;::::0;12640:23:::1;::::0;12555:10;12640:17:::1;:23::i;:::-;12688:13;::::0;12617:46;;-1:-1:-1;12674:836:0::1;12707:3;12703:1;:7;:30;;;;;12718:15;12714:1;:19;12703:30;12674:836;;;12755:9;12767:12;12780:1;12767:15;;;;;;;;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;12767:15:0::1;12801:17:::0;;;:14:::1;:17:::0;;;;;;;;12767:15;;-1:-1:-1;12801:21:0;12797:702:::1;;-1:-1:-1::0;;;;;12843:17:0;::::1;;::::0;;;:14:::1;:17;::::0;;;;:19;;-1:-1:-1;;12843:19:0;;;12797:702:::1;;;-1:-1:-1::0;;;;;12888:22:0;::::1;12913:1;12888:22:::0;;;:19:::1;:22;::::0;;;;;:26;12884:615:::1;;-1:-1:-1::0;;;;;12947:22:0;::::1;12935:9;12947:22:::0;;;:19:::1;:22;::::0;;;;;;13049:2:::1;13041:10:::0;::::1;13037:257;;;-1:-1:-1::0;;;;;13144:18:0;::::1;;::::0;;;:15:::1;:18;::::0;;;;;:25:::1;::::0;13167:1:::1;13144:22;:25::i;:::-;13134:35;;13037:257;;;-1:-1:-1::0;;;;;13251:22:0;::::1;;::::0;;;:19:::1;:22;::::0;;;;;;;;13228:15:::1;:18:::0;;;;;;;:46:::1;::::0;:22:::1;:46::i;:::-;13218:56;;13037:257;-1:-1:-1::0;;;;;13351:18:0;::::1;;::::0;;;:15:::1;:18;::::0;;;;;:31:::1;::::0;13374:7;13351:22:::1;:31::i;:::-;-1:-1:-1::0;;;;;13330:18:0;::::1;;::::0;;;:15:::1;:18;::::0;;;;;;;:52;;;;13401:19:::1;:22:::0;;;:24;;-1:-1:-1;;13401:24:0;;;-1:-1:-1;12884:615:0::1;::::0;-1:-1:-1;12884:615:0::1;;13466:9;:17:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;13466:17:0;;;;;::::1;::::0;;;12884:615:::1;-1:-1:-1::0;12735:3:0::1;;12674:836;;;-1:-1:-1::0;13536:13:0::1;::::0;:23:::1;::::0;13554:4;13536:17:::1;:23::i;:::-;13520:13;:39:::0;;;13574:20;-1:-1:-1;13570:368:0::1;;13627:1;13611:13;:17:::0;13643:257:::1;13650:9;:16:::0;:20;13643:257:::1;;13704:9;13714:16:::0;;13691:10:::1;::::0;13704:9;-1:-1:-1;;13714:18:0;;;13704:29;::::1;;;;;;;;;;;;;13691:42;;13752:9;:15;;;;;;;;;;;;;;;;;;;;;;;;13810:12;13845:1;13823:12;:19;;;;:23;13810:37;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;13788:12:::1;:19:::0;;-1:-1:-1;;;;;13810:37:0;;::::1;::::0;13801:5;;13788:19;::::1;;;;;;;;;;;;;:59;;;;;-1:-1:-1::0;;;;;13788:59:0::1;;;;;-1:-1:-1::0;;;;;13788:59:0::1;;;;;;13866:12;:18;;;;;;;;::::0;;;::::1;::::0;;;;-1:-1:-1;;13866:18:0;;;;;-1:-1:-1;;;;;;13866:18:0::1;::::0;;;;;-1:-1:-1;13643:257:0::1;;;13921:5;13914:12;;;;;;;13570:368;13965:4;13958:11;;;;;12473:1504:::0;:::o;4807:55::-;;;;;;;;;;;;;:::o;617:206::-;682:10;;-1:-1:-1;;;;;682:10:0;668;:24;660:71;;;;-1:-1:-1;;;660:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;775:10;;;768:5;;747:39;;-1:-1:-1;;;;;775:10:0;;;;768:5;;;;747:39;;;805:10;;;797:18;;-1:-1:-1;;;;;;797:18:0;-1:-1:-1;;;;;805:10:0;;;797:18;;;;;;617:206::o;4692:50::-;;;;;;;;;;;;;:::o;6911:112::-;-1:-1:-1;;;;;6995:20:0;6971:4;6995:20;;;:8;:20;;;;;;;6911:112::o;83:20::-;;;-1:-1:-1;;;;;83:20:0;;:::o;4337:37::-;;;;;;;;;;;;;;-1:-1:-1;;;4337:37:0;;;;:::o;4749:51::-;;;;;;;;;;;;;:::o;7187:145::-;-1:-1:-1;;;;;7296:27:0;;7247:4;7296:27;;;:15;:27;;;;;;;;;7271:8;:20;;;;;;:53;;:24;:53::i;:::-;7264:60;7187:145;-1:-1:-1;;7187:145:0:o;8156:212::-;8264:10;8238:4;8285:22;;;:10;:22;;;;;;;;-1:-1:-1;;;;;8285:31:0;;;;;;;;;;8238:4;;8255:83;;8276:7;;8285:52;;8321:15;8285:35;:52::i;7344:586::-;7403:4;7429:14;:12;:14::i;:::-;7420:57;;;;;-1:-1:-1;;;7420:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;7538:10;7522:27;;;;:15;:27;;;;;;;;;7497:8;:20;;;;;;;7554:6;;7497:53;;:20;:24;:53::i;:::-;:63;;7488:110;;;;-1:-1:-1;;;7488:110:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7627:1;7618:6;:10;7609:53;;;;;-1:-1:-1;;;7609:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7682:16:0;;7673:58;;;;;-1:-1:-1;;;7673:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;7784:10;7775:20;;;;:8;:20;;;;;;:32;;7800:6;7775:24;:32::i;:::-;7761:10;7752:20;;;;:8;:20;;;;;;:55;;;;-1:-1:-1;;;;;7833:12:0;;;;;;:24;;7850:6;7833:16;:24::i;:::-;-1:-1:-1;;;;;7818:12:0;;;;;;:8;:12;;;;;;;;;:39;;;;7868:32;;;;;;;7818:12;;7877:10;;7868:32;;;;;;;;;;-1:-1:-1;7918:4:0;7344:586;;;;:::o;6441:187::-;417:5;;-1:-1:-1;;;;;417:5:0;403:10;:19;395:74;;;;-1:-1:-1;;;395:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6505:8:::1;::::0;::::1;;6504:9;6495:76;;;;-1:-1:-1::0;;;6495:76:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6582:8;:15:::0;;-1:-1:-1;;6582:15:0::1;6593:4;6582:15:::0;;::::1;::::0;;;6608:12:::1;::::0;;;;;;::::1;::::0;;;;::::1;::::0;;::::1;6441:187::o:0;6640:259::-;417:5;;-1:-1:-1;;;;;417:5:0;403:10;:19;395:74;;;;-1:-1:-1;;;395:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6721:2:::1;6715:3;:8;6706:55;;;;-1:-1:-1::0;;;6706:55:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6788:3;6781;:10;;6772:92;;;;-1:-1:-1::0;;;6772:92:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6875:10;:16:::0;6640:259::o;7035:140::-;-1:-1:-1;;;;;7136:22:0;;;7112:4;7136:22;;;:10;:22;;;;;;;;:31;;;;;;;;;;;;;7035:140::o;501:104::-;417:5;;-1:-1:-1;;;;;417:5:0;403:10;:19;395:74;;;;-1:-1:-1;;;395:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;575:10:::1;:22:::0;;-1:-1:-1;;;;;;575:22:0::1;-1:-1:-1::0;;;;;575:22:0;;;::::1;::::0;;;::::1;::::0;;501:104::o;4168:35::-;;;;;;;;;;;;;:::o;1541:184::-;1599:7;1632:1;1627;:6;;1619:49;;;;;-1:-1:-1;;;1619:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1691:5:0;;;1541:184::o;2914:334::-;2972:7;3067:6;3059:45;;;;;-1:-1:-1;;;3059:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;3115:9;3131:1;3127;:5;;;;;;;2914:334;-1:-1:-1;;;;2914:334:0:o;8539:330::-;-1:-1:-1;;;;;8631:19:0;;8622:66;;;;-1:-1:-1;;;8622:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8708:21:0;;8699:63;;;;;-1:-1:-1;;;8699:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8783:17:0;;;;;;;:10;:17;;;;;;;;:26;;;;;;;;;;;;;:35;;;8829:32;;;;;;;;;;;;;;;;;8539:330;;;:::o;6240:87::-;6311:8;;;;6240:87;:::o;1085:181::-;1143:7;1175:5;;;1199:6;;;;1191:46;;;;;-1:-1:-1;;;1191:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;1257:1;1085:181;-1:-1:-1;;;1085:181:0:o

Swarm Source

ipfs://163dd399dbcb9d96b3d2fc7e9c9fbacac075e65014922566bd96aed78dbc2134

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

OVERVIEW

Unido is a technology ecosystem that addresses the governance, security and accessibility challenges of decentralized applications - enabling enterprises to manage crypto assets and capitalize on DeFi.

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.