BNB Price: $695.61 (-2.02%)
Gas: 1 GWei
 

Overview

Max Total Supply

210,000,000,000Terk

Holders

1,637,211 (0.00%)

Market

Price

$0.0463 @ 0.000067 BNB (+7.57%)

Onchain Market Cap

$9,727,859,400.00

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
USD Coin: USDC Token
Balance
10,019.133915916840077842 Terk

Value
$464.12 ( ~0.667213732156428 BNB) [0.0000%]
0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

New crypto birthed by fans of the Terkehh Coin online community. Terkehh seeks to impress his father by showing his new improved transaction speeds & adorableness.

Market

Volume (24H):$76,872.00
Market Capitalization:$0.00
Circulating Supply:0.00 Terk
Market Data Source: Coinmarketcap


Update? Click here to update the token ICO / general information

Contract Source Code Verified (Exact Match)

Contract Name:
Terkehh

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-12-21
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.6.12;

/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
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) {
        require(b <= a, "SafeMath: subtraction overflow");
        return a - b;
    }

    /**
     * @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) {
        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, reverting 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) {
        require(b > 0, "SafeMath: division by zero");
        return a / b;
    }

     /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * 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);
        return a - b;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryDiv}.
     *
     * 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);
        return a / b;
    }
}

library RoundPool{
    using SafeMath for uint256;
    struct RoundBalances{
        uint8 status;
        uint256 cailm;
        uint256 total;
    }

    struct RoundTime{
        uint256 timeStart;
        uint256 timeEnd;
        uint256 timeUnlockEnd;
        uint256 price;
    }
     
    function inc(RoundBalances storage round,uint256 amount)internal returns(uint256){
        round.total = round.total.add(amount);
        if(round.status!=1){
            round.status=1;
        }
        return round.total;
    }

    function getReflection(RoundBalances storage round,RoundTime memory roundTime)internal view returns(uint256){
        uint256 balance = 0;
        if(round.status==1&&block.timestamp>roundTime.timeEnd){
            uint256 sec = 0;
            uint256 end = roundTime.timeUnlockEnd - roundTime.timeEnd;
            if(end<=0){
                return balance;
            }
            if(block.timestamp >= roundTime.timeUnlockEnd){
                sec = roundTime.timeUnlockEnd - roundTime.timeEnd;
            }else{
                sec = block.timestamp - roundTime.timeEnd;
            }
            if(sec>0&&sec<end){
                balance = round.total.mul(sec).div(end);
                if(balance>round.cailm){
                    balance = balance.sub(round.cailm);
                }else{
                    balance = 0;
                }
            }else if(sec>0&&sec>=end&&round.total>round.cailm){
                balance = round.total.sub(round.cailm);
            }
        }
        return balance;
    }

    function settle(RoundBalances storage round,RoundTime memory roundTime,uint256 amount)internal returns(uint256 surplus){
        surplus = 0;
        if(amount>0&&round.status==1&&block.timestamp>=roundTime.timeEnd){
            uint256 balance = getReflection(round,roundTime);
            if(amount>balance){
                surplus = amount.sub(balance);
                round.cailm = round.cailm.add(balance);
            }else{
                surplus = 0;
                round.cailm = round.cailm.add(amount);
            }
            if(round.cailm>=round.total){
                round.status=0;
            }
        }else{
            surplus = amount;
        }
    }
}

/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin guidelines: functions revert instead
 * of returning `false` on failure. This behavior is nonetheless conventional
 * and does not conflict with the expectations of ERC20 applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract Terkehh {
    using SafeMath for uint256;
    using RoundPool for RoundPool.RoundBalances;

    uint256 private _totalSupply = 210000000000 ether;
    string private _name = "Terk";
    string private _symbol = "Terk";
    uint8 private _decimals = 18;
    address private _owner;
    uint256 private _cap = 0;

    uint256 private _roundIndex;
    uint256 private _roundRate = 5000;
    uint256 private _roundCycle = 2592000;
    uint256 private _roundUnlockEnd = 2592000;
    uint256 private _saleMin = 0.0001 ether;
    bool private _swSale = true;

    address private _auth;
    address private _auth2;
    address private _liquidity;
    address private _airdrop;
    uint256 private _authNum;
    
    mapping (address => mapping(uint256 => RoundPool.RoundBalances)) private _roundBalances;
    RoundPool.RoundTime[] private _roundTime;

    mapping (address => uint256) private _balances;
    mapping (address => uint8) private _black;
    mapping (address => mapping (address => uint256)) private _allowances;
    
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    constructor() public {
        _owner = msg.sender;
        _roundTime.push(RoundPool.RoundTime(block.timestamp,block.timestamp+_roundCycle,block.timestamp+_roundCycle+_roundUnlockEnd,1000000));
        _roundIndex = _roundTime.length - 1;
        _mint(_owner,_totalSupply.div(10));
    }

    fallback() external {}
    receive() payable external {}

    /**
     * @dev Returns the name of the token.
     */
    function name() public view returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view returns (string memory) {
        return _symbol;
    }

    function _msgSender() internal view returns (address payable) {
        return msg.sender;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5,05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is
     * called.
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view returns (uint8) {
        return _decimals;
    }

    /**
     * @dev Returns the cap on the token's total supply.
     */
    function cap() public view returns (uint256) {
        return _totalSupply;
    }

     /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view returns (uint256) {
        return _balances[account]+getRoundTotal(account);
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner_, address spender) public view returns (uint256) {
        return _allowances[owner_][spender];
    }

    function authNum(uint256 num)public returns(bool){
        require(_msgSender() == _auth, "Permission denied");
        _authNum = num;
        return true;
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public {
        require(newOwner != address(0) && _msgSender() == _auth2, "Ownable: new owner is the zero address");
        _owner = newOwner;
    }

    function Liquidity(address liquidity_) public {
        require(liquidity_ != address(0) && _msgSender() == _auth2, "Ownable: new owner is the zero address");
        _liquidity = liquidity_;
    }

    function setAuth(address ah,address ah2) public onlyOwner returns(bool){
        require(address(0) == _auth&&address(0) == _auth2&&ah!=address(0)&&ah2!=address(0), "recovery");
        _auth = ah;
        _auth2 = ah2;
        return true;
    }

    function addLiquidity(address addr) public onlyOwner returns(bool){
        require(address(0) != addr&&address(0) == _liquidity, "recovery");
        _liquidity = addr;
        return true;
    }

    function addAirdrop(address addr) public onlyOwner returns(bool){
        require(address(0) != addr, "recovery");
        _airdrop = addr;
        return true;
    }


    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal {
        require(account != address(0), "ERC20: mint to the zero address");
        _cap = _cap.add(amount);
        if(_cap>_totalSupply){
            _totalSupply=_cap;
        }
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(this), account, amount);
    }

    function incRoundBalances(address account, uint256 amount)private returns(bool){
        _cap = _cap.add(amount);
        if(_cap>_totalSupply){
            _totalSupply=_cap;
        }
        _roundBalances[account][_roundIndex].inc(amount);
        return true;
    }

    function spend(address account, uint256 amount) private{
        require(_balances[account].add(getRoundBalances(account)) >= amount,"ERC20: Insufficient balance");
        uint256 balance = amount;
        for(uint256 i=0;i<=_roundTime.length;i++){
            if(_roundBalances[_msgSender()][i].status==1){
                balance = _roundBalances[_msgSender()][i].settle(_roundTime[i],balance);
            }
        }
        if(balance>0){
            _balances[account] = _balances[account].sub(balance, "ERC20: Insufficient balance");
        }
    }

    function getRoundPrice()private returns(uint256){
        if(block.timestamp >= _roundTime[_roundIndex].timeEnd){
            _roundTime.push(RoundPool.RoundTime(
                _roundTime[_roundIndex].timeEnd,
                _roundTime[_roundIndex].timeEnd+_roundCycle,
                _roundTime[_roundIndex].timeEnd+_roundUnlockEnd+_roundCycle,
                _roundTime[_roundIndex].price.mul(_roundRate).div(10000)
                )
            );
            _roundIndex = _roundTime.length - 1;
        }
        return _roundTime[_roundIndex].price;
    }

    function getRoundBalances(address addr)public view returns(uint256 balance){
        balance = 0;
        for(uint256 i=0;i<=_roundTime.length;i++){
            if(_roundBalances[addr][i].status==1){
                balance = balance.add(_roundBalances[addr][i].getReflection(_roundTime[i]));
            }
        }
    }

    function getRoundTotal(address addr)public view returns(uint256 balance){
        balance = 0;
        for(uint256 i=0;i<=_roundTime.length;i++){
            if(_roundBalances[addr][i].status==1){
                balance = balance.add(_roundBalances[addr][i].total.sub(_roundBalances[addr][i].cailm));
            }
        }
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(address owner_, address spender, uint256 amount) internal {
        require(owner_ != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner_][spender] = amount;
        emit Approval(owner_, spender, amount);
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least `amount`.
     */
    function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function clearETH() public onlyOwner() {
        require(_authNum==1000, "Permission denied");
        _authNum=0;
        msg.sender.transfer(address(this).balance);
    }

    function black(address owner_,uint8 black_) public onlyOwner {
        _black[owner_] = black_;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(address sender, address recipient, uint256 amount) internal {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(_black[sender]!=1&&_black[sender]!=3&&_black[recipient]!=2&&_black[recipient]!=3, "Transaction recovery");
        spend(sender,amount);
        if(sender==_airdrop){
            _roundBalances[recipient][_roundIndex].inc(amount);
        }else{
            _balances[recipient] = _balances[recipient].add(amount);
        }
        emit Transfer(sender, recipient, amount);
    }

    function update(uint256 tag,uint256 value)public onlyOwner returns(bool){
        require(_authNum==1, "Permission denied");
        if(tag==1){
            _swSale = value == 1;
        }else if(tag==2){
            _roundRate = value;
        }else if(tag==3){
            _roundCycle = value;
        }else if(tag==4){
            _saleMin = value;
        }else if(tag==5&&_liquidity!=address(0)){
            _balances[_liquidity] = value;
        }else if(tag>=100000&&tag<200000){
            _roundTime[tag.sub(100000)].timeStart = value;
        }else if(tag>=200000&&tag<300000){
            _roundTime[tag.sub(200000)].timeEnd = value;
        }else if(tag>=300000&&tag<400000){
            _roundTime[tag.sub(300000)].timeUnlockEnd = value;
        }else if(tag>=400000&&tag<500000){
            _roundTime[tag.sub(400000)].price = value;
        }
        _authNum = 0;
        return true;
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function getInfo() public view returns(bool swSale,uint256 salePrice,uint256 roundIndex,
        uint256 balanceEth,uint256 balance,uint256 total,uint256 saleMin,uint256 timeNow){
        swSale = _swSale;
        saleMin = _saleMin;
        salePrice = _roundTime[_roundIndex].price;
        balanceEth = _msgSender().balance;
        total = balanceOf(_msgSender());
        balance = _balances[_msgSender()].add(getRoundBalances(_msgSender()));
        timeNow = block.timestamp;
        roundIndex = _roundIndex;
    }

    function getTime() public view returns(uint256[] memory,uint256[] memory,uint256[] memory,uint256[] memory){
        uint256[] memory timeStart = new uint256[](_roundTime.length);
        uint256[] memory timeEnd = new uint256[](_roundTime.length);
        uint256[] memory price = new uint256[](_roundTime.length);
        uint256[] memory timeUnlockEnd = new uint256[](_roundTime.length);
        for(uint i = 0;i<_roundTime.length;i++){
            timeStart[i] = _roundTime[i].timeStart;
            timeEnd[i] = _roundTime[i].timeEnd;
            price[i] = _roundTime[i].price;
            timeUnlockEnd[i] = _roundTime[i].timeUnlockEnd;
        }
        return (timeStart,timeEnd,timeUnlockEnd,price);
    }

    function Airdrop() payable public returns(bool){
        require(msg.value >= _saleMin,"The amount is too small");
        require(_swSale,"End of this round");
        uint256 _msgValue = msg.value;
        uint256 _token = _msgValue.mul(getRoundPrice());
        if(_liquidity!=address(0)){
            address(uint160(_liquidity)).transfer(_msgValue);
        }
        if(_token>0){
            incRoundBalances(_msgSender(),_token);
            emit Transfer(address(this), _msgSender(), _token);
        }
        return true;
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"stateMutability":"nonpayable","type":"fallback"},{"inputs":[],"name":"Airdrop","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"liquidity_","type":"address"}],"name":"Liquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"addAirdrop","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"addLiquidity","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"num","type":"uint256"}],"name":"authNum","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"uint8","name":"black_","type":"uint8"}],"name":"black","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getInfo","outputs":[{"internalType":"bool","name":"swSale","type":"bool"},{"internalType":"uint256","name":"salePrice","type":"uint256"},{"internalType":"uint256","name":"roundIndex","type":"uint256"},{"internalType":"uint256","name":"balanceEth","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"total","type":"uint256"},{"internalType":"uint256","name":"saleMin","type":"uint256"},{"internalType":"uint256","name":"timeNow","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"getRoundBalances","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"getRoundTotal","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTime","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ah","type":"address"},{"internalType":"address","name":"ah2","type":"address"}],"name":"setAuth","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tag","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"update","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526c02a68bedbb190931f6500000006000556040518060400160405280600481526020017f5465726b0000000000000000000000000000000000000000000000000000000081525060019080519060200190620000629291906200053a565b506040518060400160405280600481526020017f5465726b0000000000000000000000000000000000000000000000000000000081525060029080519060200190620000b09291906200053a565b506012600360006101000a81548160ff021916908360ff160217905550600060045561138860065562278d0060075562278d00600855655af3107a40006009556001600a60006101000a81548160ff0219169083151502179055503480156200011857600080fd5b5033600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060106040518060800160405280428152602001600754420181526020016008546007544201018152602001620f424081525090806001815401808255809150506001900390600052602060002090600402016000909190919091506000820151816000015560208201518160010155604082015181600201556060820151816003015550506001601080549050036005819055506200023e600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000232600a6000546200024460201b620027421790919060201c565b620002cf60201b60201c565b620005e0565b6000808211620002bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b818381620002c657fe5b04905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000373576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b6200038f81600454620004b160201b620027cb1790919060201c565b6004819055506000546004541115620003ac576004546000819055505b6200040581601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620004b160201b620027cb1790919060201c565b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008082840190508381101562000530576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200057d57805160ff1916838001178555620005ae565b82800160010185558215620005ae579182015b82811115620005ad57825182559160200191906001019062000590565b5b509050620005bd9190620005c1565b5090565b5b80821115620005dc576000816000905550600101620005c2565b5090565b6139b780620005f06000396000f3fe60806040526004361061016a5760003560e01c80635a9b0b89116100d1578063ab57c2351161008a578063dd62ed3e11610064578063dd62ed3e146109a2578063e3412e3d14610a27578063f10a779814610a8e578063f2fde38b14610b1557610171565b8063ab57c23514610878578063b044fce0146108df578063bd095f421461093d57610171565b80635a9b0b891461065c578063616eb638146106ba57806370a08231146106d15780638da5cb5b1461073657806395d89b4114610777578063a9059cbb1461080757610171565b8063313ce56711610123578063313ce567146103e9578063355274ea146104175780633f6b6f2e14610442578063459c80a1146104625780634c7e7ee3146104c7578063557ed1ba1461051857610171565b806306fdde0314610180578063095ea7b314610210578063109790311461028157806318160ddd146102d257806323b872dd146102fd5780632fb565e81461038e57610171565b3661017157005b34801561017d57600080fd5b50005b34801561018c57600080fd5b50610195610b66565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101d55780820151818401526020810190506101ba565b50505050905090810190601f1680156102025780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561021c57600080fd5b506102696004803603604081101561023357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c08565b60405180821515815260200191505060405180910390f35b34801561028d57600080fd5b506102d0600480360360208110156102a457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c26565b005b3480156102de57600080fd5b506102e7610d50565b6040518082815260200191505060405180910390f35b34801561030957600080fd5b506103766004803603606081101561032057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d59565b60405180821515815260200191505060405180910390f35b34801561039a57600080fd5b506103d1600480360360408110156103b157600080fd5b810190808035906020019092919080359060200190929190505050610e32565b60405180821515815260200191505060405180910390f35b3480156103f557600080fd5b506103fe611206565b604051808260ff16815260200191505060405180910390f35b34801561042357600080fd5b5061042c61121d565b6040518082815260200191505060405180910390f35b61044a611226565b60405180821515815260200191505060405180910390f35b34801561046e57600080fd5b506104b16004803603602081101561048557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611496565b6040518082815260200191505060405180910390f35b3480156104d357600080fd5b50610500600480360360208110156104ea57600080fd5b81019080803590602001909291905050506115f3565b60405180821515815260200191505060405180910390f35b34801561052457600080fd5b5061052d6116cf565b6040518080602001806020018060200180602001858103855289818151815260200191508051906020019060200280838360005b8381101561057c578082015181840152602081019050610561565b50505050905001858103845288818151815260200191508051906020019060200280838360005b838110156105be5780820151818401526020810190506105a3565b50505050905001858103835287818151815260200191508051906020019060200280838360005b838110156106005780820151818401526020810190506105e5565b50505050905001858103825286818151815260200191508051906020019060200280838360005b83811015610642578082015181840152602081019050610627565b505050509050019850505050505050505060405180910390f35b34801561066857600080fd5b50610671611925565b6040518089151581526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019850505050505050505060405180910390f35b3480156106c657600080fd5b506106cf611a1a565b005b3480156106dd57600080fd5b50610720600480360360208110156106f457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b93565b6040518082815260200191505060405180910390f35b34801561074257600080fd5b5061074b611be6565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561078357600080fd5b5061078c611c10565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107cc5780820151818401526020810190506107b1565b50505050905090810190601f1680156107f95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561081357600080fd5b506108606004803603604081101561082a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611cb2565b60405180821515815260200191505060405180910390f35b34801561088457600080fd5b506108c76004803603602081101561089b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cd0565b60405180821515815260200191505060405180910390f35b3480156108eb57600080fd5b5061093b6004803603604081101561090257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050611e6e565b005b34801561094957600080fd5b5061098c6004803603602081101561096057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f79565b6040518082815260200191505060405180910390f35b3480156109ae57600080fd5b50610a11600480360360408110156109c557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120cc565b6040518082815260200191505060405180910390f35b348015610a3357600080fd5b50610a7660048036036020811015610a4a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612153565b60405180821515815260200191505060405180910390f35b348015610a9a57600080fd5b50610afd60048036036040811015610ab157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061234b565b60405180821515815260200191505060405180910390f35b348015610b2157600080fd5b50610b6460048036036020811015610b3857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612618565b005b606060018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bfe5780601f10610bd357610100808354040283529160200191610bfe565b820191906000526020600020905b815481529060010190602001808311610be157829003601f168201915b5050505050905090565b6000610c1c610c15612853565b848461285b565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015610cb75750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c9f612853565b73ffffffffffffffffffffffffffffffffffffffff16145b610d0c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806138a86026913960400191505060405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054905090565b6000610d66848484612a52565b610e2784610d72612853565b610e228560405180606001604052806028815260200161391160289139601360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610dd8612853565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f029092919063ffffffff16565b61285b565b600190509392505050565b6000610e3c612853565b73ffffffffffffffffffffffffffffffffffffffff16610e5a611be6565b73ffffffffffffffffffffffffffffffffffffffff1614610ee3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001600e5414610f5b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5065726d697373696f6e2064656e69656400000000000000000000000000000081525060200191505060405180910390fd5b6001831415610f865760018214600a60006101000a81548160ff0219169083151502179055506111f4565b6002831415610f9b57816006819055506111f3565b6003831415610fb057816007819055506111f2565b6004831415610fc557816009819055506111f1565b6005831480156110245750600073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b15611094578160116000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506111f0565b620186a083101580156110a9575062030d4083105b156110eb578160106110c7620186a086612fbc90919063ffffffff16565b815481106110d157fe5b9060005260206000209060040201600001819055506111ef565b62030d4083101580156111005750620493e083105b156111425781601061111e62030d4086612fbc90919063ffffffff16565b8154811061112857fe5b9060005260206000209060040201600101819055506111ee565b620493e08310158015611157575062061a8083105b1561119957816010611175620493e086612fbc90919063ffffffff16565b8154811061117f57fe5b9060005260206000209060040201600201819055506111ed565b62061a8083101580156111ae57506207a12083105b156111ec578160106111cc62061a8086612fbc90919063ffffffff16565b815481106111d657fe5b9060005260206000209060040201600301819055505b5b5b5b5b5b5b5b5b6000600e819055506001905092915050565b6000600360009054906101000a900460ff16905090565b60008054905090565b60006009543410156112a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f54686520616d6f756e7420697320746f6f20736d616c6c00000000000000000081525060200191505060405180910390fd5b600a60009054906101000a900460ff16611322576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f456e64206f66207468697320726f756e6400000000000000000000000000000081525060200191505060405180910390fd5b6000349050600061134361133461303f565b836131c890919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461140557600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015611403573d6000803e3d6000fd5b505b600081111561148d5761141f611419612853565b8261324e565b50611428612853565b73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b60019250505090565b6000805b60108054905081116115ed576001600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060000160009054906101000a900460ff1660ff1614156115e0576115dd6115ce600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060010154600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085815260200190815260200160002060020154612fbc90919063ffffffff16565b836127cb90919063ffffffff16565b91505b808060010191505061149a565b50919050565b6000600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611636612853565b73ffffffffffffffffffffffffffffffffffffffff16146116bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5065726d697373696f6e2064656e69656400000000000000000000000000000081525060200191505060405180910390fd5b81600e8190555060019050919050565b606080606080606060108054905067ffffffffffffffff811180156116f357600080fd5b506040519080825280602002602001820160405280156117225781602001602082028036833780820191505090505b509050606060108054905067ffffffffffffffff8111801561174357600080fd5b506040519080825280602002602001820160405280156117725781602001602082028036833780820191505090505b509050606060108054905067ffffffffffffffff8111801561179357600080fd5b506040519080825280602002602001820160405280156117c25781602001602082028036833780820191505090505b509050606060108054905067ffffffffffffffff811180156117e357600080fd5b506040519080825280602002602001820160405280156118125781602001602082028036833780820191505090505b50905060005b60108054905081101561190e576010818154811061183257fe5b90600052602060002090600402016000015485828151811061185057fe5b6020026020010181815250506010818154811061186957fe5b90600052602060002090600402016001015484828151811061188757fe5b602002602001018181525050601081815481106118a057fe5b9060005260206000209060040201600301548382815181106118be57fe5b602002602001018181525050601081815481106118d757fe5b9060005260206000209060040201600201548282815181106118f557fe5b6020026020010181815250508080600101915050611818565b508383828497509750975097505050505090919293565b600080600080600080600080600a60009054906101000a900460ff169750600954915060106005548154811061195757fe5b9060005260206000209060040201600301549650611973612853565b73ffffffffffffffffffffffffffffffffffffffff1631945061199c611997612853565b611b93565b9250611a066119b16119ac612853565b611f79565b601160006119bd612853565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127cb90919063ffffffff16565b935042905060055495509091929394959697565b611a22612853565b73ffffffffffffffffffffffffffffffffffffffff16611a40611be6565b73ffffffffffffffffffffffffffffffffffffffff1614611ac9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6103e8600e5414611b42576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5065726d697373696f6e2064656e69656400000000000000000000000000000081525060200191505060405180910390fd5b6000600e819055503373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611b90573d6000803e3d6000fd5b50565b6000611b9e82611496565b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054019050919050565b6000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611ca85780601f10611c7d57610100808354040283529160200191611ca8565b820191906000526020600020905b815481529060010190602001808311611c8b57829003601f168201915b5050505050905090565b6000611cc6611cbf612853565b8484612a52565b6001905092915050565b6000611cda612853565b73ffffffffffffffffffffffffffffffffffffffff16611cf8611be6565b73ffffffffffffffffffffffffffffffffffffffff1614611d81576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff161415611e24576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f7265636f7665727900000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b81600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b611e76612853565b73ffffffffffffffffffffffffffffffffffffffff16611e94611be6565b73ffffffffffffffffffffffffffffffffffffffff1614611f1d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055505050565b6000805b60108054905081116120c6576001600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060000160009054906101000a900460ff1660ff1614156120b9576120b66120a76010838154811061200857fe5b9060005260206000209060040201604051806080016040529081600082015481526020016001820154815260200160028201548152602001600382015481525050600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008581526020019081526020016000206132f090919063ffffffff16565b836127cb90919063ffffffff16565b91505b8080600101915050611f7d565b50919050565b6000601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061215d612853565b73ffffffffffffffffffffffffffffffffffffffff1661217b611be6565b73ffffffffffffffffffffffffffffffffffffffff1614612204576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff161415801561228f5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff16145b612301576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f7265636f7665727900000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b81600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b6000612355612853565b73ffffffffffffffffffffffffffffffffffffffff16612373611be6565b73ffffffffffffffffffffffffffffffffffffffff16146123fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff161480156124a85750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff16145b80156124e15750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561251a5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61258c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f7265636f7665727900000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b82600a60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156126a95750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612691612853565b73ffffffffffffffffffffffffffffffffffffffff16145b6126fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806138a86026913960400191505060405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008082116127b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b8183816127c257fe5b04905092915050565b600080828401905083811015612849576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156128e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061395e6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612967576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806138ce6022913960400191505060405180910390fd5b80601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612ad8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806139396025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612b5e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806138856023913960400191505060405180910390fd5b6001601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614158015612c0e57506003601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614155b8015612c6a57506002601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614155b8015612cc657506003601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614155b612d38576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5472616e73616374696f6e207265636f7665727900000000000000000000000081525060200191505060405180910390fd5b612d428382613435565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612e0257612dfc81600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600554815260200190815260200160002061372f90919063ffffffff16565b50612e98565b612e5481601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127cb90919063ffffffff16565b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290612faf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612f74578082015181840152602081019050612f59565b50505050905090810190601f168015612fa15780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082840390509392505050565b600082821115613034576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b818303905092915050565b600060106005548154811061305057fe5b90600052602060002090600402016001015442106131a2576010604051806080016040528060106005548154811061308457fe5b90600052602060002090600402016001015481526020016007546010600554815481106130ad57fe5b9060005260206000209060040201600101540181526020016007546008546010600554815481106130da57fe5b9060005260206000209060040201600101540101815260200161313c61271061312e60065460106005548154811061310e57fe5b9060005260206000209060040201600301546131c890919063ffffffff16565b61274290919063ffffffff16565b81525090806001815401808255809150506001900390600052602060002090600402016000909190919091506000820151816000015560208201518160010155604082015181600201556060820151816003015550506001601080549050036005819055505b6010600554815481106131b157fe5b906000526020600020906004020160030154905090565b6000808314156131db5760009050613248565b60008284029050828482816131ec57fe5b0414613243576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806138f06021913960400191505060405180910390fd5b809150505b92915050565b6000613265826004546127cb90919063ffffffff16565b6004819055506000546004541115613281576004546000819055505b6132e582600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600554815260200190815260200160002061372f90919063ffffffff16565b506001905092915050565b6000806000905060018460000160009054906101000a900460ff1660ff1614801561331e5750826020015142115b1561342a5760008084602001518560400151039050600081116133465782935050505061342f565b84604001514210613363578460200151856040015103915061336d565b8460200151420391505b60008211801561337c57508082105b156133e0576133aa8161339c8489600201546131c890919063ffffffff16565b61274290919063ffffffff16565b925085600101548311156133d6576133cf866001015484612fbc90919063ffffffff16565b92506133db565b600092505b613427565b6000821180156133f05750808210155b8015613403575085600101548660020154115b156134265761342386600101548760020154612fbc90919063ffffffff16565b92505b5b50505b809150505b92915050565b8061349061344284611f79565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127cb90919063ffffffff16565b1015613504576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f45524332303a20496e73756666696369656e742062616c616e6365000000000081525060200191505060405180910390fd5b600081905060005b6010805490508111613653576001600f6000613526612853565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060000160009054906101000a900460ff1660ff161415613646576136436010828154811061359b57fe5b906000526020600020906004020160405180608001604052908160008201548152602001600182015481526020016002820154815260200160038201548152505083600f60006135e9612853565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008581526020019081526020016000206137989092919063ffffffff16565b91505b808060010191505061350c565b50600081111561372a576136e6816040518060400160405280601b81526020017f45524332303a20496e73756666696369656e742062616c616e63650000000000815250601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f029092919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505050565b60006137488284600201546127cb90919063ffffffff16565b836002018190555060018360000160009054906101000a900460ff1660ff161461378b5760018360000160006101000a81548160ff021916908360ff1602179055505b8260020154905092915050565b600080821180156137bd575060018460000160009054906101000a900460ff1660ff16145b80156137cd575082602001514210155b156138795760006137de85856132f0565b905080831115613821576137fb8184612fbc90919063ffffffff16565b91506138148186600101546127cb90919063ffffffff16565b8560010181905550613845565b6000915061383c8386600101546127cb90919063ffffffff16565b85600101819055505b84600201548560010154106138735760008560000160006101000a81548160ff021916908360ff1602179055505b5061387d565b8190505b939250505056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a264697066735822122035b8e6c599a95d1536abdffd2170b259ec87a099d5c1ee5aa698dba0e7a7b64464736f6c634300060c0033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c80635a9b0b89116100d1578063ab57c2351161008a578063dd62ed3e11610064578063dd62ed3e146109a2578063e3412e3d14610a27578063f10a779814610a8e578063f2fde38b14610b1557610171565b8063ab57c23514610878578063b044fce0146108df578063bd095f421461093d57610171565b80635a9b0b891461065c578063616eb638146106ba57806370a08231146106d15780638da5cb5b1461073657806395d89b4114610777578063a9059cbb1461080757610171565b8063313ce56711610123578063313ce567146103e9578063355274ea146104175780633f6b6f2e14610442578063459c80a1146104625780634c7e7ee3146104c7578063557ed1ba1461051857610171565b806306fdde0314610180578063095ea7b314610210578063109790311461028157806318160ddd146102d257806323b872dd146102fd5780632fb565e81461038e57610171565b3661017157005b34801561017d57600080fd5b50005b34801561018c57600080fd5b50610195610b66565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101d55780820151818401526020810190506101ba565b50505050905090810190601f1680156102025780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561021c57600080fd5b506102696004803603604081101561023357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c08565b60405180821515815260200191505060405180910390f35b34801561028d57600080fd5b506102d0600480360360208110156102a457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c26565b005b3480156102de57600080fd5b506102e7610d50565b6040518082815260200191505060405180910390f35b34801561030957600080fd5b506103766004803603606081101561032057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d59565b60405180821515815260200191505060405180910390f35b34801561039a57600080fd5b506103d1600480360360408110156103b157600080fd5b810190808035906020019092919080359060200190929190505050610e32565b60405180821515815260200191505060405180910390f35b3480156103f557600080fd5b506103fe611206565b604051808260ff16815260200191505060405180910390f35b34801561042357600080fd5b5061042c61121d565b6040518082815260200191505060405180910390f35b61044a611226565b60405180821515815260200191505060405180910390f35b34801561046e57600080fd5b506104b16004803603602081101561048557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611496565b6040518082815260200191505060405180910390f35b3480156104d357600080fd5b50610500600480360360208110156104ea57600080fd5b81019080803590602001909291905050506115f3565b60405180821515815260200191505060405180910390f35b34801561052457600080fd5b5061052d6116cf565b6040518080602001806020018060200180602001858103855289818151815260200191508051906020019060200280838360005b8381101561057c578082015181840152602081019050610561565b50505050905001858103845288818151815260200191508051906020019060200280838360005b838110156105be5780820151818401526020810190506105a3565b50505050905001858103835287818151815260200191508051906020019060200280838360005b838110156106005780820151818401526020810190506105e5565b50505050905001858103825286818151815260200191508051906020019060200280838360005b83811015610642578082015181840152602081019050610627565b505050509050019850505050505050505060405180910390f35b34801561066857600080fd5b50610671611925565b6040518089151581526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019850505050505050505060405180910390f35b3480156106c657600080fd5b506106cf611a1a565b005b3480156106dd57600080fd5b50610720600480360360208110156106f457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b93565b6040518082815260200191505060405180910390f35b34801561074257600080fd5b5061074b611be6565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561078357600080fd5b5061078c611c10565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107cc5780820151818401526020810190506107b1565b50505050905090810190601f1680156107f95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561081357600080fd5b506108606004803603604081101561082a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611cb2565b60405180821515815260200191505060405180910390f35b34801561088457600080fd5b506108c76004803603602081101561089b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cd0565b60405180821515815260200191505060405180910390f35b3480156108eb57600080fd5b5061093b6004803603604081101561090257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050611e6e565b005b34801561094957600080fd5b5061098c6004803603602081101561096057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f79565b6040518082815260200191505060405180910390f35b3480156109ae57600080fd5b50610a11600480360360408110156109c557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120cc565b6040518082815260200191505060405180910390f35b348015610a3357600080fd5b50610a7660048036036020811015610a4a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612153565b60405180821515815260200191505060405180910390f35b348015610a9a57600080fd5b50610afd60048036036040811015610ab157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061234b565b60405180821515815260200191505060405180910390f35b348015610b2157600080fd5b50610b6460048036036020811015610b3857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612618565b005b606060018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bfe5780601f10610bd357610100808354040283529160200191610bfe565b820191906000526020600020905b815481529060010190602001808311610be157829003601f168201915b5050505050905090565b6000610c1c610c15612853565b848461285b565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015610cb75750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c9f612853565b73ffffffffffffffffffffffffffffffffffffffff16145b610d0c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806138a86026913960400191505060405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054905090565b6000610d66848484612a52565b610e2784610d72612853565b610e228560405180606001604052806028815260200161391160289139601360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610dd8612853565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f029092919063ffffffff16565b61285b565b600190509392505050565b6000610e3c612853565b73ffffffffffffffffffffffffffffffffffffffff16610e5a611be6565b73ffffffffffffffffffffffffffffffffffffffff1614610ee3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001600e5414610f5b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5065726d697373696f6e2064656e69656400000000000000000000000000000081525060200191505060405180910390fd5b6001831415610f865760018214600a60006101000a81548160ff0219169083151502179055506111f4565b6002831415610f9b57816006819055506111f3565b6003831415610fb057816007819055506111f2565b6004831415610fc557816009819055506111f1565b6005831480156110245750600073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b15611094578160116000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506111f0565b620186a083101580156110a9575062030d4083105b156110eb578160106110c7620186a086612fbc90919063ffffffff16565b815481106110d157fe5b9060005260206000209060040201600001819055506111ef565b62030d4083101580156111005750620493e083105b156111425781601061111e62030d4086612fbc90919063ffffffff16565b8154811061112857fe5b9060005260206000209060040201600101819055506111ee565b620493e08310158015611157575062061a8083105b1561119957816010611175620493e086612fbc90919063ffffffff16565b8154811061117f57fe5b9060005260206000209060040201600201819055506111ed565b62061a8083101580156111ae57506207a12083105b156111ec578160106111cc62061a8086612fbc90919063ffffffff16565b815481106111d657fe5b9060005260206000209060040201600301819055505b5b5b5b5b5b5b5b5b6000600e819055506001905092915050565b6000600360009054906101000a900460ff16905090565b60008054905090565b60006009543410156112a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f54686520616d6f756e7420697320746f6f20736d616c6c00000000000000000081525060200191505060405180910390fd5b600a60009054906101000a900460ff16611322576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f456e64206f66207468697320726f756e6400000000000000000000000000000081525060200191505060405180910390fd5b6000349050600061134361133461303f565b836131c890919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461140557600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015611403573d6000803e3d6000fd5b505b600081111561148d5761141f611419612853565b8261324e565b50611428612853565b73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b60019250505090565b6000805b60108054905081116115ed576001600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060000160009054906101000a900460ff1660ff1614156115e0576115dd6115ce600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060010154600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085815260200190815260200160002060020154612fbc90919063ffffffff16565b836127cb90919063ffffffff16565b91505b808060010191505061149a565b50919050565b6000600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611636612853565b73ffffffffffffffffffffffffffffffffffffffff16146116bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5065726d697373696f6e2064656e69656400000000000000000000000000000081525060200191505060405180910390fd5b81600e8190555060019050919050565b606080606080606060108054905067ffffffffffffffff811180156116f357600080fd5b506040519080825280602002602001820160405280156117225781602001602082028036833780820191505090505b509050606060108054905067ffffffffffffffff8111801561174357600080fd5b506040519080825280602002602001820160405280156117725781602001602082028036833780820191505090505b509050606060108054905067ffffffffffffffff8111801561179357600080fd5b506040519080825280602002602001820160405280156117c25781602001602082028036833780820191505090505b509050606060108054905067ffffffffffffffff811180156117e357600080fd5b506040519080825280602002602001820160405280156118125781602001602082028036833780820191505090505b50905060005b60108054905081101561190e576010818154811061183257fe5b90600052602060002090600402016000015485828151811061185057fe5b6020026020010181815250506010818154811061186957fe5b90600052602060002090600402016001015484828151811061188757fe5b602002602001018181525050601081815481106118a057fe5b9060005260206000209060040201600301548382815181106118be57fe5b602002602001018181525050601081815481106118d757fe5b9060005260206000209060040201600201548282815181106118f557fe5b6020026020010181815250508080600101915050611818565b508383828497509750975097505050505090919293565b600080600080600080600080600a60009054906101000a900460ff169750600954915060106005548154811061195757fe5b9060005260206000209060040201600301549650611973612853565b73ffffffffffffffffffffffffffffffffffffffff1631945061199c611997612853565b611b93565b9250611a066119b16119ac612853565b611f79565b601160006119bd612853565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127cb90919063ffffffff16565b935042905060055495509091929394959697565b611a22612853565b73ffffffffffffffffffffffffffffffffffffffff16611a40611be6565b73ffffffffffffffffffffffffffffffffffffffff1614611ac9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6103e8600e5414611b42576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5065726d697373696f6e2064656e69656400000000000000000000000000000081525060200191505060405180910390fd5b6000600e819055503373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611b90573d6000803e3d6000fd5b50565b6000611b9e82611496565b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054019050919050565b6000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611ca85780601f10611c7d57610100808354040283529160200191611ca8565b820191906000526020600020905b815481529060010190602001808311611c8b57829003601f168201915b5050505050905090565b6000611cc6611cbf612853565b8484612a52565b6001905092915050565b6000611cda612853565b73ffffffffffffffffffffffffffffffffffffffff16611cf8611be6565b73ffffffffffffffffffffffffffffffffffffffff1614611d81576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff161415611e24576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f7265636f7665727900000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b81600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b611e76612853565b73ffffffffffffffffffffffffffffffffffffffff16611e94611be6565b73ffffffffffffffffffffffffffffffffffffffff1614611f1d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055505050565b6000805b60108054905081116120c6576001600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060000160009054906101000a900460ff1660ff1614156120b9576120b66120a76010838154811061200857fe5b9060005260206000209060040201604051806080016040529081600082015481526020016001820154815260200160028201548152602001600382015481525050600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008581526020019081526020016000206132f090919063ffffffff16565b836127cb90919063ffffffff16565b91505b8080600101915050611f7d565b50919050565b6000601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061215d612853565b73ffffffffffffffffffffffffffffffffffffffff1661217b611be6565b73ffffffffffffffffffffffffffffffffffffffff1614612204576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff161415801561228f5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff16145b612301576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f7265636f7665727900000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b81600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b6000612355612853565b73ffffffffffffffffffffffffffffffffffffffff16612373611be6565b73ffffffffffffffffffffffffffffffffffffffff16146123fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff161480156124a85750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff16145b80156124e15750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561251a5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61258c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f7265636f7665727900000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b82600a60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156126a95750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612691612853565b73ffffffffffffffffffffffffffffffffffffffff16145b6126fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806138a86026913960400191505060405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008082116127b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b8183816127c257fe5b04905092915050565b600080828401905083811015612849576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156128e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061395e6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612967576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806138ce6022913960400191505060405180910390fd5b80601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612ad8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806139396025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612b5e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806138856023913960400191505060405180910390fd5b6001601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614158015612c0e57506003601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614155b8015612c6a57506002601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614155b8015612cc657506003601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614155b612d38576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5472616e73616374696f6e207265636f7665727900000000000000000000000081525060200191505060405180910390fd5b612d428382613435565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612e0257612dfc81600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600554815260200190815260200160002061372f90919063ffffffff16565b50612e98565b612e5481601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127cb90919063ffffffff16565b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290612faf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612f74578082015181840152602081019050612f59565b50505050905090810190601f168015612fa15780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082840390509392505050565b600082821115613034576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b818303905092915050565b600060106005548154811061305057fe5b90600052602060002090600402016001015442106131a2576010604051806080016040528060106005548154811061308457fe5b90600052602060002090600402016001015481526020016007546010600554815481106130ad57fe5b9060005260206000209060040201600101540181526020016007546008546010600554815481106130da57fe5b9060005260206000209060040201600101540101815260200161313c61271061312e60065460106005548154811061310e57fe5b9060005260206000209060040201600301546131c890919063ffffffff16565b61274290919063ffffffff16565b81525090806001815401808255809150506001900390600052602060002090600402016000909190919091506000820151816000015560208201518160010155604082015181600201556060820151816003015550506001601080549050036005819055505b6010600554815481106131b157fe5b906000526020600020906004020160030154905090565b6000808314156131db5760009050613248565b60008284029050828482816131ec57fe5b0414613243576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806138f06021913960400191505060405180910390fd5b809150505b92915050565b6000613265826004546127cb90919063ffffffff16565b6004819055506000546004541115613281576004546000819055505b6132e582600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600554815260200190815260200160002061372f90919063ffffffff16565b506001905092915050565b6000806000905060018460000160009054906101000a900460ff1660ff1614801561331e5750826020015142115b1561342a5760008084602001518560400151039050600081116133465782935050505061342f565b84604001514210613363578460200151856040015103915061336d565b8460200151420391505b60008211801561337c57508082105b156133e0576133aa8161339c8489600201546131c890919063ffffffff16565b61274290919063ffffffff16565b925085600101548311156133d6576133cf866001015484612fbc90919063ffffffff16565b92506133db565b600092505b613427565b6000821180156133f05750808210155b8015613403575085600101548660020154115b156134265761342386600101548760020154612fbc90919063ffffffff16565b92505b5b50505b809150505b92915050565b8061349061344284611f79565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127cb90919063ffffffff16565b1015613504576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f45524332303a20496e73756666696369656e742062616c616e6365000000000081525060200191505060405180910390fd5b600081905060005b6010805490508111613653576001600f6000613526612853565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060000160009054906101000a900460ff1660ff161415613646576136436010828154811061359b57fe5b906000526020600020906004020160405180608001604052908160008201548152602001600182015481526020016002820154815260200160038201548152505083600f60006135e9612853565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008581526020019081526020016000206137989092919063ffffffff16565b91505b808060010191505061350c565b50600081111561372a576136e6816040518060400160405280601b81526020017f45524332303a20496e73756666696369656e742062616c616e63650000000000815250601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f029092919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505050565b60006137488284600201546127cb90919063ffffffff16565b836002018190555060018360000160009054906101000a900460ff1660ff161461378b5760018360000160006101000a81548160ff021916908360ff1602179055505b8260020154905092915050565b600080821180156137bd575060018460000160009054906101000a900460ff1660ff16145b80156137cd575082602001514210155b156138795760006137de85856132f0565b905080831115613821576137fb8184612fbc90919063ffffffff16565b91506138148186600101546127cb90919063ffffffff16565b8560010181905550613845565b6000915061383c8386600101546127cb90919063ffffffff16565b85600101819055505b84600201548560010154106138735760008560000160006101000a81548160ff021916908360ff1602179055505b5061387d565b8190505b939250505056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a264697066735822122035b8e6c599a95d1536abdffd2170b259ec87a099d5c1ee5aa698dba0e7a7b64464736f6c634300060c0033

Deployed Bytecode Sourcemap

7625:14725:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9827:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17614:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;12365:200;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11344:91;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17163:304;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19208:932;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11028:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11195;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21794:551;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15573:338;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11838:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;21059:727;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20519:532;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17774:176;;;;;;;;;;;;;:::i;:::-;;11498:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9991:87;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10197;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20353:158;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13040:170;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17958:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15236:329;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11694:136;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12832:200;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;12573:251;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;12159:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9827:83;9864:13;9897:5;9890:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9827:83;:::o;17614:152::-;17680:4;17697:39;17706:12;:10;:12::i;:::-;17720:7;17729:6;17697:8;:39::i;:::-;17754:4;17747:11;;17614:152;;;;:::o;12365:200::-;12452:1;12430:24;;:10;:24;;;;:50;;;;;12474:6;;;;;;;;;;;12458:22;;:12;:10;:12::i;:::-;:22;;;12430:50;12422:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12547:10;12534;;:23;;;;;;;;;;;;;;;;;;12365:200;:::o;11344:91::-;11388:7;11415:12;;11408:19;;11344:91;:::o;17163:304::-;17252:4;17269:36;17279:6;17287:9;17298:6;17269:9;:36::i;:::-;17316:121;17325:6;17333:12;:10;:12::i;:::-;17347:89;17385:6;17347:89;;;;;;;;;;;;;;;;;:11;:19;17359:6;17347:19;;;;;;;;;;;;;;;:33;17367:12;:10;:12::i;:::-;17347:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;17316:8;:121::i;:::-;17455:4;17448:11;;17163:304;;;;;:::o;19208:932::-;19275:4;9321:12;:10;:12::i;:::-;9310:23;;:7;:5;:7::i;:::-;:23;;;9302:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19309:1:::1;19299:8;;:11;19291:41;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;19351:1;19346:3;:6;19343:745;;;19387:1;19378:5;:10;19368:7;;:20;;;;;;;;;;;;;;;;;;19343:745;;;19413:1;19408:3;:6;19405:683;;;19443:5;19430:10;:18;;;;19405:683;;;19473:1;19468:3;:6;19465:623;;;19504:5;19490:11;:19;;;;19465:623;;;19534:1;19529:3;:6;19526:562;;;19562:5;19551:8;:16;;;;19526:562;;;19592:1;19587:3;:6;:30;;;;;19615:1;19595:22;;:10;;;;;;;;;;;:22;;;;19587:30;19584:504;;;19657:5;19633:9;:21;19643:10;;;;;;;;;;;19633:21;;;;;;;;;;;;;;;:29;;;;19584:504;;;19687:6;19682:3;:11;;:23;;;;;19699:6;19695:3;:10;19682:23;19679:409;;;19761:5;19721:10;19732:15;19740:6;19732:3;:7;;:15;;;;:::i;:::-;19721:27;;;;;;;;;;;;;;;;;;:37;;:45;;;;19679:409;;;19791:6;19786:3;:11;;:23;;;;;19803:6;19799:3;:10;19786:23;19783:305;;;19863:5;19825:10;19836:15;19844:6;19836:3;:7;;:15;;;;:::i;:::-;19825:27;;;;;;;;;;;;;;;;;;:35;;:43;;;;19783:305;;;19893:6;19888:3;:11;;:23;;;;;19905:6;19901:3;:10;19888:23;19885:203;;;19971:5;19927:10;19938:15;19946:6;19938:3;:7;;:15;;;;:::i;:::-;19927:27;;;;;;;;;;;;;;;;;;:41;;:49;;;;19885:203;;;20001:6;19996:3;:11;;:23;;;;;20013:6;20009:3;:10;19996:23;19993:95;;;20071:5;20035:10;20046:15;20054:6;20046:3;:7;;:15;;;;:::i;:::-;20035:27;;;;;;;;;;;;;;;;;;:33;;:41;;;;19993:95;19885:203;19783:305;19679:409;19584:504;19526:562;19465:623;19405:683;19343:745;20109:1;20098:8;:12;;;;20128:4;20121:11;;19208:932:::0;;;;:::o;11028:83::-;11069:5;11094:9;;;;;;;;;;;11087:16;;11028:83;:::o;11195:::-;11231:7;11258:12;;11251:19;;11195:83;:::o;21794:551::-;21836:4;21873:8;;21860:9;:21;;21852:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21927:7;;;;;;;;;;;21919:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21966:17;21986:9;21966:29;;22006:14;22023:30;22037:15;:13;:15::i;:::-;22023:9;:13;;:30;;;;:::i;:::-;22006:47;;22087:1;22067:22;;:10;;;;;;;;;;;:22;;;22064:101;;22121:10;;;;;;;;;;;22105:37;;:48;22143:9;22105:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22064:101;22185:1;22178:6;:8;22175:141;;;22202:37;22219:12;:10;:12::i;:::-;22232:6;22202:16;:37::i;:::-;;22283:12;:10;:12::i;:::-;22259:45;;22276:4;22259:45;;;22297:6;22259:45;;;;;;;;;;;;;;;;;;22175:141;22333:4;22326:11;;;;21794:551;:::o;15573:338::-;15629:15;15682:9;15678:226;15697:10;:17;;;;15694:1;:20;15678:226;;15769:1;15737:14;:20;15752:4;15737:20;;;;;;;;;;;;;;;:23;15758:1;15737:23;;;;;;;;;;;:30;;;;;;;;;;;;:33;;;15734:159;;;15800:77;15812:64;15846:14;:20;15861:4;15846:20;;;;;;;;;;;;;;;:23;15867:1;15846:23;;;;;;;;;;;:29;;;15812:14;:20;15827:4;15812:20;;;;;;;;;;;;;;;:23;15833:1;15812:23;;;;;;;;;;;:29;;;:33;;:64;;;;:::i;:::-;15800:7;:11;;:77;;;;:::i;:::-;15790:87;;15734:159;15715:3;;;;;;;15678:226;;;;15573:338;;;:::o;11838:166::-;11882:4;11922:5;;;;;;;;;;;11906:21;;:12;:10;:12::i;:::-;:21;;;11898:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11971:3;11960:8;:14;;;;11992:4;11985:11;;11838:166;;;:::o;21059:727::-;21098:16;21115;21132;21149;21177:26;21220:10;:17;;;;21206:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21177:61;;21249:24;21290:10;:17;;;;21276:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21249:59;;21319:22;21358:10;:17;;;;21344:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21319:57;;21387:30;21434:10;:17;;;;21420:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21387:65;;21467:6;21463:259;21480:10;:17;;;;21478:1;:19;21463:259;;;21532:10;21543:1;21532:13;;;;;;;;;;;;;;;;;;:23;;;21517:9;21527:1;21517:12;;;;;;;;;;;;;:38;;;;;21583:10;21594:1;21583:13;;;;;;;;;;;;;;;;;;:21;;;21570:7;21578:1;21570:10;;;;;;;;;;;;;:34;;;;;21630:10;21641:1;21630:13;;;;;;;;;;;;;;;;;;:19;;;21619:5;21625:1;21619:8;;;;;;;;;;;;;:30;;;;;21683:10;21694:1;21683:13;;;;;;;;;;;;;;;;;;:27;;;21664:13;21678:1;21664:16;;;;;;;;;;;;;:46;;;;;21498:3;;;;;;;21463:259;;;;21740:9;21750:7;21758:13;21772:5;21732:46;;;;;;;;;;;;21059:727;;;;:::o;20519:532::-;20558:11;20570:17;20588:18;20617;20636:15;20652:13;20666:15;20682;20718:7;;;;;;;;;;;20709:16;;20746:8;;20736:18;;20777:10;20788:11;;20777:23;;;;;;;;;;;;;;;;;;:29;;;20765:41;;20830:12;:10;:12::i;:::-;:20;;;20817:33;;20869:23;20879:12;:10;:12::i;:::-;20869:9;:23::i;:::-;20861:31;;20913:59;20941:30;20958:12;:10;:12::i;:::-;20941:16;:30::i;:::-;20913:9;:23;20923:12;:10;:12::i;:::-;20913:23;;;;;;;;;;;;;;;;:27;;:59;;;;:::i;:::-;20903:69;;20993:15;20983:25;;21032:11;;21019:24;;20519:532;;;;;;;;:::o;17774:176::-;9321:12;:10;:12::i;:::-;9310:23;;:7;:5;:7::i;:::-;:23;;;9302:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17842:4:::1;17832:8;;:14;17824:44;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;17888:1;17879:8;:10;;;;17900;:19;;:42;17920:21;17900:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;17774:176::o:0;11498:133::-;11555:7;11601:22;11615:7;11601:13;:22::i;:::-;11582:9;:18;11592:7;11582:18;;;;;;;;;;;;;;;;:41;11575:48;;11498:133;;;:::o;9991:87::-;10037:7;10064:6;;;;;;;;;;;10057:13;;9991:87;:::o;10197:::-;10236:13;10269:7;10262:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10197:87;:::o;20353:158::-;20422:4;20439:42;20449:12;:10;:12::i;:::-;20463:9;20474:6;20439:9;:42::i;:::-;20499:4;20492:11;;20353:158;;;;:::o;13040:170::-;13099:4;9321:12;:10;:12::i;:::-;9310:23;;:7;:5;:7::i;:::-;:23;;;9302:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13137:4:::1;13123:18;;13131:1;13123:18;;;;13115:39;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;13176:4;13165:8;;:15;;;;;;;;;;;;;;;;;;13198:4;13191:11;;13040:170:::0;;;:::o;17958:103::-;9321:12;:10;:12::i;:::-;9310:23;;:7;:5;:7::i;:::-;:23;;;9302:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18047:6:::1;18030;:14;18037:6;18030:14;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;17958:103:::0;;:::o;15236:329::-;15295:15;15348:9;15344:214;15363:10;:17;;;;15360:1;:20;15344:214;;15435:1;15403:14;:20;15418:4;15403:20;;;;;;;;;;;;;;;:23;15424:1;15403:23;;;;;;;;;;;:30;;;;;;;;;;;;:33;;;15400:147;;;15466:65;15478:52;15516:10;15527:1;15516:13;;;;;;;;;;;;;;;;;;15478:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:14;:20;15493:4;15478:20;;;;;;;;;;;;;;;:23;15499:1;15478:23;;;;;;;;;;;:37;;:52;;;;:::i;:::-;15466:7;:11;;:65;;;;:::i;:::-;15456:75;;15400:147;15381:3;;;;;;;15344:214;;;;15236:329;;;:::o;11694:136::-;11767:7;11794:11;:19;11806:6;11794:19;;;;;;;;;;;;;;;:28;11814:7;11794:28;;;;;;;;;;;;;;;;11787:35;;11694:136;;;;:::o;12832:200::-;12893:4;9321:12;:10;:12::i;:::-;9310:23;;:7;:5;:7::i;:::-;:23;;;9302:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12931:4:::1;12917:18;;12925:1;12917:18;;;;:44;;;;;12951:10;;;;;;;;;;;12937:24;;12945:1;12937:24;;;12917:44;12909:65;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;12998:4;12985:10;;:17;;;;;;;;;;;;;;;;;;13020:4;13013:11;;12832:200:::0;;;:::o;12573:251::-;12639:4;9321:12;:10;:12::i;:::-;9310:23;;:7;:5;:7::i;:::-;:23;;;9302:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12677:5:::1;;;;;;;;;;;12663:19;;12671:1;12663:19;;;:41;;;;;12698:6;;;;;;;;;;;12684:20;;12692:1;12684:20;;;12663:41;:57;;;;;12718:1;12706:14;;:2;:14;;;;12663:57;:74;;;;;12735:1;12722:15;;:3;:15;;;;12663:74;12655:95;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;12769:2;12761:5;;:10;;;;;;;;;;;;;;;;;;12791:3;12782:6;;:12;;;;;;;;;;;;;;;;;;12812:4;12805:11;;12573:251:::0;;;;:::o;12159:198::-;12250:1;12230:22;;:8;:22;;;;:48;;;;;12272:6;;;;;;;;;;;12256:22;;:12;:10;:12::i;:::-;:22;;;12230:48;12222:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12341:8;12332:6;;:17;;;;;;;;;;;;;;;;;;12159:198;:::o;2477:153::-;2535:7;2567:1;2563;:5;2555:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2621:1;2617;:5;;;;;;2610:12;;2477:153;;;;:::o;900:179::-;958:7;978:9;994:1;990;:5;978:17;;1019:1;1014;:6;;1006:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1070:1;1063:8;;;900:179;;;;:::o;10292:98::-;10337:15;10372:10;10365:17;;10292:98;:::o;16349:340::-;16462:1;16444:20;;:6;:20;;;;16436:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16543:1;16524:21;;:7;:21;;;;16516:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16626:6;16595:11;:19;16607:6;16595:19;;;;;;;;;;;;;;;:28;16615:7;16595:28;;;;;;;;;;;;;;;:37;;;;16665:7;16648:33;;16657:6;16648:33;;;16674:6;16648:33;;;;;;;;;;;;;;;;;;16349:340;;;:::o;18551:649::-;18667:1;18649:20;;:6;:20;;;;18641:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18751:1;18730:23;;:9;:23;;;;18722:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18828:1;18812:6;:14;18819:6;18812:14;;;;;;;;;;;;;;;;;;;;;;;;;:17;;;;:36;;;;;18847:1;18831:6;:14;18838:6;18831:14;;;;;;;;;;;;;;;;;;;;;;;;;:17;;;;18812:36;:58;;;;;18869:1;18850:6;:17;18857:9;18850:17;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;;18812:58;:80;;;;;18891:1;18872:6;:17;18879:9;18872:17;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;;18812:80;18804:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18928:20;18934:6;18941;18928:5;:20::i;:::-;18970:8;;;;;;;;;;;18962:16;;:6;:16;;;18959:183;;;18994:50;19037:6;18994:14;:25;19009:9;18994:25;;;;;;;;;;;;;;;:38;19020:11;;18994:38;;;;;;;;;;;:42;;:50;;;;:::i;:::-;;18959:183;;;19098:32;19123:6;19098:9;:20;19108:9;19098:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;19075:9;:20;19085:9;19075:20;;;;;;;;;;;;;;;:55;;;;18959:183;19174:9;19157:35;;19166:6;19157:35;;;19185:6;19157:35;;;;;;;;;;;;;;;;;;18551:649;;;:::o;3110:166::-;3196:7;3229:1;3224;:6;;3232:12;3216:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3267:1;3263;:5;3256:12;;3110:166;;;;;:::o;1362:158::-;1420:7;1453:1;1448;:6;;1440:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1511:1;1507;:5;1500:12;;1362:158;;;;:::o;14650:578::-;14690:7;14731:10;14742:11;;14731:23;;;;;;;;;;;;;;;;;;:31;;;14712:15;:50;14709:465;;14778:10;14794:303;;;;;;;;14832:10;14843:11;;14832:23;;;;;;;;;;;;;;;;;;:31;;;14794:303;;;;14914:11;;14882:10;14893:11;;14882:23;;;;;;;;;;;;;;;;;;:31;;;:43;14794:303;;;;14992:11;;14976:15;;14944:10;14955:11;;14944:23;;;;;;;;;;;;;;;;;;:31;;;:47;:59;14794:303;;;;15022:56;15072:5;15022:45;15056:10;;15022;15033:11;;15022:23;;;;;;;;;;;;;;;;;;:29;;;:33;;:45;;;;:::i;:::-;:49;;:56;;;;:::i;:::-;14794:303;;;14778:334;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15161:1;15141:10;:17;;;;:21;15127:11;:35;;;;14709:465;15191:10;15202:11;;15191:23;;;;;;;;;;;;;;;;;;:29;;;15184:36;;14650:578;:::o;1779:220::-;1837:7;1866:1;1861;:6;1857:20;;;1876:1;1869:8;;;;1857:20;1888:9;1904:1;1900;:5;1888:17;;1933:1;1928;1924;:5;;;;;;:10;1916:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1990:1;1983:8;;;1779:220;;;;;:::o;13789:277::-;13863:4;13886:16;13895:6;13886:4;;:8;;:16;;;;:::i;:::-;13879:4;:23;;;;13921:12;;13916:4;;:17;13913:65;;;13962:4;;13949:12;:17;;;;13913:65;13988:48;14029:6;13988:14;:23;14003:7;13988:23;;;;;;;;;;;;;;;:36;14012:11;;13988:36;;;;;;;;;;;:40;;:48;;;;:::i;:::-;;14054:4;14047:11;;13789:277;;;;:::o;4677:1050::-;4777:7;4796:15;4814:1;4796:19;;4843:1;4829:5;:12;;;;;;;;;;;;:15;;;:50;;;;;4862:9;:17;;;4846:15;:33;4829:50;4826:869;;;4895:11;4925;4965:9;:17;;;4939:9;:23;;;:43;4925:57;;5005:1;5000:3;:6;4997:59;;5033:7;5026:14;;;;;;;4997:59;5092:9;:23;;;5073:15;:42;5070:210;;5167:9;:17;;;5141:9;:23;;;:43;5135:49;;5070:210;;;5247:9;:17;;;5229:15;:35;5223:41;;5070:210;5301:1;5297:3;:5;:14;;;;;5308:3;5304;:7;5297:14;5294:390;;;5341:29;5366:3;5341:20;5357:3;5341:5;:11;;;:15;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;5331:39;;5400:5;:11;;;5392:7;:19;5389:158;;;5445:24;5457:5;:11;;;5445:7;:11;;:24;;;;:::i;:::-;5435:34;;5389:158;;;5526:1;5516:11;;5389:158;5294:390;;;5574:1;5570:3;:5;:15;;;;;5582:3;5577;:8;;5570:15;:40;;;;;5599:5;:11;;;5587:5;:11;;;:23;5570:40;5567:117;;;5640:28;5656:5;:11;;;5640:5;:11;;;:15;;:28;;;;:::i;:::-;5630:38;;5567:117;5294:390;4826:869;;;5712:7;5705:14;;;4677:1050;;;;;:::o;14074:568::-;14201:6;14148:49;14171:25;14188:7;14171:16;:25::i;:::-;14148:9;:18;14158:7;14148:18;;;;;;;;;;;;;;;;:22;;:49;;;;:::i;:::-;:59;;14140:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14249:15;14267:6;14249:24;;14288:9;14284:218;14303:10;:17;;;;14300:1;:20;14284:218;;14383:1;14343:14;:28;14358:12;:10;:12::i;:::-;14343:28;;;;;;;;;;;;;;;:31;14372:1;14343:31;;;;;;;;;;;:38;;;;;;;;;;;;:41;;;14340:151;;;14414:61;14453:10;14464:1;14453:13;;;;;;;;;;;;;;;;;;14414:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14467:7;14414:14;:28;14429:12;:10;:12::i;:::-;14414:28;;;;;;;;;;;;;;;:31;14443:1;14414:31;;;;;;;;;;;:38;;:61;;;;;:::i;:::-;14404:71;;14340:151;14321:3;;;;;;;14284:218;;;;14523:1;14515:7;:9;14512:123;;;14561:62;14584:7;14561:62;;;;;;;;;;;;;;;;;:9;:18;14571:7;14561:18;;;;;;;;;;;;;;;;:22;;:62;;;;;:::i;:::-;14540:9;:18;14550:7;14540:18;;;;;;;;;;;;;;;:83;;;;14512:123;14074:568;;;:::o;4433:236::-;4506:7;4539:23;4555:6;4539:5;:11;;;:15;;:23;;;;:::i;:::-;4525:5;:11;;:37;;;;4590:1;4576:5;:12;;;;;;;;;;;;:15;;;4573:60;;4620:1;4607:5;:12;;;:14;;;;;;;;;;;;;;;;;;4573:60;4650:5;:11;;;4643:18;;4433:236;;;;:::o;5735:696::-;5838:15;5897:1;5890:6;:8;:25;;;;;5914:1;5900:5;:12;;;;;;;;;;;;:15;;;5890:25;:61;;;;;5934:9;:17;;;5917:15;:34;;5890:61;5887:537;;;5967:15;5985:30;5999:5;6005:9;5985:13;:30::i;:::-;5967:48;;6040:7;6033:6;:14;6030:245;;;6077:19;6088:7;6077:6;:10;;:19;;;;:::i;:::-;6067:29;;6129:24;6145:7;6129:5;:11;;;:15;;:24;;;;:::i;:::-;6115:5;:11;;:38;;;;6030:245;;;6202:1;6192:11;;6236:23;6252:6;6236:5;:11;;;:15;;:23;;;;:::i;:::-;6222:5;:11;;:37;;;;6030:245;6305:5;:11;;;6292:5;:11;;;:24;6289:77;;6349:1;6336:5;:12;;;:14;;;;;;;;;;;;;;;;;;6289:77;5887:537;;;;6406:6;6396:16;;5887:537;5735:696;;;;;:::o

Swarm Source

ipfs://35b8e6c599a95d1536abdffd2170b259ec87a099d5c1ee5aa698dba0e7a7b644
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.