ETH Price: $2,179.92 (+3.69%)

Contract

0x0aD68d02Dd00D5c42E77EEC1405E185E2c170d34
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

Please try again later

Advanced mode:
Parent Transaction Hash Method Block
From
To
View All Internal Transactions
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

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x78BB49Bb...7c308C8ae
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
SIPToken

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-30
*/

pragma solidity ^0.6.0;

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) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        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) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;

        return c;
    }

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

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

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

    event LockAddress(address indexed from, address indexed to, uint256 releaseTime);

}

contract Ownable {
    address private _owner;

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

    constructor () internal {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == msg.sender, "Ownable: caller is not the owner");
        _;
    }

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

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

contract ERC20 is IERC20 {
    using SafeMath for uint256;

    mapping (address => uint256) private _balances;

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

    uint256 private _totalSupply;

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

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

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

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

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


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

    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

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

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

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

        _beforeTokenTransfer(sender, recipient, amount);

        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        
        _afterTokenTransfer(recipient);
    }

    function _mint(address account, uint256 amount) internal virtual {
        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 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }

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

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

    function _setupDecimals(uint8 decimals_) internal {
        _decimals = decimals_;
    }

    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { }
    function _afterTokenTransfer(address to) internal virtual { }
    
}

abstract contract ERC20Burnable is ERC20 {

    function burn(uint256 amount) public virtual {
        _burn(msg.sender, amount);
    }

    function burnFrom(address account, uint256 amount) public virtual {
        uint256 decreasedAllowance = allowance(account, msg.sender).sub(amount, "ERC20: burn amount exceeds allowance");

        _approve(account,msg.sender, decreasedAllowance);
        _burn(account, amount);
    }
}

abstract contract LockedToken is ERC20,ERC20Burnable,Ownable{

    struct _LockInfo {
        uint256 releaseTime;
        bool isUsed;
    }
    mapping (address => _LockInfo) private _LockList; 
    uint private _defaultLockDays;
    
    bool private _pause;
    
    constructor() Ownable() public{
        unlock(msg.sender);
        _defaultLockDays = 0;
    }
 
    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual override {
        super._beforeTokenTransfer(from, to, amount);
        require(!_pause,"ERC20: transfer paused");
        require(!isLocked(from),"ERC20: address locked");
    }
    

    function _afterTokenTransfer(address to) internal virtual override {
        super._afterTokenTransfer(to);

        if(_LockList[to].releaseTime == 0){
            _LockList[to].isUsed = true;
            _LockList[to].releaseTime = block.timestamp + (_defaultLockDays*24*3600);//(_defaultLockDays*600); 
        }
    }
    

    event lockSomeOne(address account, uint256 releaseTime);
    event unlockSomeOne(address account);
    function lock(address account, uint256 releaseTime) public onlyOwner {
        _LockList[account].isUsed = true;
        _LockList[account].releaseTime = releaseTime;
        emit lockSomeOne(account, releaseTime);
    }

    function unlock(address account) public onlyOwner{
        _LockList[account].isUsed = true;
        _LockList[account].releaseTime = block.timestamp;
        emit unlockSomeOne(account);
    }

    function isLocked(address account) internal view returns (bool){
        if (_LockList[account].isUsed) {
            return _LockList[account].releaseTime > block.timestamp;
        } else {
            return false;
        }
    }
    
    function setTransferPause(bool pause) public onlyOwner{
        _pause = pause;
    }

    function setDefaultLockdays(uint dayNum) public onlyOwner {
        require(dayNum >= 0,"SIP:must gather than or equal 0!");
        _defaultLockDays = dayNum;
    }



    function lockDate(address user) public view returns (uint) {
        return _LockList[user].releaseTime;
    }
    
    function defaultLockDays() public view returns (uint) {
        return _defaultLockDays;
    }
    

    function mint(address account, uint256 amount )public onlyOwner{
        _mint(account,amount);
    }
}

contract SIPToken is LockedToken {
    string private _name = "SHUM Insurance Protocol";
    string private _symbol = "SIP";
    uint8 private _decimals = 18;
    
    constructor () 
        ERC20(_name, _symbol, _decimals) 
        public{
            _mint(msg.sender,10000000000000000000000000000);
        }
        
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","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":"releaseTime","type":"uint256"}],"name":"LockAddress","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":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"releaseTime","type":"uint256"}],"name":"lockSomeOne","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"unlockSomeOne","type":"event"},{"inputs":[{"internalType":"address","name":"owner","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":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"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":[],"name":"defaultLockDays","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"releaseTime","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"lockDate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","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":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"dayNum","type":"uint256"}],"name":"setDefaultLockdays","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"pause","type":"bool"}],"name":"setTransferPause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"}]

0x60806040526040518060400160405280601781526020017f5348554d20496e737572616e63652050726f746f636f6c000000000000000000815250600990805190602001906200005192919062000750565b506040518060400160405280600381526020017f5349500000000000000000000000000000000000000000000000000000000000815250600a90805190602001906200009f92919062000750565b506012600b60006101000a81548160ff021916908360ff160217905550348015620000c957600080fd5b5060098054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015620001645780601f10620001385761010080835404028352916020019162000164565b820191906000526020600020905b8154815290600101906020018083116200014657829003601f168201915b5050505050600a8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015620002035780601f10620001d75761010080835404028352916020019162000203565b820191906000526020600020905b815481529060010190602001808311620001e557829003601f168201915b5050505050600b60009054906101000a900460ff1682600390805190602001906200023092919062000750565b5081600490805190602001906200024992919062000750565b5080600560006101000a81548160ff021916908360ff160217905550505050600033905080600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506200031b336200034760201b60201c565b600060078190555062000341336b204fce5e3e25026110000000620004fd60201b60201c565b620007f6565b3373ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146200040b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff02191690831515021790555042600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055507f83dce18ab1d80abfcd7a494a1a1eba6c0ad8bec7fa7078a2545c03347fcf6b6481604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620005a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b620005bd81600254620006c760201b620017941790919060201c565b6002819055506200061b816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620006c760201b620017941790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008082840190508381101562000746576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200079357805160ff1916838001178555620007c4565b82800160010185558215620007c4579182015b82811115620007c3578251825591602001919060010190620007a6565b5b509050620007d39190620007d7565b5090565b5b80821115620007f2576000816000905550600101620007d8565b5090565b6125f380620008066000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806370a08231116100c357806395d89b411161007c57806395d89b41146105ce578063a457c2d714610651578063a9059cbb146106b5578063c53d174714610719578063dd62ed3e14610771578063f2fde38b146107e95761014d565b806370a082311461049c578063715018a6146104f457806379cc6790146104fe57806383a72aaa1461054c5780638da5cb5b1461056a5780639358037a1461059e5761014d565b80632f6c493c116101155780632f6c493c14610329578063313ce5671461036d578063395093511461038e57806340c10f19146103f257806342966c68146104405780634afb02e61461046e5761014d565b806306fdde0314610152578063095ea7b3146101d557806318160ddd1461023957806323b872dd14610257578063282d3fdf146102db575b600080fd5b61015a61082d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561019a57808201518184015260208101905061017f565b50505050905090810190601f1680156101c75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610221600480360360408110156101eb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108cf565b60405180821515815260200191505060405180910390f35b6102416108e6565b6040518082815260200191505060405180910390f35b6102c36004803603606081101561026d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108f0565b60405180821515815260200191505060405180910390f35b610327600480360360408110156102f157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109bb565b005b61036b6004803603602081101561033f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b79565b005b610375610d2e565b604051808260ff16815260200191505060405180910390f35b6103da600480360360408110156103a457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d45565b60405180821515815260200191505060405180910390f35b61043e6004803603604081101561040857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dea565b005b61046c6004803603602081101561045657600080fd5b8101908080359060200190929190505050610ebb565b005b61049a6004803603602081101561048457600080fd5b8101908080359060200190929190505050610ec8565b005b6104de600480360360208110156104b257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061100c565b6040518082815260200191505060405180910390f35b6104fc611054565b005b61054a6004803603604081101561051457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111d8565b005b61055461122c565b6040518082815260200191505060405180910390f35b610572611236565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105cc600480360360208110156105b457600080fd5b81019080803515159060200190929190505050611260565b005b6105d6611340565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106165780820151818401526020810190506105fb565b50505050905090810190601f1680156106435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61069d6004803603604081101561066757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113e2565b60405180821515815260200191505060405180910390f35b610701600480360360408110156106cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114a1565b60405180821515815260200191505060405180910390f35b61075b6004803603602081101561072f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114b8565b6040518082815260200191505060405180910390f35b6107d36004803603604081101561078757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611504565b6040518082815260200191505060405180910390f35b61082b600480360360208110156107ff57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061158b565b005b606060038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108c55780601f1061089a576101008083540402835291602001916108c5565b820191906000526020600020905b8154815290600101906020018083116108a857829003601f168201915b5050505050905090565b60006108dc33848461181c565b6001905092915050565b6000600254905090565b60006108fd848484611a13565b6109b084336109ab856040518060600160405280602881526020016124e360289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cdd9092919063ffffffff16565b61181c565b600190509392505050565b3373ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a7e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff02191690831515021790555080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055507fc3f5f7966736fce35e5ebfb3cdc7504cd450ebd59e41fc35d2d8b7241bcc5c3c8282604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b3373ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c3c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff02191690831515021790555042600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055507f83dce18ab1d80abfcd7a494a1a1eba6c0ad8bec7fa7078a2545c03347fcf6b6481604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000600560009054906101000a900460ff16905090565b6000610de03384610ddb85600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461179490919063ffffffff16565b61181c565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ead576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b610eb78282611d9d565b5050565b610ec53382611f58565b50565b3373ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f8b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000811015611002576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5349503a6d75737420676174686572207468616e206f7220657175616c20302181525060200191505060405180910390fd5b8060078190555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611117576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60006112108260405180606001604052806024815260200161250b602491396112018633611504565b611cdd9092919063ffffffff16565b905061121d83338361181c565b6112278383611f58565b505050565b6000600754905090565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b3373ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611323576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600860006101000a81548160ff02191690831515021790555050565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113d85780601f106113ad576101008083540402835291602001916113d8565b820191906000526020600020905b8154815290600101906020018083116113bb57829003601f168201915b5050505050905090565b600061149733846114928560405180606001604052806025815260200161259960259139600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cdd9092919063ffffffff16565b61181c565b6001905092915050565b60006114ae338484611a13565b6001905092915050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461164e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156116d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806124756026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080828401905083811015611812576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806125756024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611928576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061249b6022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a99576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806125506025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b1f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806124306023913960400191505060405180910390fd5b611b2a83838361211c565b611b95816040518060600160405280602681526020016124bd602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cdd9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c28816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461179490919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3611cd88261222b565b505050565b6000838311158290611d8a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611d4f578082015181840152602081019050611d34565b50505050905090810190601f168015611d7c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e40576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b611e558160025461179490919063ffffffff16565b600281905550611eac816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461179490919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611fde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061252f6021913960400191505060405180910390fd5b611fea8260008361211c565b61205581604051806060016040528060228152602001612453602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cdd9092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120ac8160025461233090919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b61212783838361237a565b600860009054906101000a900460ff16156121aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f45524332303a207472616e73666572207061757365640000000000000000000081525060200191505060405180910390fd5b6121b38361237f565b15612226576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f45524332303a2061646472657373206c6f636b6564000000000000000000000081525060200191505060405180910390fd5b505050565b6122348161242c565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141561232d576001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff021916908315150217905550610e10601860075402024201600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b50565b600061237283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611cdd565b905092915050565b505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16156124225742600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154119050612427565b600090505b919050565b5056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d824b06335b5ea25f2f43136667335905f83929248a4de796ede97a45fe55d6764736f6c634300060c0033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061014d5760003560e01c806370a08231116100c357806395d89b411161007c57806395d89b41146105ce578063a457c2d714610651578063a9059cbb146106b5578063c53d174714610719578063dd62ed3e14610771578063f2fde38b146107e95761014d565b806370a082311461049c578063715018a6146104f457806379cc6790146104fe57806383a72aaa1461054c5780638da5cb5b1461056a5780639358037a1461059e5761014d565b80632f6c493c116101155780632f6c493c14610329578063313ce5671461036d578063395093511461038e57806340c10f19146103f257806342966c68146104405780634afb02e61461046e5761014d565b806306fdde0314610152578063095ea7b3146101d557806318160ddd1461023957806323b872dd14610257578063282d3fdf146102db575b600080fd5b61015a61082d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561019a57808201518184015260208101905061017f565b50505050905090810190601f1680156101c75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610221600480360360408110156101eb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108cf565b60405180821515815260200191505060405180910390f35b6102416108e6565b6040518082815260200191505060405180910390f35b6102c36004803603606081101561026d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108f0565b60405180821515815260200191505060405180910390f35b610327600480360360408110156102f157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109bb565b005b61036b6004803603602081101561033f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b79565b005b610375610d2e565b604051808260ff16815260200191505060405180910390f35b6103da600480360360408110156103a457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d45565b60405180821515815260200191505060405180910390f35b61043e6004803603604081101561040857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dea565b005b61046c6004803603602081101561045657600080fd5b8101908080359060200190929190505050610ebb565b005b61049a6004803603602081101561048457600080fd5b8101908080359060200190929190505050610ec8565b005b6104de600480360360208110156104b257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061100c565b6040518082815260200191505060405180910390f35b6104fc611054565b005b61054a6004803603604081101561051457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111d8565b005b61055461122c565b6040518082815260200191505060405180910390f35b610572611236565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105cc600480360360208110156105b457600080fd5b81019080803515159060200190929190505050611260565b005b6105d6611340565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106165780820151818401526020810190506105fb565b50505050905090810190601f1680156106435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61069d6004803603604081101561066757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113e2565b60405180821515815260200191505060405180910390f35b610701600480360360408110156106cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114a1565b60405180821515815260200191505060405180910390f35b61075b6004803603602081101561072f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114b8565b6040518082815260200191505060405180910390f35b6107d36004803603604081101561078757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611504565b6040518082815260200191505060405180910390f35b61082b600480360360208110156107ff57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061158b565b005b606060038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108c55780601f1061089a576101008083540402835291602001916108c5565b820191906000526020600020905b8154815290600101906020018083116108a857829003601f168201915b5050505050905090565b60006108dc33848461181c565b6001905092915050565b6000600254905090565b60006108fd848484611a13565b6109b084336109ab856040518060600160405280602881526020016124e360289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cdd9092919063ffffffff16565b61181c565b600190509392505050565b3373ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a7e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff02191690831515021790555080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055507fc3f5f7966736fce35e5ebfb3cdc7504cd450ebd59e41fc35d2d8b7241bcc5c3c8282604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b3373ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c3c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff02191690831515021790555042600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055507f83dce18ab1d80abfcd7a494a1a1eba6c0ad8bec7fa7078a2545c03347fcf6b6481604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000600560009054906101000a900460ff16905090565b6000610de03384610ddb85600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461179490919063ffffffff16565b61181c565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ead576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b610eb78282611d9d565b5050565b610ec53382611f58565b50565b3373ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f8b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000811015611002576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5349503a6d75737420676174686572207468616e206f7220657175616c20302181525060200191505060405180910390fd5b8060078190555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611117576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60006112108260405180606001604052806024815260200161250b602491396112018633611504565b611cdd9092919063ffffffff16565b905061121d83338361181c565b6112278383611f58565b505050565b6000600754905090565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b3373ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611323576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600860006101000a81548160ff02191690831515021790555050565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113d85780601f106113ad576101008083540402835291602001916113d8565b820191906000526020600020905b8154815290600101906020018083116113bb57829003601f168201915b5050505050905090565b600061149733846114928560405180606001604052806025815260200161259960259139600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cdd9092919063ffffffff16565b61181c565b6001905092915050565b60006114ae338484611a13565b6001905092915050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461164e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156116d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806124756026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080828401905083811015611812576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806125756024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611928576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061249b6022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a99576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806125506025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b1f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806124306023913960400191505060405180910390fd5b611b2a83838361211c565b611b95816040518060600160405280602681526020016124bd602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cdd9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c28816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461179490919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3611cd88261222b565b505050565b6000838311158290611d8a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611d4f578082015181840152602081019050611d34565b50505050905090810190601f168015611d7c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e40576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b611e558160025461179490919063ffffffff16565b600281905550611eac816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461179490919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611fde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061252f6021913960400191505060405180910390fd5b611fea8260008361211c565b61205581604051806060016040528060228152602001612453602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cdd9092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120ac8160025461233090919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b61212783838361237a565b600860009054906101000a900460ff16156121aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f45524332303a207472616e73666572207061757365640000000000000000000081525060200191505060405180910390fd5b6121b38361237f565b15612226576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f45524332303a2061646472657373206c6f636b6564000000000000000000000081525060200191505060405180910390fd5b505050565b6122348161242c565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141561232d576001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff021916908315150217905550610e10601860075402024201600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b50565b600061237283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611cdd565b905092915050565b505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16156124225742600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154119050612427565b600090505b919050565b5056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d824b06335b5ea25f2f43136667335905f83929248a4de796ede97a45fe55d6764736f6c634300060c0033

Deployed Bytecode Sourcemap

10408:334:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3716:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4570:167;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3993:100;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4745:317;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9101:224;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9333:197;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3902:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5070:214;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10298:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7585:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9884:168;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4101:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2804:148;;;:::i;:::-;;7682:290;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10188:96;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2592:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9789:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3807;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5292:265;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4228:173;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10064:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4409:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2960:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3716:83;3753:13;3786:5;3779:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3716:83;:::o;4570:167::-;4653:4;4670:37;4679:10;4691:7;4700:6;4670:8;:37::i;:::-;4725:4;4718:11;;4570:167;;;;:::o;3993:100::-;4046:7;4073:12;;4066:19;;3993:100;:::o;4745:317::-;4851:4;4868:36;4878:6;4886:9;4897:6;4868:9;:36::i;:::-;4915:117;4924:6;4932:10;4944:87;4980:6;4944:87;;;;;;;;;;;;;;;;;:11;:19;4956:6;4944:19;;;;;;;;;;;;;;;:31;4964:10;4944:31;;;;;;;;;;;;;;;;:35;;:87;;;;;:::i;:::-;4915:8;:117::i;:::-;5050:4;5043:11;;4745:317;;;;;:::o;9101:224::-;2729:10;2719:20;;:6;;;;;;;;;;;:20;;;2711:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9209:4:::1;9181:9;:18;9191:7;9181:18;;;;;;;;;;;;;;;:25;;;:32;;;;;;;;;;;;;;;;;;9257:11;9224:9;:18;9234:7;9224:18;;;;;;;;;;;;;;;:30;;:44;;;;9284:33;9296:7;9305:11;9284:33;;;;;;;;;;;;;;;;;;;;;;;;;;9101:224:::0;;:::o;9333:197::-;2729:10;2719:20;;:6;;;;;;;;;;;:20;;;2711:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9421:4:::1;9393:9;:18;9403:7;9393:18;;;;;;;;;;;;;;;:25;;;:32;;;;;;;;;;;;;;;;;;9469:15;9436:9;:18;9446:7;9436:18;;;;;;;;;;;;;;;:30;;:48;;;;9500:22;9514:7;9500:22;;;;;;;;;;;;;;;;;;;;9333:197:::0;:::o;3902:83::-;3943:5;3968:9;;;;;;;;;;;3961:16;;3902:83;:::o;5070:214::-;5158:4;5175:79;5184:10;5196:7;5205:48;5242:10;5205:11;:23;5217:10;5205:23;;;;;;;;;;;;;;;:32;5229:7;5205:32;;;;;;;;;;;;;;;;:36;;:48;;;;:::i;:::-;5175:8;:79::i;:::-;5272:4;5265:11;;5070:214;;;;:::o;10298:103::-;2729:10;2719:20;;:6;;;;;;;;;;;:20;;;2711:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10372:21:::1;10378:7;10386:6;10372:5;:21::i;:::-;10298:103:::0;;:::o;7585:89::-;7641:25;7647:10;7659:6;7641:5;:25::i;:::-;7585:89;:::o;9884:168::-;2729:10;2719:20;;:6;;;;;;;;;;;:20;;;2711:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9971:1:::1;9961:6;:11;;9953:55;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;10038:6;10019:16;:25;;;;9884:168:::0;:::o;4101:119::-;4167:7;4194:9;:18;4204:7;4194:18;;;;;;;;;;;;;;;;4187:25;;4101:119;;;:::o;2804:148::-;2729:10;2719:20;;:6;;;;;;;;;;;:20;;;2711:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2911:1:::1;2874:40;;2895:6;;;;;;;;;;;2874:40;;;;;;;;;;;;2942:1;2925:6;;:19;;;;;;;;;;;;;;;;;;2804:148::o:0;7682:290::-;7759:26;7788:82;7823:6;7788:82;;;;;;;;;;;;;;;;;:30;7798:7;7807:10;7788:9;:30::i;:::-;:34;;:82;;;;;:::i;:::-;7759:111;;7883:48;7892:7;7900:10;7912:18;7883:8;:48::i;:::-;7942:22;7948:7;7957:6;7942:5;:22::i;:::-;7682:290;;;:::o;10188:96::-;10236:4;10260:16;;10253:23;;10188:96;:::o;2592:79::-;2630:7;2657:6;;;;;;;;;;;2650:13;;2592:79;:::o;9789:87::-;2729:10;2719:20;;:6;;;;;;;;;;;:20;;;2711:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9863:5:::1;9854:6;;:14;;;;;;;;;;;;;;;;;;9789:87:::0;:::o;3807:::-;3846:13;3879:7;3872:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3807:87;:::o;5292:265::-;5385:4;5402:125;5411:10;5423:7;5432:94;5469:15;5432:94;;;;;;;;;;;;;;;;;:11;:23;5444:10;5432:23;;;;;;;;;;;;;;;:32;5456:7;5432:32;;;;;;;;;;;;;;;;:36;;:94;;;;;:::i;:::-;5402:8;:125::i;:::-;5545:4;5538:11;;5292:265;;;;:::o;4228:173::-;4314:4;4331:40;4341:10;4353:9;4364:6;4331:9;:40::i;:::-;4389:4;4382:11;;4228:173;;;;:::o;10064:112::-;10117:4;10141:9;:15;10151:4;10141:15;;;;;;;;;;;;;;;:27;;;10134:34;;10064:112;;;:::o;4409:151::-;4498:7;4525:11;:18;4537:5;4525:18;;;;;;;;;;;;;;;:27;4544:7;4525:27;;;;;;;;;;;;;;;;4518:34;;4409:151;;;;:::o;2960:244::-;2729:10;2719:20;;:6;;;;;;;;;;;:20;;;2711:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3069:1:::1;3049:22;;:8;:22;;;;3041:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3159:8;3130:38;;3151:6;;;;;;;;;;;3130:38;;;;;;;;;;;;3188:8;3179:6;;:17;;;;;;;;;;;;;;;;;;2960:244:::0;:::o;51:181::-;109:7;129:9;145:1;141;:5;129:17;;170:1;165;:6;;157:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;223:1;216:8;;;51:181;;;;:::o;6911:346::-;7030:1;7013:19;;:5;:19;;;;7005:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7111:1;7092:21;;:7;:21;;;;7084:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7195:6;7165:11;:18;7177:5;7165:18;;;;;;;;;;;;;;;:27;7184:7;7165:27;;;;;;;;;;;;;;;:36;;;;7233:7;7217:32;;7226:5;7217:32;;;7242:6;7217:32;;;;;;;;;;;;;;;;;;6911:346;;;:::o;5565:590::-;5689:1;5671:20;;:6;:20;;;;5663:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5773:1;5752:23;;:9;:23;;;;5744:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5828:47;5849:6;5857:9;5868:6;5828:20;:47::i;:::-;5908:71;5930:6;5908:71;;;;;;;;;;;;;;;;;:9;:17;5918:6;5908:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;5888:9;:17;5898:6;5888:17;;;;;;;;;;;;;;;:91;;;;6013:32;6038:6;6013:9;:20;6023:9;6013:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;5990:9;:20;6000:9;5990:20;;;;;;;;;;;;;;;:55;;;;6078:9;6061:35;;6070:6;6061:35;;;6089:6;6061:35;;;;;;;;;;;;;;;;;;6117:30;6137:9;6117:19;:30::i;:::-;5565:590;;;:::o;384:192::-;470:7;503:1;498;:6;;506:12;490:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;530:9;546:1;542;:5;530:17;;567:1;560:8;;;384:192;;;;;:::o;6163:314::-;6266:1;6247:21;;:7;:21;;;;6239:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6330:24;6347:6;6330:12;;:16;;:24;;;;:::i;:::-;6315:12;:39;;;;6386:30;6409:6;6386:9;:18;6396:7;6386:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;6365:9;:18;6375:7;6365:18;;;;;;;;;;;;;;;:51;;;;6453:7;6432:37;;6449:1;6432:37;;;6462:6;6432:37;;;;;;;;;;;;;;;;;;6163:314;;:::o;6485:418::-;6588:1;6569:21;;:7;:21;;;;6561:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6641:49;6662:7;6679:1;6683:6;6641:20;:49::i;:::-;6724:68;6747:6;6724:68;;;;;;;;;;;;;;;;;:9;:18;6734:7;6724:18;;;;;;;;;;;;;;;;:22;;:68;;;;;:::i;:::-;6703:9;:18;6713:7;6703:18;;;;;;;;;;;;;;;:89;;;;6818:24;6835:6;6818:12;;:16;;:24;;;;:::i;:::-;6803:12;:39;;;;6884:1;6858:37;;6867:7;6858:37;;;6888:6;6858:37;;;;;;;;;;;;;;;;;;6485:418;;:::o;8368:272::-;8477:44;8504:4;8510:2;8514:6;8477:26;:44::i;:::-;8541:6;;;;;;;;;;;8540:7;8532:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8593:14;8602:4;8593:8;:14::i;:::-;8592:15;8584:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8368:272;;;:::o;8654:328::-;8732:29;8758:2;8732:25;:29::i;:::-;8806:1;8777:9;:13;8787:2;8777:13;;;;;;;;;;;;;;;:25;;;:30;8774:201;;;8846:4;8823:9;:13;8833:2;8823:13;;;;;;;;;;;;;;;:20;;;:27;;;;;;;;;;;;;;;;;;8932:4;8929:2;8912:16;;:19;:24;8893:15;:44;8865:9;:13;8875:2;8865:13;;;;;;;;;;;;;;;:25;;:72;;;;8774:201;8654:328;:::o;240:136::-;298:7;325:43;329:1;332;325:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;318:50;;240:136;;;;:::o;7363:92::-;;;;:::o;9538:239::-;9596:4;9616:9;:18;9626:7;9616:18;;;;;;;;;;;;;;;:25;;;;;;;;;;;;9612:158;;;9698:15;9665:9;:18;9675:7;9665:18;;;;;;;;;;;;;;;:30;;;:48;9658:55;;;;9612:158;9753:5;9746:12;;9538:239;;;;:::o;7461:61::-;;:::o

Swarm Source

ipfs://d824b06335b5ea25f2f43136667335905f83929248a4de796ede97a45fe55d67

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

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.