Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
Overview
ETH Balance
0.022265430149000755 ETH
Eth Value
$46.69 (@ $2,096.93/ETH)More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| - | 11670669 | 1881 days ago | 0.02226543 ETH | ||||
| - | 11274734 | 1942 days ago | 0.000342 ETH | ||||
| - | 11274727 | 1942 days ago | 0.000342 ETH | ||||
| - | 11274717 | 1942 days ago | 0.000422 ETH | ||||
| - | 11274713 | 1942 days ago | 0.000684 ETH | ||||
| - | 11274658 | 1942 days ago | 0.000342 ETH | ||||
| - | 11274596 | 1942 days ago | 0.0013 ETH | ||||
| - | 11274592 | 1942 days ago | 0.00485 ETH | ||||
| - | 11274401 | 1942 days ago | 0.000086 ETH | ||||
| - | 11274003 | 1942 days ago | 0.001426 ETH | ||||
| - | 11273994 | 1942 days ago | 0.001548 ETH | ||||
| - | 11273702 | 1942 days ago | 0.001022 ETH | ||||
| - | 10629664 | 2042 days ago | 0.001886 ETH | ||||
| - | 10629363 | 2042 days ago | 0.001858 ETH | ||||
| - | 10629357 | 2042 days ago | 0.001404 ETH | ||||
| - | 10629357 | 2042 days ago | 0.002738 ETH | ||||
| - | 10593050 | 2047 days ago | 0.000672 ETH | ||||
| - | 10593049 | 2047 days ago | 0.000658 ETH | ||||
| - | 10593049 | 2047 days ago | 0.000342 ETH | ||||
| - | 10592048 | 2047 days ago | 0.002452 ETH | ||||
| - | 10467700 | 2067 days ago | 0.000354 ETH | ||||
| - | 10416089 | 2075 days ago | 0.000448 ETH | ||||
| - | 10407507 | 2076 days ago | 0.000246 ETH | ||||
| - | 10407507 | 2076 days ago | 0.001586 ETH | ||||
| - | 10407507 | 2076 days ago | 0.000764 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
Erc20BuyerDAO
Compiler Version
v0.5.17+commit.d19bba13
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2020-06-10
*/
pragma solidity >=0.4.24 <0.6.0;
contract Erc20StdI {
uint256 public totalSupply;
function balanceOf(address _owner) public view returns (uint256 balance);
function transfer(address _to, uint256 _value) public returns (bool success);
function transferFrom(address _from, address _to, uint256 _value) public returns (bool success);
function approve(address _spender, uint256 _value) public returns (bool success);
function allowance(address _owner, address _spender) public view returns (uint256 remaining);
event Transfer(address indexed _from, address indexed _to, uint256 _value);
event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}
/**
* @title SafeMath
* @dev Math operations with safety checks that revert on error
*/
library SafeMath {
/**
* @dev Multiplies two numbers, reverts on overflow.
*/
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
// Gas optimization: this is cheaper than requiring 'a' not being zero, but the
// benefit is lost if 'b' is also tested.
// See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b);
return c;
}
/**
* @dev Integer division of two numbers truncating the quotient, reverts on division by zero.
*/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
// Solidity only automatically asserts when dividing by 0
require(b > 0);
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
/**
* @dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).
*/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
require(b <= a);
uint256 c = a - b;
return c;
}
/**
* @dev Adds two numbers, reverts on overflow.
*/
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a);
return c;
}
/**
* @dev Divides two numbers and returns the remainder (unsigned integer modulo),
* reverts when dividing by zero.
*/
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
require(b != 0);
return a % b;
}
}
/**
* @title Roles
* @dev Library for managing addresses assigned to a Role.
*/
library Roles {
struct Role {
mapping(address => bool) bearer;
}
/**
* @dev give an account access to this role
*/
function add(Role storage role, address account) internal {
require(account != address(0));
require(!has(role, account));
role.bearer[account] = true;
}
/**
* @dev remove an account's access to this role
*/
function remove(Role storage role, address account) internal {
require(account != address(0));
require(has(role, account));
role.bearer[account] = false;
}
/**
* @dev check if an account has this role
* @return bool
*/
function has(Role storage role, address account) internal view returns (bool) {
require(account != address(0));
return role.bearer[account];
}
}
contract SetterRole {
using Roles for Roles.Role;
event SetterAdded(address indexed account);
event SetterRemoved(address indexed account);
Roles.Role private _setters;
constructor () internal {
_addSetter(msg.sender);
}
modifier onlySetter() {
require(isSetter(msg.sender));
_;
}
function isSetter(address account) public view returns (bool) {
return _setters.has(account);
}
function addSetter(address account) public onlySetter {
_addSetter(account);
}
function _addSetter(address account) internal {
_setters.add(account);
emit SetterAdded(account);
}
function removeSetter(address account) public onlySetter {
_removeSetter(account);
}
function _removeSetter(address account) internal {
_setters.remove(account);
emit SetterRemoved(account);
}
}
contract MinterRole is SetterRole{
using Roles for Roles.Role;
event MinterAdded(address indexed account);
event MinterRemoved(address indexed account);
Roles.Role private _minters;
constructor () internal {
}
modifier onlyMinter() {
require(isMinter(msg.sender));
_;
}
function isMinter(address account) public view returns (bool) {
return _minters.has(account);
}
function addMinter(address account) public onlySetter {
_addMinter(account);
}
function _addMinter(address account) internal {
_minters.add(account);
emit MinterAdded(account);
}
function removeMinter(address account) public onlySetter {
_removeMinter(account);
}
function _removeMinter(address account) internal {
_minters.remove(account);
emit MinterRemoved(account);
}
}
interface IUniswapV2Pair {
event Approval(address indexed owner, address indexed spender, uint value);
event Transfer(address indexed from, address indexed to, uint value);
function name() external pure returns (string memory);
function symbol() external pure returns (string memory);
function decimals() external pure returns (uint8);
function totalSupply() external view returns (uint);
function balanceOf(address owner) external view returns (uint);
function allowance(address owner, address spender) external view returns (uint);
function approve(address spender, uint value) external returns (bool);
function transfer(address to, uint value) external returns (bool);
function transferFrom(address from, address to, uint value) external returns (bool);
function DOMAIN_SEPARATOR() external view returns (bytes32);
function PERMIT_TYPEHASH() external pure returns (bytes32);
function nonces(address owner) external view returns (uint);
function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
event Mint(address indexed sender, uint amount0, uint amount1);
event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
event Swap(
address indexed sender,
uint amount0In,
uint amount1In,
uint amount0Out,
uint amount1Out,
address indexed to
);
event Sync(uint112 reserve0, uint112 reserve1);
function MINIMUM_LIQUIDITY() external pure returns (uint);
function factory() external view returns (address);
function token0() external view returns (address);
function token1() external view returns (address);
function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
function price0CumulativeLast() external view returns (uint);
function price1CumulativeLast() external view returns (uint);
function kLast() external view returns (uint);
function mint(address to) external returns (uint liquidity);
function burn(address to) external returns (uint amount0, uint amount1);
function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
function skim(address to) external;
function sync() external;
}
contract Erc20BuyerDAO is Erc20StdI, MinterRole {
using SafeMath for uint256;
string constant public name = "BuyerDAO";
string constant public symbol = "BDT";
uint8 constant public decimals = 18;
address public team;
uint public factor = 10 ** 18;
uint public totalSupply = 0;
address constant WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;// WETH
uint8 public rateDecimal = 6;//support 2 ~ 9
struct PairRate {
uint priceCumulativeLast;
uint blockTimestampLast;
uint rate;
}
mapping(address => PairRate) public pairRates;
mapping(address => uint256) balances;
mapping(address => mapping(address => uint256)) allowed;
event Mint(address indexed beneficiary, uint cost, uint amount);
event Withdraw(address indexed holder, uint amount, uint divs);
event SetPair(address indexed token, address tokenEthPair);
constructor() public{
team = msg.sender;
}
function() payable external {
}
function mint(address _beneficiary, uint _txAmount, address _pairAddress) public onlyMinter {
uint _miningRevenue = 0;
if (_txAmount > 0) {
//non-ETH,Convert to ETH exchange rate value.
if (_pairAddress != address(0)) {
_txAmount = _txAmount * getRealTimeTokenRate(_pairAddress) / (10 ** uint(rateDecimal));
}
if (factor > 0) {
_miningRevenue = _txAmount * factor / (10 ** 18);
factor = factor * 9999999 / 10000000;
}
if (_miningRevenue > 0) {
balances[_beneficiary] = balances[_beneficiary].add(_miningRevenue);
balances[team] = balances[team].add(_miningRevenue);
totalSupply = _miningRevenue.mul(2).add(totalSupply);
emit Transfer(address(0), _beneficiary, _miningRevenue);
emit Transfer(address(0), team, _miningRevenue);
}
}
emit Mint(_beneficiary, _txAmount, _miningRevenue);
}
/**
* @dev Burns the specified amount of tokens and exchange for the corresponding amount of ether.
* @param value The amount of token to be burned.
*/
function withdraw(uint value) public returns (uint divs){
require(value > 0 && balances[msg.sender] >= value);
require(address(this).balance > 0);
divs = address(this).balance * value / totalSupply;
_burn(msg.sender, value);
msg.sender.transfer(divs);
emit Withdraw(msg.sender, value, divs);
}
/**
* @dev Get real-time token rate, this will update the rate.
*/
function getRealTimeTokenRate(address _pairAddress) internal returns (uint rate) {
PairRate storage pairRate = pairRates[_pairAddress];
IUniswapV2Pair ethTokenPair = IUniswapV2Pair(_pairAddress);
uint _blockTimestampLast1 = pairRate.blockTimestampLast;
uint _priceCumulativeLast1 = pairRate.priceCumulativeLast;
(, , uint _blockTimestampLast2) = ethTokenPair.getReserves();
uint _priceCumulativeLast2;
if (_blockTimestampLast2 > _blockTimestampLast1) {
_priceCumulativeLast2 = ethTokenPair.token0() == WETH ? ethTokenPair.price1CumulativeLast() : ethTokenPair.price0CumulativeLast();
pairRate.rate = (_priceCumulativeLast2 - _priceCumulativeLast1) / (_blockTimestampLast2 - _blockTimestampLast1) * (10 ** uint(rateDecimal)) / (2 ** 112);
pairRate.priceCumulativeLast = _priceCumulativeLast2;
pairRate.blockTimestampLast = _blockTimestampLast2;
}
rate = pairRate.rate;
}
/**
* @dev Setup token and decentralized exchange
**/
function setTokenAndEthPair(address _tokenEthPairAddress) public onlySetter returns (uint rate){
IUniswapV2Pair _tokenEthPair = IUniswapV2Pair(_tokenEthPairAddress);
address _tokenAddress = _tokenEthPair.token0() == WETH ? _tokenEthPair.token1() : _tokenEthPair.token0();
require(_tokenAddress != address(0), "_tokenAddress is invalid.");
require(_tokenEthPairAddress != address(0), "_ethTokenPairAddress is invalid.");
PairRate storage pairRate = pairRates[_tokenEthPairAddress];
uint _ethReserve = Erc20StdI(WETH).balanceOf(_tokenEthPairAddress);
uint _tokenReserve = Erc20StdI(_tokenAddress).balanceOf(_tokenEthPairAddress);
require(_ethReserve > 0 && _tokenReserve > 0, "_ethTokenPairAddress is invalid");
(,, pairRate.blockTimestampLast) = _tokenEthPair.getReserves();
pairRate.priceCumulativeLast = _tokenAddress < WETH ? _tokenEthPair.price0CumulativeLast() : _tokenEthPair.price1CumulativeLast();
pairRate.rate = _ethReserve * (10 ** uint(rateDecimal)) / _tokenReserve;
emit SetPair(_tokenAddress, _tokenEthPairAddress);
return pairRate.rate;
}
/**
* Setting rate decimal
**/
function setRateDecimal(uint8 _decimal) public onlySetter {
require(_decimal >= 2 && _decimal < 10, "decimal value is too small.");
rateDecimal = _decimal;
}
function setTeamAddr(address _team) public onlySetter {
require(_team != address(0), "_team is invalid.");
team = _team;
}
/**************ERC20 Function*****************/
function transfer(address _to, uint256 _value) public returns (bool success) {
require(balances[msg.sender] >= _value && balances[_to] + _value > balances[_to]);
require(_to != address(0));
balances[msg.sender] -= _value;
balances[_to] += _value;
emit Transfer(msg.sender, _to, _value);
return true;
}
function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {
require(balances[_from] >= _value && allowed[_from][msg.sender] >= _value);
balances[_to] += _value;
balances[_from] -= _value;
allowed[_from][msg.sender] -= _value;
emit Transfer(_from, _to, _value);
return true;
}
function balanceOf(address _owner) public view returns (uint256 balance) {
return balances[_owner];
}
function approve(address _spender, uint256 _value) public returns (bool success) {
allowed[msg.sender][_spender] = _value;
emit Approval(msg.sender, _spender, _value);
return true;
}
function allowance(address _owner, address _spender) public view returns (uint256 remaining) {
return allowed[_owner][_spender];
}
/**
* @dev Internal function that burns an amount of the token of a given
* account.
* @param account The account whose tokens will be burnt.
* @param value The amount that will be burnt.
*/
function _burn(address account, uint256 value) internal {
require(account != address(0));
totalSupply = totalSupply.sub(value);
balances[account] = balances[account].sub(value);
emit Transfer(account, address(0), value);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"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":"_value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"cost","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"MinterAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"MinterRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"address","name":"tokenEthPair","type":"address"}],"name":"SetPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"SetterAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"SetterRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"holder","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"divs","type":"uint256"}],"name":"Withdraw","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addSetter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","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":true,"inputs":[],"name":"factor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isMinter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isSetter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"uint256","name":"_txAmount","type":"uint256"},{"internalType":"address","name":"_pairAddress","type":"address"}],"name":"mint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"pairRates","outputs":[{"internalType":"uint256","name":"priceCumulativeLast","type":"uint256"},{"internalType":"uint256","name":"blockTimestampLast","type":"uint256"},{"internalType":"uint256","name":"rate","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rateDecimal","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeSetter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint8","name":"_decimal","type":"uint8"}],"name":"setRateDecimal","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_team","type":"address"}],"name":"setTeamAddr","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_tokenEthPairAddress","type":"address"}],"name":"setTokenAndEthPair","outputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"team","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","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":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"divs","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
6080604052670de0b6b3a7640000600455600060055560068060006101000a81548160ff021916908360ff1602179055503480156200003d57600080fd5b506200004f336200009660201b60201c565b33600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000240565b620000b1816001620000f760201b620028791790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f57a9d5e4a5fdb8c72a273458b4a46afd6cd3f548ab577908933e54f29fd70a9560405160405180910390a250565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156200013257600080fd5b620001448282620001ad60201b60201c565b156200014f57600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620001e957600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61295a80620002506000396000f3fe60806040526004361061014b5760003560e01c806370a08231116100b6578063aa271e1a1161006f578063aa271e1a146107a6578063acd1c4ab1461080f578063ae4ddec214610882578063b7c50c4c146108e7578063c816206814610950578063dd62ed3e146109a15761014b565b806370a082311461054557806375491d76146105aa57806385f2aef2146105fb57806395d89b4114610652578063983b2d56146106e2578063a9059cbb146107335761014b565b80632e1a7d4d116101085780632e1a7d4d146103c75780633092afd514610416578063313ce5671461046757806331809c7e1461049857806354f703f8146104c95780635793ed80146104f45761014b565b8063032834691461014d57806306fdde031461018b578063095ea7b31461021b5780630d4d15131461028e57806318160ddd1461030957806323b872dd14610334575b005b34801561015957600080fd5b506101896004803603602081101561017057600080fd5b81019080803560ff169060200190929190505050610a26565b005b34801561019757600080fd5b506101a0610adf565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101e05780820151818401526020810190506101c5565b50505050905090810190601f16801561020d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561022757600080fd5b506102746004803603604081101561023e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b18565b604051808215151515815260200191505060405180910390f35b34801561029a57600080fd5b50610307600480360360608110156102b157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c0a565b005b34801561031557600080fd5b5061031e610fb9565b6040518082815260200191505060405180910390f35b34801561034057600080fd5b506103ad6004803603606081101561035757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610fbf565b604051808215151515815260200191505060405180910390f35b3480156103d357600080fd5b50610400600480360360208110156103ea57600080fd5b8101908080359060200190929190505050611229565b6040518082815260200191505060405180910390f35b34801561042257600080fd5b506104656004803603602081101561043957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061134b565b005b34801561047357600080fd5b5061047c611369565b604051808260ff1660ff16815260200191505060405180910390f35b3480156104a457600080fd5b506104ad61136e565b604051808260ff1660ff16815260200191505060405180910390f35b3480156104d557600080fd5b506104de611381565b6040518082815260200191505060405180910390f35b34801561050057600080fd5b506105436004803603602081101561051757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611387565b005b34801561055157600080fd5b506105946004803603602081101561056857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113a5565b6040518082815260200191505060405180910390f35b3480156105b657600080fd5b506105f9600480360360208110156105cd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113ee565b005b34801561060757600080fd5b5061061061140c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561065e57600080fd5b50610667611432565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106a757808201518184015260208101905061068c565b50505050905090810190601f1680156106d45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156106ee57600080fd5b506107316004803603602081101561070557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061146b565b005b34801561073f57600080fd5b5061078c6004803603604081101561075657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611489565b604051808215151515815260200191505060405180910390f35b3480156107b257600080fd5b506107f5600480360360208110156107c957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116a5565b604051808215151515815260200191505060405180910390f35b34801561081b57600080fd5b5061085e6004803603602081101561083257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116c2565b60405180848152602001838152602001828152602001935050505060405180910390f35b34801561088e57600080fd5b506108d1600480360360208110156108a557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116ec565b6040518082815260200191505060405180910390f35b3480156108f357600080fd5b506109366004803603602081101561090a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f29565b604051808215151515815260200191505060405180910390f35b34801561095c57600080fd5b5061099f6004803603602081101561097357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f46565b005b3480156109ad57600080fd5b50610a10600480360360408110156109c457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061203f565b6040518082815260200191505060405180910390f35b610a2f33611f29565b610a3857600080fd5b60028160ff1610158015610a4f5750600a8160ff16105b610ac1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f646563696d616c2076616c756520697320746f6f20736d616c6c2e000000000081525060200191505060405180910390fd5b80600660006101000a81548160ff021916908360ff16021790555050565b6040518060400160405280600881526020017f427579657244414f00000000000000000000000000000000000000000000000081525081565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b610c13336116a5565b610c1c57600080fd5b60008090506000831115610f5d57600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610c8a57600660009054906101000a900460ff1660ff16600a0a610c7d836120c6565b840281610c8657fe5b0492505b60006004541115610cc857670de0b6b3a7640000600454840281610caa57fe5b049050629896806298967f6004540281610cc057fe5b046004819055505b6000811115610f5c57610d2381600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461240790919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610dda8160086000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461240790919063ffffffff16565b60086000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e67600554610e5960028461242690919063ffffffff16565b61240790919063ffffffff16565b6005819055508373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b5b8373ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f8483604051808381526020018281526020019250505060405180910390a250505050565b60055481565b600081600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015801561108c575081600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b61109557600080fd5b81600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555081600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60008082118015611279575081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b61128257600080fd5b6000471161128f57600080fd5b6005548247028161129c57fe5b0490506112a93383612460565b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156112ef573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff167ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5688383604051808381526020018281526020019250505060405180910390a2919050565b61135433611f29565b61135d57600080fd5b611366816125b4565b50565b601281565b600660009054906101000a900460ff1681565b60045481565b61139033611f29565b61139957600080fd5b6113a28161260e565b50565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6113f733611f29565b61140057600080fd5b61140981612668565b50565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600381526020017f424454000000000000000000000000000000000000000000000000000000000081525081565b61147433611f29565b61147d57600080fd5b611486816126c2565b50565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101580156115595750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401115b61156257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561159c57600080fd5b81600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60006116bb82600261271c90919063ffffffff16565b9050919050565b60076020528060005260406000206000915090508060000154908060010154908060020154905083565b60006116f733611f29565b61170057600080fd5b6000829050600073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561177857600080fd5b505afa15801561178c573d6000803e3d6000fd5b505050506040513d60208110156117a257600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1614611854578173ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561181457600080fd5b505afa158015611828573d6000803e3d6000fd5b505050506040513d602081101561183e57600080fd5b81019080805190602001909291905050506118d6565b8173ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b15801561189a57600080fd5b505afa1580156118ae573d6000803e3d6000fd5b505050506040513d60208110156118c457600080fd5b81019080805190602001909291905050505b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561197b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5f746f6b656e4164647265737320697320696e76616c69642e0000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611a1e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5f657468546f6b656e506169724164647265737320697320696e76616c69642e81525060200191505060405180910390fd5b6000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff166370a08231876040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611af457600080fd5b505afa158015611b08573d6000803e3d6000fd5b505050506040513d6020811015611b1e57600080fd5b8101908080519060200190929190505050905060008373ffffffffffffffffffffffffffffffffffffffff166370a08231886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611bb057600080fd5b505afa158015611bc4573d6000803e3d6000fd5b505050506040513d6020811015611bda57600080fd5b81019080805190602001909291905050509050600082118015611bfd5750600081115b611c6f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5f657468546f6b656e506169724164647265737320697320696e76616c69640081525060200191505060405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015611cb557600080fd5b505afa158015611cc9573d6000803e3d6000fd5b505050506040513d6060811015611cdf57600080fd5b8101908080519060200190929190805190602001909291908051906020019092919050505090915090508063ffffffff16905083600101600082919050555073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610611deb578473ffffffffffffffffffffffffffffffffffffffff16635a3d54936040518163ffffffff1660e01b815260040160206040518083038186803b158015611dab57600080fd5b505afa158015611dbf573d6000803e3d6000fd5b505050506040513d6020811015611dd557600080fd5b8101908080519060200190929190505050611e6d565b8473ffffffffffffffffffffffffffffffffffffffff16635909c0d56040518163ffffffff1660e01b815260040160206040518083038186803b158015611e3157600080fd5b505afa158015611e45573d6000803e3d6000fd5b505050506040513d6020811015611e5b57600080fd5b81019080805190602001909291905050505b836000018190555080600660009054906101000a900460ff1660ff16600a0a830281611e9557fe5b0483600201819055508373ffffffffffffffffffffffffffffffffffffffff167fd482e95abb3d8f5eaf8f07dbd4c204ea55842bacc8cf5d530aa104716551e21688604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a2826002015495505050505050919050565b6000611f3f82600161271c90919063ffffffff16565b9050919050565b611f4f33611f29565b611f5857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611ffb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5f7465616d20697320696e76616c69642e00000000000000000000000000000081525060200191505060405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600083905060008260010154905060008360000154905060008373ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561216957600080fd5b505afa15801561217d573d6000803e3d6000fd5b505050506040513d606081101561219357600080fd5b8101908080519060200190929190805190602001909291908051906020019092919050505063ffffffff16925050506000838211156123f55773c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561223d57600080fd5b505afa158015612251573d6000803e3d6000fd5b505050506040513d602081101561226757600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1614612319578473ffffffffffffffffffffffffffffffffffffffff16635909c0d56040518163ffffffff1660e01b815260040160206040518083038186803b1580156122d957600080fd5b505afa1580156122ed573d6000803e3d6000fd5b505050506040513d602081101561230357600080fd5b810190808051906020019092919050505061239b565b8473ffffffffffffffffffffffffffffffffffffffff16635a3d54936040518163ffffffff1660e01b815260040160206040518083038186803b15801561235f57600080fd5b505afa158015612373573d6000803e3d6000fd5b505050506040513d602081101561238957600080fd5b81019080805190602001909291905050505b90506e010000000000000000000000000000600660009054906101000a900460ff1660ff16600a0a858403858403816123d057fe5b0402816123d957fe5b0486600201819055508086600001819055508186600101819055505b85600201549650505050505050919050565b60008082840190508381101561241c57600080fd5b8091505092915050565b600080831415612439576000905061245a565b600082840290508284828161244a57fe5b041461245557600080fd5b809150505b92915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561249a57600080fd5b6124af816005546127ae90919063ffffffff16565b60058190555061250781600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127ae90919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6125c88160026127ce90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669260405160405180910390a250565b61262281600161287990919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f57a9d5e4a5fdb8c72a273458b4a46afd6cd3f548ab577908933e54f29fd70a9560405160405180910390a250565b61267c8160016127ce90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fc8d3785717c78d9d2bcb51ff75163af9101a486cd4fb3b915fda11d3fe44e15460405160405180910390a250565b6126d681600261287990919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561275757600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000828211156127bd57600080fd5b600082840390508091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561280857600080fd5b612812828261271c565b61281b57600080fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156128b357600080fd5b6128bd828261271c565b156128c757600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505056fea265627a7a7231582094b7da23c951c37612df2cb22318e54e52be3ee3429dafe9c444a72988ab0ce864736f6c63430005110032
Deployed Bytecode
0x60806040526004361061014b5760003560e01c806370a08231116100b6578063aa271e1a1161006f578063aa271e1a146107a6578063acd1c4ab1461080f578063ae4ddec214610882578063b7c50c4c146108e7578063c816206814610950578063dd62ed3e146109a15761014b565b806370a082311461054557806375491d76146105aa57806385f2aef2146105fb57806395d89b4114610652578063983b2d56146106e2578063a9059cbb146107335761014b565b80632e1a7d4d116101085780632e1a7d4d146103c75780633092afd514610416578063313ce5671461046757806331809c7e1461049857806354f703f8146104c95780635793ed80146104f45761014b565b8063032834691461014d57806306fdde031461018b578063095ea7b31461021b5780630d4d15131461028e57806318160ddd1461030957806323b872dd14610334575b005b34801561015957600080fd5b506101896004803603602081101561017057600080fd5b81019080803560ff169060200190929190505050610a26565b005b34801561019757600080fd5b506101a0610adf565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101e05780820151818401526020810190506101c5565b50505050905090810190601f16801561020d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561022757600080fd5b506102746004803603604081101561023e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b18565b604051808215151515815260200191505060405180910390f35b34801561029a57600080fd5b50610307600480360360608110156102b157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c0a565b005b34801561031557600080fd5b5061031e610fb9565b6040518082815260200191505060405180910390f35b34801561034057600080fd5b506103ad6004803603606081101561035757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610fbf565b604051808215151515815260200191505060405180910390f35b3480156103d357600080fd5b50610400600480360360208110156103ea57600080fd5b8101908080359060200190929190505050611229565b6040518082815260200191505060405180910390f35b34801561042257600080fd5b506104656004803603602081101561043957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061134b565b005b34801561047357600080fd5b5061047c611369565b604051808260ff1660ff16815260200191505060405180910390f35b3480156104a457600080fd5b506104ad61136e565b604051808260ff1660ff16815260200191505060405180910390f35b3480156104d557600080fd5b506104de611381565b6040518082815260200191505060405180910390f35b34801561050057600080fd5b506105436004803603602081101561051757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611387565b005b34801561055157600080fd5b506105946004803603602081101561056857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113a5565b6040518082815260200191505060405180910390f35b3480156105b657600080fd5b506105f9600480360360208110156105cd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113ee565b005b34801561060757600080fd5b5061061061140c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561065e57600080fd5b50610667611432565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106a757808201518184015260208101905061068c565b50505050905090810190601f1680156106d45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156106ee57600080fd5b506107316004803603602081101561070557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061146b565b005b34801561073f57600080fd5b5061078c6004803603604081101561075657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611489565b604051808215151515815260200191505060405180910390f35b3480156107b257600080fd5b506107f5600480360360208110156107c957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116a5565b604051808215151515815260200191505060405180910390f35b34801561081b57600080fd5b5061085e6004803603602081101561083257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116c2565b60405180848152602001838152602001828152602001935050505060405180910390f35b34801561088e57600080fd5b506108d1600480360360208110156108a557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116ec565b6040518082815260200191505060405180910390f35b3480156108f357600080fd5b506109366004803603602081101561090a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f29565b604051808215151515815260200191505060405180910390f35b34801561095c57600080fd5b5061099f6004803603602081101561097357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f46565b005b3480156109ad57600080fd5b50610a10600480360360408110156109c457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061203f565b6040518082815260200191505060405180910390f35b610a2f33611f29565b610a3857600080fd5b60028160ff1610158015610a4f5750600a8160ff16105b610ac1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f646563696d616c2076616c756520697320746f6f20736d616c6c2e000000000081525060200191505060405180910390fd5b80600660006101000a81548160ff021916908360ff16021790555050565b6040518060400160405280600881526020017f427579657244414f00000000000000000000000000000000000000000000000081525081565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b610c13336116a5565b610c1c57600080fd5b60008090506000831115610f5d57600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610c8a57600660009054906101000a900460ff1660ff16600a0a610c7d836120c6565b840281610c8657fe5b0492505b60006004541115610cc857670de0b6b3a7640000600454840281610caa57fe5b049050629896806298967f6004540281610cc057fe5b046004819055505b6000811115610f5c57610d2381600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461240790919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610dda8160086000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461240790919063ffffffff16565b60086000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e67600554610e5960028461242690919063ffffffff16565b61240790919063ffffffff16565b6005819055508373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b5b8373ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f8483604051808381526020018281526020019250505060405180910390a250505050565b60055481565b600081600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015801561108c575081600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b61109557600080fd5b81600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555081600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60008082118015611279575081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b61128257600080fd5b6000471161128f57600080fd5b6005548247028161129c57fe5b0490506112a93383612460565b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156112ef573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff167ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5688383604051808381526020018281526020019250505060405180910390a2919050565b61135433611f29565b61135d57600080fd5b611366816125b4565b50565b601281565b600660009054906101000a900460ff1681565b60045481565b61139033611f29565b61139957600080fd5b6113a28161260e565b50565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6113f733611f29565b61140057600080fd5b61140981612668565b50565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600381526020017f424454000000000000000000000000000000000000000000000000000000000081525081565b61147433611f29565b61147d57600080fd5b611486816126c2565b50565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101580156115595750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401115b61156257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561159c57600080fd5b81600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60006116bb82600261271c90919063ffffffff16565b9050919050565b60076020528060005260406000206000915090508060000154908060010154908060020154905083565b60006116f733611f29565b61170057600080fd5b6000829050600073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561177857600080fd5b505afa15801561178c573d6000803e3d6000fd5b505050506040513d60208110156117a257600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1614611854578173ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561181457600080fd5b505afa158015611828573d6000803e3d6000fd5b505050506040513d602081101561183e57600080fd5b81019080805190602001909291905050506118d6565b8173ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b15801561189a57600080fd5b505afa1580156118ae573d6000803e3d6000fd5b505050506040513d60208110156118c457600080fd5b81019080805190602001909291905050505b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561197b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5f746f6b656e4164647265737320697320696e76616c69642e0000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611a1e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5f657468546f6b656e506169724164647265737320697320696e76616c69642e81525060200191505060405180910390fd5b6000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff166370a08231876040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611af457600080fd5b505afa158015611b08573d6000803e3d6000fd5b505050506040513d6020811015611b1e57600080fd5b8101908080519060200190929190505050905060008373ffffffffffffffffffffffffffffffffffffffff166370a08231886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611bb057600080fd5b505afa158015611bc4573d6000803e3d6000fd5b505050506040513d6020811015611bda57600080fd5b81019080805190602001909291905050509050600082118015611bfd5750600081115b611c6f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5f657468546f6b656e506169724164647265737320697320696e76616c69640081525060200191505060405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015611cb557600080fd5b505afa158015611cc9573d6000803e3d6000fd5b505050506040513d6060811015611cdf57600080fd5b8101908080519060200190929190805190602001909291908051906020019092919050505090915090508063ffffffff16905083600101600082919050555073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610611deb578473ffffffffffffffffffffffffffffffffffffffff16635a3d54936040518163ffffffff1660e01b815260040160206040518083038186803b158015611dab57600080fd5b505afa158015611dbf573d6000803e3d6000fd5b505050506040513d6020811015611dd557600080fd5b8101908080519060200190929190505050611e6d565b8473ffffffffffffffffffffffffffffffffffffffff16635909c0d56040518163ffffffff1660e01b815260040160206040518083038186803b158015611e3157600080fd5b505afa158015611e45573d6000803e3d6000fd5b505050506040513d6020811015611e5b57600080fd5b81019080805190602001909291905050505b836000018190555080600660009054906101000a900460ff1660ff16600a0a830281611e9557fe5b0483600201819055508373ffffffffffffffffffffffffffffffffffffffff167fd482e95abb3d8f5eaf8f07dbd4c204ea55842bacc8cf5d530aa104716551e21688604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a2826002015495505050505050919050565b6000611f3f82600161271c90919063ffffffff16565b9050919050565b611f4f33611f29565b611f5857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611ffb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5f7465616d20697320696e76616c69642e00000000000000000000000000000081525060200191505060405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600083905060008260010154905060008360000154905060008373ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561216957600080fd5b505afa15801561217d573d6000803e3d6000fd5b505050506040513d606081101561219357600080fd5b8101908080519060200190929190805190602001909291908051906020019092919050505063ffffffff16925050506000838211156123f55773c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561223d57600080fd5b505afa158015612251573d6000803e3d6000fd5b505050506040513d602081101561226757600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1614612319578473ffffffffffffffffffffffffffffffffffffffff16635909c0d56040518163ffffffff1660e01b815260040160206040518083038186803b1580156122d957600080fd5b505afa1580156122ed573d6000803e3d6000fd5b505050506040513d602081101561230357600080fd5b810190808051906020019092919050505061239b565b8473ffffffffffffffffffffffffffffffffffffffff16635a3d54936040518163ffffffff1660e01b815260040160206040518083038186803b15801561235f57600080fd5b505afa158015612373573d6000803e3d6000fd5b505050506040513d602081101561238957600080fd5b81019080805190602001909291905050505b90506e010000000000000000000000000000600660009054906101000a900460ff1660ff16600a0a858403858403816123d057fe5b0402816123d957fe5b0486600201819055508086600001819055508186600101819055505b85600201549650505050505050919050565b60008082840190508381101561241c57600080fd5b8091505092915050565b600080831415612439576000905061245a565b600082840290508284828161244a57fe5b041461245557600080fd5b809150505b92915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561249a57600080fd5b6124af816005546127ae90919063ffffffff16565b60058190555061250781600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127ae90919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6125c88160026127ce90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669260405160405180910390a250565b61262281600161287990919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f57a9d5e4a5fdb8c72a273458b4a46afd6cd3f548ab577908933e54f29fd70a9560405160405180910390a250565b61267c8160016127ce90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fc8d3785717c78d9d2bcb51ff75163af9101a486cd4fb3b915fda11d3fe44e15460405160405180910390a250565b6126d681600261287990919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561275757600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000828211156127bd57600080fd5b600082840390508091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561280857600080fd5b612812828261271c565b61281b57600080fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156128b357600080fd5b6128bd828261271c565b156128c757600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505056fea265627a7a7231582094b7da23c951c37612df2cb22318e54e52be3ee3429dafe9c444a72988ab0ce864736f6c63430005110032
Deployed Bytecode Sourcemap
7801:7216:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12882:180;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12882:180:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12882:180:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;7891:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7891:41:0;;;:::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;7891:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14149:214;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14149:214:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14149:214:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8856:1061;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8856:1061:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8856:1061:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8090:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8090:27:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13646:372;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13646:372:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13646:372:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10100:356;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10100:356:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10100:356:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5163:98;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5163:98:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5163:98:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;7984:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7984:37:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8206:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8206:28:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8054:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8054:29:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3998:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3998:92:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3998:92:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;14026:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14026:115:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14026:115:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4228:98;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4228:98:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4228:98:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;8028:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8028:19:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7939:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7939:38:0;;;:::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;7939:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4933:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4933:92:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4933:92:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;13278:360;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13278:360:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13278:360:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4816:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4816:109:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4816:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8379:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8379:45:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8379:45:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11640:1188;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11640:1188:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11640:1188:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3881:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3881:109:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3881:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13070:145;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13070:145:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13070:145:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;14371:144;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14371:144:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14371:144:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12882:180;3832:20;3841:10;3832:8;:20::i;:::-;3824:29;;;;;;12971:1;12959:8;:13;;;;:30;;;;;12987:2;12976:8;:13;;;12959:30;12951:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13046:8;13032:11;;:22;;;;;;;;;;;;;;;;;;12882:180;:::o;7891:41::-;;;;;;;;;;;;;;;;;;;:::o;14149:214::-;14216:12;14273:6;14241:7;:19;14249:10;14241:19;;;;;;;;;;;;;;;:29;14261:8;14241:29;;;;;;;;;;;;;;;:38;;;;14316:8;14295:38;;14304:10;14295:38;;;14326:6;14295:38;;;;;;;;;;;;;;;;;;14351:4;14344:11;;14149:214;;;;:::o;8856:1061::-;4767:20;4776:10;4767:8;:20::i;:::-;4759:29;;;;;;8959:19;8981:1;8959:23;;9009:1;8997:9;:13;8993:854;;;9116:1;9092:26;;:12;:26;;;9088:153;;9212:11;;;;;;;;;;;9207:17;;9201:2;:23;9163:34;9184:12;9163:20;:34::i;:::-;9151:9;:46;:74;;;;;;9139:86;;9088:153;9270:1;9261:6;;:10;9257:154;;;9331:8;9321:6;;9309:9;:18;:31;;;;;;9292:48;;9387:8;9377:7;9368:6;;:16;:27;;;;;;9359:6;:36;;;;9257:154;9448:1;9431:14;:18;9427:409;;;9495:42;9522:14;9495:8;:22;9504:12;9495:22;;;;;;;;;;;;;;;;:26;;:42;;;;:::i;:::-;9470:8;:22;9479:12;9470:22;;;;;;;;;;;;;;;:67;;;;9573:34;9592:14;9573:8;:14;9582:4;;;;;;;;;;;9573:14;;;;;;;;;;;;;;;;:18;;:34;;;;:::i;:::-;9556:8;:14;9565:4;;;;;;;;;;;9556:14;;;;;;;;;;;;;;;:51;;;;9640:38;9666:11;;9640:21;9659:1;9640:14;:18;;:21;;;;:::i;:::-;:25;;:38;;;;:::i;:::-;9626:11;:52;;;;9725:12;9704:50;;9721:1;9704:50;;;9739:14;9704:50;;;;;;;;;;;;;;;;;;9799:4;;;;;;;;;;;9778:42;;9795:1;9778:42;;;9805:14;9778:42;;;;;;;;;;;;;;;;;;9427:409;8993:854;9869:12;9864:45;;;9883:9;9894:14;9864:45;;;;;;;;;;;;;;;;;;;;;;;;4799:1;8856:1061;;;:::o;8090:27::-;;;;:::o;13646:372::-;13728:12;13780:6;13761:8;:15;13770:5;13761:15;;;;;;;;;;;;;;;;:25;;:65;;;;;13820:6;13790:7;:14;13798:5;13790:14;;;;;;;;;;;;;;;:26;13805:10;13790:26;;;;;;;;;;;;;;;;:36;;13761:65;13753:74;;;;;;13855:6;13838:8;:13;13847:3;13838:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;13891:6;13872:8;:15;13881:5;13872:15;;;;;;;;;;;;;;;;:25;;;;;;;;;;;13938:6;13908:7;:14;13916:5;13908:14;;;;;;;;;;;;;;;:26;13923:10;13908:26;;;;;;;;;;;;;;;;:36;;;;;;;;;;;13976:3;13960:28;;13969:5;13960:28;;;13981:6;13960:28;;;;;;;;;;;;;;;;;;14006:4;13999:11;;13646:372;;;;;:::o;10100:356::-;10146:9;10183:1;10175:5;:9;:42;;;;;10212:5;10188:8;:20;10197:10;10188:20;;;;;;;;;;;;;;;;:29;;10175:42;10167:51;;;;;;10261:1;10237:21;:25;10229:34;;;;;;10315:11;;10307:5;10283:21;:29;:43;;;;;;10276:50;;10337:24;10343:10;10355:5;10337;:24::i;:::-;10372:10;:19;;:25;10392:4;10372:25;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10372:25:0;10424:10;10415:33;;;10436:5;10443:4;10415:33;;;;;;;;;;;;;;;;;;;;;;;;10100:356;;;:::o;5163:98::-;3832:20;3841:10;3832:8;:20::i;:::-;3824:29;;;;;;5231:22;5245:7;5231:13;:22::i;:::-;5163:98;:::o;7984:37::-;8019:2;7984:37;:::o;8206:28::-;;;;;;;;;;;;;:::o;8054:29::-;;;;:::o;3998:92::-;3832:20;3841:10;3832:8;:20::i;:::-;3824:29;;;;;;4063:19;4074:7;4063:10;:19::i;:::-;3998:92;:::o;14026:115::-;14082:15;14117:8;:16;14126:6;14117:16;;;;;;;;;;;;;;;;14110:23;;14026:115;;;:::o;4228:98::-;3832:20;3841:10;3832:8;:20::i;:::-;3824:29;;;;;;4296:22;4310:7;4296:13;:22::i;:::-;4228:98;:::o;8028:19::-;;;;;;;;;;;;;:::o;7939:38::-;;;;;;;;;;;;;;;;;;;:::o;4933:92::-;3832:20;3841:10;3832:8;:20::i;:::-;3824:29;;;;;;4998:19;5009:7;4998:10;:19::i;:::-;4933:92;:::o;13278:360::-;13341:12;13398:6;13374:8;:20;13383:10;13374:20;;;;;;;;;;;;;;;;:30;;:72;;;;;13433:8;:13;13442:3;13433:13;;;;;;;;;;;;;;;;13424:6;13408:8;:13;13417:3;13408:13;;;;;;;;;;;;;;;;:22;:38;13374:72;13366:81;;;;;;13481:1;13466:17;;:3;:17;;;;13458:26;;;;;;13519:6;13495:8;:20;13504:10;13495:20;;;;;;;;;;;;;;;;:30;;;;;;;;;;;13553:6;13536:8;:13;13545:3;13536:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;13596:3;13575:33;;13584:10;13575:33;;;13601:6;13575:33;;;;;;;;;;;;;;;;;;13626:4;13619:11;;13278:360;;;;:::o;4816:109::-;4872:4;4896:21;4909:7;4896:8;:12;;:21;;;;:::i;:::-;4889:28;;4816:109;;;:::o;8379:45::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11640:1188::-;11725:9;3832:20;3841:10;3832:8;:20::i;:::-;3824:29;;;;;;11746:28;11792:20;11746:67;;11824:21;8150:42;11848:30;;:13;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11848:22:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11848:22:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11848:22:0;;;;;;;;;;;;;;;;:30;;;:80;;11906:13;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11906:22:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11906:22:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11906:22:0;;;;;;;;;;;;;;;;11848:80;;;11881:13;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11881:22:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11881:22:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11881:22:0;;;;;;;;;;;;;;;;11848:80;11824:104;;11974:1;11949:27;;:13;:27;;;;11941:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12057:1;12025:34;;:20;:34;;;;12017:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12109:25;12137:9;:31;12147:20;12137:31;;;;;;;;;;;;;;;12109:59;;12181:16;8150:42;12200:25;;;12226:20;12200:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12200:47:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12200:47:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12200:47:0;;;;;;;;;;;;;;;;12181:66;;12258:18;12289:13;12279:34;;;12314:20;12279:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12279:56:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12279:56:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12279:56:0;;;;;;;;;;;;;;;;12258:77;;12370:1;12356:11;:15;:36;;;;;12391:1;12375:13;:17;12356:36;12348:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12476:13;:25;;;:27;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12476:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12476:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12476:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12441:62;;;;;;;;;;12445:8;:27;;;12441:62;;;;;;8150:42;12545:20;;:13;:20;;;:98;;12607:13;:34;;;:36;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12607:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12607:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12607:36:0;;;;;;;;;;;;;;;;12545:98;;;12568:13;:34;;;:36;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12568:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12568:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12568:36:0;;;;;;;;;;;;;;;;12545:98;12514:8;:28;;:129;;;;12712:13;12696:11;;;;;;;;;;;12691:17;;12685:2;:23;12670:11;:39;:55;;;;;;12654:8;:13;;:71;;;;12751:13;12743:44;;;12766:20;12743:44;;;;;;;;;;;;;;;;;;;;;;12807:8;:13;;;12800:20;;;;;;;11640:1188;;;:::o;3881:109::-;3937:4;3961:21;3974:7;3961:8;:12;;:21;;;;:::i;:::-;3954:28;;3881:109;;;:::o;13070:145::-;3832:20;3841:10;3832:8;:20::i;:::-;3824:29;;;;;;13160:1;13143:19;;:5;:19;;;;13135:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13202:5;13195:4;;:12;;;;;;;;;;;;;;;;;;13070:145;:::o;14371:144::-;14445:17;14482:7;:15;14490:6;14482:15;;;;;;;;;;;;;;;:25;14498:8;14482:25;;;;;;;;;;;;;;;;14475:32;;14371:144;;;;:::o;10548:1013::-;10618:9;10640:25;10668:9;:23;10678:12;10668:23;;;;;;;;;;;;;;;10640:51;;10702:27;10747:12;10702:58;;10773:25;10801:8;:27;;;10773:55;;10839:26;10868:8;:28;;;10839:57;;10912:25;10941:12;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10941:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10941:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10941:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10907:60;;;;;;10978:26;11044:20;11021;:43;11017:504;;;8150:42;11105:29;;:12;:19;;;:21;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11105:21:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11105:21:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11105:21:0;;;;;;;;;;;;;;;;:29;;;:105;;11175:12;:33;;;:35;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11175:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11175:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11175:35:0;;;;;;;;;;;;;;;;11105:105;;;11137:12;:33;;;:35;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11137:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11137:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11137:35:0;;;;;;;;;;;;;;;;11105:105;11081:129;;11368:8;11351:11;;;;;;;;;;;11346:17;;11340:2;:23;11315:20;11292;:43;11266:21;11242;:45;11241:95;;;;;;:123;:136;;;;;;11225:8;:13;;:152;;;;11423:21;11392:8;:28;;:52;;;;11489:20;11459:8;:27;;:50;;;;11017:504;11540:8;:13;;;11533:20;;10548:1013;;;;;;;;;:::o;2124:150::-;2182:7;2202:9;2218:1;2214;:5;2202:17;;2243:1;2238;:6;;2230:15;;;;;;2265:1;2258:8;;;2124:150;;;;:::o;913:433::-;971:7;1220:1;1215;:6;1211:47;;;1245:1;1238:8;;;;1211:47;1270:9;1286:1;1282;:5;1270:17;;1315:1;1310;1306;:5;;;;;;:10;1298:19;;;;;;1337:1;1330:8;;;913:433;;;;;:::o;14749:265::-;14843:1;14824:21;;:7;:21;;;;14816:30;;;;;;14873:22;14889:5;14873:11;;:15;;:22;;;;:::i;:::-;14859:11;:36;;;;14926:28;14948:5;14926:8;:17;14935:7;14926:17;;;;;;;;;;;;;;;;:21;;:28;;;;:::i;:::-;14906:8;:17;14915:7;14906:17;;;;;;;;;;;;;;;:48;;;;14996:1;14970:36;;14979:7;14970:36;;;15000:5;14970:36;;;;;;;;;;;;;;;;;;14749:265;;:::o;5269:130::-;5329:24;5345:7;5329:8;:15;;:24;;;;:::i;:::-;5383:7;5369:22;;;;;;;;;;;;5269:130;:::o;4098:122::-;4155:21;4168:7;4155:8;:12;;:21;;;;:::i;:::-;4204:7;4192:20;;;;;;;;;;;;4098:122;:::o;4334:130::-;4394:24;4410:7;4394:8;:15;;:24;;;;:::i;:::-;4448:7;4434:22;;;;;;;;;;;;4334:130;:::o;5033:122::-;5090:21;5103:7;5090:8;:12;;:21;;;;:::i;:::-;5139:7;5127:20;;;;;;;;;;;;5033:122;:::o;3346:165::-;3418:4;3462:1;3443:21;;:7;:21;;;;3435:30;;;;;;3483:4;:11;;:20;3495:7;3483:20;;;;;;;;;;;;;;;;;;;;;;;;;3476:27;;3346:165;;;;:::o;1898:150::-;1956:7;1989:1;1984;:6;;1976:15;;;;;;2002:9;2018:1;2014;:5;2002:17;;2039:1;2032:8;;;1898:150;;;;:::o;3063:189::-;3162:1;3143:21;;:7;:21;;;;3135:30;;;;;;3184:18;3188:4;3194:7;3184:3;:18::i;:::-;3176:27;;;;;;3239:5;3216:4;:11;;:20;3228:7;3216:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;3063:189;;:::o;2798:186::-;2894:1;2875:21;;:7;:21;;;;2867:30;;;;;;2917:18;2921:4;2927:7;2917:3;:18::i;:::-;2916:19;2908:28;;;;;;2972:4;2949;:11;;:20;2961:7;2949:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;2798:186;;:::o
Swarm Source
bzzr://94b7da23c951c37612df2cb22318e54e52be3ee3429dafe9c444a72988ab0ce8
Loading...
Loading
Loading...
Loading
Net Worth in USD
$46.69
Net Worth in ETH
0.022265
Token Allocations
ETH
100.00%
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| ETH | 100.00% | $2,096.93 | 0.0223 | $46.69 |
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.