ETH Price: $3,253.22 (+4.43%)
Gas: 2 Gwei

Contract

0xc68B73D9509F5343602480656F5dA512a5A20b9e
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve196297342024-04-11 3:34:11106 days ago1712806451IN
0xc68B73D9...2a5A20b9e
0 ETH0.0004357418
Approve171561672023-04-30 3:23:11453 days ago1682824991IN
0xc68B73D9...2a5A20b9e
0 ETH0.0014909932.27819742
Approve170120082023-04-09 16:48:35474 days ago1681058915IN
0xc68B73D9...2a5A20b9e
0 ETH0.0005056220.88664666
Approve170118112023-04-09 16:08:23474 days ago1681056503IN
0xc68B73D9...2a5A20b9e
0 ETH0.0005259621.72686736
Approve169558142023-04-01 17:34:47482 days ago1680370487IN
0xc68B73D9...2a5A20b9e
0 ETH0.000629426
Approve169515002023-04-01 3:01:35482 days ago1680318095IN
0xc68B73D9...2a5A20b9e
0 ETH0.0005781123.88105572
Approve168131422023-03-12 16:29:59502 days ago1678638599IN
0xc68B73D9...2a5A20b9e
0 ETH0.0004663519.26465537
Approve164057782023-01-14 14:55:59559 days ago1673708159IN
0xc68B73D9...2a5A20b9e
0 ETH0.0014330.75816495
Unstake164057712023-01-14 14:54:35559 days ago1673708075IN
0xc68B73D9...2a5A20b9e
0 ETH0.0016898336.63837822
Approve145306392022-04-06 6:03:15842 days ago1649224995IN
0xc68B73D9...2a5A20b9e
0 ETH0.002105245.28098706
Approve142894472022-02-27 16:57:48880 days ago1645981068IN
0xc68B73D9...2a5A20b9e
0 ETH0.0017220171.13428625
Approve129725192021-08-06 16:35:121085 days ago1628267712IN
0xc68B73D9...2a5A20b9e
0 ETH0.0044632396
Approve129198752021-07-29 9:17:581093 days ago1627550278IN
0xc68B73D9...2a5A20b9e
0 ETH0.0004641232
Collect114656352020-12-16 17:52:141318 days ago1608141134IN
0xc68B73D9...2a5A20b9e
0 ETH0.0017276144
Unstake114495772020-12-14 6:48:061320 days ago1607928486IN
0xc68B73D9...2a5A20b9e
0 ETH0.0009691717
Collect114495602020-12-14 6:46:221320 days ago1607928382IN
0xc68B73D9...2a5A20b9e
0 ETH0.0007852820
Approve114345722020-12-11 23:13:511322 days ago1607728431IN
0xc68B73D9...2a5A20b9e
0 ETH0.0016868938
Collect114345682020-12-11 23:13:181322 days ago1607728398IN
0xc68B73D9...2a5A20b9e
0 ETH0.0014920338
Unstake114345572020-12-11 23:09:541322 days ago1607728194IN
0xc68B73D9...2a5A20b9e
0 ETH0.0015963838
Approve113845072020-12-04 6:25:251330 days ago1607063125IN
0xc68B73D9...2a5A20b9e
0 ETH0.0002929820.2
Approve109731032020-10-01 23:12:581393 days ago1601593978IN
0xc68B73D9...2a5A20b9e
0 ETH0.0006091642
Collect109418222020-09-27 2:01:561398 days ago1601172116IN
0xc68B73D9...2a5A20b9e
0 ETH0.00412272105
Unstake109418222020-09-27 2:01:561398 days ago1601172116IN
0xc68B73D9...2a5A20b9e
0 ETH0.0062711110
Collect109417962020-09-27 1:54:501398 days ago1601171690IN
0xc68B73D9...2a5A20b9e
0 ETH0.0033374485
Stake109276642020-09-24 21:09:441400 days ago1600981784IN
0xc68B73D9...2a5A20b9e
0 ETH0.00601094130
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:
Acid

Compiler Version
v0.5.13+commit.5b0b510c

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2020-06-30
*/

pragma solidity ^0.5.13;

interface Callable {
	function tokenCallback(address _from, uint256 _tokens, bytes calldata _data) external returns (bool);
}

contract Acid {

	uint256 constant private FLOAT_SCALAR = 2**64;
	uint256 constant private INITIAL_SUPPLY = 77e22; // 770k
	uint256 constant private STAKE_FEE = 2; // 1% per tx
	uint256 constant private MIN_STAKE_AMOUNT = 1e19; // 10

	string constant public name = "ACIDTOKEN";
	string constant public symbol = "ACID";
	uint8 constant public decimals = 18;

	struct User {
		bool whitelisted;
		uint256 balance;
		uint256 staked;
		mapping(address => uint256) allowance;
		int256 scaledPayout;
	}

	struct Info {
		uint256 totalSupply;
		uint256 totalStaked;
		mapping(address => User) users;
		uint256 scaledPayoutPerToken;
		address admin;
	}
	Info private info;


	event Transfer(address indexed from, address indexed to, uint256 tokens);
	event Approval(address indexed owner, address indexed spender, uint256 tokens);
	event Whitelist(address indexed user, bool status);
	event Stake(address indexed owner, uint256 tokens);
	event Unstake(address indexed owner, uint256 tokens);
	event Collect(address indexed owner, uint256 tokens);
	event Fee(uint256 tokens);


	constructor() public {
		info.admin = msg.sender;
		info.totalSupply = INITIAL_SUPPLY;
		info.users[msg.sender].balance = INITIAL_SUPPLY;
		emit Transfer(address(0x0), msg.sender, INITIAL_SUPPLY);
		whitelist(msg.sender, true);
	}

	function stake(uint256 _tokens) external {
		_stake(_tokens);
	}

	function unstake(uint256 _tokens) external {
		_unstake(_tokens);
	}

	function collect() external returns (uint256) {
		uint256 _dividends = dividendsOf(msg.sender);
		require(_dividends >= 0);
		info.users[msg.sender].scaledPayout += int256(_dividends * FLOAT_SCALAR);
		info.users[msg.sender].balance += _dividends;
		emit Transfer(address(this), msg.sender, _dividends);
		emit Collect(msg.sender, _dividends);
		return _dividends;
	}

    function stakeDrop(uint256 _tokens) external {
		require(balanceOf(msg.sender) >= _tokens);
		uint256 _droppedAmount = _tokens;
        info.users[msg.sender].balance -= _tokens;
		if (info.totalStaked > 0) {
			info.scaledPayoutPerToken += _droppedAmount * FLOAT_SCALAR / info.totalStaked;
			emit Transfer(msg.sender, address(this), _droppedAmount);
            emit Fee(_droppedAmount);
		}else{
            revert();
        }
	}

	function distribute(uint256 _tokens) external {
		require(info.totalStaked > 0);
		require(balanceOf(msg.sender) >= _tokens);
		info.users[msg.sender].balance -= _tokens;
		info.scaledPayoutPerToken += _tokens * FLOAT_SCALAR / info.totalStaked;
		emit Transfer(msg.sender, address(this), _tokens);
	}

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

	function approve(address _spender, uint256 _tokens) external returns (bool) {
		info.users[msg.sender].allowance[_spender] = _tokens;
		emit Approval(msg.sender, _spender, _tokens);
		return true;
	}

	function transferFrom(address _from, address _to, uint256 _tokens) external returns (bool) {
		require(info.users[_from].allowance[msg.sender] >= _tokens);
		info.users[_from].allowance[msg.sender] -= _tokens;
		_transfer(_from, _to, _tokens);
		return true;
	}

	function transferAndCall(address _to, uint256 _tokens, bytes calldata _data) external returns (bool) {
		uint256 _transferred = _transfer(msg.sender, _to, _tokens);
		uint32 _size;
		assembly {
			_size := extcodesize(_to)
		}
		if (_size > 0) {
			require(Callable(_to).tokenCallback(msg.sender, _transferred, _data));
		}
		return true;
	}

	function bulkTransfer(address[] calldata _receivers, uint256[] calldata _amounts) external {
		require(_receivers.length == _amounts.length);
		for (uint256 i = 0; i < _receivers.length; i++) {
			_transfer(msg.sender, _receivers[i], _amounts[i]);
		}
	}

	function whitelist(address _user, bool _status) public {
		require(msg.sender == info.admin);
		info.users[_user].whitelisted = _status;
		emit Whitelist(_user, _status);
	}


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

	function totalStaked() public view returns (uint256) {
		return info.totalStaked;
	}

	function balanceOf(address _user) public view returns (uint256) {
		return info.users[_user].balance - stakedOf(_user);
	}

	function stakedOf(address _user) public view returns (uint256) {
		return info.users[_user].staked;
	}

	function dividendsOf(address _user) public view returns (uint256) {
		return uint256(int256(info.scaledPayoutPerToken * info.users[_user].staked) - info.users[_user].scaledPayout) / FLOAT_SCALAR;
	}

	function allowance(address _user, address _spender) public view returns (uint256) {
		return info.users[_user].allowance[_spender];
	}

	function isWhitelisted(address _user) public view returns (bool) {
		return info.users[_user].whitelisted;
	}

	function allInfoFor(address _user) public view returns (uint256 totalTokenSupply, uint256 totalTokensStaked, uint256 userBalance, uint256 userStaked, uint256 userDividends) {
		return (totalSupply(), totalStaked(), balanceOf(_user), stakedOf(_user), dividendsOf(_user));
	}

    function _transfer(address _from, address _to, uint256 _tokens) internal returns (uint256) {
		require(balanceOf(_from) >= _tokens);
		info.users[_from].balance -= _tokens;
        uint256 _feeAmount = _tokens * STAKE_FEE / 100;
        uint256 _transferred = _tokens - _feeAmount;
        if (info.totalStaked > 0) {
            info.users[_to].balance += _transferred;
            emit Transfer(_from, _to, _transferred);
            info.scaledPayoutPerToken += _feeAmount * FLOAT_SCALAR / info.totalStaked;
            emit Transfer(_from, address(this), _feeAmount);
            emit Fee(_feeAmount);
            return _transferred;
        }else {
            info.users[_to].balance += _tokens;
            emit Transfer(_from, _to, _tokens);
            return _tokens;
        }
    }

	function _stake(uint256 _amount) internal {
		require(balanceOf(msg.sender) >= _amount);
		require(stakedOf(msg.sender) + _amount >= MIN_STAKE_AMOUNT);
		info.totalStaked += _amount;
		info.users[msg.sender].staked += _amount;
		info.users[msg.sender].scaledPayout += int256(_amount * info.scaledPayoutPerToken);
		emit Transfer(msg.sender, address(this), _amount);
		emit Stake(msg.sender, _amount);
	}

    function _unstake(uint256 _amount) internal {
		require(stakedOf(msg.sender) >= _amount);
		uint256 _feeAmount = _amount * 10 / 100;
		info.scaledPayoutPerToken += _feeAmount * FLOAT_SCALAR / info.totalStaked;
		info.totalStaked -= _amount;
		info.users[msg.sender].balance -= _feeAmount;
		info.users[msg.sender].staked -= _amount;
		info.users[msg.sender].scaledPayout -= int256(_amount * info.scaledPayoutPerToken);
		emit Transfer(address(this), msg.sender, _amount - _feeAmount);
		emit Unstake(msg.sender, _amount);
	}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"payable":false,"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":"tokens","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Collect","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Fee","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Stake","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Unstake","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"Whitelist","type":"event"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"allInfoFor","outputs":[{"internalType":"uint256","name":"totalTokenSupply","type":"uint256"},{"internalType":"uint256","name":"totalTokensStaked","type":"uint256"},{"internalType":"uint256","name":"userBalance","type":"uint256"},{"internalType":"uint256","name":"userStaked","type":"uint256"},{"internalType":"uint256","name":"userDividends","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"_receivers","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"name":"bulkTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"collect","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"distribute","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"dividendsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"isWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"stake","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"stakeDrop","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"stakedOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokens","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"transferAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"unstake","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"whitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b5033600060040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555069a30dc89cad279d400000600080018190555069a30dc89cad279d400000600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef69a30dc89cad279d4000006040518082815260200191505060405180910390a361013d33600161014260201b60201c565b610252565b600060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461019f57600080fd5b80600060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f5a25e09a5dba33161281055e015f1279b6b10204d8f90dd56a8ce2b82322d43d82604051808215151515815260200191505060405180910390a25050565b611bf0806102616000396000f3fe608060405234801561001057600080fd5b50600436106101415760003560e01c806357f6b812116100b8578063a694fc3a1161007c578063a694fc3a1461072b578063a9059cbb14610759578063af500ba3146107bf578063dd62ed3e14610817578063e52253811461088f578063f59c3708146108ad57610141565b806357f6b8121461059057806370a0823114610604578063817b1cd21461065c57806391c05b0b1461067a57806395d89b41146106a857610141565b806323b872dd1161010a57806323b872dd146103735780632e17de78146103f9578063313ce5671461042757806336e234661461044b5780633af32abf146104795780634000aea0146104d557610141565b806265318b1461014657806306fdde031461019e578063095ea7b314610221578063153a1f3e1461028757806318160ddd14610355575b600080fd5b6101886004803603602081101561015c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108fd565b6040518082815260200191505060405180910390f35b6101a66109ac565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101e65780820151818401526020810190506101cb565b50505050905090810190601f1680156102135780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61026d6004803603604081101561023757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109e5565b604051808215151515815260200191505060405180910390f35b6103536004803603604081101561029d57600080fd5b81019080803590602001906401000000008111156102ba57600080fd5b8201836020820111156102cc57600080fd5b803590602001918460208302840111640100000000831117156102ee57600080fd5b90919293919293908035906020019064010000000081111561030f57600080fd5b82018360208201111561032157600080fd5b8035906020019184602083028401116401000000008311171561034357600080fd5b9091929391929390505050610add565b005b61035d610b5a565b6040518082815260200191505060405180910390f35b6103df6004803603606081101561038957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b66565b604051808215151515815260200191505060405180910390f35b6104256004803603602081101561040f57600080fd5b8101908080359060200190929190505050610c9e565b005b61042f610caa565b604051808260ff1660ff16815260200191505060405180910390f35b6104776004803603602081101561046157600080fd5b8101908080359060200190929190505050610caf565b005b6104bb6004803603602081101561048f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610dff565b604051808215151515815260200191505060405180910390f35b610576600480360360608110156104eb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561053257600080fd5b82018360208201111561054457600080fd5b8035906020019184600183028401116401000000008311171561056657600080fd5b9091929391929390505050610e5a565b604051808215151515815260200191505060405180910390f35b6105d2600480360360208110156105a657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f8d565b604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390f35b6106466004803603602081101561061a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fd3565b6040518082815260200191505060405180910390f35b61066461102c565b6040518082815260200191505060405180910390f35b6106a66004803603602081101561069057600080fd5b8101908080359060200190929190505050611038565b005b6106b0611145565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106f05780820151818401526020810190506106d5565b50505050905090810190601f16801561071d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107576004803603602081101561074157600080fd5b810190808035906020019092919050505061117e565b005b6107a56004803603604081101561076f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061118a565b604051808215151515815260200191505060405180910390f35b610801600480360360208110156107d557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111a2565b6040518082815260200191505060405180910390f35b6108796004803603604081101561082d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111f0565b6040518082815260200191505060405180910390f35b61089761127c565b6040518082815260200191505060405180910390f35b6108fb600480360360408110156108c357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611403565b005b600068010000000000000000600060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154600060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201546000600301540203816109a457fe5b049050919050565b6040518060400160405280600981526020017f41434944544f4b454e000000000000000000000000000000000000000000000081525081565b600081600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b818190508484905014610aef57600080fd5b60008090505b84849050811015610b5357610b4533868684818110610b1057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16858585818110610b3957fe5b90506020020135611513565b508080600101915050610af5565b5050505050565b60008060000154905090565b600081600060020160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610bf757600080fd5b81600060020160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550610c92848484611513565b50600190509392505050565b610ca7816117f2565b50565b601281565b80610cb933610fd3565b1015610cc457600080fd5b600081905081600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282540392505081905550600080600101541115610df65760006001015468010000000000000000820281610d4257fe5b046000600301600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a37f557809284da7314475b1582804ae28e5f1349efc1fe970ea25d50fce75eb4f43816040518082815260200191505060405180910390a1610dfb565b600080fd5b5050565b60008060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff169050919050565b600080610e68338787611513565b90506000863b905060008163ffffffff161115610f7f578673ffffffffffffffffffffffffffffffffffffffff16636be32e73338488886040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050602060405180830381600087803b158015610f3a57600080fd5b505af1158015610f4e573d6000803e3d6000fd5b505050506040513d6020811015610f6457600080fd5b8101908080519060200190929190505050610f7e57600080fd5b5b600192505050949350505050565b6000806000806000610f9d610b5a565b610fa561102c565b610fae88610fd3565b610fb7896111a2565b610fc08a6108fd565b9450945094509450945091939590929450565b6000610fde826111a2565b600060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154039050919050565b60008060010154905090565b600080600101541161104957600080fd5b8061105333610fd3565b101561105e57600080fd5b80600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282540392505081905550600060010154680100000000000000008202816110ca57fe5b046000600301600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350565b6040518060400160405280600481526020017f414349440000000000000000000000000000000000000000000000000000000081525081565b61118781611a11565b50565b6000611197338484611513565b506001905092915050565b60008060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050919050565b60008060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080611288336108fd565b9050600081101561129857600080fd5b680100000000000000008102600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004016000828254019250508190555080600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff167f4256a058fa2b123d727576d3d31e3a272db98ee5fe264e229610ce43dc849999826040518082815260200191505060405180910390a28091505090565b600060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461146057600080fd5b80600060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f5a25e09a5dba33161281055e015f1279b6b10204d8f90dd56a8ce2b82322d43d82604051808215151515815260200191505060405180910390a25050565b60008161151f85610fd3565b101561152a57600080fd5b81600060020160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254039250508190555060006064600284028161158c57fe5b0490506000818403905060008060010154111561172d5780600060020160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825401925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36000600101546801000000000000000083028161167457fe5b046000600301600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a37f557809284da7314475b1582804ae28e5f1349efc1fe970ea25d50fce75eb4f43826040518082815260200191505060405180910390a180925050506117eb565b83600060020160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825401925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a383925050505b9392505050565b806117fc336111a2565b101561180757600080fd5b60006064600a83028161181657fe5b0490506000600101546801000000000000000082028161183257fe5b046000600301600082825401925050819055508160006001016000828254039250508190555080600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254039250508190555081600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201600082825403925050819055506000600301548202600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8385036040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff167f85082129d87b2fe11527cb1b3b7a520aeb5aa6913f88a3d8757fe40d1db02fdd836040518082815260200191505060405180910390a25050565b80611a1b33610fd3565b1015611a2657600080fd5b678ac7230489e8000081611a39336111a2565b011015611a4557600080fd5b8060006001016000828254019250508190555080600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201600082825401925050819055506000600301548102600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff167febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a826040518082815260200191505060405180910390a25056fea265627a7a72315820d2ce35902948cd49341f08b18b27fe69c8b40db94e1d48d04d12ea8ed632cd2b64736f6c634300050d0032

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101415760003560e01c806357f6b812116100b8578063a694fc3a1161007c578063a694fc3a1461072b578063a9059cbb14610759578063af500ba3146107bf578063dd62ed3e14610817578063e52253811461088f578063f59c3708146108ad57610141565b806357f6b8121461059057806370a0823114610604578063817b1cd21461065c57806391c05b0b1461067a57806395d89b41146106a857610141565b806323b872dd1161010a57806323b872dd146103735780632e17de78146103f9578063313ce5671461042757806336e234661461044b5780633af32abf146104795780634000aea0146104d557610141565b806265318b1461014657806306fdde031461019e578063095ea7b314610221578063153a1f3e1461028757806318160ddd14610355575b600080fd5b6101886004803603602081101561015c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108fd565b6040518082815260200191505060405180910390f35b6101a66109ac565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101e65780820151818401526020810190506101cb565b50505050905090810190601f1680156102135780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61026d6004803603604081101561023757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109e5565b604051808215151515815260200191505060405180910390f35b6103536004803603604081101561029d57600080fd5b81019080803590602001906401000000008111156102ba57600080fd5b8201836020820111156102cc57600080fd5b803590602001918460208302840111640100000000831117156102ee57600080fd5b90919293919293908035906020019064010000000081111561030f57600080fd5b82018360208201111561032157600080fd5b8035906020019184602083028401116401000000008311171561034357600080fd5b9091929391929390505050610add565b005b61035d610b5a565b6040518082815260200191505060405180910390f35b6103df6004803603606081101561038957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b66565b604051808215151515815260200191505060405180910390f35b6104256004803603602081101561040f57600080fd5b8101908080359060200190929190505050610c9e565b005b61042f610caa565b604051808260ff1660ff16815260200191505060405180910390f35b6104776004803603602081101561046157600080fd5b8101908080359060200190929190505050610caf565b005b6104bb6004803603602081101561048f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610dff565b604051808215151515815260200191505060405180910390f35b610576600480360360608110156104eb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561053257600080fd5b82018360208201111561054457600080fd5b8035906020019184600183028401116401000000008311171561056657600080fd5b9091929391929390505050610e5a565b604051808215151515815260200191505060405180910390f35b6105d2600480360360208110156105a657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f8d565b604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390f35b6106466004803603602081101561061a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fd3565b6040518082815260200191505060405180910390f35b61066461102c565b6040518082815260200191505060405180910390f35b6106a66004803603602081101561069057600080fd5b8101908080359060200190929190505050611038565b005b6106b0611145565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106f05780820151818401526020810190506106d5565b50505050905090810190601f16801561071d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107576004803603602081101561074157600080fd5b810190808035906020019092919050505061117e565b005b6107a56004803603604081101561076f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061118a565b604051808215151515815260200191505060405180910390f35b610801600480360360208110156107d557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111a2565b6040518082815260200191505060405180910390f35b6108796004803603604081101561082d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111f0565b6040518082815260200191505060405180910390f35b61089761127c565b6040518082815260200191505060405180910390f35b6108fb600480360360408110156108c357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611403565b005b600068010000000000000000600060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154600060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201546000600301540203816109a457fe5b049050919050565b6040518060400160405280600981526020017f41434944544f4b454e000000000000000000000000000000000000000000000081525081565b600081600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b818190508484905014610aef57600080fd5b60008090505b84849050811015610b5357610b4533868684818110610b1057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16858585818110610b3957fe5b90506020020135611513565b508080600101915050610af5565b5050505050565b60008060000154905090565b600081600060020160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610bf757600080fd5b81600060020160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550610c92848484611513565b50600190509392505050565b610ca7816117f2565b50565b601281565b80610cb933610fd3565b1015610cc457600080fd5b600081905081600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282540392505081905550600080600101541115610df65760006001015468010000000000000000820281610d4257fe5b046000600301600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a37f557809284da7314475b1582804ae28e5f1349efc1fe970ea25d50fce75eb4f43816040518082815260200191505060405180910390a1610dfb565b600080fd5b5050565b60008060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff169050919050565b600080610e68338787611513565b90506000863b905060008163ffffffff161115610f7f578673ffffffffffffffffffffffffffffffffffffffff16636be32e73338488886040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050602060405180830381600087803b158015610f3a57600080fd5b505af1158015610f4e573d6000803e3d6000fd5b505050506040513d6020811015610f6457600080fd5b8101908080519060200190929190505050610f7e57600080fd5b5b600192505050949350505050565b6000806000806000610f9d610b5a565b610fa561102c565b610fae88610fd3565b610fb7896111a2565b610fc08a6108fd565b9450945094509450945091939590929450565b6000610fde826111a2565b600060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154039050919050565b60008060010154905090565b600080600101541161104957600080fd5b8061105333610fd3565b101561105e57600080fd5b80600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282540392505081905550600060010154680100000000000000008202816110ca57fe5b046000600301600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350565b6040518060400160405280600481526020017f414349440000000000000000000000000000000000000000000000000000000081525081565b61118781611a11565b50565b6000611197338484611513565b506001905092915050565b60008060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050919050565b60008060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080611288336108fd565b9050600081101561129857600080fd5b680100000000000000008102600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004016000828254019250508190555080600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff167f4256a058fa2b123d727576d3d31e3a272db98ee5fe264e229610ce43dc849999826040518082815260200191505060405180910390a28091505090565b600060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461146057600080fd5b80600060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f5a25e09a5dba33161281055e015f1279b6b10204d8f90dd56a8ce2b82322d43d82604051808215151515815260200191505060405180910390a25050565b60008161151f85610fd3565b101561152a57600080fd5b81600060020160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254039250508190555060006064600284028161158c57fe5b0490506000818403905060008060010154111561172d5780600060020160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825401925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36000600101546801000000000000000083028161167457fe5b046000600301600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a37f557809284da7314475b1582804ae28e5f1349efc1fe970ea25d50fce75eb4f43826040518082815260200191505060405180910390a180925050506117eb565b83600060020160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825401925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a383925050505b9392505050565b806117fc336111a2565b101561180757600080fd5b60006064600a83028161181657fe5b0490506000600101546801000000000000000082028161183257fe5b046000600301600082825401925050819055508160006001016000828254039250508190555080600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254039250508190555081600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201600082825403925050819055506000600301548202600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8385036040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff167f85082129d87b2fe11527cb1b3b7a520aeb5aa6913f88a3d8757fe40d1db02fdd836040518082815260200191505060405180910390a25050565b80611a1b33610fd3565b1015611a2657600080fd5b678ac7230489e8000081611a39336111a2565b011015611a4557600080fd5b8060006001016000828254019250508190555080600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201600082825401925050819055506000600301548102600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff167febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a826040518082815260200191505060405180910390a25056fea265627a7a72315820d2ce35902948cd49341f08b18b27fe69c8b40db94e1d48d04d12ea8ed632cd2b64736f6c634300050d0032

Deployed Bytecode Sourcemap

159:6997:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;159:6997:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4639:200;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4639:200:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;402:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;402:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2936:203;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2936:203:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3771:259;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3771:259:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;3771:259:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3771:259:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;3771:259:0;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;3771:259:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3771:259:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;3771:259:0;;;;;;;;;;;;:::i;:::-;;4219:86;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3144:266;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3144:266:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1580:70;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1580:70:0;;;;;;;;;;;;;;;;;:::i;:::-;;489:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2038:444;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2038:444:0;;;;;;;;;;;;;;;;;:::i;:::-;;4985:111;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4985:111:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3415:351;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3415:351:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;3415:351:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3415:351:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;3415:351:0;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5101:275;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5101:275:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4401:124;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4401:124:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4310:86;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2487:306;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2487:306:0;;;;;;;;;;;;;;;;;:::i;:::-;;447:38;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;447:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1509:66;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1509:66:0;;;;;;;;;;;;;;;;;:::i;:::-;;2798:133;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2798:133:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4530:104;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4530:104:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4844:136;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4844:136:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1655:375;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4035:177;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4035:177:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4639:200;4696:7;219:5;4788:4;:10;;:17;4799:5;4788:17;;;;;;;;;;;;;;;:30;;;4760:4;:10;;:17;4771:5;4760:17;;;;;;;;;;;;;;;:24;;;4732:4;:25;;;:52;4725:93;4717:117;;;;;;4710:124;;4639:200;;;:::o;402:41::-;;;;;;;;;;;;;;;;;;;:::o;2936:203::-;3006:4;3062:7;3017:4;:10;;:22;3028:10;3017:22;;;;;;;;;;;;;;;:32;;:42;3050:8;3017:42;;;;;;;;;;;;;;;:52;;;;3100:8;3079:39;;3088:10;3079:39;;;3110:7;3079:39;;;;;;;;;;;;;;;;;;3130:4;3123:11;;2936:203;;;;:::o;3771:259::-;3896:8;;:15;;3875:10;;:17;;:36;3867:45;;;;;;3922:9;3934:1;3922:13;;3917:109;3941:10;;:17;;3937:1;:21;3917:109;;;3971:49;3981:10;3993;;4004:1;3993:13;;;;;;;;;;;;;;;4008:8;;4017:1;4008:11;;;;;;;;;;;;;3971:9;:49::i;:::-;;3960:3;;;;;;;3917:109;;;;3771:259;;;;:::o;4219:86::-;4263:7;4284:4;:16;;;4277:23;;4219:86;:::o;3144:266::-;3229:4;3291:7;3248:4;:10;;:17;3259:5;3248:17;;;;;;;;;;;;;;;:27;;:39;3276:10;3248:39;;;;;;;;;;;;;;;;:50;;3240:59;;;;;;3347:7;3304:4;:10;;:17;3315:5;3304:17;;;;;;;;;;;;;;;:27;;:39;3332:10;3304:39;;;;;;;;;;;;;;;;:50;;;;;;;;;;;3359:30;3369:5;3376:3;3381:7;3359:9;:30::i;:::-;;3401:4;3394:11;;3144:266;;;;;:::o;1580:70::-;1628:17;1637:7;1628:8;:17::i;:::-;1580:70;:::o;489:35::-;522:2;489:35;:::o;2038:444::-;2121:7;2096:21;2106:10;2096:9;:21::i;:::-;:32;;2088:41;;;;;;2134:22;2159:7;2134:32;;2211:7;2177:4;:10;;:22;2188:10;2177:22;;;;;;;;;;;;;;;:30;;;:41;;;;;;;;;;;2246:1;2227:4;:16;;;:20;2223:255;;;2316:4;:16;;;219:5;2284:14;:29;:48;;;;;;2255:4;:25;;;:77;;;;;;;;;;;2372:4;2343:51;;2352:10;2343:51;;;2379:14;2343:51;;;;;;;;;;;;;;;;;;2414:19;2418:14;2414:19;;;;;;;;;;;;;;;;;;2223:255;;;2458:8;;;2223:255;2038:444;;:::o;4985:111::-;5044:4;5062;:10;;:17;5073:5;5062:17;;;;;;;;;;;;;;;:29;;;;;;;;;;;;5055:36;;4985:111;;;:::o;3415:351::-;3510:4;3521:20;3544:35;3554:10;3566:3;3571:7;3544:9;:35::i;:::-;3521:58;;3584:12;3637:3;3625:16;3616:25;;3662:1;3654:5;:9;;;3650:96;;;3688:3;3679:27;;;3707:10;3719:12;3733:5;;3679:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;3679:60:0;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3679:60:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3679:60:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3679:60:0;;;;;;;;;;;;;;;;3671:69;;;;;;3650:96;3757:4;3750:11;;;;3415:351;;;;;;:::o;5101:275::-;5157:24;5183:25;5210:19;5231:18;5251:21;5287:13;:11;:13::i;:::-;5302;:11;:13::i;:::-;5317:16;5327:5;5317:9;:16::i;:::-;5335:15;5344:5;5335:8;:15::i;:::-;5352:18;5364:5;5352:11;:18::i;:::-;5279:92;;;;;;;;;;5101:275;;;;;;;:::o;4401:124::-;4456:7;4505:15;4514:5;4505:8;:15::i;:::-;4477:4;:10;;:17;4488:5;4477:17;;;;;;;;;;;;;;;:25;;;:43;4470:50;;4401:124;;;:::o;4310:86::-;4354:7;4375:4;:16;;;4368:23;;4310:86;:::o;2487:306::-;2565:1;2546:4;:16;;;:20;2538:29;;;;;;2605:7;2580:21;2590:10;2580:9;:21::i;:::-;:32;;2572:41;;;;;;2652:7;2618:4;:10;;:22;2629:10;2618:22;;;;;;;;;;;;;;;:30;;;:41;;;;;;;;;;;2718:4;:16;;;219:5;2693:7;:22;:41;;;;;;2664:4;:25;;;:70;;;;;;;;;;;2773:4;2744:44;;2753:10;2744:44;;;2780:7;2744:44;;;;;;;;;;;;;;;;;;2487:306;:::o;447:38::-;;;;;;;;;;;;;;;;;;;:::o;1509:66::-;1555:15;1562:7;1555:6;:15::i;:::-;1509:66;:::o;2798:133::-;2864:4;2875:35;2885:10;2897:3;2902:7;2875:9;:35::i;:::-;;2922:4;2915:11;;2798:133;;;;:::o;4530:104::-;4584:7;4605:4;:10;;:17;4616:5;4605:17;;;;;;;;;;;;;;;:24;;;4598:31;;4530:104;;;:::o;4844:136::-;4917:7;4938:4;:10;;:17;4949:5;4938:17;;;;;;;;;;;;;;;:27;;:37;4966:8;4938:37;;;;;;;;;;;;;;;;4931:44;;4844:136;;;;:::o;1655:375::-;1692:7;1706:18;1727:23;1739:10;1727:11;:23::i;:::-;1706:44;;1777:1;1763:10;:15;;1755:24;;;;;;219:5;1830:10;:25;1784:4;:10;;:22;1795:10;1784:22;;;;;;;;;;;;;;;:35;;;:72;;;;;;;;;;;1895:10;1861:4;:10;;:22;1872:10;1861:22;;;;;;;;;;;;;;;:30;;;:44;;;;;;;;;;;1939:10;1915:47;;1932:4;1915:47;;;1951:10;1915:47;;;;;;;;;;;;;;;;;;1980:10;1972:31;;;1992:10;1972:31;;;;;;;;;;;;;;;;;;2015:10;2008:17;;;1655:375;:::o;4035:177::-;4117:4;:10;;;;;;;;;;;;4103:24;;:10;:24;;;4095:33;;;;;;4165:7;4133:4;:10;;:17;4144:5;4133:17;;;;;;;;;;;;;;;:29;;;:39;;;;;;;;;;;;;;;;;;4192:5;4182:25;;;4199:7;4182:25;;;;;;;;;;;;;;;;;;;;;;4035:177;;:::o;5384:811::-;5466:7;5508;5488:16;5498:5;5488:9;:16::i;:::-;:27;;5480:36;;;;;;5550:7;5521:4;:10;;:17;5532:5;5521:17;;;;;;;;;;;;;;;:25;;;:36;;;;;;;;;;;5568:18;5611:3;324:1;5589:7;:19;:25;;;;;;5568:46;;5625:20;5658:10;5648:7;:20;5625:43;;5702:1;5683:4;:16;;;:20;5679:509;;;5747:12;5720:4;:10;;:15;5731:3;5720:15;;;;;;;;;;;;;;;:23;;;:39;;;;;;;;;;;5795:3;5779:34;;5788:5;5779:34;;;5800:12;5779:34;;;;;;;;;;;;;;;;;;5885:4;:16;;;219:5;5857:10;:25;:44;;;;;;5828:4;:25;;;:73;;;;;;;;;;;5945:4;5921:42;;5930:5;5921:42;;;5952:10;5921:42;;;;;;;;;;;;;;;;;;5983:15;5987:10;5983:15;;;;;;;;;;;;;;;;;;6020:12;6013:19;;;;;;5679:509;6091:7;6064:4;:10;;:15;6075:3;6064:15;;;;;;;;;;;;;;;:23;;;:34;;;;;;;;;;;6134:3;6118:29;;6127:5;6118:29;;;6139:7;6118:29;;;;;;;;;;;;;;;;;;6169:7;6162:14;;;;5384:811;;;;;;:::o;6619:534::-;6700:7;6676:20;6685:10;6676:8;:20::i;:::-;:31;;6668:40;;;;;;6713:18;6749:3;6744:2;6734:7;:12;:18;;;;;;6713:39;;6814:4;:16;;;219:5;6786:10;:25;:44;;;;;;6757:4;:25;;;:73;;;;;;;;;;;6855:7;6835:4;:16;;;:27;;;;;;;;;;;6901:10;6867:4;:10;;:22;6878:10;6867:22;;;;;;;;;;;;;;;:30;;;:44;;;;;;;;;;;6949:7;6916:4;:10;;:22;6927:10;6916:22;;;;;;;;;;;;;;;:29;;;:40;;;;;;;;;;;7017:4;:25;;;7007:7;:35;6961:4;:10;;:22;6972:10;6961:22;;;;;;;;;;;;;;;:35;;;:82;;;;;;;;;;;7077:10;7053:57;;7070:4;7053:57;;;7099:10;7089:7;:20;7053:57;;;;;;;;;;;;;;;;;;7128:10;7120:28;;;7140:7;7120:28;;;;;;;;;;;;;;;;;;6619:534;;:::o;6200:411::-;6280:7;6255:21;6265:10;6255:9;:21::i;:::-;:32;;6247:41;;;;;;386:4;6324:7;6301:20;6310:10;6301:8;:20::i;:::-;:30;:50;;6293:59;;;;;;6377:7;6357:4;:16;;;:27;;;;;;;;;;;6422:7;6389:4;:10;;:22;6400:10;6389:22;;;;;;;;;;;;;;;:29;;;:40;;;;;;;;;;;6490:4;:25;;;6480:7;:35;6434:4;:10;;:22;6445:10;6434:22;;;;;;;;;;;;;;;:35;;;:82;;;;;;;;;;;6555:4;6526:44;;6535:10;6526:44;;;6562:7;6526:44;;;;;;;;;;;;;;;;;;6586:10;6580:26;;;6598:7;6580:26;;;;;;;;;;;;;;;;;;6200:411;:::o

Swarm Source

bzzr://d2ce35902948cd49341f08b18b27fe69c8b40db94e1d48d04d12ea8ed632cd2b

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.