ETH Price: $3,362.53 (+0.33%)

Contract

0x8a3d77e9d6968b780564936d15B09805827C21fa
 
Transaction Hash
Method
Block
From
To
Transfer212496892024-11-23 9:57:232 hrs ago1732355843IN
ArchEthic: Old UCO Token
0 ETH0.0006216511.16277127
Transfer212496782024-11-23 9:55:112 hrs ago1732355711IN
ArchEthic: Old UCO Token
0 ETH0.0010640117.5863668
Approve212496662024-11-23 9:52:472 hrs ago1732355567IN
ArchEthic: Old UCO Token
0 ETH0.0005774911.89806847
Approve212495942024-11-23 9:38:232 hrs ago1732354703IN
ArchEthic: Old UCO Token
0 ETH0.0005863912.09939298
Transfer212495302024-11-23 9:25:352 hrs ago1732353935IN
ArchEthic: Old UCO Token
0 ETH0.0006289917.5863668
Approve212457682024-11-22 20:50:4715 hrs ago1732308647IN
ArchEthic: Old UCO Token
0 ETH0.0005851211.98999789
Transfer212422852024-11-22 9:10:1127 hrs ago1732266611IN
ArchEthic: Old UCO Token
0 ETH0.000975817.52206783
Approve212354812024-11-21 10:22:472 days ago1732184567IN
ArchEthic: Old UCO Token
0 ETH0.0006102812.57677517
Approve212320532024-11-20 22:52:592 days ago1732143179IN
ArchEthic: Old UCO Token
0 ETH0.0003351610.66958585
Approve212312152024-11-20 20:04:472 days ago1732133087IN
ArchEthic: Old UCO Token
0 ETH0.0008572717.66229317
Approve212292222024-11-20 13:22:592 days ago1732108979IN
ArchEthic: Old UCO Token
0 ETH0.0009532719.53396979
Approve212261772024-11-20 3:10:593 days ago1732072259IN
ArchEthic: Old UCO Token
0 ETH0.0005133810.57718037
Approve212252772024-11-20 0:10:233 days ago1732061423IN
ArchEthic: Old UCO Token
0 ETH0.0006228712.84242257
Approve212246092024-11-19 21:56:233 days ago1732053383IN
ArchEthic: Old UCO Token
0 ETH0.0009037518.61984631
Approve212217902024-11-19 12:30:473 days ago1732019447IN
ArchEthic: Old UCO Token
0 ETH0.0005614211.56980633
Transfer212181172024-11-19 0:13:354 days ago1731975215IN
ArchEthic: Old UCO Token
0 ETH0.0006559615.12613793
Transfer212179852024-11-18 23:47:114 days ago1731973631IN
ArchEthic: Old UCO Token
0 ETH0.0007384912.21335285
Approve212177522024-11-18 23:00:234 days ago1731970823IN
ArchEthic: Old UCO Token
0 ETH0.0006446313.29107653
Approve212169332024-11-18 20:16:234 days ago1731960983IN
ArchEthic: Old UCO Token
0 ETH0.0009847920.2046786
Approve212159242024-11-18 16:53:474 days ago1731948827IN
ArchEthic: Old UCO Token
0 ETH0.0012071124.87001255
Approve212118482024-11-18 3:15:355 days ago1731899735IN
ArchEthic: Old UCO Token
0 ETH0.0005965512.23938235
Approve212097862024-11-17 20:22:115 days ago1731874931IN
ArchEthic: Old UCO Token
0 ETH0.000489810.09630766
Transfer212097382024-11-17 20:12:355 days ago1731874355IN
ArchEthic: Old UCO Token
0 ETH0.000582610.46382185
Approve212080612024-11-17 14:35:475 days ago1731854147IN
ArchEthic: Old UCO Token
0 ETH0.0006441913.27219804
Transfer212075602024-11-17 12:55:115 days ago1731848111IN
ArchEthic: Old UCO Token
0 ETH0.000479488.60997368
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
UnirisToken

Compiler Version
v0.5.8+commit.23d335f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-12-13
*/

pragma solidity ^0.5.0;


interface IERC20 {
    
    function totalSupply() external view returns (uint256);

    
    function balanceOf(address account) external view returns (uint256);

    
    function transfer(address recipient, uint256 amount) external returns (bool);

    
    function allowance(address owner, address spender) external view returns (uint256);

    
    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);
}

contract ERC20Detailed is IERC20 {
    string private _name;
    string private _symbol;
    uint8 private _decimals;

    
    constructor (string memory name, string memory symbol, uint8 decimals) public {
        _name = name;
        _symbol = symbol;
        _decimals = decimals;
    }

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

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

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

library SafeMath {
    
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "SafeMath: subtraction overflow");
        uint256 c = a - b;

        return c;
    }

    
    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;
    }

    
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        
        require(b > 0, "SafeMath: division by zero");
        uint256 c = a / b;
        

        return c;
    }

    
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b != 0, "SafeMath: modulo by zero");
        return a % b;
    }
}

contract ERC20 is IERC20 {
    using SafeMath for uint256;

    mapping (address => uint256) private _balances;

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

    uint256 private _totalSupply;

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

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

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

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

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

    
    function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount));
        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));
        return true;
    }

    
    function _transfer(address sender, address recipient, uint256 amount) internal {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

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

    
    function _mint(address account, uint256 amount) internal {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }

     
    function _burn(address account, uint256 value) internal {
        require(account != address(0), "ERC20: burn from the zero address");

        _totalSupply = _totalSupply.sub(value);
        _balances[account] = _balances[account].sub(value);
        emit Transfer(account, address(0), value);
    }

    
    function _approve(address owner, address spender, uint256 value) internal {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = value;
        emit Approval(owner, spender, value);
    }

    
    function _burnFrom(address account, uint256 amount) internal {
        _burn(account, amount);
        _approve(account, msg.sender, _allowances[account][msg.sender].sub(amount));
    }
}

library Roles {
    struct Role {
        mapping (address => bool) bearer;
    }

    
    function add(Role storage role, address account) internal {
        require(!has(role, account), "Roles: account already has role");
        role.bearer[account] = true;
    }

    
    function remove(Role storage role, address account) internal {
        require(has(role, account), "Roles: account does not have role");
        role.bearer[account] = false;
    }

    
    function has(Role storage role, address account) internal view returns (bool) {
        require(account != address(0), "Roles: account is the zero address");
        return role.bearer[account];
    }
}

contract PauserRole {
    using Roles for Roles.Role;

    event PauserAdded(address indexed account);
    event PauserRemoved(address indexed account);

    Roles.Role private _pausers;

    constructor () internal {
        _addPauser(msg.sender);
    }

    modifier onlyPauser() {
        require(isPauser(msg.sender), "PauserRole: caller does not have the Pauser role");
        _;
    }

    function isPauser(address account) public view returns (bool) {
        return _pausers.has(account);
    }

    function addPauser(address account) public onlyPauser {
        _addPauser(account);
    }

    function renouncePauser() public {
        _removePauser(msg.sender);
    }

    function _addPauser(address account) internal {
        _pausers.add(account);
        emit PauserAdded(account);
    }

    function _removePauser(address account) internal {
        _pausers.remove(account);
        emit PauserRemoved(account);
    }
}

contract Pausable is PauserRole {
    
    event Paused(address account);

    
    event Unpaused(address account);

    bool private _paused;

    
    constructor () internal {
        _paused = false;
    }

    
    function paused() public view returns (bool) {
        return _paused;
    }

    
    modifier whenNotPaused() {
        require(!_paused, "Pausable: paused");
        _;
    }

    
    modifier whenPaused() {
        require(_paused, "Pausable: not paused");
        _;
    }

    
    function pause() public onlyPauser whenNotPaused {
        _paused = true;
        emit Paused(msg.sender);
    }

    
    function unpause() public onlyPauser whenPaused {
        _paused = false;
        emit Unpaused(msg.sender);
    }
}

contract ERC20Pausable is ERC20, Pausable {
    function transfer(address to, uint256 value) public whenNotPaused returns (bool) {
        return super.transfer(to, value);
    }

    function transferFrom(address from, address to, uint256 value) public whenNotPaused returns (bool) {
        return super.transferFrom(from, to, value);
    }

    function approve(address spender, uint256 value) public whenNotPaused returns (bool) {
        return super.approve(spender, value);
    }

    function increaseAllowance(address spender, uint addedValue) public whenNotPaused returns (bool) {
        return super.increaseAllowance(spender, addedValue);
    }

    function decreaseAllowance(address spender, uint subtractedValue) public whenNotPaused returns (bool) {
        return super.decreaseAllowance(spender, subtractedValue);
    }
}

contract UnirisToken is ERC20Pausable, ERC20Detailed {

  
  uint256 public constant funding_pool_supply = 3820000000000000000000000000;

  
  uint256 public constant deliverable_supply = 2360000000000000000000000000;

  
  uint256 public constant network_pool_supply = 1460000000000000000000000000;

  
  uint256 public constant enhancement_supply = 900000000000000000000000000;

  
  uint256 public constant team_supply = 560000000000000000000000000;

  
  uint256 public constant exch_pool_supply = 340000000000000000000000000;

  
  uint256 public constant marketing_supply = 340000000000000000000000000;

  
  uint256 public constant foundation_supply = 220000000000000000000000000;

  address public funding_pool_beneficiary;
  address public deliverables_beneficiary;
  address public network_pool_beneficiary;
  address public enhancement_beneficiary;
  address public team_beneficiary;
  address public exch_pool_beneficiary;
  address public marketing_beneficiary;
  address public foundation_beneficiary;

  modifier onlyUnlocked(address from, uint256 value) {
    
    
    require(from != enhancement_beneficiary, "Enhancement wallet is locked forever until mainnet");

    
    
    
    
    if (from == deliverables_beneficiary) {
      uint256 _delivered = deliverable_supply - balanceOf(deliverables_beneficiary);
      require(_delivered.add(value) <= deliverable_supply.mul(10).div(100), "Only 10% of the deliverable supply is unlocked before mainnet");
    }
    else if (from == network_pool_beneficiary) {
      uint256 _delivered = network_pool_supply - balanceOf(network_pool_beneficiary);
      require(_delivered.add(value) <= network_pool_supply.mul(10).div(100), "Only 10% of the network supply is unlocked before mainnet");
    }
    _;
  }

  constructor(
    address _funding_pool_beneficiary,
    address _deliverables_beneficiary,
    address _network_pool_beneficiary,
    address _enhancement_beneficiary,
    address _team_beneficiary,
    address _exch_pool_beneficiary,
    address _marketing_beneficiary,
    address _foundation_beneficiary
    ) public ERC20Detailed("UnirisToken", "UCO", 18) {

    require(_funding_pool_beneficiary != address(0), "Invalid funding pool beneficiary address");
    require(_deliverables_beneficiary != address(0), "Invalid deliverables beneficiary address");
    require(_network_pool_beneficiary != address(0), "Invalid network pool beneficiary address");
    require(_enhancement_beneficiary != address(0), "Invalid enhancement beneficiary address");
    require(_team_beneficiary != address(0), "Invalid team beneficiary address");
    require(_exch_pool_beneficiary != address(0), "Invalid exch pool beneficiary address");
    require(_marketing_beneficiary != address(0), "Invalid marketing beneficiary address");
    require(_foundation_beneficiary != address(0), "Invalid foundation beneficiary address");

    funding_pool_beneficiary = _funding_pool_beneficiary;
    deliverables_beneficiary = _deliverables_beneficiary;
    network_pool_beneficiary = _network_pool_beneficiary;
    enhancement_beneficiary = _enhancement_beneficiary;
    team_beneficiary = _team_beneficiary;
    exch_pool_beneficiary = _exch_pool_beneficiary;
    marketing_beneficiary = _marketing_beneficiary;
    foundation_beneficiary = _foundation_beneficiary;

    _mint(funding_pool_beneficiary, funding_pool_supply);
    _mint(deliverables_beneficiary, deliverable_supply);
    _mint(network_pool_beneficiary, network_pool_supply);
    _mint(enhancement_beneficiary, enhancement_supply);
    _mint(team_beneficiary, team_supply);
    _mint(exch_pool_beneficiary, exch_pool_supply);
    _mint(marketing_beneficiary, marketing_supply);
    _mint(foundation_beneficiary, foundation_supply);
  }

  function transfer(address _to, uint256 _value) public onlyUnlocked(msg.sender, _value) returns (bool success) {
    return super.transfer(_to, _value);
  }

  function transferFrom(address _from, address _to, uint256 _value) public onlyUnlocked(_from, _value) returns (bool success) {
    return super.transferFrom(_from, _to, _value);
  }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"exch_pool_beneficiary","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"network_pool_supply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"foundation_beneficiary","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"enhancement_beneficiary","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"team_beneficiary","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"team_supply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"isPauser","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"exch_pool_supply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"marketing_beneficiary","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"deliverable_supply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"deliverables_beneficiary","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renouncePauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"funding_pool_supply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"enhancement_supply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"addPauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"foundation_supply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"funding_pool_beneficiary","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"marketing_supply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"network_pool_beneficiary","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_funding_pool_beneficiary","type":"address"},{"name":"_deliverables_beneficiary","type":"address"},{"name":"_network_pool_beneficiary","type":"address"},{"name":"_enhancement_beneficiary","type":"address"},{"name":"_team_beneficiary","type":"address"},{"name":"_exch_pool_beneficiary","type":"address"},{"name":"_marketing_beneficiary","type":"address"},{"name":"_foundation_beneficiary","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"PauserAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"PauserRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"}]

60806040523480156200001157600080fd5b50604051610100806200393b83398101806040526101008110156200003557600080fd5b8101908080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291905050506040518060400160405280600b81526020017f556e69726973546f6b656e0000000000000000000000000000000000000000008152506040518060400160405280600381526020017f55434f000000000000000000000000000000000000000000000000000000000081525060126200010b33620009e760201b60201c565b6000600460006101000a81548160ff02191690831515021790555082600590805190602001906200013e92919062000e5f565b5081600690805190602001906200015792919062000e5f565b5080600760006101000a81548160ff021916908360ff160217905550505050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161415620001fe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180620038796028913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16141562000286576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806200380a6028913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614156200030e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180620038c76028913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141562000396576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180620038ef6027913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156200043a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f496e76616c6964207465616d2062656e6566696369617279206164647265737381525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415620004c2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180620039166025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200054a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180620038326025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415620005d2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180620038a16026913960400191505060405180910390fd5b87600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555086600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200081a600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166b0c57d476f1d9e9de6c00000062000a4860201b60201c565b6200085a600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166b07a025705a712ea43800000062000a4860201b60201c565b6200089a600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166b04b7af069768bb3a3400000062000a4860201b60201c565b620008da600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166b02e87669c308736a0400000062000a4860201b60201c565b6200091a600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166b01cf389cd46047d03000000062000a4860201b60201c565b6200095a600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166b01193dcceea82b99d400000062000a4860201b60201c565b6200099a600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166b01193dcceea82b99d400000062000a4860201b60201c565b620009d9600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166ab5facfe5b81c365c00000062000a4860201b60201c565b505050505050505062000f0e565b62000a0281600362000c1260201b620022df1790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f860405160405180910390a250565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000aec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b62000b088160025462000cf660201b62001ae61790919060201c565b60028190555062000b66816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000cf660201b62001ae61790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b62000c24828262000d7f60201b60201c565b1562000c98576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008082840190508381101562000d75576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000e08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180620038576022913960400191505060405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1062000ea257805160ff191683800117855562000ed3565b8280016001018555821562000ed3579182015b8281111562000ed257825182559160200191906001019062000eb5565b5b50905062000ee2919062000ee6565b5090565b62000f0b91905b8082111562000f0757600081600090555060010162000eed565b5090565b90565b6128ec8062000f1e6000396000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c8063621005d71161011a5780638456cb59116100ad578063a9059cbb1161007c578063a9059cbb146108c6578063adcde06f1461092c578063dd62ed3e14610976578063dee28f78146109ee578063fe28a81514610a0c576101fb565b80638456cb59146107b557806395d89b41146107bf578063a457c2d714610842578063a8942ed1146108a8576101fb565b806370a08231116100e957806370a08231146106dd57806370b86f2314610735578063767c2e2d1461075357806382dc1ec414610771576101fb565b8063621005d714610621578063680a8ca51461066b5780636cc5c0fd146106895780636ef8d66d146106d3576101fb565b80633695f71c116101925780633f4ba83a116101615780633f4ba83a1461057b57806346fbf68e1461058557806353d4edba146105e15780635c975abb146105ff576101fb565b80633695f71c1461046357806336ec6b8e146104ad57806339509351146104f75780633a34b6c61461055d576101fb565b80631c5e933f116101ce5780631c5e933f1461035157806323b872dd1461036f5780632f74c82e146103f5578063313ce5671461043f576101fb565b806306fdde0314610200578063095ea7b31461028357806312d8829f146102e957806318160ddd14610333575b600080fd5b610208610a56565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561024857808201518184015260208101905061022d565b50505050905090810190601f1680156102755780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102cf6004803603604081101561029957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610af8565b604051808215151515815260200191505060405180910390f35b6102f1610b8f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61033b610bb5565b6040518082815260200191505060405180910390f35b610359610bbf565b6040518082815260200191505060405180910390f35b6103db6004803603606081101561038557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bcf565b604051808215151515815260200191505060405180910390f35b6103fd610ef9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610447610f1f565b604051808260ff1660ff16815260200191505060405180910390f35b61046b610f36565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104b5610f5c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105436004803603604081101561050d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f82565b604051808215151515815260200191505060405180910390f35b610565611019565b6040518082815260200191505060405180910390f35b610583611029565b005b6105c76004803603602081101561059b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611189565b604051808215151515815260200191505060405180910390f35b6105e96111a6565b6040518082815260200191505060405180910390f35b6106076111b6565b604051808215151515815260200191505060405180910390f35b6106296111cd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106736111f3565b6040518082815260200191505060405180910390f35b610691611203565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106db611229565b005b61071f600480360360208110156106f357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611234565b6040518082815260200191505060405180910390f35b61073d61127c565b6040518082815260200191505060405180910390f35b61075b61128c565b6040518082815260200191505060405180910390f35b6107b36004803603602081101561078757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061129c565b005b6107bd611306565b005b6107c7611467565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108075780820151818401526020810190506107ec565b50505050905090810190601f1680156108345780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61088e6004803603604081101561085857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611509565b604051808215151515815260200191505060405180910390f35b6108b06115a0565b6040518082815260200191505060405180910390f35b610912600480360360408110156108dc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115af565b604051808215151515815260200191505060405180910390f35b6109346118d7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6109d86004803603604081101561098c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118fd565b6040518082815260200191505060405180910390f35b6109f6611984565b6040518082815260200191505060405180910390f35b610a14611994565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b606060058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610aee5780601f10610ac357610100808354040283529160200191610aee565b820191906000526020600020905b815481529060010190602001808311610ad157829003601f168201915b5050505050905090565b6000600460009054906101000a900460ff1615610b7d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b610b8783836119ba565b905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b6b04b7af069768bb3a3400000081565b60008382600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c7a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806128096032913960400191505060405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610db0576000610cfd600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611234565b6b07a025705a712ea438000000039050610d406064610d32600a6b07a025705a712ea4380000006119d190919063ffffffff16565b611a5790919063ffffffff16565b610d538383611ae690919063ffffffff16565b1115610daa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180612884603d913960400191505060405180910390fd5b50610ee3565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ee2576000610e33600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611234565b6b04b7af069768bb3a34000000039050610e766064610e68600a6b04b7af069768bb3a340000006119d190919063ffffffff16565b611a5790919063ffffffff16565b610e898383611ae690919063ffffffff16565b1115610ee0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603981526020018061271a6039913960400191505060405180910390fd5b505b5b610eee868686611b6e565b925050509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760009054906101000a900460ff16905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600460009054906101000a900460ff1615611007576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b6110118383611c07565b905092915050565b6b01cf389cd46047d03000000081565b61103233611189565b611087576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806127536030913960400191505060405180910390fd5b600460009054906101000a900460ff16611109576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5061757361626c653a206e6f742070617573656400000000000000000000000081525060200191505060405180910390fd5b6000600460006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600061119f826003611cac90919063ffffffff16565b9050919050565b6b01193dcceea82b99d400000081565b6000600460009054906101000a900460ff16905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6b07a025705a712ea43800000081565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61123233611d8a565b565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6b0c57d476f1d9e9de6c00000081565b6b02e87669c308736a0400000081565b6112a533611189565b6112fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806127536030913960400191505060405180910390fd5b61130381611de4565b50565b61130f33611189565b611364576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806127536030913960400191505060405180910390fd5b600460009054906101000a900460ff16156113e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b6001600460006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b606060068054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114ff5780601f106114d4576101008083540402835291602001916114ff565b820191906000526020600020905b8154815290600101906020018083116114e257829003601f168201915b5050505050905090565b6000600460009054906101000a900460ff161561158e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b6115988383611e3e565b905092915050565b6ab5facfe5b81c365c00000081565b60003382600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561165a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806128096032913960400191505060405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117905760006116dd600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611234565b6b07a025705a712ea4380000000390506117206064611712600a6b07a025705a712ea4380000006119d190919063ffffffff16565b611a5790919063ffffffff16565b6117338383611ae690919063ffffffff16565b111561178a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180612884603d913960400191505060405180910390fd5b506118c3565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118c2576000611813600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611234565b6b04b7af069768bb3a340000000390506118566064611848600a6b04b7af069768bb3a340000006119d190919063ffffffff16565b611a5790919063ffffffff16565b6118698383611ae690919063ffffffff16565b11156118c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603981526020018061271a6039913960400191505060405180910390fd5b505b5b6118cd8585611ee3565b9250505092915050565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6b01193dcceea82b99d400000081565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006119c7338484611f7a565b6001905092915050565b6000808314156119e45760009050611a51565b60008284029050828482816119f557fe5b0414611a4c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806127c66021913960400191505060405180910390fd5b809150505b92915050565b6000808211611ace576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b6000828481611ad957fe5b0490508091505092915050565b600080828401905083811015611b64576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000600460009054906101000a900460ff1615611bf3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b611bfe848484612171565b90509392505050565b6000611ca23384611c9d85600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ae690919063ffffffff16565b611f7a565b6001905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d33576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806127e76022913960400191505060405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611d9e81600361222290919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e60405160405180910390a250565b611df88160036122df90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f860405160405180910390a250565b6000611ed93384611ed485600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123ba90919063ffffffff16565b611f7a565b6001905092915050565b6000600460009054906101000a900460ff1615611f68576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b611f728383612443565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612000576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806128606024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612086576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806127836022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600061217e84848461245a565b612217843361221285600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123ba90919063ffffffff16565b611f7a565b600190509392505050565b61222c8282611cac565b612281576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806127a56021913960400191505060405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6122e98282611cac565b1561235c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600082821115612432576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b600061245033848461245a565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156124e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061283b6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612566576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806126f76023913960400191505060405180910390fd5b6125b7816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123ba90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061264a816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ae690919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350505056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f6e6c7920313025206f6620746865206e6574776f726b20737570706c7920697320756e6c6f636b6564206265666f7265206d61696e6e6574506175736572526f6c653a2063616c6c657220646f6573206e6f742068617665207468652050617573657220726f6c6545524332303a20617070726f766520746f20746865207a65726f2061646472657373526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373456e68616e63656d656e742077616c6c6574206973206c6f636b656420666f726576657220756e74696c206d61696e6e657445524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734f6e6c7920313025206f66207468652064656c6976657261626c6520737570706c7920697320756e6c6f636b6564206265666f7265206d61696e6e6574a165627a7a72305820c5712b056949ac46c16de677041896df29dfaccc19584e53820b17f39421b8d40029496e76616c69642064656c6976657261626c65732062656e65666963696172792061646472657373496e76616c6964206d61726b6574696e672062656e65666963696172792061646472657373526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373496e76616c69642066756e64696e6720706f6f6c2062656e65666963696172792061646472657373496e76616c696420666f756e646174696f6e2062656e65666963696172792061646472657373496e76616c6964206e6574776f726b20706f6f6c2062656e65666963696172792061646472657373496e76616c696420656e68616e63656d656e742062656e65666963696172792061646472657373496e76616c6964206578636820706f6f6c2062656e65666963696172792061646472657373000000000000000000000000c545528cb411aa971de48f5d375af27b685a7651000000000000000000000000ea9095614a40c34f2d6d62514a8b9305873e6763000000000000000000000000857ffe3a3f4d47c5459b215fd09ddd80ee0b2f00000000000000000000000000c3255e34f122f8e5ac055d308bf5898173212afc000000000000000000000000b4cf889f7f0c4de5c43dbb67c11b8f96b6cfbf910000000000000000000000002da4fddc9e610b1d5ae4340d20455d53c9481b12000000000000000000000000ebc52520ee81a0e87549ce193b3f5fc086eddc69000000000000000000000000a8b2134e17bd65427aea59d5b8aca22f3c181e97

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101fb5760003560e01c8063621005d71161011a5780638456cb59116100ad578063a9059cbb1161007c578063a9059cbb146108c6578063adcde06f1461092c578063dd62ed3e14610976578063dee28f78146109ee578063fe28a81514610a0c576101fb565b80638456cb59146107b557806395d89b41146107bf578063a457c2d714610842578063a8942ed1146108a8576101fb565b806370a08231116100e957806370a08231146106dd57806370b86f2314610735578063767c2e2d1461075357806382dc1ec414610771576101fb565b8063621005d714610621578063680a8ca51461066b5780636cc5c0fd146106895780636ef8d66d146106d3576101fb565b80633695f71c116101925780633f4ba83a116101615780633f4ba83a1461057b57806346fbf68e1461058557806353d4edba146105e15780635c975abb146105ff576101fb565b80633695f71c1461046357806336ec6b8e146104ad57806339509351146104f75780633a34b6c61461055d576101fb565b80631c5e933f116101ce5780631c5e933f1461035157806323b872dd1461036f5780632f74c82e146103f5578063313ce5671461043f576101fb565b806306fdde0314610200578063095ea7b31461028357806312d8829f146102e957806318160ddd14610333575b600080fd5b610208610a56565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561024857808201518184015260208101905061022d565b50505050905090810190601f1680156102755780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102cf6004803603604081101561029957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610af8565b604051808215151515815260200191505060405180910390f35b6102f1610b8f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61033b610bb5565b6040518082815260200191505060405180910390f35b610359610bbf565b6040518082815260200191505060405180910390f35b6103db6004803603606081101561038557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bcf565b604051808215151515815260200191505060405180910390f35b6103fd610ef9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610447610f1f565b604051808260ff1660ff16815260200191505060405180910390f35b61046b610f36565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104b5610f5c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105436004803603604081101561050d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f82565b604051808215151515815260200191505060405180910390f35b610565611019565b6040518082815260200191505060405180910390f35b610583611029565b005b6105c76004803603602081101561059b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611189565b604051808215151515815260200191505060405180910390f35b6105e96111a6565b6040518082815260200191505060405180910390f35b6106076111b6565b604051808215151515815260200191505060405180910390f35b6106296111cd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106736111f3565b6040518082815260200191505060405180910390f35b610691611203565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106db611229565b005b61071f600480360360208110156106f357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611234565b6040518082815260200191505060405180910390f35b61073d61127c565b6040518082815260200191505060405180910390f35b61075b61128c565b6040518082815260200191505060405180910390f35b6107b36004803603602081101561078757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061129c565b005b6107bd611306565b005b6107c7611467565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108075780820151818401526020810190506107ec565b50505050905090810190601f1680156108345780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61088e6004803603604081101561085857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611509565b604051808215151515815260200191505060405180910390f35b6108b06115a0565b6040518082815260200191505060405180910390f35b610912600480360360408110156108dc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115af565b604051808215151515815260200191505060405180910390f35b6109346118d7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6109d86004803603604081101561098c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118fd565b6040518082815260200191505060405180910390f35b6109f6611984565b6040518082815260200191505060405180910390f35b610a14611994565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b606060058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610aee5780601f10610ac357610100808354040283529160200191610aee565b820191906000526020600020905b815481529060010190602001808311610ad157829003601f168201915b5050505050905090565b6000600460009054906101000a900460ff1615610b7d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b610b8783836119ba565b905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b6b04b7af069768bb3a3400000081565b60008382600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c7a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806128096032913960400191505060405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610db0576000610cfd600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611234565b6b07a025705a712ea438000000039050610d406064610d32600a6b07a025705a712ea4380000006119d190919063ffffffff16565b611a5790919063ffffffff16565b610d538383611ae690919063ffffffff16565b1115610daa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180612884603d913960400191505060405180910390fd5b50610ee3565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ee2576000610e33600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611234565b6b04b7af069768bb3a34000000039050610e766064610e68600a6b04b7af069768bb3a340000006119d190919063ffffffff16565b611a5790919063ffffffff16565b610e898383611ae690919063ffffffff16565b1115610ee0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603981526020018061271a6039913960400191505060405180910390fd5b505b5b610eee868686611b6e565b925050509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760009054906101000a900460ff16905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600460009054906101000a900460ff1615611007576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b6110118383611c07565b905092915050565b6b01cf389cd46047d03000000081565b61103233611189565b611087576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806127536030913960400191505060405180910390fd5b600460009054906101000a900460ff16611109576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5061757361626c653a206e6f742070617573656400000000000000000000000081525060200191505060405180910390fd5b6000600460006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600061119f826003611cac90919063ffffffff16565b9050919050565b6b01193dcceea82b99d400000081565b6000600460009054906101000a900460ff16905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6b07a025705a712ea43800000081565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61123233611d8a565b565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6b0c57d476f1d9e9de6c00000081565b6b02e87669c308736a0400000081565b6112a533611189565b6112fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806127536030913960400191505060405180910390fd5b61130381611de4565b50565b61130f33611189565b611364576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806127536030913960400191505060405180910390fd5b600460009054906101000a900460ff16156113e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b6001600460006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b606060068054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114ff5780601f106114d4576101008083540402835291602001916114ff565b820191906000526020600020905b8154815290600101906020018083116114e257829003601f168201915b5050505050905090565b6000600460009054906101000a900460ff161561158e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b6115988383611e3e565b905092915050565b6ab5facfe5b81c365c00000081565b60003382600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561165a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806128096032913960400191505060405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117905760006116dd600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611234565b6b07a025705a712ea4380000000390506117206064611712600a6b07a025705a712ea4380000006119d190919063ffffffff16565b611a5790919063ffffffff16565b6117338383611ae690919063ffffffff16565b111561178a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180612884603d913960400191505060405180910390fd5b506118c3565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118c2576000611813600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611234565b6b04b7af069768bb3a340000000390506118566064611848600a6b04b7af069768bb3a340000006119d190919063ffffffff16565b611a5790919063ffffffff16565b6118698383611ae690919063ffffffff16565b11156118c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603981526020018061271a6039913960400191505060405180910390fd5b505b5b6118cd8585611ee3565b9250505092915050565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6b01193dcceea82b99d400000081565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006119c7338484611f7a565b6001905092915050565b6000808314156119e45760009050611a51565b60008284029050828482816119f557fe5b0414611a4c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806127c66021913960400191505060405180910390fd5b809150505b92915050565b6000808211611ace576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b6000828481611ad957fe5b0490508091505092915050565b600080828401905083811015611b64576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000600460009054906101000a900460ff1615611bf3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b611bfe848484612171565b90509392505050565b6000611ca23384611c9d85600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ae690919063ffffffff16565b611f7a565b6001905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d33576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806127e76022913960400191505060405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611d9e81600361222290919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e60405160405180910390a250565b611df88160036122df90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f860405160405180910390a250565b6000611ed93384611ed485600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123ba90919063ffffffff16565b611f7a565b6001905092915050565b6000600460009054906101000a900460ff1615611f68576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b611f728383612443565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612000576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806128606024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612086576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806127836022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600061217e84848461245a565b612217843361221285600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123ba90919063ffffffff16565b611f7a565b600190509392505050565b61222c8282611cac565b612281576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806127a56021913960400191505060405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6122e98282611cac565b1561235c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600082821115612432576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b600061245033848461245a565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156124e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061283b6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612566576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806126f76023913960400191505060405180910390fd5b6125b7816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123ba90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061264a816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ae690919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350505056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f6e6c7920313025206f6620746865206e6574776f726b20737570706c7920697320756e6c6f636b6564206265666f7265206d61696e6e6574506175736572526f6c653a2063616c6c657220646f6573206e6f742068617665207468652050617573657220726f6c6545524332303a20617070726f766520746f20746865207a65726f2061646472657373526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373456e68616e63656d656e742077616c6c6574206973206c6f636b656420666f726576657220756e74696c206d61696e6e657445524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734f6e6c7920313025206f66207468652064656c6976657261626c6520737570706c7920697320756e6c6f636b6564206265666f7265206d61696e6e6574a165627a7a72305820c5712b056949ac46c16de677041896df29dfaccc19584e53820b17f39421b8d40029

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000c545528cb411aa971de48f5d375af27b685a7651000000000000000000000000ea9095614a40c34f2d6d62514a8b9305873e6763000000000000000000000000857ffe3a3f4d47c5459b215fd09ddd80ee0b2f00000000000000000000000000c3255e34f122f8e5ac055d308bf5898173212afc000000000000000000000000b4cf889f7f0c4de5c43dbb67c11b8f96b6cfbf910000000000000000000000002da4fddc9e610b1d5ae4340d20455d53c9481b12000000000000000000000000ebc52520ee81a0e87549ce193b3f5fc086eddc69000000000000000000000000a8b2134e17bd65427aea59d5b8aca22f3c181e97

-----Decoded View---------------
Arg [0] : _funding_pool_beneficiary (address): 0xC545528CB411aA971De48F5d375aF27B685a7651
Arg [1] : _deliverables_beneficiary (address): 0xEA9095614A40C34f2d6D62514a8B9305873E6763
Arg [2] : _network_pool_beneficiary (address): 0x857fFe3A3F4d47c5459b215Fd09Ddd80eE0B2f00
Arg [3] : _enhancement_beneficiary (address): 0xc3255E34F122f8E5Ac055d308Bf5898173212AfC
Arg [4] : _team_beneficiary (address): 0xb4cF889F7F0C4de5c43dbB67C11b8F96b6CfBf91
Arg [5] : _exch_pool_beneficiary (address): 0x2Da4fDdc9e610b1D5Ae4340d20455d53C9481b12
Arg [6] : _marketing_beneficiary (address): 0xEbC52520eE81A0E87549CE193b3f5fc086EddC69
Arg [7] : _foundation_beneficiary (address): 0xa8B2134E17Bd65427AeA59d5b8AcA22F3c181E97

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 000000000000000000000000c545528cb411aa971de48f5d375af27b685a7651
Arg [1] : 000000000000000000000000ea9095614a40c34f2d6d62514a8b9305873e6763
Arg [2] : 000000000000000000000000857ffe3a3f4d47c5459b215fd09ddd80ee0b2f00
Arg [3] : 000000000000000000000000c3255e34f122f8e5ac055d308bf5898173212afc
Arg [4] : 000000000000000000000000b4cf889f7f0c4de5c43dbb67c11b8f96b6cfbf91
Arg [5] : 0000000000000000000000002da4fddc9e610b1d5ae4340d20455d53c9481b12
Arg [6] : 000000000000000000000000ebc52520ee81a0e87549ce193b3f5fc086eddc69
Arg [7] : 000000000000000000000000a8b2134e17bd65427aea59d5b8aca22f3c181e97


Swarm Source

bzzr://c5712b056949ac46c16de677041896df29dfaccc19584e53820b17f39421b8d4

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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