ETH Price: $2,427.80 (+0.15%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Withdraw122417062021-04-15 1:34:421299 days ago1618450482IN
0x800dcDd4...e29fF3709
0 ETH0.008354790.00000134
Get Reward122416962021-04-15 1:33:001299 days ago1618450380IN
0x800dcDd4...e29fF3709
0 ETH0.0186181393.00000072
Withdraw122104802021-04-10 6:19:311304 days ago1618035571IN
0x800dcDd4...e29fF3709
0 ETH0.00956272103
Get Reward122104782021-04-10 6:18:391304 days ago1618035519IN
0x800dcDd4...e29fF3709
0 ETH0.01170693
Continue Staking121683262021-04-03 18:49:521310 days ago1617475792IN
0x800dcDd4...e29fF3709
0 ETH0.01765452120
Get Reward121199522021-03-27 8:00:511318 days ago1616832051IN
0x800dcDd4...e29fF3709
0 ETH0.0179345785
Get Reward118278992021-02-10 9:19:121363 days ago1612948752IN
0x800dcDd4...e29fF3709
0 ETH0.02703689215
Withdraw118278952021-02-10 9:18:391363 days ago1612948719IN
0x800dcDd4...e29fF3709
0 ETH0.03229413196
Continue Staking115711762021-01-01 22:37:011402 days ago1609540621IN
0x800dcDd4...e29fF3709
0 ETH0.0051144840
Continue Staking114968622020-12-21 12:50:351414 days ago1608555035IN
0x800dcDd4...e29fF3709
0 ETH0.0061373748
Get Reward114510462020-12-14 12:08:381421 days ago1607947718IN
0x800dcDd4...e29fF3709
0 ETH0.009039840
Get Reward114339202020-12-11 20:52:411423 days ago1607719961IN
0x800dcDd4...e29fF3709
0 ETH0.0026282320.9
Withdraw114339162020-12-11 20:52:021423 days ago1607719922IN
0x800dcDd4...e29fF3709
0 ETH0.0016711518.00000145
Withdraw114304512020-12-11 8:11:471424 days ago1607674307IN
0x800dcDd4...e29fF3709
0 ETH0.0044564148
Get Reward114304322020-12-11 8:06:501424 days ago1607674010IN
0x800dcDd4...e29fF3709
0 ETH0.0062935550
Withdraw114173882020-12-09 7:41:541426 days ago1607499714IN
0x800dcDd4...e29fF3709
0 ETH0.0019589621.1
Get Reward114127502020-12-08 14:43:431427 days ago1607438623IN
0x800dcDd4...e29fF3709
0 ETH0.0073802354.00000145
Stake114086792020-12-07 23:42:381427 days ago1607384558IN
0x800dcDd4...e29fF3709
0 ETH0.0035208635
Withdraw114085612020-12-07 23:16:531427 days ago1607383013IN
0x800dcDd4...e29fF3709
0 ETH0.0038823136
Get Reward114084802020-12-07 22:58:321427 days ago1607381912IN
0x800dcDd4...e29fF3709
0 ETH0.004838331.9
Continue Staking114052832020-12-07 11:06:341428 days ago1607339194IN
0x800dcDd4...e29fF3709
0 ETH0.0044751735.00000145
Get Reward113987062020-12-06 10:51:331429 days ago1607251893IN
0x800dcDd4...e29fF3709
0 ETH0.0025967419.00000145
Get Reward113982182020-12-06 9:05:171429 days ago1607245517IN
0x800dcDd4...e29fF3709
0 ETH0.0028923123
Get Reward113882352020-12-04 20:04:161430 days ago1607112256IN
0x800dcDd4...e29fF3709
0 ETH0.0024395717.85
Get Reward113821122020-12-03 21:30:141431 days ago1607031014IN
0x800dcDd4...e29fF3709
0 ETH0.0035534426
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BerserkETHPool

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-11-10
*/

pragma solidity ^0.5.5;

library Math {

    function max(uint256 a, uint256 b) internal pure returns (uint256) {
        return a >= b ? a : b;
    }

    function min(uint256 a, uint256 b) internal pure returns (uint256) {
        return a < b ? a : b;
    }

    function average(uint256 a, uint256 b) internal pure returns (uint256) {
        return (a / 2) + (b / 2) + ((a % 2 + b % 2) / 2);
    }
}


library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

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

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

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

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

pragma solidity ^0.5.0;

contract Context {
    constructor () internal {}
    function _msgSender() internal view returns (address payable) {
        return msg.sender;
    }
    function _msgData() internal view returns (bytes memory) {
        this;
        return msg.data;
    }
}

pragma solidity ^0.5.0;

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () internal {
        _owner = _msgSender();
        emit OwnershipTransferred(address(0), _owner);
    }
    function owner() public view returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(isOwner(), "Ownable: caller is not the owner");
        _;
    }
    function isOwner() public view returns (bool) {
        return _msgSender() == _owner;
    }

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

    function transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

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

pragma solidity ^0.5.0;

interface IERC20 {

    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function mint(address account, uint amount) external;
    function burn(uint amount) external;
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}


pragma solidity ^0.5.5;


library Address {

    function isContract(address account) internal view returns (bool) {
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly {codehash := extcodehash(account)}
        return (codehash != 0x0 && codehash != accountHash);
    }

    function toPayable(address account) internal pure returns (address payable) {
        return address(uint160(account));
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-call-value
        (bool success,) = recipient.call.value(amount)("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}


pragma solidity ^0.5.0;

library SafeERC20 {
    using SafeMath for uint256;
    using Address for address;

    function safeTransfer(IERC20 token, address to, uint256 value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }

    function safeApprove(IERC20 token, address spender, uint256 value) internal {
        require((value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );
        callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }

    function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {
        uint256 newAllowance = token.allowance(address(this), spender).add(value);
        callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
    }

    function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal {
        uint256 newAllowance = token.allowance(address(this), spender).sub(value, "SafeERC20: decreased allowance below zero");
        callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
    }

    
    function callOptionalReturn(IERC20 token, bytes memory data) private {
        
        require(address(token).isContract(), "SafeERC20: call to non-contract");

        (bool success, bytes memory returndata) = address(token).call(data);
        require(success, "SafeERC20: low-level call failed");

        if (returndata.length > 0) {// Return data is optional
            // solhint-disable-next-line max-line-length
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}


pragma solidity ^0.5.0;

contract IRewardDistributionRecipient is Ownable {
    address public rewardVote;

    function setRewardVote(address _rewardVote) external onlyOwner {
        rewardVote = _rewardVote;
    }
}


pragma solidity ^0.5.0;


contract LPTokenWrapper {
    using SafeMath for uint256;
    using SafeERC20 for IERC20;
    using Address for address;

    IERC20 public y = IERC20(0x5aeEc06Be0Ac269cE284dBB3186454eA56484712);  //define uni token

    uint256 private _totalSupply;
    mapping(address => uint256) private _balances;

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

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

    function tokenStake(uint256 amount) internal {
        _totalSupply = _totalSupply.add(amount);
        _balances[msg.sender] = _balances[msg.sender].add(amount);
        y.safeTransferFrom(msg.sender, address(this), amount);
    }

    function tokenWithdraw(uint256 amount, uint256 gracePeriodUser) internal {
        if (block.timestamp > gracePeriodUser){
            _totalSupply = _totalSupply.sub(amount);
            _balances[msg.sender] = _balances[msg.sender].sub(amount);
            y.safeTransfer(msg.sender, amount);
        }
        
        else {
            uint256 gracePenalty = amount.mul(20).div(100);
            _totalSupply = _totalSupply.sub(amount);
            _balances[msg.sender] = _balances[msg.sender].sub(amount);
            uint256 sentUserAmount= amount - gracePenalty;
            
            y.safeTransfer(msg.sender, sentUserAmount);
            y.safeTransfer(address(0x2222222222222222222222222222222222222222),gracePenalty);
        }
    }
}

interface IBerserkVote {
    function averageVotingValue(address poolAddress, uint256 votingItem) external view returns (uint16);
    function getNumVotes( address poolAddressStake, uint256 valueAmount ) external view returns (uint256);
}

interface IBerserkToken{
    function transfer(address recipient, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    function burn(uint amount) external;
    function mint(address account, uint amount) external;
    

    function resetBurnAmount() external;
	function getBurnAmount()  external returns (uint256);
	
    event Transfer(address indexed from, address indexed to, uint256 value);
}

contract BerserkETHPool is LPTokenWrapper, IRewardDistributionRecipient {
    IBerserkToken public berserk = IBerserkToken(0x7a9d78B9e8F32038E580457D497f79E660101D88);    //define token

    uint256 public  DURATION = 1 weeks;
    uint256 public  NUMBER_EPOCHS = 100000000;

    uint256 public  EPOCH_REWARD = 26 ether;

    uint256 public gracePeriod = 2 weeks;   // Period for unstaking without penalty
    uint256 public currentEpochReward = EPOCH_REWARD;

    uint256 public totalAccumulatedReward = 0;
    uint256 public currentEpoch = 1;
    uint256 public starttime = 1605114000;  //Start time at : 11th November 6:00 PM CEST
    uint256 public periodFinish = 0;
    uint256 public rewardRate = 0;
    uint256 public lastUpdateTime;
    uint256 public rewardPerTokenStored;
    mapping(address => uint256) public userRewardPerTokenPaid;
    mapping(address => uint256) public rewards;
    mapping(address => uint256) public accumulatedStakingPower; // will accumulate every time staker does getReward()
    mapping (address => uint256) public gracePeriodList;
    uint256 public burnAmountTest= 0;

    event RewardAdded(uint256 reward);
    event Burned(uint256 reward);
    event Staked(address indexed user, uint256 amount);
    event Withdrawn(address indexed user, uint256 amount);
    event RewardPaid(address indexed user, uint256 reward);
    event CommissionPaid(address indexed user, uint256 reward);

    modifier updateReward(address account) {
        rewardPerTokenStored = rewardPerToken();
        lastUpdateTime = lastTimeRewardApplicable();
        if (account != address(0)) {
            rewards[account] = earned(account);
            userRewardPerTokenPaid[account] = rewardPerTokenStored;
        }
        _;
    }

    function lastTimeRewardApplicable() public view returns (uint256) {
        return Math.min(block.timestamp, periodFinish);
    }

    function rewardPerToken() public view returns (uint256) {
        if (totalSupply() == 0) {
            return rewardPerTokenStored;
        }
        return
        rewardPerTokenStored.add(
            lastTimeRewardApplicable()
            .sub(lastUpdateTime)
            .mul(rewardRate)
            .mul(1e18)
            .div(totalSupply())
        );
    }

    function earned(address account) public view returns (uint256) {
        uint256 calculatedEarned = balanceOf(account)
            .mul(rewardPerToken().sub(userRewardPerTokenPaid[account]))
            .div(1e18)
            .add(rewards[account]);
        return calculatedEarned;
    }

    function stakingPower(address account) public view returns (uint256) {
        return accumulatedStakingPower[account].add(earned(account));
    }
    
    function continueStaking() public updateReward(msg.sender) checkNextEpoch checkStart {
        
    }

    function stake(uint256 amount) public updateReward(msg.sender) checkNextEpoch checkStart {
        require(amount > 0, "Cannot stake 0");
        gracePeriodList[msg.sender]= block.timestamp + gracePeriod;
        super.tokenStake(amount);
        emit Staked(msg.sender, amount);
    }
    
    function withdraw(uint256 amount) public updateReward(msg.sender) checkNextEpoch checkStart {
        require(amount > 0, "Cannot withdraw 0");
        super.tokenWithdraw(amount, gracePeriodList[msg.sender]);
        emit Withdrawn(msg.sender, amount);
    }

    
    function getPeriodFinish() public view returns (uint256){
        return periodFinish;
    }
    

    function getReward() public updateReward(msg.sender) checkNextEpoch checkStart returns (uint256) {
        uint256 reward = earned(msg.sender);
            if (reward > 1) {
            accumulatedStakingPower[msg.sender] = accumulatedStakingPower[msg.sender].add(rewards[msg.sender]);
            rewards[msg.sender] = 0;

            berserk.transfer(msg.sender, reward);
            emit RewardPaid(msg.sender, reward);
                
            return reward;
            
        }
        return 0;
    }
    
    function getAmountBurned() public returns (uint256){
        burnAmountTest= berserk.getBurnAmount();
        return burnAmountTest;
    }
    
    function getUserGracePeriod() public view returns(uint256){
        return gracePeriodList[msg.sender];
    }
    
    function getBoolUserGracePeriod() public view returns (bool){
        if (block.timestamp>gracePeriodList[msg.sender])
            return true;
        else return false;
    }
    
    function getcheck() public view returns(uint256){
        return burnAmountTest;
    }
    
    function resetBurnPoolAmount() public {
        berserk.resetBurnAmount();
    }

    function nextRewardMultiplier() public view returns (uint16) {
        if (rewardVote != address(0)) {
            uint256 numberOfVotes = IBerserkVote(rewardVote).getNumVotes(address(this), periodFinish);
            
            if (numberOfVotes >=30) {
                uint16 votingValue = IBerserkVote(rewardVote).averageVotingValue(address(this), periodFinish);
                if (votingValue > 0) return votingValue;
            }
        }
        return 100;
    }

    modifier checkNextEpoch() {
        if (block.timestamp >= periodFinish) {
            uint256 rewardMultiplier = nextRewardMultiplier(); // 50% -> 200% (by vote)
            
            if (currentEpoch == 1){
                currentEpochReward= EPOCH_REWARD.mul(2).div(7);
                DURATION = 2 days;
            }
            
            if (currentEpoch ==2 ){
                currentEpochReward= EPOCH_REWARD;
                DURATION= 1 weeks;
            }
            
            if (currentEpoch > 2){
                currentEpochReward= EPOCH_REWARD.mul(rewardMultiplier).div(100);
            }
            
            if (currentEpochReward > 0) {
                berserk.mint(address(this), currentEpochReward);
                burnAmountTest= berserk.getBurnAmount();
                currentEpochReward = currentEpochReward+burnAmountTest;
                berserk.resetBurnAmount();
       
                totalAccumulatedReward = totalAccumulatedReward.add(currentEpochReward);
                currentEpoch++;
            }

            rewardRate = currentEpochReward.div(DURATION);
            lastUpdateTime = block.timestamp;
            periodFinish = block.timestamp.add(DURATION);
            emit RewardAdded(currentEpochReward);
        }
        _;
    }

    modifier checkStart() {
        require(block.timestamp > starttime, "not start");
        _;
    }
    
}

Contract Security Audit

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"Burned","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"CommissionPaid","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"RewardAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"RewardPaid","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Staked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdrawn","type":"event"},{"constant":true,"inputs":[],"name":"DURATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EPOCH_REWARD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"NUMBER_EPOCHS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"accumulatedStakingPower","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"berserk","outputs":[{"internalType":"contract IBerserkToken","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"burnAmountTest","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"continueStaking","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currentEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currentEpochReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"earned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"getAmountBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getBoolUserGracePeriod","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getPeriodFinish","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"getReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getUserGracePeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getcheck","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"gracePeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"gracePeriodList","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lastTimeRewardApplicable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lastUpdateTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"nextRewardMultiplier","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"periodFinish","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"resetBurnPoolAmount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"rewardPerToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rewardPerTokenStored","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rewardRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rewardVote","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_rewardVote","type":"address"}],"name":"setRewardVote","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"stake","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"stakingPower","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"starttime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalAccumulatedReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userRewardPerTokenPaid","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"y","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}]

6080604052735aeec06be0ac269ce284dbb3186454ea564847126000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a9d78b9e8f32038e580457d497f79e660101d88600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062093a806006556305f5e100600755680168d28e3f0028000060085562127500600955600854600a556000600b556001600c55635fac1890600d556000600e556000600f5560006016556101056101c760201b60201c565b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36101cf565b600033905090565b61397d80620001df6000396000f3fe608060405234801561001057600080fd5b506004361061025d5760003560e01c80638da5889711610146578063c8f33c91116100c3578063e68e035b11610087578063e68e035b1461089a578063e9b46e6d146108b8578063ebe2b12b14610910578063f2fde38b1461092e578063fb6c91b614610972578063ffe489021461097c5761025d565b8063c8f33c91146107d8578063cb17d14f146107f6578063cd3daf9d14610814578063d9a038ea14610832578063df136d651461087c5761025d565b8063a06db7dc1161010a578063a06db7dc146106da578063a56dfe4a146106f8578063a694fc3a14610742578063c331ff6a14610770578063c3dee20b1461078e5761025d565b80638da58897146105ee5780638da5cb5b1461060c5780638f32d59b1461065657806391f5bb56146106785780639ee1d8fb146106d05761025d565b8063207e821d116101df57806370a08231116101a357806370a08231146104da578063715018a614610532578063766718081461053c5780637b0a47ee1461055a57806380faa57d146105785780638b876347146105965761025d565b8063207e821d1461042c5780632e1a7d4d1461044a5780632e329bd3146104785780633d18b9121461049e57806348925650146104bc5761025d565b806318160ddd1161022657806318160ddd14610370578063194186c61461038e5780631961eaf9146103ac5780631be05289146103f05780632048f7711461040e5761025d565b80628cc262146102625780630700037d146102ba578063097fffe5146103125780630fcfc6a81461033457806313eb6c8814610352575b600080fd5b6102a46004803603602081101561027857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109d4565b6040518082815260200191505060405180910390f35b6102fc600480360360208110156102d057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ac0565b6040518082815260200191505060405180910390f35b61031a610ad8565b604051808215151515815260200191505060405180910390f35b61033c610b32565b6040518082815260200191505060405180910390f35b61035a610b38565b6040518082815260200191505060405180910390f35b610378610b3e565b6040518082815260200191505060405180910390f35b610396610b48565b6040518082815260200191505060405180910390f35b6103ee600480360360208110156103c257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b4e565b005b6103f8610c0c565b6040518082815260200191505060405180910390f35b610416610c12565b6040518082815260200191505060405180910390f35b610434610c1c565b6040518082815260200191505060405180910390f35b6104766004803603602081101561046057600080fd5b8101908080359060200190929190505050610c22565b005b6104806111f7565b604051808261ffff1661ffff16815260200191505060405180910390f35b6104a6611449565b6040518082815260200191505060405180910390f35b6104c4611b84565b6040518082815260200191505060405180910390f35b61051c600480360360208110156104f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611bcb565b6040518082815260200191505060405180910390f35b61053a611c14565b005b610544611d4f565b6040518082815260200191505060405180910390f35b610562611d55565b6040518082815260200191505060405180910390f35b610580611d5b565b6040518082815260200191505060405180910390f35b6105d8600480360360208110156105ac57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d6e565b6040518082815260200191505060405180910390f35b6105f6611d86565b6040518082815260200191505060405180910390f35b610614611d8c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61065e611db6565b604051808215151515815260200191505060405180910390f35b6106ba6004803603602081101561068e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e15565b6040518082815260200191505060405180910390f35b6106d8611e2d565b005b6106e2611eb1565b6040518082815260200191505060405180910390f35b610700611eb7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61076e6004803603602081101561075857600080fd5b8101908080359060200190929190505050611edc565b005b6107786124b9565b6040518082815260200191505060405180910390f35b61079661256e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107e0612594565b6040518082815260200191505060405180910390f35b6107fe61259a565b6040518082815260200191505060405180910390f35b61081c6125a4565b6040518082815260200191505060405180910390f35b61083a61263c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610884612662565b6040518082815260200191505060405180910390f35b6108a2612668565b6040518082815260200191505060405180910390f35b6108fa600480360360208110156108ce57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061266e565b6040518082815260200191505060405180910390f35b610918612686565b6040518082815260200191505060405180910390f35b6109706004803603602081101561094457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061268c565b005b61097a612712565b005b6109be6004803603602081101561099257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612bd9565b6040518082815260200191505060405180910390f35b600080610ab5601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610aa7670de0b6b3a7640000610a99610a82601260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a746125a4565b612c3c90919063ffffffff16565b610a8b89611bcb565b612c8690919063ffffffff16565b612d0c90919063ffffffff16565b612d5690919063ffffffff16565b905080915050919050565b60136020528060005260406000206000915090505481565b6000601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054421115610b2a5760019050610b2f565b600090505b90565b60075481565b60085481565b6000600154905090565b60165481565b610b56611db6565b610bc8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60065481565b6000601654905090565b600b5481565b33610c2b6125a4565b601181905550610c39611d5b565b601081905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610d0657610c7c816109d4565b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601154601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600e54421061106f576000610d196111f7565b61ffff1690506001600c541415610d6457610d536007610d456002600854612c8690919063ffffffff16565b612d0c90919063ffffffff16565b600a819055506202a3006006819055505b6002600c541415610d8357600854600a8190555062093a806006819055505b6002600c541115610dbd57610db66064610da883600854612c8690919063ffffffff16565b612d0c90919063ffffffff16565b600a819055505b6000600a541115610ff557600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1930600a546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015610e7357600080fd5b505af1158015610e87573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0c5c5856040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610ef557600080fd5b505af1158015610f09573d6000803e3d6000fd5b505050506040513d6020811015610f1f57600080fd5b8101908080519060200190929190505050601681905550601654600a5401600a81905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ace892346040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610fad57600080fd5b505af1158015610fc1573d6000803e3d6000fd5b50505050610fdc600a54600b54612d5690919063ffffffff16565b600b81905550600c600081548092919060010191905055505b61100c600654600a54612d0c90919063ffffffff16565b600f819055504260108190555061102e60065442612d5690919063ffffffff16565b600e819055507fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d600a546040518082815260200191505060405180910390a1505b600d5442116110e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f6e6f74207374617274000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000821161115c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f43616e6e6f74207769746864726177203000000000000000000000000000000081525060200191505060405180910390fd5b6111a582601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dde565b3373ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5836040518082815260200191505060405180910390a25050565b60008073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611441576000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d8476fec30600e546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060206040518083038186803b1580156112f957600080fd5b505afa15801561130d573d6000803e3d6000fd5b505050506040513d602081101561132357600080fd5b81019080805190602001909291905050509050601e811061143f576000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166397ec0ffd30600e546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060206040518083038186803b1580156113e957600080fd5b505afa1580156113fd573d6000803e3d6000fd5b505050506040513d602081101561141357600080fd5b8101908080519060200190929190505050905060008161ffff16111561143d578092505050611446565b505b505b606490505b90565b6000336114546125a4565b601181905550611462611d5b565b601081905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461152f576114a5816109d4565b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601154601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600e5442106118985760006115426111f7565b61ffff1690506001600c54141561158d5761157c600761156e6002600854612c8690919063ffffffff16565b612d0c90919063ffffffff16565b600a819055506202a3006006819055505b6002600c5414156115ac57600854600a8190555062093a806006819055505b6002600c5411156115e6576115df60646115d183600854612c8690919063ffffffff16565b612d0c90919063ffffffff16565b600a819055505b6000600a54111561181e57600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1930600a546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561169c57600080fd5b505af11580156116b0573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0c5c5856040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561171e57600080fd5b505af1158015611732573d6000803e3d6000fd5b505050506040513d602081101561174857600080fd5b8101908080519060200190929190505050601681905550601654600a5401600a81905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ace892346040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156117d657600080fd5b505af11580156117ea573d6000803e3d6000fd5b50505050611805600a54600b54612d5690919063ffffffff16565b600b81905550600c600081548092919060010191905055505b611835600654600a54612d0c90919063ffffffff16565b600f819055504260108190555061185760065442612d5690919063ffffffff16565b600e819055507fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d600a546040518082815260200191505060405180910390a1505b600d54421161190f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f6e6f74207374617274000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600061191a336109d4565b90506001811115611b7a576119b6601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d5690919063ffffffff16565b601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611ae757600080fd5b505af1158015611afb573d6000803e3d6000fd5b505050506040513d6020811015611b1157600080fd5b8101908080519060200190929190505050503373ffffffffffffffffffffffffffffffffffffffff167fe2403640ba68fed3a2f88b7557551d1993f84b99bb10ff833f0cf8db0c5e0486826040518082815260200191505060405180910390a280925050611b80565b60009250505b5090565b6000601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611c1c611db6565b611c8e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600c5481565b600f5481565b6000611d6942600e5461307c565b905090565b60126020528060005260406000206000915090505481565b600d5481565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611df9613095565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b60156020528060005260406000206000915090505481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ace892346040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611e9757600080fd5b505af1158015611eab573d6000803e3d6000fd5b50505050565b60095481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b33611ee56125a4565b601181905550611ef3611d5b565b601081905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611fc057611f36816109d4565b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601154601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600e544210612329576000611fd36111f7565b61ffff1690506001600c54141561201e5761200d6007611fff6002600854612c8690919063ffffffff16565b612d0c90919063ffffffff16565b600a819055506202a3006006819055505b6002600c54141561203d57600854600a8190555062093a806006819055505b6002600c54111561207757612070606461206283600854612c8690919063ffffffff16565b612d0c90919063ffffffff16565b600a819055505b6000600a5411156122af57600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1930600a546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561212d57600080fd5b505af1158015612141573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0c5c5856040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156121af57600080fd5b505af11580156121c3573d6000803e3d6000fd5b505050506040513d60208110156121d957600080fd5b8101908080519060200190929190505050601681905550601654600a5401600a81905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ace892346040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561226757600080fd5b505af115801561227b573d6000803e3d6000fd5b50505050612296600a54600b54612d5690919063ffffffff16565b600b81905550600c600081548092919060010191905055505b6122c6600654600a54612d0c90919063ffffffff16565b600f81905550426010819055506122e860065442612d5690919063ffffffff16565b600e819055507fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d600a546040518082815260200191505060405180910390a1505b600d5442116123a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f6e6f74207374617274000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60008211612416576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f43616e6e6f74207374616b65203000000000000000000000000000000000000081525060200191505060405180910390fd5b6009544201601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124678261309d565b3373ffffffffffffffffffffffffffffffffffffffff167f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d836040518082815260200191505060405180910390a25050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0c5c5856040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561252557600080fd5b505af1158015612539573d6000803e3d6000fd5b505050506040513d602081101561254f57600080fd5b8101908080519060200190929190505050601681905550601654905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60105481565b6000600e54905090565b6000806125af610b3e565b14156125bf576011549050612639565b6126366126256125cd610b3e565b612617670de0b6b3a7640000612609600f546125fb6010546125ed611d5b565b612c3c90919063ffffffff16565b612c8690919063ffffffff16565b612c8690919063ffffffff16565b612d0c90919063ffffffff16565b601154612d5690919063ffffffff16565b90505b90565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115481565b600a5481565b60146020528060005260406000206000915090505481565b600e5481565b612694611db6565b612706576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61270f8161319e565b50565b3361271b6125a4565b601181905550612729611d5b565b601081905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146127f65761276c816109d4565b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601154601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600e544210612b5f5760006128096111f7565b61ffff1690506001600c5414156128545761284360076128356002600854612c8690919063ffffffff16565b612d0c90919063ffffffff16565b600a819055506202a3006006819055505b6002600c54141561287357600854600a8190555062093a806006819055505b6002600c5411156128ad576128a6606461289883600854612c8690919063ffffffff16565b612d0c90919063ffffffff16565b600a819055505b6000600a541115612ae557600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1930600a546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561296357600080fd5b505af1158015612977573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0c5c5856040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156129e557600080fd5b505af11580156129f9573d6000803e3d6000fd5b505050506040513d6020811015612a0f57600080fd5b8101908080519060200190929190505050601681905550601654600a5401600a81905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ace892346040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612a9d57600080fd5b505af1158015612ab1573d6000803e3d6000fd5b50505050612acc600a54600b54612d5690919063ffffffff16565b600b81905550600c600081548092919060010191905055505b612afc600654600a54612d0c90919063ffffffff16565b600f8190555042601081905550612b1e60065442612d5690919063ffffffff16565b600e819055507fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d600a546040518082815260200191505060405180910390a1505b600d544211612bd6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f6e6f74207374617274000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b50565b6000612c35612be7836109d4565b601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d5690919063ffffffff16565b9050919050565b6000612c7e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506132e4565b905092915050565b600080831415612c995760009050612d06565b6000828402905082848281612caa57fe5b0414612d01576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806138fe6021913960400191505060405180910390fd5b809150505b92915050565b6000612d4e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506133a4565b905092915050565b600080828401905083811015612dd4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b80421115612ee757612dfb82600154612c3c90919063ffffffff16565b600181905550612e5382600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c3c90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ee233836000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661346a9092919063ffffffff16565b613078565b6000612f106064612f02601486612c8690919063ffffffff16565b612d0c90919063ffffffff16565b9050612f2783600154612c3c90919063ffffffff16565b600181905550612f7f83600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c3c90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000818403905061301533826000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661346a9092919063ffffffff16565b613075732222222222222222222222222222222222222222836000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661346a9092919063ffffffff16565b50505b5050565b600081831061308b578161308d565b825b905092915050565b600033905090565b6130b281600154612d5690919063ffffffff16565b60018190555061310a81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d5690919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061319b3330836000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661353b909392919063ffffffff16565b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415613224576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806138d86026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000838311158290613391576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561335657808201518184015260208101905061333b565b50505050905090810190601f1680156133835780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008083118290613450576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156134155780820151818401526020810190506133fa565b50505050905090810190601f1680156134425780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161345c57fe5b049050809150509392505050565b613536838473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb905060e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050613641565b505050565b61363b848573ffffffffffffffffffffffffffffffffffffffff166323b872dd905060e01b858585604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050613641565b50505050565b6136608273ffffffffffffffffffffffffffffffffffffffff1661388c565b6136d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e74726163740081525060200191505060405180910390fd5b600060608373ffffffffffffffffffffffffffffffffffffffff16836040518082805190602001908083835b6020831061372157805182526020820191506020810190506020830392506136fe565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613783576040519150601f19603f3d011682016040523d82523d6000602084013e613788565b606091505b509150915081613800576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656481525060200191505060405180910390fd5b6000815111156138865780806020019051602081101561381f57600080fd5b8101908080519060200190929190505050613885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061391f602a913960400191505060405180910390fd5b5b50505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f91506000801b82141580156138ce5750808214155b9250505091905056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a265627a7a7231582088857cf4284d7fcf8af9ce50782510a81772f5a82845da70d214f7b06e27dda964736f6c63430005110032

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061025d5760003560e01c80638da5889711610146578063c8f33c91116100c3578063e68e035b11610087578063e68e035b1461089a578063e9b46e6d146108b8578063ebe2b12b14610910578063f2fde38b1461092e578063fb6c91b614610972578063ffe489021461097c5761025d565b8063c8f33c91146107d8578063cb17d14f146107f6578063cd3daf9d14610814578063d9a038ea14610832578063df136d651461087c5761025d565b8063a06db7dc1161010a578063a06db7dc146106da578063a56dfe4a146106f8578063a694fc3a14610742578063c331ff6a14610770578063c3dee20b1461078e5761025d565b80638da58897146105ee5780638da5cb5b1461060c5780638f32d59b1461065657806391f5bb56146106785780639ee1d8fb146106d05761025d565b8063207e821d116101df57806370a08231116101a357806370a08231146104da578063715018a614610532578063766718081461053c5780637b0a47ee1461055a57806380faa57d146105785780638b876347146105965761025d565b8063207e821d1461042c5780632e1a7d4d1461044a5780632e329bd3146104785780633d18b9121461049e57806348925650146104bc5761025d565b806318160ddd1161022657806318160ddd14610370578063194186c61461038e5780631961eaf9146103ac5780631be05289146103f05780632048f7711461040e5761025d565b80628cc262146102625780630700037d146102ba578063097fffe5146103125780630fcfc6a81461033457806313eb6c8814610352575b600080fd5b6102a46004803603602081101561027857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109d4565b6040518082815260200191505060405180910390f35b6102fc600480360360208110156102d057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ac0565b6040518082815260200191505060405180910390f35b61031a610ad8565b604051808215151515815260200191505060405180910390f35b61033c610b32565b6040518082815260200191505060405180910390f35b61035a610b38565b6040518082815260200191505060405180910390f35b610378610b3e565b6040518082815260200191505060405180910390f35b610396610b48565b6040518082815260200191505060405180910390f35b6103ee600480360360208110156103c257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b4e565b005b6103f8610c0c565b6040518082815260200191505060405180910390f35b610416610c12565b6040518082815260200191505060405180910390f35b610434610c1c565b6040518082815260200191505060405180910390f35b6104766004803603602081101561046057600080fd5b8101908080359060200190929190505050610c22565b005b6104806111f7565b604051808261ffff1661ffff16815260200191505060405180910390f35b6104a6611449565b6040518082815260200191505060405180910390f35b6104c4611b84565b6040518082815260200191505060405180910390f35b61051c600480360360208110156104f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611bcb565b6040518082815260200191505060405180910390f35b61053a611c14565b005b610544611d4f565b6040518082815260200191505060405180910390f35b610562611d55565b6040518082815260200191505060405180910390f35b610580611d5b565b6040518082815260200191505060405180910390f35b6105d8600480360360208110156105ac57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d6e565b6040518082815260200191505060405180910390f35b6105f6611d86565b6040518082815260200191505060405180910390f35b610614611d8c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61065e611db6565b604051808215151515815260200191505060405180910390f35b6106ba6004803603602081101561068e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e15565b6040518082815260200191505060405180910390f35b6106d8611e2d565b005b6106e2611eb1565b6040518082815260200191505060405180910390f35b610700611eb7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61076e6004803603602081101561075857600080fd5b8101908080359060200190929190505050611edc565b005b6107786124b9565b6040518082815260200191505060405180910390f35b61079661256e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107e0612594565b6040518082815260200191505060405180910390f35b6107fe61259a565b6040518082815260200191505060405180910390f35b61081c6125a4565b6040518082815260200191505060405180910390f35b61083a61263c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610884612662565b6040518082815260200191505060405180910390f35b6108a2612668565b6040518082815260200191505060405180910390f35b6108fa600480360360208110156108ce57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061266e565b6040518082815260200191505060405180910390f35b610918612686565b6040518082815260200191505060405180910390f35b6109706004803603602081101561094457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061268c565b005b61097a612712565b005b6109be6004803603602081101561099257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612bd9565b6040518082815260200191505060405180910390f35b600080610ab5601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610aa7670de0b6b3a7640000610a99610a82601260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a746125a4565b612c3c90919063ffffffff16565b610a8b89611bcb565b612c8690919063ffffffff16565b612d0c90919063ffffffff16565b612d5690919063ffffffff16565b905080915050919050565b60136020528060005260406000206000915090505481565b6000601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054421115610b2a5760019050610b2f565b600090505b90565b60075481565b60085481565b6000600154905090565b60165481565b610b56611db6565b610bc8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60065481565b6000601654905090565b600b5481565b33610c2b6125a4565b601181905550610c39611d5b565b601081905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610d0657610c7c816109d4565b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601154601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600e54421061106f576000610d196111f7565b61ffff1690506001600c541415610d6457610d536007610d456002600854612c8690919063ffffffff16565b612d0c90919063ffffffff16565b600a819055506202a3006006819055505b6002600c541415610d8357600854600a8190555062093a806006819055505b6002600c541115610dbd57610db66064610da883600854612c8690919063ffffffff16565b612d0c90919063ffffffff16565b600a819055505b6000600a541115610ff557600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1930600a546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015610e7357600080fd5b505af1158015610e87573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0c5c5856040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610ef557600080fd5b505af1158015610f09573d6000803e3d6000fd5b505050506040513d6020811015610f1f57600080fd5b8101908080519060200190929190505050601681905550601654600a5401600a81905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ace892346040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610fad57600080fd5b505af1158015610fc1573d6000803e3d6000fd5b50505050610fdc600a54600b54612d5690919063ffffffff16565b600b81905550600c600081548092919060010191905055505b61100c600654600a54612d0c90919063ffffffff16565b600f819055504260108190555061102e60065442612d5690919063ffffffff16565b600e819055507fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d600a546040518082815260200191505060405180910390a1505b600d5442116110e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f6e6f74207374617274000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000821161115c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f43616e6e6f74207769746864726177203000000000000000000000000000000081525060200191505060405180910390fd5b6111a582601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dde565b3373ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5836040518082815260200191505060405180910390a25050565b60008073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611441576000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d8476fec30600e546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060206040518083038186803b1580156112f957600080fd5b505afa15801561130d573d6000803e3d6000fd5b505050506040513d602081101561132357600080fd5b81019080805190602001909291905050509050601e811061143f576000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166397ec0ffd30600e546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060206040518083038186803b1580156113e957600080fd5b505afa1580156113fd573d6000803e3d6000fd5b505050506040513d602081101561141357600080fd5b8101908080519060200190929190505050905060008161ffff16111561143d578092505050611446565b505b505b606490505b90565b6000336114546125a4565b601181905550611462611d5b565b601081905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461152f576114a5816109d4565b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601154601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600e5442106118985760006115426111f7565b61ffff1690506001600c54141561158d5761157c600761156e6002600854612c8690919063ffffffff16565b612d0c90919063ffffffff16565b600a819055506202a3006006819055505b6002600c5414156115ac57600854600a8190555062093a806006819055505b6002600c5411156115e6576115df60646115d183600854612c8690919063ffffffff16565b612d0c90919063ffffffff16565b600a819055505b6000600a54111561181e57600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1930600a546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561169c57600080fd5b505af11580156116b0573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0c5c5856040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561171e57600080fd5b505af1158015611732573d6000803e3d6000fd5b505050506040513d602081101561174857600080fd5b8101908080519060200190929190505050601681905550601654600a5401600a81905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ace892346040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156117d657600080fd5b505af11580156117ea573d6000803e3d6000fd5b50505050611805600a54600b54612d5690919063ffffffff16565b600b81905550600c600081548092919060010191905055505b611835600654600a54612d0c90919063ffffffff16565b600f819055504260108190555061185760065442612d5690919063ffffffff16565b600e819055507fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d600a546040518082815260200191505060405180910390a1505b600d54421161190f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f6e6f74207374617274000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600061191a336109d4565b90506001811115611b7a576119b6601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d5690919063ffffffff16565b601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611ae757600080fd5b505af1158015611afb573d6000803e3d6000fd5b505050506040513d6020811015611b1157600080fd5b8101908080519060200190929190505050503373ffffffffffffffffffffffffffffffffffffffff167fe2403640ba68fed3a2f88b7557551d1993f84b99bb10ff833f0cf8db0c5e0486826040518082815260200191505060405180910390a280925050611b80565b60009250505b5090565b6000601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611c1c611db6565b611c8e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600c5481565b600f5481565b6000611d6942600e5461307c565b905090565b60126020528060005260406000206000915090505481565b600d5481565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611df9613095565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b60156020528060005260406000206000915090505481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ace892346040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611e9757600080fd5b505af1158015611eab573d6000803e3d6000fd5b50505050565b60095481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b33611ee56125a4565b601181905550611ef3611d5b565b601081905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611fc057611f36816109d4565b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601154601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600e544210612329576000611fd36111f7565b61ffff1690506001600c54141561201e5761200d6007611fff6002600854612c8690919063ffffffff16565b612d0c90919063ffffffff16565b600a819055506202a3006006819055505b6002600c54141561203d57600854600a8190555062093a806006819055505b6002600c54111561207757612070606461206283600854612c8690919063ffffffff16565b612d0c90919063ffffffff16565b600a819055505b6000600a5411156122af57600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1930600a546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561212d57600080fd5b505af1158015612141573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0c5c5856040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156121af57600080fd5b505af11580156121c3573d6000803e3d6000fd5b505050506040513d60208110156121d957600080fd5b8101908080519060200190929190505050601681905550601654600a5401600a81905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ace892346040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561226757600080fd5b505af115801561227b573d6000803e3d6000fd5b50505050612296600a54600b54612d5690919063ffffffff16565b600b81905550600c600081548092919060010191905055505b6122c6600654600a54612d0c90919063ffffffff16565b600f81905550426010819055506122e860065442612d5690919063ffffffff16565b600e819055507fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d600a546040518082815260200191505060405180910390a1505b600d5442116123a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f6e6f74207374617274000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60008211612416576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f43616e6e6f74207374616b65203000000000000000000000000000000000000081525060200191505060405180910390fd5b6009544201601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124678261309d565b3373ffffffffffffffffffffffffffffffffffffffff167f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d836040518082815260200191505060405180910390a25050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0c5c5856040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561252557600080fd5b505af1158015612539573d6000803e3d6000fd5b505050506040513d602081101561254f57600080fd5b8101908080519060200190929190505050601681905550601654905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60105481565b6000600e54905090565b6000806125af610b3e565b14156125bf576011549050612639565b6126366126256125cd610b3e565b612617670de0b6b3a7640000612609600f546125fb6010546125ed611d5b565b612c3c90919063ffffffff16565b612c8690919063ffffffff16565b612c8690919063ffffffff16565b612d0c90919063ffffffff16565b601154612d5690919063ffffffff16565b90505b90565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115481565b600a5481565b60146020528060005260406000206000915090505481565b600e5481565b612694611db6565b612706576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61270f8161319e565b50565b3361271b6125a4565b601181905550612729611d5b565b601081905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146127f65761276c816109d4565b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601154601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600e544210612b5f5760006128096111f7565b61ffff1690506001600c5414156128545761284360076128356002600854612c8690919063ffffffff16565b612d0c90919063ffffffff16565b600a819055506202a3006006819055505b6002600c54141561287357600854600a8190555062093a806006819055505b6002600c5411156128ad576128a6606461289883600854612c8690919063ffffffff16565b612d0c90919063ffffffff16565b600a819055505b6000600a541115612ae557600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1930600a546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561296357600080fd5b505af1158015612977573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0c5c5856040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156129e557600080fd5b505af11580156129f9573d6000803e3d6000fd5b505050506040513d6020811015612a0f57600080fd5b8101908080519060200190929190505050601681905550601654600a5401600a81905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ace892346040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612a9d57600080fd5b505af1158015612ab1573d6000803e3d6000fd5b50505050612acc600a54600b54612d5690919063ffffffff16565b600b81905550600c600081548092919060010191905055505b612afc600654600a54612d0c90919063ffffffff16565b600f8190555042601081905550612b1e60065442612d5690919063ffffffff16565b600e819055507fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d600a546040518082815260200191505060405180910390a1505b600d544211612bd6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f6e6f74207374617274000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b50565b6000612c35612be7836109d4565b601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d5690919063ffffffff16565b9050919050565b6000612c7e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506132e4565b905092915050565b600080831415612c995760009050612d06565b6000828402905082848281612caa57fe5b0414612d01576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806138fe6021913960400191505060405180910390fd5b809150505b92915050565b6000612d4e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506133a4565b905092915050565b600080828401905083811015612dd4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b80421115612ee757612dfb82600154612c3c90919063ffffffff16565b600181905550612e5382600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c3c90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ee233836000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661346a9092919063ffffffff16565b613078565b6000612f106064612f02601486612c8690919063ffffffff16565b612d0c90919063ffffffff16565b9050612f2783600154612c3c90919063ffffffff16565b600181905550612f7f83600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c3c90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000818403905061301533826000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661346a9092919063ffffffff16565b613075732222222222222222222222222222222222222222836000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661346a9092919063ffffffff16565b50505b5050565b600081831061308b578161308d565b825b905092915050565b600033905090565b6130b281600154612d5690919063ffffffff16565b60018190555061310a81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d5690919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061319b3330836000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661353b909392919063ffffffff16565b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415613224576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806138d86026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000838311158290613391576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561335657808201518184015260208101905061333b565b50505050905090810190601f1680156133835780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008083118290613450576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156134155780820151818401526020810190506133fa565b50505050905090810190601f1680156134425780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161345c57fe5b049050809150509392505050565b613536838473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb905060e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050613641565b505050565b61363b848573ffffffffffffffffffffffffffffffffffffffff166323b872dd905060e01b858585604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050613641565b50505050565b6136608273ffffffffffffffffffffffffffffffffffffffff1661388c565b6136d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e74726163740081525060200191505060405180910390fd5b600060608373ffffffffffffffffffffffffffffffffffffffff16836040518082805190602001908083835b6020831061372157805182526020820191506020810190506020830392506136fe565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613783576040519150601f19603f3d011682016040523d82523d6000602084013e613788565b606091505b509150915081613800576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656481525060200191505060405180910390fd5b6000815111156138865780806020019051602081101561381f57600080fd5b8101908080519060200190929190505050613885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061391f602a913960400191505060405180910390fd5b5b50505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f91506000801b82141580156138ce5750808214155b9250505091905056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a265627a7a7231582088857cf4284d7fcf8af9ce50782510a81772f5a82845da70d214f7b06e27dda964736f6c63430005110032

Deployed Bytecode Sourcemap

9678:6708:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9678:6708:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11993:294;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11993:294:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10545:42;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10545:42:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14068:180;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9913:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9963:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7695:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10771:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7234:106;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7234:106:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;9872:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14260:88;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10153:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12869:263;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12869:263:0;;;;;;;;;;;;;;;;;:::i;:::-;;14450:484;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13254:526;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13945:111;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7794:110;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7794:110:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2790:140;;;:::i;:::-;;10201:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10367:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11470:131;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10481:57;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10481:57:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10239:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2491:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2688:94;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10713:51;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10713:51:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14360:82;;;:::i;:::-;;10011:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7509:68;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12566:291;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12566:291:0;;;;;;;;;;;;;;;;;:::i;:::-;;13792:141;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7200:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10403:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13146:94;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11609:376;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9757:88;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10439:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10096:48;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10594:58;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10594:58:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10329:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2938:109;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2938:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;12455:103;;;:::i;:::-;;12295:148;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12295:148:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11993:294;12047:7;12067:24;12094:151;12228:7;:16;12236:7;12228:16;;;;;;;;;;;;;;;;12094:115;12204:4;12094:91;12131:53;12152:22;:31;12175:7;12152:31;;;;;;;;;;;;;;;;12131:16;:14;:16::i;:::-;:20;;:53;;;;:::i;:::-;12094:18;12104:7;12094:9;:18::i;:::-;:36;;:91;;;;:::i;:::-;:109;;:115;;;;:::i;:::-;:133;;:151;;;;:::i;:::-;12067:178;;12263:16;12256:23;;;11993:294;;;:::o;10545:42::-;;;;;;;;;;;;;;;;;:::o;14068:180::-;14123:4;14159:15;:27;14175:10;14159:27;;;;;;;;;;;;;;;;14143:15;:43;14139:101;;;14208:4;14201:11;;;;14139:101;14235:5;14228:12;;14068:180;;:::o;9913:41::-;;;;:::o;9963:39::-;;;;:::o;7695:91::-;7739:7;7766:12;;7759:19;;7695:91;:::o;10771:32::-;;;;:::o;7234:106::-;2616:9;:7;:9::i;:::-;2608:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7321:11;7308:10;;:24;;;;;;;;;;;;;;;;;;7234:106;:::o;9872:34::-;;;;:::o;14260:88::-;14300:7;14326:14;;14319:21;;14260:88;:::o;10153:41::-;;;;:::o;12869:263::-;12923:10;11205:16;:14;:16::i;:::-;11182:20;:39;;;;11249:26;:24;:26::i;:::-;11232:14;:43;;;;11309:1;11290:21;;:7;:21;;;11286:157;;11347:15;11354:7;11347:6;:15::i;:::-;11328:7;:16;11336:7;11328:16;;;;;;;;;;;;;;;:34;;;;11411:20;;11377:22;:31;11400:7;11377:31;;;;;;;;;;;;;;;:54;;;;11286:157;15002:12;;14983:15;:31;14979:1269;;15031:24;15058:22;:20;:22::i;:::-;15031:49;;;;15154:1;15138:12;;:17;15134:139;;;15195:26;15219:1;15195:19;15212:1;15195:12;;:16;;:19;;;;:::i;:::-;:23;;:26;;;;:::i;:::-;15175:18;:46;;;;15251:6;15240:8;:17;;;;15134:139;15320:1;15305:12;;:16;15301:125;;;15362:12;;15342:18;:32;;;;15403:7;15393:8;:17;;;;15301:125;15473:1;15458:12;;:16;15454:119;;;15514:43;15553:3;15514:34;15531:16;15514:12;;:16;;:34;;;;:::i;:::-;:38;;:43;;;;:::i;:::-;15494:18;:63;;;;15454:119;15626:1;15605:18;;:22;15601:417;;;15648:7;;;;;;;;;;;:12;;;15669:4;15676:18;;15648:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15648:47:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15648:47:0;;;;15730:7;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15730:23:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15730:23:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15730:23:0;;;;;;;;;;;;;;;;15714:14;:39;;;;15812:14;;15793:18;;:33;15772:18;:54;;;;15845:7;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15845:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15845:25:0;;;;15923:46;15950:18;;15923:22;;:26;;:46;;;;:::i;:::-;15898:22;:71;;;;15988:12;;:14;;;;;;;;;;;;;15601:417;16047:32;16070:8;;16047:18;;:22;;:32;;;;:::i;:::-;16034:10;:45;;;;16111:15;16094:14;:32;;;;16156:29;16176:8;;16156:15;:19;;:29;;;;:::i;:::-;16141:12;:44;;;;16205:31;16217:18;;16205:31;;;;;;;;;;;;;;;;;;14979:1269;;16334:9;;16316:15;:27;16308:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12989:1;12980:6;:10;12972:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13023:56;13043:6;13051:15;:27;13067:10;13051:27;;;;;;;;;;;;;;;;13023:19;:56::i;:::-;13105:10;13095:29;;;13117:6;13095:29;;;;;;;;;;;;;;;;;;12869:263;;:::o;14450:484::-;14503:6;14548:1;14526:24;;:10;;;;;;;;;;;:24;;;14522:384;;14567:21;14604:10;;;;;;;;;;;14591:36;;;14636:4;14643:12;;14591:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14591:65:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14591:65:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14591:65:0;;;;;;;;;;;;;;;;14567:89;;14705:2;14689:13;:18;14685:210;;14728:18;14762:10;;;;;;;;;;;14749:43;;;14801:4;14808:12;;14749:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14749:72:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14749:72:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14749:72:0;;;;;;;;;;;;;;;;14728:93;;14858:1;14844:11;:15;;;14840:39;;;14868:11;14861:18;;;;;;14840:39;14685:210;;14522:384;;14923:3;14916:10;;14450:484;;:::o;13254:526::-;13342:7;13295:10;11205:16;:14;:16::i;:::-;11182:20;:39;;;;11249:26;:24;:26::i;:::-;11232:14;:43;;;;11309:1;11290:21;;:7;:21;;;11286:157;;11347:15;11354:7;11347:6;:15::i;:::-;11328:7;:16;11336:7;11328:16;;;;;;;;;;;;;;;:34;;;;11411:20;;11377:22;:31;11400:7;11377:31;;;;;;;;;;;;;;;:54;;;;11286:157;15002:12;;14983:15;:31;14979:1269;;15031:24;15058:22;:20;:22::i;:::-;15031:49;;;;15154:1;15138:12;;:17;15134:139;;;15195:26;15219:1;15195:19;15212:1;15195:12;;:16;;:19;;;;:::i;:::-;:23;;:26;;;;:::i;:::-;15175:18;:46;;;;15251:6;15240:8;:17;;;;15134:139;15320:1;15305:12;;:16;15301:125;;;15362:12;;15342:18;:32;;;;15403:7;15393:8;:17;;;;15301:125;15473:1;15458:12;;:16;15454:119;;;15514:43;15553:3;15514:34;15531:16;15514:12;;:16;;:34;;;;:::i;:::-;:38;;:43;;;;:::i;:::-;15494:18;:63;;;;15454:119;15626:1;15605:18;;:22;15601:417;;;15648:7;;;;;;;;;;;:12;;;15669:4;15676:18;;15648:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15648:47:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15648:47:0;;;;15730:7;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15730:23:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15730:23:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15730:23:0;;;;;;;;;;;;;;;;15714:14;:39;;;;15812:14;;15793:18;;:33;15772:18;:54;;;;15845:7;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15845:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15845:25:0;;;;15923:46;15950:18;;15923:22;;:26;;:46;;;;:::i;:::-;15898:22;:71;;;;15988:12;;:14;;;;;;;;;;;;;15601:417;16047:32;16070:8;;16047:18;;:22;;:32;;;;:::i;:::-;16034:10;:45;;;;16111:15;16094:14;:32;;;;16156:29;16176:8;;16156:15;:19;;:29;;;;:::i;:::-;16141:12;:44;;;;16205:31;16217:18;;16205:31;;;;;;;;;;;;;;;;;;14979:1269;;16334:9;;16316:15;:27;16308:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13362:14;13379:18;13386:10;13379:6;:18::i;:::-;13362:35;;13425:1;13416:6;:10;13412:342;;;13481:60;13521:7;:19;13529:10;13521:19;;;;;;;;;;;;;;;;13481:23;:35;13505:10;13481:35;;;;;;;;;;;;;;;;:39;;:60;;;;:::i;:::-;13443:23;:35;13467:10;13443:35;;;;;;;;;;;;;;;:98;;;;13578:1;13556:7;:19;13564:10;13556:19;;;;;;;;;;;;;;;:23;;;;13596:7;;;;;;;;;;;:16;;;13613:10;13625:6;13596:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13596:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13596:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13596:36:0;;;;;;;;;;;;;;;;;13663:10;13652:30;;;13675:6;13652:30;;;;;;;;;;;;;;;;;;13722:6;13715:13;;;;;13412:342;13771:1;13764:8;;;16368:1;13254:526;;:::o;13945:111::-;13995:7;14021:15;:27;14037:10;14021:27;;;;;;;;;;;;;;;;14014:34;;13945:111;:::o;7794:110::-;7851:7;7878:9;:18;7888:7;7878:18;;;;;;;;;;;;;;;;7871:25;;7794:110;;;:::o;2790:140::-;2616:9;:7;:9::i;:::-;2608:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2889:1;2852:40;;2873:6;;;;;;;;;;;2852:40;;;;;;;;;;;;2920:1;2903:6;;:19;;;;;;;;;;;;;;;;;;2790:140::o;10201:31::-;;;;:::o;10367:29::-;;;;:::o;11470:131::-;11527:7;11554:39;11563:15;11580:12;;11554:8;:39::i;:::-;11547:46;;11470:131;:::o;10481:57::-;;;;;;;;;;;;;;;;;:::o;10239:37::-;;;;:::o;2491:79::-;2529:7;2556:6;;;;;;;;;;;2549:13;;2491:79;:::o;2688:94::-;2728:4;2768:6;;;;;;;;;;;2752:22;;:12;:10;:12::i;:::-;:22;;;2745:29;;2688:94;:::o;10713:51::-;;;;;;;;;;;;;;;;;:::o;14360:82::-;14409:7;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14409:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14409:25:0;;;;14360:82::o;10011:36::-;;;;:::o;7509:68::-;;;;;;;;;;;;;:::o;12566:291::-;12617:10;11205:16;:14;:16::i;:::-;11182:20;:39;;;;11249:26;:24;:26::i;:::-;11232:14;:43;;;;11309:1;11290:21;;:7;:21;;;11286:157;;11347:15;11354:7;11347:6;:15::i;:::-;11328:7;:16;11336:7;11328:16;;;;;;;;;;;;;;;:34;;;;11411:20;;11377:22;:31;11400:7;11377:31;;;;;;;;;;;;;;;:54;;;;11286:157;15002:12;;14983:15;:31;14979:1269;;15031:24;15058:22;:20;:22::i;:::-;15031:49;;;;15154:1;15138:12;;:17;15134:139;;;15195:26;15219:1;15195:19;15212:1;15195:12;;:16;;:19;;;;:::i;:::-;:23;;:26;;;;:::i;:::-;15175:18;:46;;;;15251:6;15240:8;:17;;;;15134:139;15320:1;15305:12;;:16;15301:125;;;15362:12;;15342:18;:32;;;;15403:7;15393:8;:17;;;;15301:125;15473:1;15458:12;;:16;15454:119;;;15514:43;15553:3;15514:34;15531:16;15514:12;;:16;;:34;;;;:::i;:::-;:38;;:43;;;;:::i;:::-;15494:18;:63;;;;15454:119;15626:1;15605:18;;:22;15601:417;;;15648:7;;;;;;;;;;;:12;;;15669:4;15676:18;;15648:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15648:47:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15648:47:0;;;;15730:7;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15730:23:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15730:23:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15730:23:0;;;;;;;;;;;;;;;;15714:14;:39;;;;15812:14;;15793:18;;:33;15772:18;:54;;;;15845:7;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15845:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15845:25:0;;;;15923:46;15950:18;;15923:22;;:26;;:46;;;;:::i;:::-;15898:22;:71;;;;15988:12;;:14;;;;;;;;;;;;;15601:417;16047:32;16070:8;;16047:18;;:22;;:32;;;;:::i;:::-;16034:10;:45;;;;16111:15;16094:14;:32;;;;16156:29;16176:8;;16156:15;:19;;:29;;;;:::i;:::-;16141:12;:44;;;;16205:31;16217:18;;16205:31;;;;;;;;;;;;;;;;;;14979:1269;;16334:9;;16316:15;:27;16308:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12683:1;12674:6;:10;12666:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12761:11;;12743:15;:29;12714:15;:27;12730:10;12714:27;;;;;;;;;;;;;;;:58;;;;12783:24;12800:6;12783:16;:24::i;:::-;12830:10;12823:26;;;12842:6;12823:26;;;;;;;;;;;;;;;;;;12566:291;;:::o;13792:141::-;13835:7;13870;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13870:23:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13870:23:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13870:23:0;;;;;;;;;;;;;;;;13854:14;:39;;;;13911:14;;13904:21;;13792:141;:::o;7200:25::-;;;;;;;;;;;;;:::o;10403:29::-;;;;:::o;13146:94::-;13194:7;13220:12;;13213:19;;13146:94;:::o;11609:376::-;11656:7;11697:1;11680:13;:11;:13::i;:::-;:18;11676:78;;;11722:20;;11715:27;;;;11676:78;11780:197;11819:147;11952:13;:11;:13::i;:::-;11819:114;11928:4;11819:90;11898:10;;11819:60;11864:14;;11819:26;:24;:26::i;:::-;:44;;:60;;;;:::i;:::-;:78;;:90;;;;:::i;:::-;:108;;:114;;;;:::i;:::-;:132;;:147;;;;:::i;:::-;11780:20;;:24;;:197;;;;:::i;:::-;11764:213;;11609:376;;:::o;9757:88::-;;;;;;;;;;;;;:::o;10439:35::-;;;;:::o;10096:48::-;;;;:::o;10594:58::-;;;;;;;;;;;;;;;;;:::o;10329:31::-;;;;:::o;2938:109::-;2616:9;:7;:9::i;:::-;2608:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3011:28;3030:8;3011:18;:28::i;:::-;2938:109;:::o;12455:103::-;12502:10;11205:16;:14;:16::i;:::-;11182:20;:39;;;;11249:26;:24;:26::i;:::-;11232:14;:43;;;;11309:1;11290:21;;:7;:21;;;11286:157;;11347:15;11354:7;11347:6;:15::i;:::-;11328:7;:16;11336:7;11328:16;;;;;;;;;;;;;;;:34;;;;11411:20;;11377:22;:31;11400:7;11377:31;;;;;;;;;;;;;;;:54;;;;11286:157;15002:12;;14983:15;:31;14979:1269;;15031:24;15058:22;:20;:22::i;:::-;15031:49;;;;15154:1;15138:12;;:17;15134:139;;;15195:26;15219:1;15195:19;15212:1;15195:12;;:16;;:19;;;;:::i;:::-;:23;;:26;;;;:::i;:::-;15175:18;:46;;;;15251:6;15240:8;:17;;;;15134:139;15320:1;15305:12;;:16;15301:125;;;15362:12;;15342:18;:32;;;;15403:7;15393:8;:17;;;;15301:125;15473:1;15458:12;;:16;15454:119;;;15514:43;15553:3;15514:34;15531:16;15514:12;;:16;;:34;;;;:::i;:::-;:38;;:43;;;;:::i;:::-;15494:18;:63;;;;15454:119;15626:1;15605:18;;:22;15601:417;;;15648:7;;;;;;;;;;;:12;;;15669:4;15676:18;;15648:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15648:47:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15648:47:0;;;;15730:7;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15730:23:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15730:23:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15730:23:0;;;;;;;;;;;;;;;;15714:14;:39;;;;15812:14;;15793:18;;:33;15772:18;:54;;;;15845:7;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15845:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15845:25:0;;;;15923:46;15950:18;;15923:22;;:26;;:46;;;;:::i;:::-;15898:22;:71;;;;15988:12;;:14;;;;;;;;;;;;;15601:417;16047:32;16070:8;;16047:18;;:22;;:32;;;;:::i;:::-;16034:10;:45;;;;16111:15;16094:14;:32;;;;16156:29;16176:8;;16156:15;:19;;:29;;;;:::i;:::-;16141:12;:44;;;;16205:31;16217:18;;16205:31;;;;;;;;;;;;;;;;;;14979:1269;;16334:9;;16316:15;:27;16308:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12455:103;:::o;12295:148::-;12355:7;12382:53;12419:15;12426:7;12419:6;:15::i;:::-;12382:23;:32;12406:7;12382:32;;;;;;;;;;;;;;;;:36;;:53;;;;:::i;:::-;12375:60;;12295:148;;;:::o;638:136::-;696:7;723:43;727:1;730;723:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;716:50;;638:136;;;;:::o;980:248::-;1038:7;1067:1;1062;:6;1058:47;;;1092:1;1085:8;;;;1058:47;1117:9;1133:1;1129;:5;1117:17;;1162:1;1157;1153;:5;;;;;;:10;1145:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1219:1;1212:8;;;980:248;;;;;:::o;1236:132::-;1294:7;1321:39;1325:1;1328;1321:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1314:46;;1236:132;;;;:::o;451:179::-;509:7;529:9;545:1;541;:5;529:17;;570:1;565;:6;;557:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;621:1;614:8;;;451:179;;;;:::o;8155:766::-;8261:15;8243;:33;8239:675;;;8307:24;8324:6;8307:12;;:16;;:24;;;;:::i;:::-;8292:12;:39;;;;8370:33;8396:6;8370:9;:21;8380:10;8370:21;;;;;;;;;;;;;;;;:25;;:33;;;;:::i;:::-;8346:9;:21;8356:10;8346:21;;;;;;;;;;;;;;;:57;;;;8418:34;8433:10;8445:6;8418:1;;;;;;;;;;;:14;;;;:34;;;;;:::i;:::-;8239:675;;;8504:20;8527:23;8546:3;8527:14;8538:2;8527:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;8504:46;;8580:24;8597:6;8580:12;;:16;;:24;;;;:::i;:::-;8565:12;:39;;;;8643:33;8669:6;8643:9;:21;8653:10;8643:21;;;;;;;;;;;;;;;;:25;;:33;;;;:::i;:::-;8619:9;:21;8629:10;8619:21;;;;;;;;;;;;;;;:57;;;;8691:22;8724:12;8715:6;:21;8691:45;;8765:42;8780:10;8792:14;8765:1;;;;;;;;;;;:14;;;;:42;;;;;:::i;:::-;8822:80;8845:42;8889:12;8822:1;;;;;;;;;;;:14;;;;:80;;;;;:::i;:::-;8239:675;;;8155:766;;:::o;164:106::-;222:7;253:1;249;:5;:13;;261:1;249:13;;;257:1;249:13;242:20;;164:106;;;;:::o;1967:98::-;2012:15;2047:10;2040:17;;1967:98;:::o;7912:235::-;7983:24;8000:6;7983:12;;:16;;:24;;;;:::i;:::-;7968:12;:39;;;;8042:33;8068:6;8042:9;:21;8052:10;8042:21;;;;;;;;;;;;;;;;:25;;:33;;;;:::i;:::-;8018:9;:21;8028:10;8018:21;;;;;;;;;;;;;;;:57;;;;8086:53;8105:10;8125:4;8132:6;8086:1;;;;;;;;;;;:18;;;;:53;;;;;;:::i;:::-;7912:235;:::o;3055:229::-;3149:1;3129:22;;:8;:22;;;;3121:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3239:8;3210:38;;3231:6;;;;;;;;;;;3210:38;;;;;;;;;;;;3268:8;3259:6;;:17;;;;;;;;;;;;;;;;;;3055:229;:::o;782:190::-;868:7;901:1;896;:6;;904:12;888:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;888:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;928:9;944:1;940;:5;928:17;;963:1;956:8;;;782:190;;;;;:::o;1376:189::-;1462:7;1494:1;1490;:5;1497:12;1482:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1482:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1521:9;1537:1;1533;:5;;;;;;1521:17;;1556:1;1549:8;;;1376:189;;;;;:::o;5173:176::-;5256:85;5275:5;5305;:14;;;:23;;;;5330:2;5334:5;5282:58;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;5282:58:0;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;5282:58:0;5256:18;:85::i;:::-;5173:176;;;:::o;5357:204::-;5458:95;5477:5;5507;:18;;;:27;;;;5536:4;5542:2;5546:5;5484:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;5484:68:0;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;5484:68:0;5458:18;:95::i;:::-;5357:204;;;;:::o;6561:547::-;6659:27;6667:5;6659:25;;;:27::i;:::-;6651:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6736:12;6750:23;6785:5;6777:19;;6797:4;6777:25;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;6777:25:0;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;6735:67:0;;;;6821:7;6813:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6902:1;6882:10;:17;:21;6878:223;;;7023:10;7012:30;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7012:30:0;;;;;;;;;;;;;;;;7004:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6878:223;6561:547;;;;:::o;4160:372::-;4220:4;4237:16;4264:19;4286:66;4264:88;;;;4454:7;4442:20;4430:32;;4493:3;4481:15;;:8;:15;;:42;;;;;4512:11;4500:8;:23;;4481:42;4473:51;;;;4160:372;;;:::o

Swarm Source

bzzr://88857cf4284d7fcf8af9ce50782510a81772f5a82845da70d214f7b06e27dda9

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.