ERC-20
Overview
Max Total Supply
30,000,000 BDAO
Holders
273
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
BDAONetwork
Compiler Version
v0.5.17+commit.d19bba13
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-07-25 */ pragma solidity ^0.5.13; library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } } interface Callable { function tokenCallback(address _from, uint256 _tokens, bytes calldata _data) external returns (bool); } contract BDAONetwork { using SafeMath for uint256; uint256 constant private FLOAT_SCALAR = 2**64; uint256 constant private INITIAL_SUPPLY = 30000000e18; uint256 constant private XFER_FEE = 5; // 5% per tx uint256 constant private POOL_FEE = 4; // 4% to pool uint256 constant private DEV_FEE = 1; // 1% to dev uint256 constant private SHARE_DIVIDENDS = 25; // 25% every collect uint256 constant private MIN_STAKE_AMOUNT = 1e21; // 1,000 Tokens Needed string constant public name = "BDAO Network"; string constant public symbol = "BDAO"; uint8 constant public decimals = 18; struct User { uint256 balance; uint256 staked; mapping(address => uint256) allowance; uint collectTime; uint unstakeTime; int256 scaledPayout; } struct Info { uint256 totalSupply; uint256 totalStaked; uint256 totalStake; 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 Stake(address indexed owner, uint256 tokens); event Unstake(address indexed owner, uint256 tokens); event Collect(address indexed owner, uint256 tokens); event Tax(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); } 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); require(info.users[msg.sender].collectTime < now); info.users[msg.sender].scaledPayout += int256(_dividends.mul(FLOAT_SCALAR).mul(SHARE_DIVIDENDS).div(100)); info.users[msg.sender].balance += _dividends.mul(SHARE_DIVIDENDS).div(100); info.users[msg.sender].collectTime = now + 86400; emit Transfer(address(this), msg.sender, _dividends); emit Collect(msg.sender, _dividends); return _dividends; } function distribute(uint256 _tokens) external { require(info.totalStaked > 0); require(balanceOf(msg.sender) >= _tokens); info.users[msg.sender].balance -= _tokens; info.scaledPayoutPerToken += _tokens.mul(FLOAT_SCALAR).div(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 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 collectTimeOf(address _user) public view returns (uint256) { return info.users[_user].collectTime; } 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 allInfoFor(address _user) public view returns (uint256 totalTokenSupply, uint256 totalTokensStaked, uint256 userBalance, uint256 userStaked, uint256 userDividends, uint usercollectTime) { return (totalSupply(), totalStaked(), balanceOf(_user), stakedOf(_user), dividendsOf(_user), collectTimeOf(_user)); } function _transfer(address _from, address _to, uint256 _tokens) internal returns (uint256) { require(balanceOf(_from) >= _tokens); info.users[_from].balance -= _tokens; uint256 _taxAmount = _tokens.mul(XFER_FEE).div(100); uint256 _poolAmount = _tokens.mul(POOL_FEE).div(100); uint256 _devAmount = _tokens.mul(DEV_FEE).div(100); uint256 _transferred = _tokens - _taxAmount; if (info.totalStaked > 0) { info.users[_to].balance += _transferred; info.users[info.admin].balance += _devAmount; emit Transfer(_from, _to, _transferred); info.scaledPayoutPerToken += _poolAmount.mul(FLOAT_SCALAR).div(info.totalStaked); emit Transfer(_from, address(this), _poolAmount); emit Transfer(_from, info.admin, _devAmount); emit Tax(_taxAmount); 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.users[msg.sender].unstakeTime = now + 86400; info.totalStaked += _amount; info.users[msg.sender].staked += _amount; info.users[msg.sender].scaledPayout += int256(_amount.mul(info.scaledPayoutPerToken)); emit Transfer(msg.sender, address(this), _amount); emit Stake(msg.sender, _amount); } function _unstake(uint256 _amount) internal { require(info.users[msg.sender].unstakeTime < now); require(stakedOf(msg.sender) >= _amount); uint256 _taxAmount = _amount.mul(XFER_FEE).div(100); info.scaledPayoutPerToken += _taxAmount.mul(FLOAT_SCALAR).div(info.totalStaked); info.totalStaked -= _amount; info.users[msg.sender].balance -= _taxAmount; info.users[msg.sender].staked -= _amount; info.users[msg.sender].scaledPayout -= int256(_amount.mul(info.scaledPayoutPerToken)); emit Transfer(address(this), msg.sender, _amount.sub(_taxAmount)); emit Unstake(msg.sender, _amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Stake","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Tax","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"},{"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"},{"internalType":"uint256","name":"usercollectTime","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":[{"internalType":"address","name":"_user","type":"address"}],"name":"collectTimeOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","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":[],"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":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"}]
Contract Creation Code
608060405234801561001057600080fd5b5033600060050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506a18d0bf423c03d8de00000060008001819055506a18d0bf423c03d8de000000600060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6a18d0bf423c03d8de0000006040518082815260200191505060405180910390a3611f648061013e6000396000f3fe608060405234801561001057600080fd5b506004361061012b5760003560e01c806370a08231116100ad578063a694fc3a11610071578063a694fc3a146106ea578063a9059cbb14610718578063af500ba31461077e578063dd62ed3e146107d6578063e52253811461084e5761012b565b806370a082311461056b578063817b1cd2146105c357806391c05b0b146105e157806395d89b411461060f578063999376a5146106925761012b565b806323b872dd116100f457806323b872dd1461035d5780632e17de78146103e3578063313ce567146104115780634000aea01461043557806357f6b812146104f05761012b565b806265318b1461013057806306fdde0314610188578063095ea7b31461020b578063153a1f3e1461027157806318160ddd1461033f575b600080fd5b6101726004803603602081101561014657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061086c565b6040518082815260200191505060405180910390f35b61019061091b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101d05780820151818401526020810190506101b5565b50505050905090810190601f1680156101fd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102576004803603604081101561022157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610954565b604051808215151515815260200191505060405180910390f35b61033d6004803603604081101561028757600080fd5b81019080803590602001906401000000008111156102a457600080fd5b8201836020820111156102b657600080fd5b803590602001918460208302840111640100000000831117156102d857600080fd5b9091929391929390803590602001906401000000008111156102f957600080fd5b82018360208201111561030b57600080fd5b8035906020019184602083028401116401000000008311171561032d57600080fd5b9091929391929390505050610a4c565b005b610347610ac9565b6040518082815260200191505060405180910390f35b6103c96004803603606081101561037357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ad5565b604051808215151515815260200191505060405180910390f35b61040f600480360360208110156103f957600080fd5b8101908080359060200190929190505050610c0d565b005b610419610c19565b604051808260ff1660ff16815260200191505060405180910390f35b6104d66004803603606081101561044b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561049257600080fd5b8201836020820111156104a457600080fd5b803590602001918460018302840111640100000000831117156104c657600080fd5b9091929391929390505050610c1e565b604051808215151515815260200191505060405180910390f35b6105326004803603602081101561050657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d51565b60405180878152602001868152602001858152602001848152602001838152602001828152602001965050505050505060405180910390f35b6105ad6004803603602081101561058157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610da3565b6040518082815260200191505060405180910390f35b6105cb610dfc565b6040518082815260200191505060405180910390f35b61060d600480360360208110156105f757600080fd5b8101908080359060200190929190505050610e08565b005b610617610f2e565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561065757808201518184015260208101905061063c565b50505050905090810190601f1680156106845780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106d4600480360360208110156106a857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f67565b6040518082815260200191505060405180910390f35b6107166004803603602081101561070057600080fd5b8101908080359060200190929190505050610fb5565b005b6107646004803603604081101561072e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610fc1565b604051808215151515815260200191505060405180910390f35b6107c06004803603602081101561079457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fd9565b6040518082815260200191505060405180910390f35b610838600480360360408110156107ec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611027565b6040518082815260200191505060405180910390f35b6108566110b3565b6040518082815260200191505060405180910390f35b600068010000000000000000600060030160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050154600060030160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015460006004015402038161091357fe5b049050919050565b6040518060400160405280600c81526020017f4244414f204e6574776f726b000000000000000000000000000000000000000081525081565b600081600060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b818190508484905014610a5e57600080fd5b60008090505b84849050811015610ac257610ab433868684818110610a7f57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16858585818110610aa857fe5b90506020020135611336565b508080600101915050610a64565b5050505050565b60008060000154905090565b600081600060030160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610b6657600080fd5b81600060030160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550610c01848484611336565b50600190509392505050565b610c16816117a2565b50565b601281565b600080610c2c338787611336565b90506000863b905060008163ffffffff161115610d43578673ffffffffffffffffffffffffffffffffffffffff16636be32e73338488886040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050602060405180830381600087803b158015610cfe57600080fd5b505af1158015610d12573d6000803e3d6000fd5b505050506040513d6020811015610d2857600080fd5b8101908080519060200190929190505050610d4257600080fd5b5b600192505050949350505050565b600080600080600080610d62610ac9565b610d6a610dfc565b610d7389610da3565b610d7c8a610fd9565b610d858b61086c565b610d8e8c610f67565b95509550955095509550955091939550919395565b6000610dae82610fd9565b600060030160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154039050919050565b60008060010154905090565b6000806001015411610e1957600080fd5b80610e2333610da3565b1015610e2e57600080fd5b80600060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282540392505081905550610eb4600060010154610ea66801000000000000000084611a6490919063ffffffff16565b611aea90919063ffffffff16565b6000600401600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350565b6040518060400160405280600481526020017f4244414f0000000000000000000000000000000000000000000000000000000081525081565b60008060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301549050919050565b610fbe81611b34565b50565b6000610fce338484611336565b506001905092915050565b60008060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050919050565b60008060030160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000806110bf3361086c565b905060008110156110cf57600080fd5b42600060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301541061112057600080fd5b611162606461115460196111466801000000000000000086611a6490919063ffffffff16565b611a6490919063ffffffff16565b611aea90919063ffffffff16565b600060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600501600082825401925050819055506111db60646111cd601984611a6490919063ffffffff16565b611aea90919063ffffffff16565b600060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282540192505081905550620151804201600060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff167f4256a058fa2b123d727576d3d31e3a272db98ee5fe264e229610ce43dc849999826040518082815260200191505060405180910390a28091505090565b60008161134285610da3565b101561134d57600080fd5b81600060030160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000828254039250508190555060006113c960646113bb600586611a6490919063ffffffff16565b611aea90919063ffffffff16565b905060006113f460646113e6600487611a6490919063ffffffff16565b611aea90919063ffffffff16565b9050600061141f6064611411600188611a6490919063ffffffff16565b611aea90919063ffffffff16565b9050600083860390506000806001015411156116db5780600060030160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000828254019250508190555081600060030160008060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600082825401925050819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36115976000600101546115896801000000000000000086611a6490919063ffffffff16565b611aea90919063ffffffff16565b6000600401600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a37f1da9a0060303acd94a78d52073d1a4429cf474a9a26cee91c84e7d28abb2baaa846040518082815260200191505060405180910390a18094505050505061179b565b85600060030160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600082825401925050819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a3859450505050505b9392505050565b42600060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154106117f357600080fd5b806117fd33610fd9565b101561180857600080fd5b60006118316064611823600585611a6490919063ffffffff16565b611aea90919063ffffffff16565b90506118666000600101546118586801000000000000000084611a6490919063ffffffff16565b611aea90919063ffffffff16565b6000600401600082825401925050819055508160006001016000828254039250508190555080600060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000828254039250508190555081600060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254039250508190555061194960006004015483611a6490919063ffffffff16565b600060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600501600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6119fd8486611d3e90919063ffffffff16565b6040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff167f85082129d87b2fe11527cb1b3b7a520aeb5aa6913f88a3d8757fe40d1db02fdd836040518082815260200191505060405180910390a25050565b600080831415611a775760009050611ae4565b6000828402905082848281611a8857fe5b0414611adf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611f0f6021913960400191505060405180910390fd5b809150505b92915050565b6000611b2c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d88565b905092915050565b80611b3e33610da3565b1015611b4957600080fd5b683635c9adc5dea0000081611b5d33610fd9565b011015611b6957600080fd5b620151804201600060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401819055508060006001016000828254019250508190555080600060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282540192505081905550611c3660006004015482611a6490919063ffffffff16565b600060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600501600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff167febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a826040518082815260200191505060405180910390a250565b6000611d8083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e4e565b905092915050565b60008083118290611e34576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611df9578082015181840152602081019050611dde565b50505050905090810190601f168015611e265780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581611e4057fe5b049050809150509392505050565b6000838311158290611efb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611ec0578082015181840152602081019050611ea5565b50505050905090810190601f168015611eed5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838503905080915050939250505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a265627a7a72315820dec00b6f6616bf8370fd07e309ce1ff755fd0b509a155cca9bb0e7f85234c4b164736f6c63430005110032
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061012b5760003560e01c806370a08231116100ad578063a694fc3a11610071578063a694fc3a146106ea578063a9059cbb14610718578063af500ba31461077e578063dd62ed3e146107d6578063e52253811461084e5761012b565b806370a082311461056b578063817b1cd2146105c357806391c05b0b146105e157806395d89b411461060f578063999376a5146106925761012b565b806323b872dd116100f457806323b872dd1461035d5780632e17de78146103e3578063313ce567146104115780634000aea01461043557806357f6b812146104f05761012b565b806265318b1461013057806306fdde0314610188578063095ea7b31461020b578063153a1f3e1461027157806318160ddd1461033f575b600080fd5b6101726004803603602081101561014657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061086c565b6040518082815260200191505060405180910390f35b61019061091b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101d05780820151818401526020810190506101b5565b50505050905090810190601f1680156101fd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102576004803603604081101561022157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610954565b604051808215151515815260200191505060405180910390f35b61033d6004803603604081101561028757600080fd5b81019080803590602001906401000000008111156102a457600080fd5b8201836020820111156102b657600080fd5b803590602001918460208302840111640100000000831117156102d857600080fd5b9091929391929390803590602001906401000000008111156102f957600080fd5b82018360208201111561030b57600080fd5b8035906020019184602083028401116401000000008311171561032d57600080fd5b9091929391929390505050610a4c565b005b610347610ac9565b6040518082815260200191505060405180910390f35b6103c96004803603606081101561037357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ad5565b604051808215151515815260200191505060405180910390f35b61040f600480360360208110156103f957600080fd5b8101908080359060200190929190505050610c0d565b005b610419610c19565b604051808260ff1660ff16815260200191505060405180910390f35b6104d66004803603606081101561044b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561049257600080fd5b8201836020820111156104a457600080fd5b803590602001918460018302840111640100000000831117156104c657600080fd5b9091929391929390505050610c1e565b604051808215151515815260200191505060405180910390f35b6105326004803603602081101561050657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d51565b60405180878152602001868152602001858152602001848152602001838152602001828152602001965050505050505060405180910390f35b6105ad6004803603602081101561058157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610da3565b6040518082815260200191505060405180910390f35b6105cb610dfc565b6040518082815260200191505060405180910390f35b61060d600480360360208110156105f757600080fd5b8101908080359060200190929190505050610e08565b005b610617610f2e565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561065757808201518184015260208101905061063c565b50505050905090810190601f1680156106845780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106d4600480360360208110156106a857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f67565b6040518082815260200191505060405180910390f35b6107166004803603602081101561070057600080fd5b8101908080359060200190929190505050610fb5565b005b6107646004803603604081101561072e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610fc1565b604051808215151515815260200191505060405180910390f35b6107c06004803603602081101561079457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fd9565b6040518082815260200191505060405180910390f35b610838600480360360408110156107ec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611027565b6040518082815260200191505060405180910390f35b6108566110b3565b6040518082815260200191505060405180910390f35b600068010000000000000000600060030160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050154600060030160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015460006004015402038161091357fe5b049050919050565b6040518060400160405280600c81526020017f4244414f204e6574776f726b000000000000000000000000000000000000000081525081565b600081600060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b818190508484905014610a5e57600080fd5b60008090505b84849050811015610ac257610ab433868684818110610a7f57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16858585818110610aa857fe5b90506020020135611336565b508080600101915050610a64565b5050505050565b60008060000154905090565b600081600060030160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610b6657600080fd5b81600060030160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550610c01848484611336565b50600190509392505050565b610c16816117a2565b50565b601281565b600080610c2c338787611336565b90506000863b905060008163ffffffff161115610d43578673ffffffffffffffffffffffffffffffffffffffff16636be32e73338488886040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050602060405180830381600087803b158015610cfe57600080fd5b505af1158015610d12573d6000803e3d6000fd5b505050506040513d6020811015610d2857600080fd5b8101908080519060200190929190505050610d4257600080fd5b5b600192505050949350505050565b600080600080600080610d62610ac9565b610d6a610dfc565b610d7389610da3565b610d7c8a610fd9565b610d858b61086c565b610d8e8c610f67565b95509550955095509550955091939550919395565b6000610dae82610fd9565b600060030160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154039050919050565b60008060010154905090565b6000806001015411610e1957600080fd5b80610e2333610da3565b1015610e2e57600080fd5b80600060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282540392505081905550610eb4600060010154610ea66801000000000000000084611a6490919063ffffffff16565b611aea90919063ffffffff16565b6000600401600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350565b6040518060400160405280600481526020017f4244414f0000000000000000000000000000000000000000000000000000000081525081565b60008060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301549050919050565b610fbe81611b34565b50565b6000610fce338484611336565b506001905092915050565b60008060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050919050565b60008060030160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000806110bf3361086c565b905060008110156110cf57600080fd5b42600060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301541061112057600080fd5b611162606461115460196111466801000000000000000086611a6490919063ffffffff16565b611a6490919063ffffffff16565b611aea90919063ffffffff16565b600060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600501600082825401925050819055506111db60646111cd601984611a6490919063ffffffff16565b611aea90919063ffffffff16565b600060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282540192505081905550620151804201600060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff167f4256a058fa2b123d727576d3d31e3a272db98ee5fe264e229610ce43dc849999826040518082815260200191505060405180910390a28091505090565b60008161134285610da3565b101561134d57600080fd5b81600060030160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000828254039250508190555060006113c960646113bb600586611a6490919063ffffffff16565b611aea90919063ffffffff16565b905060006113f460646113e6600487611a6490919063ffffffff16565b611aea90919063ffffffff16565b9050600061141f6064611411600188611a6490919063ffffffff16565b611aea90919063ffffffff16565b9050600083860390506000806001015411156116db5780600060030160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000828254019250508190555081600060030160008060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600082825401925050819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36115976000600101546115896801000000000000000086611a6490919063ffffffff16565b611aea90919063ffffffff16565b6000600401600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a37f1da9a0060303acd94a78d52073d1a4429cf474a9a26cee91c84e7d28abb2baaa846040518082815260200191505060405180910390a18094505050505061179b565b85600060030160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600082825401925050819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a3859450505050505b9392505050565b42600060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154106117f357600080fd5b806117fd33610fd9565b101561180857600080fd5b60006118316064611823600585611a6490919063ffffffff16565b611aea90919063ffffffff16565b90506118666000600101546118586801000000000000000084611a6490919063ffffffff16565b611aea90919063ffffffff16565b6000600401600082825401925050819055508160006001016000828254039250508190555080600060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000828254039250508190555081600060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254039250508190555061194960006004015483611a6490919063ffffffff16565b600060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600501600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6119fd8486611d3e90919063ffffffff16565b6040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff167f85082129d87b2fe11527cb1b3b7a520aeb5aa6913f88a3d8757fe40d1db02fdd836040518082815260200191505060405180910390a25050565b600080831415611a775760009050611ae4565b6000828402905082848281611a8857fe5b0414611adf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611f0f6021913960400191505060405180910390fd5b809150505b92915050565b6000611b2c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d88565b905092915050565b80611b3e33610da3565b1015611b4957600080fd5b683635c9adc5dea0000081611b5d33610fd9565b011015611b6957600080fd5b620151804201600060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401819055508060006001016000828254019250508190555080600060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282540192505081905550611c3660006004015482611a6490919063ffffffff16565b600060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600501600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff167febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a826040518082815260200191505060405180910390a250565b6000611d8083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e4e565b905092915050565b60008083118290611e34576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611df9578082015181840152602081019050611dde565b50505050905090810190601f168015611e265780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581611e4057fe5b049050809150509392505050565b6000838311158290611efb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611ec0578082015181840152602081019050611ea5565b50505050905090810190601f168015611eed5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838503905080915050939250505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a265627a7a72315820dec00b6f6616bf8370fd07e309ce1ff755fd0b509a155cca9bb0e7f85234c4b164736f6c63430005110032
Deployed Bytecode Sourcemap
3638:7174:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3638:7174:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7990:200;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7990:200:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4119:44;;;:::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;4119:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6349:203;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6349:203:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7184:259;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7184:259:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;7184:259:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7184: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;7184:259:0;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;7184:259:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7184: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;7184:259:0;;;;;;;;;;;;:::i;:::-;;7450:86;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6557:266;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6557:266:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5269:70;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5269:70:0;;;;;;;;;;;;;;;;;:::i;:::-;;4209:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6828:351;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6828:351:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;6828:351:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6828: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;6828:351:0;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8336:319;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8336:319:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7632:124;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7632:124:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7541:86;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5894:312;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5894:312:0;;;;;;;;;;;;;;;;;:::i;:::-;;4167: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;4167:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7871:114;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7871:114:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5198:66;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5198:66:0;;;;;;;;;;;;;;;;;:::i;:::-;;6211:133;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6211:133:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7761:104;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7761:104:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8195:136;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8195:136:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5344:545;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7990:200;8047:7;3742:5;8139:4;:10;;:17;8150:5;8139:17;;;;;;;;;;;;;;;:30;;;8111:4;:10;;:17;8122:5;8111:17;;;;;;;;;;;;;;;:24;;;8083:4;:25;;;:52;8076:93;8068:117;;;;;;8061:124;;7990:200;;;:::o;4119:44::-;;;;;;;;;;;;;;;;;;;:::o;6349:203::-;6419:4;6475:7;6430:4;:10;;:22;6441:10;6430:22;;;;;;;;;;;;;;;:32;;:42;6463:8;6430:42;;;;;;;;;;;;;;;:52;;;;6513:8;6492:39;;6501:10;6492:39;;;6523:7;6492:39;;;;;;;;;;;;;;;;;;6543:4;6536:11;;6349:203;;;;:::o;7184:259::-;7309:8;;:15;;7288:10;;:17;;:36;7280:45;;;;;;7335:9;7347:1;7335:13;;7330:109;7354:10;;:17;;7350:1;:21;7330:109;;;7384:49;7394:10;7406;;7417:1;7406:13;;;;;;;;;;;;;;;7421:8;;7430:1;7421:11;;;;;;;;;;;;;7384:9;:49::i;:::-;;7373:3;;;;;;;7330:109;;;;7184:259;;;;:::o;7450:86::-;7494:7;7515:4;:16;;;7508:23;;7450:86;:::o;6557:266::-;6642:4;6704:7;6661:4;:10;;:17;6672:5;6661:17;;;;;;;;;;;;;;;:27;;:39;6689:10;6661:39;;;;;;;;;;;;;;;;:50;;6653:59;;;;;;6760:7;6717:4;:10;;:17;6728:5;6717:17;;;;;;;;;;;;;;;:27;;:39;6745:10;6717:39;;;;;;;;;;;;;;;;:50;;;;;;;;;;;6772:30;6782:5;6789:3;6794:7;6772:9;:30::i;:::-;;6814:4;6807:11;;6557:266;;;;;:::o;5269:70::-;5317:17;5326:7;5317:8;:17::i;:::-;5269:70;:::o;4209:35::-;4242:2;4209:35;:::o;6828:351::-;6923:4;6934:20;6957:35;6967:10;6979:3;6984:7;6957:9;:35::i;:::-;6934:58;;6997:12;7050:3;7038:16;7029:25;;7075:1;7067:5;:9;;;7063:96;;;7101:3;7092:27;;;7120:10;7132:12;7146:5;;7092: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;;7092:60:0;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7092:60:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7092:60:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7092:60:0;;;;;;;;;;;;;;;;7084:69;;;;;;7063:96;7170:4;7163:11;;;;6828:351;;;;;;:::o;8336:319::-;8392:24;8418:25;8445:19;8466:18;8486:21;8509:20;8544:13;:11;:13::i;:::-;8559;:11;:13::i;:::-;8574:16;8584:5;8574:9;:16::i;:::-;8592:15;8601:5;8592:8;:15::i;:::-;8609:18;8621:5;8609:11;:18::i;:::-;8629:20;8643:5;8629:13;:20::i;:::-;8536:114;;;;;;;;;;;;8336:319;;;;;;;:::o;7632:124::-;7687:7;7736:15;7745:5;7736:8;:15::i;:::-;7708:4;:10;;:17;7719:5;7708:17;;;;;;;;;;;;;;;:25;;;:43;7701:50;;7632:124;;;:::o;7541:86::-;7585:7;7606:4;:16;;;7599:23;;7541:86;:::o;5894:312::-;5972:1;5953:4;:16;;;:20;5945:29;;;;;;6012:7;5987:21;5997:10;5987:9;:21::i;:::-;:32;;5979:41;;;;;;6059:7;6025:4;:10;;:22;6036:10;6025:22;;;;;;;;;;;;;;;:30;;;:41;;;;;;;;;;;6100:47;6130:4;:16;;;6100:25;3742:5;6100:7;:11;;:25;;;;:::i;:::-;:29;;:47;;;;:::i;:::-;6071:4;:25;;;:76;;;;;;;;;;;6186:4;6157:44;;6166:10;6157:44;;;6193:7;6157:44;;;;;;;;;;;;;;;;;;5894:312;:::o;4167:38::-;;;;;;;;;;;;;;;;;;;:::o;7871:114::-;7930:7;7951:4;:10;;:17;7962:5;7951:17;;;;;;;;;;;;;;;:29;;;7944:36;;7871:114;;;:::o;5198:66::-;5244:15;5251:7;5244:6;:15::i;:::-;5198:66;:::o;6211:133::-;6277:4;6288:35;6298:10;6310:3;6315:7;6288:9;:35::i;:::-;;6335:4;6328:11;;6211:133;;;;:::o;7761:104::-;7815:7;7836:4;:10;;:17;7847:5;7836:17;;;;;;;;;;;;;;;:24;;;7829:31;;7761:104;;;:::o;8195:136::-;8268:7;8289:4;:10;;:17;8300:5;8289:17;;;;;;;;;;;;;;;:27;;:37;8317:8;8289:37;;;;;;;;;;;;;;;;8282:44;;8195:136;;;;:::o;5344:545::-;5381:7;5395:18;5416:23;5428:10;5416:11;:23::i;:::-;5395:44;;5466:1;5452:10;:15;;5444:24;;;;;;5518:3;5481:4;:10;;:22;5492:10;5481:22;;;;;;;;;;;;;;;:34;;;:40;5473:49;;;;;;5573:58;5627:3;5573:49;4014:2;5573:28;3742:5;5573:10;:14;;:28;;;;:::i;:::-;:32;;:49;;;;:::i;:::-;:53;;:58;;;;:::i;:::-;5527:4;:10;;:22;5538:10;5527:22;;;;;;;;;;;;;;;:35;;;:105;;;;;;;;;;;5671:40;5707:3;5671:31;4014:2;5671:10;:14;;:31;;;;:::i;:::-;:35;;:40;;;;:::i;:::-;5637:4;:10;;:22;5648:10;5637:22;;;;;;;;;;;;;;;:30;;;:74;;;;;;;;;;;5759:5;5753:3;:11;5716:4;:10;;:22;5727:10;5716:22;;;;;;;;;;;;;;;:34;;:48;;;;5798:10;5774:47;;5791:4;5774:47;;;5810:10;5774:47;;;;;;;;;;;;;;;;;;5839:10;5831:31;;;5851:10;5831:31;;;;;;;;;;;;;;;;;;5874:10;5867:17;;;5344:545;:::o;8662:1055::-;8744:7;8786;8766:16;8776:5;8766:9;:16::i;:::-;:27;;8758:36;;;;;;8828:7;8799:4;:10;;:17;8810:5;8799:17;;;;;;;;;;;;;;;:25;;;:36;;;;;;;;;;;8844:18;8865:30;8891:3;8865:21;3844:1;8865:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;8844:51;;8900:19;8922:30;8948:3;8922:21;3898:1;8922:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;8900:52;;8957:18;8978:29;9003:3;8978:20;3952:1;8978:7;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;8957:50;;9016:20;9049:10;9039:7;:20;9016:43;;9097:1;9078:4;:16;;;:20;9074:636;;;9142:12;9115:4;:10;;:15;9126:3;9115:15;;;;;;;;;;;;;;;:23;;;:39;;;;;;;;;;;9203:10;9169:4;:10;;:22;9180:4;:10;;;;;;;;;;;;9169:22;;;;;;;;;;;;;;;:30;;;:44;;;;;;;;;;;9249:3;9233:34;;9242:5;9233:34;;;9254:12;9233:34;;;;;;;;;;;;;;;;;;9311:51;9345:4;:16;;;9311:29;3742:5;9311:11;:15;;:29;;;;:::i;:::-;:33;;:51;;;;:::i;:::-;9282:4;:25;;;:80;;;;;;;;;;;9406:4;9382:43;;9391:5;9382:43;;;9413:11;9382:43;;;;;;;;;;;;;;;;;;9461:4;:10;;;;;;;;;;;;9445:39;;9454:5;9445:39;;;9473:10;9445:39;;;;;;;;;;;;;;;;;;9504:15;9508:10;9504:15;;;;;;;;;;;;;;;;;;9541:12;9534:19;;;;;;;;9074:636;9613:7;9586:4;:10;;:15;9597:3;9586:15;;;;;;;;;;;;;;;:23;;;:34;;;;;;;;;;;9656:3;9640:29;;9649:5;9640:29;;;9661:7;9640:29;;;;;;;;;;;;;;;;;;9691:7;9684:14;;;;;;8662:1055;;;;;;:::o;10194:615::-;10291:3;10254:4;:10;;:22;10265:10;10254:22;;;;;;;;;;;;;;;:34;;;:40;10246:49;;;;;;10332:7;10308:20;10317:10;10308:8;:20::i;:::-;:31;;10300:40;;;;;;10345:18;10366:30;10392:3;10366:21;3844:1;10366:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;10345:51;;10430:50;10463:4;:16;;;10430:28;3742:5;10430:10;:14;;:28;;;;:::i;:::-;:32;;:50;;;;:::i;:::-;10401:4;:25;;;:79;;;;;;;;;;;10505:7;10485:4;:16;;;:27;;;;;;;;;;;10551:10;10517:4;:10;;:22;10528:10;10517:22;;;;;;;;;;;;;;;:30;;;:44;;;;;;;;;;;10599:7;10566:4;:10;;:22;10577:10;10566:22;;;;;;;;;;;;;;;:29;;;:40;;;;;;;;;;;10657:38;10669:4;:25;;;10657:7;:11;;:38;;;;:::i;:::-;10611:4;:10;;:22;10622:10;10611:22;;;;;;;;;;;;;;;:35;;;:85;;;;;;;;;;;10730:10;10706:60;;10723:4;10706:60;;;10742:23;10754:10;10742:7;:11;;:23;;;;:::i;:::-;10706:60;;;;;;;;;;;;;;;;;;10784:10;10776:28;;;10796:7;10776:28;;;;;;;;;;;;;;;;;;10194:615;;:::o;1645:471::-;1703:7;1953:1;1948;:6;1944:47;;;1978:1;1971:8;;;;1944:47;2003:9;2019:1;2015;:5;2003:17;;2048:1;2043;2039;:5;;;;;;:10;2031:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2107:1;2100:8;;;1645:471;;;;;:::o;2592:132::-;2650:7;2677:39;2681:1;2684;2677:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2670:46;;2592:132;;;;:::o;9722:467::-;9802:7;9777:21;9787:10;9777:9;:21::i;:::-;:32;;9769:41;;;;;;4086:4;9846:7;9823:20;9832:10;9823:8;:20::i;:::-;:30;:50;;9815:59;;;;;;9922:5;9916:3;:11;9879:4;:10;;:22;9890:10;9879:22;;;;;;;;;;;;;;;:34;;:48;;;;9952:7;9932:4;:16;;;:27;;;;;;;;;;;9997:7;9964:4;:10;;:22;9975:10;9964:22;;;;;;;;;;;;;;;:29;;;:40;;;;;;;;;;;10055:38;10067:4;:25;;;10055:7;:11;;:38;;;;:::i;:::-;10009:4;:10;;:22;10020:10;10009:22;;;;;;;;;;;;;;;:35;;;:85;;;;;;;;;;;10133:4;10104:44;;10113:10;10104:44;;;10140:7;10104:44;;;;;;;;;;;;;;;;;;10164:10;10158:26;;;10176:7;10158:26;;;;;;;;;;;;;;;;;;9722:467;:::o;755:136::-;813:7;840:43;844:1;847;840:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;833:50;;755:136;;;;:::o;3220:278::-;3306:7;3338:1;3334;:5;3341:12;3326:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;3326:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3365:9;3381:1;3377;:5;;;;;;3365:17;;3489:1;3482:8;;;3220:278;;;;;:::o;1194:192::-;1280:7;1313:1;1308;:6;;1316:12;1300:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;1300:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1340:9;1356:1;1352;:5;1340:17;;1377:1;1370:8;;;1194:192;;;;;:::o
Swarm Source
bzzr://dec00b6f6616bf8370fd07e309ce1ff755fd0b509a155cca9bb0e7f85234c4b1
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.