ETH Price: $2,189.95 (+1.27%)
 

Overview

Max Total Supply

1,000,000,000,000 HBC

Holders

27

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
25,199,999,995.800000431 HBC

Value
$0.00
0x74b7e5ee13346dcf0d4eadb911098d020cb7e8f2
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
HyperBrainCapital

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-12-15
*/

/* 
Welcome to HyperBrain Capital ($HBC) - World First DeFi Multi-chain Farming Deflationary Token with passive income generation 
in ETH! HyperBrain Capital it's a community-run ERC-20 token with unique tokenomics to ensure long term sustainability.

Website:
https://hyperbraincapital.com

Telegram:
https://t.me/Hbcapitalofficial

Twitter:
https://twitter.com/HyperBrainCap


*/ 

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.7;

/**
 * Standard SafeMath, stripped down to just add/sub/mul/div
 */
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) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}

/**
 * BEP20 standard interface.
 */
interface IBEP20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    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);
}

/**
 * Allows for contract ownership along with multi-address authorization
 */
abstract contract Auth {
    address internal owner;

    constructor(address _owner) {
        owner = _owner;
    }

    /**
     * Function modifier to require caller to be contract deployer
     */
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!Owner"); _;
    }

    /**
     * Check if address is owner
     */
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    /**
     * Transfer ownership to new address. Caller must be deployer. Leaves old deployer authorized
     */
    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

interface IDEXFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

interface IDividendDistributor {
    function setShare(address shareholder, uint256 amount) external;
    function deposit() external payable;
    function claimDividend(address shareholder) external;
    function setTreasury(address treasury) external;
    function getDividendsClaimedOf (address shareholder) external returns (uint256);
}

contract DividendDistributor is IDividendDistributor {
    using SafeMath for uint256;

    address public _token;
    address public _owner;
    address public _treasury;

    struct Share {
        uint256 amount;
        uint256 totalExcluded;
        uint256 totalClaimed;
    }

    address[] private shareholders;
    mapping (address => uint256) private shareholderIndexes;

    mapping (address => Share) public shares;

    uint256 public totalShares;
    uint256 public totalDividends;
    uint256 public totalClaimed;
    uint256 public dividendsPerShare;
    uint256 private dividendsPerShareAccuracyFactor = 10 ** 36;

    modifier onlyToken() {
        require(msg.sender == _token); _;
    }
    
    modifier onlyOwner() {
        require(msg.sender == _owner); _;
    }

    constructor (address owner, address treasury) {
        _token = msg.sender;
        _owner = owner;
        _treasury = treasury;
    }

   // receive() external payable { }

    function setShare(address shareholder, uint256 amount) external override onlyToken {
        if(shares[shareholder].amount > 0){
            distributeDividend(shareholder);
        }

        if(amount > 0 && shares[shareholder].amount == 0){
            addShareholder(shareholder);
        }else if(amount == 0 && shares[shareholder].amount > 0){
            removeShareholder(shareholder);
        }

        totalShares = totalShares.sub(shares[shareholder].amount).add(amount);
        shares[shareholder].amount = amount;
        shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
    }

    function deposit() external payable override {
       
        uint256 amount = msg.value;
        
        totalDividends = totalDividends.add(amount);
        dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares));
    }

    function distributeDividend(address shareholder) internal {
        if(shares[shareholder].amount == 0){ return; }

        uint256 amount = getClaimableDividendOf(shareholder);
        if(amount > 0){
            totalClaimed = totalClaimed.add(amount);
            shares[shareholder].totalClaimed = shares[shareholder].totalClaimed.add(amount);
            shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
            payable(shareholder).transfer(amount);
        }
    }

    function claimDividend(address shareholder) external override onlyToken {
        distributeDividend(shareholder);
    }

    function getClaimableDividendOf(address shareholder) public view returns (uint256) {
        if(shares[shareholder].amount == 0){ return 0; }

        uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount);
        uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded;

        if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; }

        return shareholderTotalDividends.sub(shareholderTotalExcluded);
    }

    function getCumulativeDividends(uint256 share) internal view returns (uint256) {
        return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor);
    }

    function addShareholder(address shareholder) internal {
        shareholderIndexes[shareholder] = shareholders.length;
        shareholders.push(shareholder);
    }

    function removeShareholder(address shareholder) internal {
        shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1];
        shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder];
        shareholders.pop();
    }
    
    function manualSend(uint256 amount, address holder) external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        payable(holder).transfer(amount > 0 ? amount : contractETHBalance);
    }

    function setTreasury(address treasury) external onlyToken {
        _treasury = payable(treasury);
    }

    function getDividendsClaimedOf (address shareholder) external view returns (uint256) {
        require (shares[shareholder].amount > 0, "You're not a BBC shareholder!");
        return shares[shareholder].totalClaimed;
    }

    }

contract HyperBrainCapital is IBEP20, Auth {
    using SafeMath for uint256;

    address private WETH;
    address private DEAD = 0x000000000000000000000000000000000000dEaD;
    address private ZERO = 0x0000000000000000000000000000000000000000;

    string private constant  _name = "Hyper Brain Capital";
    string private constant _symbol = "HBC";
    uint8 private constant _decimals = 9;

    uint256 private _totalSupply = 1000000000000 * (10 ** _decimals);
    uint256 private _maxTxAmountBuy = _totalSupply;
    

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

    mapping (address => bool) private isFeeExempt;
    mapping (address => bool) private isDividendExempt;
    mapping (address => bool) private isBot;
    

        
    uint256 private totalFee = 16;
    uint256 private feeDenominator = 100;

    address payable public marketingWallet = payable(0x39115581B50f9E41D2d4321F145C5A2Bd3690dA3);
    address payable public treasury = payable(0x2D085066ad0c807253B358f995Ac6f593FD21050);

    IDEXRouter public router;
    address public pair;

    uint256 public launchedAt;
    bool private tradingOpen;
    bool private buyLimit = true;
    uint256 private maxBuy = 100000000000 * (10 ** _decimals);

    DividendDistributor private distributor;

    
    
    
    bool private inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor (
        address _owner        
    ) Auth(_owner) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
            
        WETH = router.WETH();
        
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        distributor = new DividendDistributor(_owner, treasury);

        isFeeExempt[_owner] = true;
        isFeeExempt[marketingWallet] = true;
        isFeeExempt[treasury] = true;        
              
        isDividendExempt[pair] = true;
        isDividendExempt[address(this)] = true;
        isDividendExempt[DEAD] = true;        

        _balances[_owner] = _totalSupply;
    
        emit Transfer(address(0), _owner, _totalSupply);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if (sender!= owner && recipient!= owner) require(tradingOpen, "Trading not yet enabled."); //transfers disabled before openTrading
        require (!isBot[sender] && !isBot[recipient], "Nice try");
        if (buyLimit) { 
            if (sender!=owner && recipient!= owner) require (amount<=maxBuy, "Too much sir");        
        }
        if (block.number <= (launchedAt + 1)) { 
            isBot[recipient] = true;
            isDividendExempt[recipient] = true; 
        }
       
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }      
    
        bool shouldSwapBack = /*!inSwap &&*/ (recipient==pair && balanceOf(address(this)) > 0);
        if(shouldSwapBack){ swapBack(); }

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, amount) : amount;
        
        _balances[recipient] = _balances[recipient].add(amountReceived);

        if(sender != pair && !isDividendExempt[sender]){ try distributor.setShare(sender, _balances[sender]) {} catch {} }
        if(recipient != pair && !isDividendExempt[recipient]){ try distributor.setShare(recipient, _balances[recipient]) {} catch {} }

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

 
    function shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return ( !(isFeeExempt[sender] || isFeeExempt[recipient]) &&  (sender == pair || recipient == pair) );
   }

    function takeFee(address sender, uint256 amount) internal returns (uint256) {
        uint256 feeAmount;
        feeAmount = amount.mul(totalFee).div(feeDenominator);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);   

        return amount.sub(feeAmount);
    }

   
    function swapBack() internal swapping {
        uint256 amountToSwap = balanceOf(address(this));

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );
        
        uint256 amountTreasury = (address(this).balance).div(2);
        uint256 amountMarketing = (address(this).balance).div(2);

             
        payable(marketingWallet).transfer(amountMarketing);
        payable(treasury).transfer(amountTreasury);
    }

    
    function openTrading() external onlyOwner {
        launchedAt = block.number;
        tradingOpen = true;
    }    
  
    
    function setBot(address _address, bool toggle) external onlyOwner {
        isBot[_address] = toggle;
        _setIsDividendExempt(_address, toggle);
    }
    
    function isInBot(address _address) external view onlyOwner returns (bool) {
        return isBot[_address];
    }
    
    function _setIsDividendExempt(address holder, bool exempt) internal {
        require(holder != address(this) && holder != pair);
        isDividendExempt[holder] = exempt;
        if(exempt){
            distributor.setShare(holder, 0);
        }else{
            distributor.setShare(holder, _balances[holder]);
        }
    }

    function setIsDividendExempt(address holder, bool exempt) external onlyOwner {
        _setIsDividendExempt(holder, exempt);
    }

    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function setFee (uint256 _fee) external onlyOwner {
        require (_fee <= 16, "Fee can't exceed 16%");
        totalFee = _fee;
    }

  
    function manualSend() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        payable(marketingWallet).transfer(contractETHBalance);
    }

    function claimDividend() external {
        distributor.claimDividend(msg.sender);
    }
    
    function claimDividend(address holder) external onlyOwner {
        distributor.claimDividend(holder);
    }
    
    function getClaimableDividendOf(address shareholder) public view returns (uint256) {
        return distributor.getClaimableDividendOf(shareholder);
    }
    
    function manualBurn(uint256 amount) external onlyOwner returns (bool) {
        return _basicTransfer(address(this), DEAD, amount);
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function setMarketingWallet(address _marketingWallet) external onlyOwner {
        marketingWallet = payable(_marketingWallet);
    }

    function setTreasury(address _treasury) external onlyOwner {
        treasury = payable(_treasury);
        distributor.setTreasury(_treasury);
    }

    function getTotalDividends() external view returns (uint256) {
        return distributor.totalDividends();
    }    

    function getTotalClaimed() external view returns (uint256) {
        return distributor.totalClaimed();
    }

     function getDividendsClaimedOf (address shareholder) external view returns (uint256) {
        return distributor.getDividendsClaimedOf(shareholder);
    }

    function removeBuyLimit() external onlyOwner {
        buyLimit = false;
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getClaimableDividendOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getDividendsClaimedOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalClaimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalDividends","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isInBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualBurn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeBuyLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"toggle","type":"bool"}],"name":"setBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_treasury","type":"address"}],"name":"setTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasury","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000099919062000b15565b64e8d4a51000620000ab919062000b66565b6004556004546005556010600b556064600c557339115581b50f9e41d2d4321f145c5a2bd3690da3600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550732d085066ad0c807253b358f995ac6f593fd21050600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601260016101000a81548160ff0219169083151502179055506009600a62000193919062000b15565b64174876e800620001a5919062000b66565b601355348015620001b557600080fd5b5060405162006281380380620062818339818101604052810190620001db919062000c31565b80806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000306919062000c31565b600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003b4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003da919062000c31565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200043892919062000c74565b6020604051808303816000875af115801562000458573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200047e919062000c31565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051620005b3906200096d565b620005c092919062000d0c565b604051809103906000f080158015620005dd573d6000803e3d6000fd5b50601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600454600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004546040516200095e919062000d4a565b60405180910390a35062000d67565b6119e4806200489d83390190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000a0957808604811115620009e157620009e06200097b565b5b6001851615620009f15780820291505b808102905062000a0185620009aa565b9450620009c1565b94509492505050565b60008262000a24576001905062000af7565b8162000a34576000905062000af7565b816001811462000a4d576002811462000a585762000a8e565b600191505062000af7565b60ff84111562000a6d5762000a6c6200097b565b5b8360020a91508482111562000a875762000a866200097b565b5b5062000af7565b5060208310610133831016604e8410600b841016171562000ac85782820a90508381111562000ac25762000ac16200097b565b5b62000af7565b62000ad78484846001620009b7565b9250905081840481111562000af15762000af06200097b565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000b228262000afe565b915062000b2f8362000b08565b925062000b5e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000a12565b905092915050565b600062000b738262000afe565b915062000b808362000afe565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000bbc5762000bbb6200097b565b5b828202905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000bf98262000bcc565b9050919050565b62000c0b8162000bec565b811462000c1757600080fd5b50565b60008151905062000c2b8162000c00565b92915050565b60006020828403121562000c4a5762000c4962000bc7565b5b600062000c5a8482850162000c1a565b91505092915050565b62000c6e8162000bec565b82525050565b600060408201905062000c8b600083018562000c63565b62000c9a602083018462000c63565b9392505050565b6000819050919050565b600062000ccc62000cc662000cc08462000bcc565b62000ca1565b62000bcc565b9050919050565b600062000ce08262000cab565b9050919050565b600062000cf48262000cd3565b9050919050565b62000d068162000ce7565b82525050565b600060408201905062000d23600083018562000c63565b62000d32602083018462000cfb565b9392505050565b62000d448162000afe565b82525050565b600060208201905062000d61600083018462000d39565b92915050565b613b268062000d776000396000f3fe6080604052600436106102135760003560e01c806369fe0e2d11610118578063bf56b371116100a0578063f0fc6bca1161006f578063f0fc6bca146107e6578063f2fde38b146107fd578063f429389014610826578063f708a64f1461083d578063f887ea40146108665761021a565b8063bf56b3711461073e578063c9567bf914610769578063dd62ed3e14610780578063f0f44260146107bd5761021a565b8063893d20e8116100e7578063893d20e8146106435780638ecc37fb1461066e57806395d89b41146106ab578063a8aa1b31146106d6578063a9059cbb146107015761021a565b806369fe0e2d1461058757806370a08231146105b0578063736a83a1146105ed57806375f0a874146106185761021a565b8063342aa8b51161019b5780635cc33f741161016a5780635cc33f74146104a25780635d098b38146104df57806361d027b314610508578063658d4b7f1461053357806367ee5f091461055c5761021a565b8063342aa8b5146103e85780633e07ce5b14610411578063416501c814610428578063571ac8b0146104655761021a565b806323b63585116101e257806323b63585146102db57806323b872dd146103185780632b112e49146103555780632f54bf6e14610380578063313ce567146103bd5761021a565b806306fdde031461021f578063095ea7b31461024a57806315f7e05e1461028757806318160ddd146102b05761021a565b3661021a57005b600080fd5b34801561022b57600080fd5b50610234610891565b6040516102419190612fbe565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c9190613079565b6108ce565b60405161027e91906130d4565b60405180910390f35b34801561029357600080fd5b506102ae60048036038101906102a991906130ef565b6109c0565b005b3480156102bc57600080fd5b506102c5610a98565b6040516102d2919061312b565b60405180910390f35b3480156102e757600080fd5b5061030260048036038101906102fd9190613146565b610aa2565b60405161030f91906130d4565b60405180910390f35b34801561032457600080fd5b5061033f600480360381019061033a9190613173565b610b20565b60405161034c91906130d4565b60405180910390f35b34801561036157600080fd5b5061036a610d20565b604051610377919061312b565b60405180910390f35b34801561038c57600080fd5b506103a760048036038101906103a291906130ef565b610da2565b6040516103b491906130d4565b60405180910390f35b3480156103c957600080fd5b506103d2610dfb565b6040516103df91906131e2565b60405180910390f35b3480156103f457600080fd5b5061040f600480360381019061040a9190613229565b610e04565b005b34801561041d57600080fd5b50610426610eb1565b005b34801561043457600080fd5b5061044f600480360381019061044a91906130ef565b610f16565b60405161045c91906130d4565b60405180910390f35b34801561047157600080fd5b5061048c600480360381019061048791906130ef565b610fb4565b60405161049991906130d4565b60405180910390f35b3480156104ae57600080fd5b506104c960048036038101906104c491906130ef565b610fe7565b6040516104d6919061312b565b60405180910390f35b3480156104eb57600080fd5b50610506600480360381019061050191906130ef565b61108c565b005b34801561051457600080fd5b5061051d611118565b60405161052a919061328a565b60405180910390f35b34801561053f57600080fd5b5061055a60048036038101906105559190613229565b61113e565b005b34801561056857600080fd5b506105716111e1565b60405161057e919061312b565b60405180910390f35b34801561059357600080fd5b506105ae60048036038101906105a99190613146565b611279565b005b3480156105bc57600080fd5b506105d760048036038101906105d291906130ef565b61130f565b6040516105e4919061312b565b60405180910390f35b3480156105f957600080fd5b50610602611358565b60405161060f919061312b565b60405180910390f35b34801561062457600080fd5b5061062d6113f0565b60405161063a919061328a565b60405180910390f35b34801561064f57600080fd5b50610658611416565b60405161066591906132b4565b60405180910390f35b34801561067a57600080fd5b50610695600480360381019061069091906130ef565b61143f565b6040516106a2919061312b565b60405180910390f35b3480156106b757600080fd5b506106c06114e4565b6040516106cd9190612fbe565b60405180910390f35b3480156106e257600080fd5b506106eb611521565b6040516106f891906132b4565b60405180910390f35b34801561070d57600080fd5b5061072860048036038101906107239190613079565b611547565b60405161073591906130d4565b60405180910390f35b34801561074a57600080fd5b5061075361155c565b604051610760919061312b565b60405180910390f35b34801561077557600080fd5b5061077e611562565b005b34801561078c57600080fd5b506107a760048036038101906107a291906132cf565b6115ce565b6040516107b4919061312b565b60405180910390f35b3480156107c957600080fd5b506107e460048036038101906107df91906130ef565b611655565b005b3480156107f257600080fd5b506107fb61176e565b005b34801561080957600080fd5b50610824600480360381019061081f919061333b565b6117fd565b005b34801561083257600080fd5b5061083b6118bf565b005b34801561084957600080fd5b50610864600480360381019061085f9190613229565b611978565b005b34801561087257600080fd5b5061087b6119ce565b60405161088891906133c7565b60405180910390f35b60606040518060400160405280601381526020017f487970657220427261696e204361706974616c00000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109ae919061312b565b60405180910390a36001905092915050565b6109c933610da2565b610a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ff9061342e565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315f7e05e826040518263ffffffff1660e01b8152600401610a6391906132b4565b600060405180830381600087803b158015610a7d57600080fd5b505af1158015610a91573d6000803e3d6000fd5b5050505050565b6000600454905090565b6000610aad33610da2565b610aec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae39061342e565b60405180910390fd5b610b1930600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846119f4565b9050919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610d0c57610c8b826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bc79092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610d17848484611c2b565b90509392505050565b6000610d9d610d50600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661130f565b610d8f610d7e600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661130f565b60045461256f90919063ffffffff16565b61256f90919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b610e0d33610da2565b610e4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e439061342e565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610ead82826125b9565b5050565b610eba33610da2565b610ef9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef09061342e565b60405180910390fd5b6000601260016101000a81548160ff021916908315150217905550565b6000610f2133610da2565b610f60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f579061342e565b60405180910390fd5b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000610fe0827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6108ce565b9050919050565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635cc33f74836040518263ffffffff1660e01b815260040161104491906132b4565b602060405180830381865afa158015611061573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110859190613463565b9050919050565b61109533610da2565b6110d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cb9061342e565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61114733610da2565b611186576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117d9061342e565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663997664d76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611250573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112749190613463565b905090565b61128233610da2565b6112c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b89061342e565b60405180910390fd5b6010811115611305576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fc906134dc565b60405180910390fd5b80600b8190555050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d54ad2a16040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113eb9190613463565b905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638ecc37fb836040518263ffffffff1660e01b815260040161149c91906132b4565b602060405180830381865afa1580156114b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114dd9190613463565b9050919050565b60606040518060400160405280600381526020017f4842430000000000000000000000000000000000000000000000000000000000815250905090565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611554338484611c2b565b905092915050565b60115481565b61156b33610da2565b6115aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a19061342e565b60405180910390fd5b436011819055506001601260006101000a81548160ff021916908315150217905550565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61165e33610da2565b61169d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116949061342e565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0f44260826040518263ffffffff1660e01b815260040161173991906132b4565b600060405180830381600087803b15801561175357600080fd5b505af1158015611767573d6000803e3d6000fd5b5050505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315f7e05e336040518263ffffffff1660e01b81526004016117c991906132b4565b600060405180830381600087803b1580156117e357600080fd5b505af11580156117f7573d6000803e3d6000fd5b50505050565b61180633610da2565b611845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183c9061342e565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516118b4919061351d565b60405180910390a150565b6118c833610da2565b611907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fe9061342e565b60405180910390fd5b6000479050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611974573d6000803e3d6000fd5b5050565b61198133610da2565b6119c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b79061342e565b60405180910390fd5b6119ca82826125b9565b5050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611a7f826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bc79092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b1482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461281190919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611bb4919061312b565b60405180910390a3600190509392505050565b6000838311158290611c0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c069190612fbe565b60405180910390fd5b5060008385611c1e9190613567565b9050809150509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611cd6575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d2b57601260009054906101000a900460ff16611d2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d21906135e7565b60405180910390fd5b5b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611dcf5750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611e0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0590613653565b60405180910390fd5b601260019054906101000a900460ff1615611f175760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611ecb575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611f1657601354821115611f15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0c906136bf565b60405180910390fd5b5b5b6001601154611f2691906136df565b4311611fdd576001600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b60148054906101000a900460ff161561200257611ffb8484846119f4565b9050612568565b6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612069575060006120673061130f565b115b9050801561207a5761207961286f565b5b612103836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bc79092919063ffffffff16565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006121528686612b5c565b61215c5783612167565b6121668685612cb9565b5b90506121bb81600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461281190919063ffffffff16565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156122a65750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561237d57601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9687600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612347929190613735565b600060405180830381600087803b15801561236157600080fd5b505af1925050508015612372575060015b61237b5761237c565b5b5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156124255750600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124fc57601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016124c6929190613735565b600060405180830381600087803b1580156124e057600080fd5b505af19250505080156124f1575060015b6124fa576124fb565b5b5b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612559919061312b565b60405180910390a36001925050505b9392505050565b60006125b183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bc7565b905092915050565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156126435750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61264c57600080fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550801561273e57601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b8152600401612707929190613799565b600060405180830381600087803b15801561272157600080fd5b505af1158015612735573d6000803e3d6000fd5b5050505061280d565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016127da929190613735565b600060405180830381600087803b1580156127f457600080fd5b505af1158015612808573d6000803e3d6000fd5b505050505b5050565b600080828461282091906136df565b905083811015612865576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285c9061380e565b60405180910390fd5b8091505092915050565b60016014806101000a81548160ff02191690831515021790555060006128943061130f565b90506000600267ffffffffffffffff8111156128b3576128b261382e565b5b6040519080825280602002602001820160405280156128e15781602001602082028036833780820191505090505b50905030816000815181106128f9576128f861385d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061296a5761296961385d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612a0895949392919061394a565b600060405180830381600087803b158015612a2257600080fd5b505af1158015612a36573d6000803e3d6000fd5b505050506000612a50600247612dfd90919063ffffffff16565b90506000612a68600247612dfd90919063ffffffff16565b9050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612ad2573d6000803e3d6000fd5b50600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612b3b573d6000803e3d6000fd5b505050505060006014806101000a81548160ff021916908315150217905550565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612bff5750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b158015612cb15750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480612cb05750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b905092915050565b600080612ce5600c54612cd7600b5486612e4790919063ffffffff16565b612dfd90919063ffffffff16565b9050612d3981600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461281190919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612dd9919061312b565b60405180910390a3612df4818461256f90919063ffffffff16565b91505092915050565b6000612e3f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ec2565b905092915050565b600080831415612e5a5760009050612ebc565b60008284612e6891906139a4565b9050828482612e779190613a2d565b14612eb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eae90613ad0565b60405180910390fd5b809150505b92915050565b60008083118290612f09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f009190612fbe565b60405180910390fd5b5060008385612f189190613a2d565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612f5f578082015181840152602081019050612f44565b83811115612f6e576000848401525b50505050565b6000601f19601f8301169050919050565b6000612f9082612f25565b612f9a8185612f30565b9350612faa818560208601612f41565b612fb381612f74565b840191505092915050565b60006020820190508181036000830152612fd88184612f85565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061301082612fe5565b9050919050565b61302081613005565b811461302b57600080fd5b50565b60008135905061303d81613017565b92915050565b6000819050919050565b61305681613043565b811461306157600080fd5b50565b6000813590506130738161304d565b92915050565b600080604083850312156130905761308f612fe0565b5b600061309e8582860161302e565b92505060206130af85828601613064565b9150509250929050565b60008115159050919050565b6130ce816130b9565b82525050565b60006020820190506130e960008301846130c5565b92915050565b60006020828403121561310557613104612fe0565b5b60006131138482850161302e565b91505092915050565b61312581613043565b82525050565b6000602082019050613140600083018461311c565b92915050565b60006020828403121561315c5761315b612fe0565b5b600061316a84828501613064565b91505092915050565b60008060006060848603121561318c5761318b612fe0565b5b600061319a8682870161302e565b93505060206131ab8682870161302e565b92505060406131bc86828701613064565b9150509250925092565b600060ff82169050919050565b6131dc816131c6565b82525050565b60006020820190506131f760008301846131d3565b92915050565b613206816130b9565b811461321157600080fd5b50565b600081359050613223816131fd565b92915050565b600080604083850312156132405761323f612fe0565b5b600061324e8582860161302e565b925050602061325f85828601613214565b9150509250929050565b600061327482612fe5565b9050919050565b61328481613269565b82525050565b600060208201905061329f600083018461327b565b92915050565b6132ae81613005565b82525050565b60006020820190506132c960008301846132a5565b92915050565b600080604083850312156132e6576132e5612fe0565b5b60006132f48582860161302e565b92505060206133058582860161302e565b9150509250929050565b61331881613269565b811461332357600080fd5b50565b6000813590506133358161330f565b92915050565b60006020828403121561335157613350612fe0565b5b600061335f84828501613326565b91505092915050565b6000819050919050565b600061338d61338861338384612fe5565b613368565b612fe5565b9050919050565b600061339f82613372565b9050919050565b60006133b182613394565b9050919050565b6133c1816133a6565b82525050565b60006020820190506133dc60008301846133b8565b92915050565b7f214f776e65720000000000000000000000000000000000000000000000000000600082015250565b6000613418600683612f30565b9150613423826133e2565b602082019050919050565b600060208201905081810360008301526134478161340b565b9050919050565b60008151905061345d8161304d565b92915050565b60006020828403121561347957613478612fe0565b5b60006134878482850161344e565b91505092915050565b7f4665652063616e27742065786365656420313625000000000000000000000000600082015250565b60006134c6601483612f30565b91506134d182613490565b602082019050919050565b600060208201905081810360008301526134f5816134b9565b9050919050565b600061350782613394565b9050919050565b613517816134fc565b82525050565b6000602082019050613532600083018461350e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061357282613043565b915061357d83613043565b9250828210156135905761358f613538565b5b828203905092915050565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b60006135d1601883612f30565b91506135dc8261359b565b602082019050919050565b60006020820190508181036000830152613600816135c4565b9050919050565b7f4e69636520747279000000000000000000000000000000000000000000000000600082015250565b600061363d600883612f30565b915061364882613607565b602082019050919050565b6000602082019050818103600083015261366c81613630565b9050919050565b7f546f6f206d756368207369720000000000000000000000000000000000000000600082015250565b60006136a9600c83612f30565b91506136b482613673565b602082019050919050565b600060208201905081810360008301526136d88161369c565b9050919050565b60006136ea82613043565b91506136f583613043565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561372a57613729613538565b5b828201905092915050565b600060408201905061374a60008301856132a5565b613757602083018461311c565b9392505050565b6000819050919050565b600061378361377e6137798461375e565b613368565b613043565b9050919050565b61379381613768565b82525050565b60006040820190506137ae60008301856132a5565b6137bb602083018461378a565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006137f8601b83612f30565b9150613803826137c2565b602082019050919050565b60006020820190508181036000830152613827816137eb565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6138c181613005565b82525050565b60006138d383836138b8565b60208301905092915050565b6000602082019050919050565b60006138f78261388c565b6139018185613897565b935061390c836138a8565b8060005b8381101561393d57815161392488826138c7565b975061392f836138df565b925050600181019050613910565b5085935050505092915050565b600060a08201905061395f600083018861311c565b61396c602083018761378a565b818103604083015261397e81866138ec565b905061398d60608301856132a5565b61399a608083018461311c565b9695505050505050565b60006139af82613043565b91506139ba83613043565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156139f3576139f2613538565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613a3882613043565b9150613a4383613043565b925082613a5357613a526139fe565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613aba602183612f30565b9150613ac582613a5e565b604082019050919050565b60006020820190508181036000830152613ae981613aad565b905091905056fea2646970667358221220cfc89986794b782b1036e11ba574199df2224ac0899396de3b2b49d942b9f7ad64736f6c634300080a003360806040526ec097ce7bc90715b34b9f1000000000600a553480156200002457600080fd5b50604051620019e4380380620019e483398181016040528101906200004a91906200017e565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050620001c5565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001468262000119565b9050919050565b620001588162000139565b81146200016457600080fd5b50565b60008151905062000178816200014d565b92915050565b6000806040838503121562000198576200019762000114565b5b6000620001a88582860162000167565b9250506020620001bb8582860162000167565b9150509250929050565b61180f80620001d56000396000f3fe6080604052600436106100e85760003560e01c8063b2bdfa7b1161008a578063e2d2e21911610059578063e2d2e219146102d7578063e319a3d914610302578063ecd0c0c31461032d578063f0f4426014610358576100e8565b8063b2bdfa7b14610238578063ce7c2ac214610263578063d0e30db0146102a2578063d54ad2a1146102ac576100e8565b80633a98ef39116100c65780633a98ef39146101685780635cc33f74146101935780638ecc37fb146101d0578063997664d71461020d576100e8565b80631014edf5146100ed57806314b6ca961461011657806315f7e05e1461013f575b600080fd5b3480156100f957600080fd5b50610114600480360381019061010f91906112ab565b610381565b005b34801561012257600080fd5b5061013d600480360381019061013891906112eb565b61043b565b005b34801561014b57600080fd5b506101666004803603810190610161919061132b565b6106fa565b005b34801561017457600080fd5b5061017d61075e565b60405161018a9190611367565b60405180910390f35b34801561019f57600080fd5b506101ba60048036038101906101b5919061132b565b610764565b6040516101c79190611367565b60405180910390f35b3480156101dc57600080fd5b506101f760048036038101906101f2919061132b565b610834565b6040516102049190611367565b60405180910390f35b34801561021957600080fd5b5061022261094e565b60405161022f9190611367565b60405180910390f35b34801561024457600080fd5b5061024d610954565b60405161025a9190611391565b60405180910390f35b34801561026f57600080fd5b5061028a6004803603810190610285919061132b565b61097a565b604051610299939291906113ac565b60405180910390f35b6102aa6109a4565b005b3480156102b857600080fd5b506102c1610a0a565b6040516102ce9190611367565b60405180910390f35b3480156102e357600080fd5b506102ec610a10565b6040516102f99190611367565b60405180910390f35b34801561030e57600080fd5b50610317610a16565b6040516103249190611391565b60405180910390f35b34801561033957600080fd5b50610342610a3c565b60405161034f9190611391565b60405180910390f35b34801561036457600080fd5b5061037f600480360381019061037a919061132b565b610a60565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103db57600080fd5b60004790508173ffffffffffffffffffffffffffffffffffffffff166108fc60008511610408578261040a565b845b9081150290604051600060405180830381858888f19350505050158015610435573d6000803e3d6000fd5b50505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461049357600080fd5b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015411156104e8576104e782610afc565b5b60008111801561053a57506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b1561054d5761054882610cf6565b6105af565b60008114801561059f57506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154115b156105ae576105ad82610da5565b5b5b6106188161060a600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600654610fac90919063ffffffff16565b610ff690919063ffffffff16565b60068190555080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506106b0600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611054565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461075257600080fd5b61075b81610afc565b50565b60065481565b600080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154116107ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e190611440565b60405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050919050565b600080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414156108895760009050610949565b60006108d6600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611054565b90506000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154905080821161093157600092505050610949565b6109448183610fac90919063ffffffff16565b925050505b919050565b60075481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915090508060000154908060010154908060020154905083565b60003490506109be81600754610ff690919063ffffffff16565b600781905550610a016109f06006546109e284600a5461108690919063ffffffff16565b61110190919063ffffffff16565b600954610ff690919063ffffffff16565b60098190555050565b60085481565b60095481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ab857600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541415610b4c57610cf3565b6000610b5782610834565b90506000811115610cf157610b7781600854610ff690919063ffffffff16565b600881905550610bd281600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154610ff690919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550610c63600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611054565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610cef573d6000803e3d6000fd5b505b505b50565b600380549050600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506003819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60036001600380549050610db9919061148f565b81548110610dca57610dc96114c3565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166003600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481548110610e4857610e476114c3565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546004600060036001600380549050610ee8919061148f565b81548110610ef957610ef86114c3565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506003805480610f7457610f736114f2565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905550565b6000610fee83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061114b565b905092915050565b60008082846110059190611521565b90508381101561104a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611041906115c3565b60405180910390fd5b8091505092915050565b600061107f600a546110716009548561108690919063ffffffff16565b61110190919063ffffffff16565b9050919050565b60008083141561109957600090506110fb565b600082846110a791906115e3565b90508284826110b6919061166c565b146110f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ed9061170f565b60405180910390fd5b809150505b92915050565b600061114383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506111af565b905092915050565b6000838311158290611193576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118a91906117b7565b60405180910390fd5b50600083856111a2919061148f565b9050809150509392505050565b600080831182906111f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ed91906117b7565b60405180910390fd5b5060008385611205919061166c565b9050809150509392505050565b600080fd5b6000819050919050565b61122a81611217565b811461123557600080fd5b50565b60008135905061124781611221565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006112788261124d565b9050919050565b6112888161126d565b811461129357600080fd5b50565b6000813590506112a58161127f565b92915050565b600080604083850312156112c2576112c1611212565b5b60006112d085828601611238565b92505060206112e185828601611296565b9150509250929050565b6000806040838503121561130257611301611212565b5b600061131085828601611296565b925050602061132185828601611238565b9150509250929050565b60006020828403121561134157611340611212565b5b600061134f84828501611296565b91505092915050565b61136181611217565b82525050565b600060208201905061137c6000830184611358565b92915050565b61138b8161126d565b82525050565b60006020820190506113a66000830184611382565b92915050565b60006060820190506113c16000830186611358565b6113ce6020830185611358565b6113db6040830184611358565b949350505050565b600082825260208201905092915050565b7f596f75277265206e6f74206120424243207368617265686f6c64657221000000600082015250565b600061142a601d836113e3565b9150611435826113f4565b602082019050919050565b600060208201905081810360008301526114598161141d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061149a82611217565b91506114a583611217565b9250828210156114b8576114b7611460565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600061152c82611217565b915061153783611217565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561156c5761156b611460565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006115ad601b836113e3565b91506115b882611577565b602082019050919050565b600060208201905081810360008301526115dc816115a0565b9050919050565b60006115ee82611217565b91506115f983611217565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561163257611631611460565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061167782611217565b915061168283611217565b9250826116925761169161163d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006116f96021836113e3565b91506117048261169d565b604082019050919050565b60006020820190508181036000830152611728816116ec565b9050919050565b600081519050919050565b60005b8381101561175857808201518184015260208101905061173d565b83811115611767576000848401525b50505050565b6000601f19601f8301169050919050565b60006117898261172f565b61179381856113e3565b93506117a381856020860161173a565b6117ac8161176d565b840191505092915050565b600060208201905081810360008301526117d1818461177e565b90509291505056fea2646970667358221220a8e8755b77e8bb479df9326bfe23350c804e2f8b632fabdbb52fe5177ef2eaad64736f6c634300080a0033000000000000000000000000f728b5653496b60b38a3bbcc885ec16f1f4b2db2

Deployed Bytecode

0x6080604052600436106102135760003560e01c806369fe0e2d11610118578063bf56b371116100a0578063f0fc6bca1161006f578063f0fc6bca146107e6578063f2fde38b146107fd578063f429389014610826578063f708a64f1461083d578063f887ea40146108665761021a565b8063bf56b3711461073e578063c9567bf914610769578063dd62ed3e14610780578063f0f44260146107bd5761021a565b8063893d20e8116100e7578063893d20e8146106435780638ecc37fb1461066e57806395d89b41146106ab578063a8aa1b31146106d6578063a9059cbb146107015761021a565b806369fe0e2d1461058757806370a08231146105b0578063736a83a1146105ed57806375f0a874146106185761021a565b8063342aa8b51161019b5780635cc33f741161016a5780635cc33f74146104a25780635d098b38146104df57806361d027b314610508578063658d4b7f1461053357806367ee5f091461055c5761021a565b8063342aa8b5146103e85780633e07ce5b14610411578063416501c814610428578063571ac8b0146104655761021a565b806323b63585116101e257806323b63585146102db57806323b872dd146103185780632b112e49146103555780632f54bf6e14610380578063313ce567146103bd5761021a565b806306fdde031461021f578063095ea7b31461024a57806315f7e05e1461028757806318160ddd146102b05761021a565b3661021a57005b600080fd5b34801561022b57600080fd5b50610234610891565b6040516102419190612fbe565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c9190613079565b6108ce565b60405161027e91906130d4565b60405180910390f35b34801561029357600080fd5b506102ae60048036038101906102a991906130ef565b6109c0565b005b3480156102bc57600080fd5b506102c5610a98565b6040516102d2919061312b565b60405180910390f35b3480156102e757600080fd5b5061030260048036038101906102fd9190613146565b610aa2565b60405161030f91906130d4565b60405180910390f35b34801561032457600080fd5b5061033f600480360381019061033a9190613173565b610b20565b60405161034c91906130d4565b60405180910390f35b34801561036157600080fd5b5061036a610d20565b604051610377919061312b565b60405180910390f35b34801561038c57600080fd5b506103a760048036038101906103a291906130ef565b610da2565b6040516103b491906130d4565b60405180910390f35b3480156103c957600080fd5b506103d2610dfb565b6040516103df91906131e2565b60405180910390f35b3480156103f457600080fd5b5061040f600480360381019061040a9190613229565b610e04565b005b34801561041d57600080fd5b50610426610eb1565b005b34801561043457600080fd5b5061044f600480360381019061044a91906130ef565b610f16565b60405161045c91906130d4565b60405180910390f35b34801561047157600080fd5b5061048c600480360381019061048791906130ef565b610fb4565b60405161049991906130d4565b60405180910390f35b3480156104ae57600080fd5b506104c960048036038101906104c491906130ef565b610fe7565b6040516104d6919061312b565b60405180910390f35b3480156104eb57600080fd5b50610506600480360381019061050191906130ef565b61108c565b005b34801561051457600080fd5b5061051d611118565b60405161052a919061328a565b60405180910390f35b34801561053f57600080fd5b5061055a60048036038101906105559190613229565b61113e565b005b34801561056857600080fd5b506105716111e1565b60405161057e919061312b565b60405180910390f35b34801561059357600080fd5b506105ae60048036038101906105a99190613146565b611279565b005b3480156105bc57600080fd5b506105d760048036038101906105d291906130ef565b61130f565b6040516105e4919061312b565b60405180910390f35b3480156105f957600080fd5b50610602611358565b60405161060f919061312b565b60405180910390f35b34801561062457600080fd5b5061062d6113f0565b60405161063a919061328a565b60405180910390f35b34801561064f57600080fd5b50610658611416565b60405161066591906132b4565b60405180910390f35b34801561067a57600080fd5b50610695600480360381019061069091906130ef565b61143f565b6040516106a2919061312b565b60405180910390f35b3480156106b757600080fd5b506106c06114e4565b6040516106cd9190612fbe565b60405180910390f35b3480156106e257600080fd5b506106eb611521565b6040516106f891906132b4565b60405180910390f35b34801561070d57600080fd5b5061072860048036038101906107239190613079565b611547565b60405161073591906130d4565b60405180910390f35b34801561074a57600080fd5b5061075361155c565b604051610760919061312b565b60405180910390f35b34801561077557600080fd5b5061077e611562565b005b34801561078c57600080fd5b506107a760048036038101906107a291906132cf565b6115ce565b6040516107b4919061312b565b60405180910390f35b3480156107c957600080fd5b506107e460048036038101906107df91906130ef565b611655565b005b3480156107f257600080fd5b506107fb61176e565b005b34801561080957600080fd5b50610824600480360381019061081f919061333b565b6117fd565b005b34801561083257600080fd5b5061083b6118bf565b005b34801561084957600080fd5b50610864600480360381019061085f9190613229565b611978565b005b34801561087257600080fd5b5061087b6119ce565b60405161088891906133c7565b60405180910390f35b60606040518060400160405280601381526020017f487970657220427261696e204361706974616c00000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109ae919061312b565b60405180910390a36001905092915050565b6109c933610da2565b610a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ff9061342e565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315f7e05e826040518263ffffffff1660e01b8152600401610a6391906132b4565b600060405180830381600087803b158015610a7d57600080fd5b505af1158015610a91573d6000803e3d6000fd5b5050505050565b6000600454905090565b6000610aad33610da2565b610aec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae39061342e565b60405180910390fd5b610b1930600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846119f4565b9050919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610d0c57610c8b826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bc79092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610d17848484611c2b565b90509392505050565b6000610d9d610d50600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661130f565b610d8f610d7e600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661130f565b60045461256f90919063ffffffff16565b61256f90919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b610e0d33610da2565b610e4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e439061342e565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610ead82826125b9565b5050565b610eba33610da2565b610ef9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef09061342e565b60405180910390fd5b6000601260016101000a81548160ff021916908315150217905550565b6000610f2133610da2565b610f60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f579061342e565b60405180910390fd5b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000610fe0827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6108ce565b9050919050565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635cc33f74836040518263ffffffff1660e01b815260040161104491906132b4565b602060405180830381865afa158015611061573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110859190613463565b9050919050565b61109533610da2565b6110d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cb9061342e565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61114733610da2565b611186576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117d9061342e565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663997664d76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611250573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112749190613463565b905090565b61128233610da2565b6112c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b89061342e565b60405180910390fd5b6010811115611305576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fc906134dc565b60405180910390fd5b80600b8190555050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d54ad2a16040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113eb9190613463565b905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638ecc37fb836040518263ffffffff1660e01b815260040161149c91906132b4565b602060405180830381865afa1580156114b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114dd9190613463565b9050919050565b60606040518060400160405280600381526020017f4842430000000000000000000000000000000000000000000000000000000000815250905090565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611554338484611c2b565b905092915050565b60115481565b61156b33610da2565b6115aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a19061342e565b60405180910390fd5b436011819055506001601260006101000a81548160ff021916908315150217905550565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61165e33610da2565b61169d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116949061342e565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0f44260826040518263ffffffff1660e01b815260040161173991906132b4565b600060405180830381600087803b15801561175357600080fd5b505af1158015611767573d6000803e3d6000fd5b5050505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315f7e05e336040518263ffffffff1660e01b81526004016117c991906132b4565b600060405180830381600087803b1580156117e357600080fd5b505af11580156117f7573d6000803e3d6000fd5b50505050565b61180633610da2565b611845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183c9061342e565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516118b4919061351d565b60405180910390a150565b6118c833610da2565b611907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fe9061342e565b60405180910390fd5b6000479050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611974573d6000803e3d6000fd5b5050565b61198133610da2565b6119c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b79061342e565b60405180910390fd5b6119ca82826125b9565b5050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611a7f826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bc79092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b1482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461281190919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611bb4919061312b565b60405180910390a3600190509392505050565b6000838311158290611c0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c069190612fbe565b60405180910390fd5b5060008385611c1e9190613567565b9050809150509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611cd6575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d2b57601260009054906101000a900460ff16611d2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d21906135e7565b60405180910390fd5b5b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611dcf5750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611e0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0590613653565b60405180910390fd5b601260019054906101000a900460ff1615611f175760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611ecb575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611f1657601354821115611f15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0c906136bf565b60405180910390fd5b5b5b6001601154611f2691906136df565b4311611fdd576001600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b60148054906101000a900460ff161561200257611ffb8484846119f4565b9050612568565b6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612069575060006120673061130f565b115b9050801561207a5761207961286f565b5b612103836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bc79092919063ffffffff16565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006121528686612b5c565b61215c5783612167565b6121668685612cb9565b5b90506121bb81600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461281190919063ffffffff16565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156122a65750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561237d57601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9687600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612347929190613735565b600060405180830381600087803b15801561236157600080fd5b505af1925050508015612372575060015b61237b5761237c565b5b5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156124255750600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124fc57601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016124c6929190613735565b600060405180830381600087803b1580156124e057600080fd5b505af19250505080156124f1575060015b6124fa576124fb565b5b5b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612559919061312b565b60405180910390a36001925050505b9392505050565b60006125b183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bc7565b905092915050565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156126435750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61264c57600080fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550801561273e57601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b8152600401612707929190613799565b600060405180830381600087803b15801561272157600080fd5b505af1158015612735573d6000803e3d6000fd5b5050505061280d565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016127da929190613735565b600060405180830381600087803b1580156127f457600080fd5b505af1158015612808573d6000803e3d6000fd5b505050505b5050565b600080828461282091906136df565b905083811015612865576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285c9061380e565b60405180910390fd5b8091505092915050565b60016014806101000a81548160ff02191690831515021790555060006128943061130f565b90506000600267ffffffffffffffff8111156128b3576128b261382e565b5b6040519080825280602002602001820160405280156128e15781602001602082028036833780820191505090505b50905030816000815181106128f9576128f861385d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061296a5761296961385d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612a0895949392919061394a565b600060405180830381600087803b158015612a2257600080fd5b505af1158015612a36573d6000803e3d6000fd5b505050506000612a50600247612dfd90919063ffffffff16565b90506000612a68600247612dfd90919063ffffffff16565b9050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612ad2573d6000803e3d6000fd5b50600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612b3b573d6000803e3d6000fd5b505050505060006014806101000a81548160ff021916908315150217905550565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612bff5750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b158015612cb15750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480612cb05750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b905092915050565b600080612ce5600c54612cd7600b5486612e4790919063ffffffff16565b612dfd90919063ffffffff16565b9050612d3981600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461281190919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612dd9919061312b565b60405180910390a3612df4818461256f90919063ffffffff16565b91505092915050565b6000612e3f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ec2565b905092915050565b600080831415612e5a5760009050612ebc565b60008284612e6891906139a4565b9050828482612e779190613a2d565b14612eb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eae90613ad0565b60405180910390fd5b809150505b92915050565b60008083118290612f09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f009190612fbe565b60405180910390fd5b5060008385612f189190613a2d565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612f5f578082015181840152602081019050612f44565b83811115612f6e576000848401525b50505050565b6000601f19601f8301169050919050565b6000612f9082612f25565b612f9a8185612f30565b9350612faa818560208601612f41565b612fb381612f74565b840191505092915050565b60006020820190508181036000830152612fd88184612f85565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061301082612fe5565b9050919050565b61302081613005565b811461302b57600080fd5b50565b60008135905061303d81613017565b92915050565b6000819050919050565b61305681613043565b811461306157600080fd5b50565b6000813590506130738161304d565b92915050565b600080604083850312156130905761308f612fe0565b5b600061309e8582860161302e565b92505060206130af85828601613064565b9150509250929050565b60008115159050919050565b6130ce816130b9565b82525050565b60006020820190506130e960008301846130c5565b92915050565b60006020828403121561310557613104612fe0565b5b60006131138482850161302e565b91505092915050565b61312581613043565b82525050565b6000602082019050613140600083018461311c565b92915050565b60006020828403121561315c5761315b612fe0565b5b600061316a84828501613064565b91505092915050565b60008060006060848603121561318c5761318b612fe0565b5b600061319a8682870161302e565b93505060206131ab8682870161302e565b92505060406131bc86828701613064565b9150509250925092565b600060ff82169050919050565b6131dc816131c6565b82525050565b60006020820190506131f760008301846131d3565b92915050565b613206816130b9565b811461321157600080fd5b50565b600081359050613223816131fd565b92915050565b600080604083850312156132405761323f612fe0565b5b600061324e8582860161302e565b925050602061325f85828601613214565b9150509250929050565b600061327482612fe5565b9050919050565b61328481613269565b82525050565b600060208201905061329f600083018461327b565b92915050565b6132ae81613005565b82525050565b60006020820190506132c960008301846132a5565b92915050565b600080604083850312156132e6576132e5612fe0565b5b60006132f48582860161302e565b92505060206133058582860161302e565b9150509250929050565b61331881613269565b811461332357600080fd5b50565b6000813590506133358161330f565b92915050565b60006020828403121561335157613350612fe0565b5b600061335f84828501613326565b91505092915050565b6000819050919050565b600061338d61338861338384612fe5565b613368565b612fe5565b9050919050565b600061339f82613372565b9050919050565b60006133b182613394565b9050919050565b6133c1816133a6565b82525050565b60006020820190506133dc60008301846133b8565b92915050565b7f214f776e65720000000000000000000000000000000000000000000000000000600082015250565b6000613418600683612f30565b9150613423826133e2565b602082019050919050565b600060208201905081810360008301526134478161340b565b9050919050565b60008151905061345d8161304d565b92915050565b60006020828403121561347957613478612fe0565b5b60006134878482850161344e565b91505092915050565b7f4665652063616e27742065786365656420313625000000000000000000000000600082015250565b60006134c6601483612f30565b91506134d182613490565b602082019050919050565b600060208201905081810360008301526134f5816134b9565b9050919050565b600061350782613394565b9050919050565b613517816134fc565b82525050565b6000602082019050613532600083018461350e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061357282613043565b915061357d83613043565b9250828210156135905761358f613538565b5b828203905092915050565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b60006135d1601883612f30565b91506135dc8261359b565b602082019050919050565b60006020820190508181036000830152613600816135c4565b9050919050565b7f4e69636520747279000000000000000000000000000000000000000000000000600082015250565b600061363d600883612f30565b915061364882613607565b602082019050919050565b6000602082019050818103600083015261366c81613630565b9050919050565b7f546f6f206d756368207369720000000000000000000000000000000000000000600082015250565b60006136a9600c83612f30565b91506136b482613673565b602082019050919050565b600060208201905081810360008301526136d88161369c565b9050919050565b60006136ea82613043565b91506136f583613043565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561372a57613729613538565b5b828201905092915050565b600060408201905061374a60008301856132a5565b613757602083018461311c565b9392505050565b6000819050919050565b600061378361377e6137798461375e565b613368565b613043565b9050919050565b61379381613768565b82525050565b60006040820190506137ae60008301856132a5565b6137bb602083018461378a565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006137f8601b83612f30565b9150613803826137c2565b602082019050919050565b60006020820190508181036000830152613827816137eb565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6138c181613005565b82525050565b60006138d383836138b8565b60208301905092915050565b6000602082019050919050565b60006138f78261388c565b6139018185613897565b935061390c836138a8565b8060005b8381101561393d57815161392488826138c7565b975061392f836138df565b925050600181019050613910565b5085935050505092915050565b600060a08201905061395f600083018861311c565b61396c602083018761378a565b818103604083015261397e81866138ec565b905061398d60608301856132a5565b61399a608083018461311c565b9695505050505050565b60006139af82613043565b91506139ba83613043565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156139f3576139f2613538565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613a3882613043565b9150613a4383613043565b925082613a5357613a526139fe565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613aba602183612f30565b9150613ac582613a5e565b604082019050919050565b60006020820190508181036000830152613ae981613aad565b905091905056fea2646970667358221220cfc89986794b782b1036e11ba574199df2224ac0899396de3b2b49d942b9f7ad64736f6c634300080a0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000f728b5653496b60b38a3bbcc885ec16f1f4b2db2

-----Decoded View---------------
Arg [0] : _owner (address): 0xf728B5653496b60B38A3bBcC885Ec16F1f4b2DB2

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000f728b5653496b60b38a3bbcc885ec16f1f4b2db2


Deployed Bytecode Sourcemap

9812:9936:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12456:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12878:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18359:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12186:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18649:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13396:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18800:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3231:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12280:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17015:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19665:80;;;;;;;;;;;;;:::i;:::-;;17185:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13102:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19500:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18950:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10838:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17797:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19253:115;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17924:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12626:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19380:111;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10739:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12542:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18481:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12366:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10963:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13232:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10991:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16880:115;;;;;;;;;;;;;:::i;:::-;;12737:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19093:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18257:90;;;;;;;;;;;;;:::i;:::-;;3459:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18075:174;;;;;;;;;;;;;:::i;:::-;;17657:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10932:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12456:80;12504:13;12528:5;;;;;;;;;;;;;;;;;12521:12;;12456:80;:::o;12878:216::-;12953:4;13005:6;12970:11;:23;12982:10;12970:23;;;;;;;;;;;;;;;:32;12994:7;12970:32;;;;;;;;;;;;;;;:41;;;;13048:7;13027:37;;13036:10;13027:37;;;13057:6;13027:37;;;;;;:::i;:::-;;;;;;;;13082:4;13075:11;;12878:216;;;;:::o;18359:110::-;3130:19;3138:10;3130:7;:19::i;:::-;3122:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;18428:11:::1;;;;;;;;;;;:25;;;18454:6;18428:33;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18359:110:::0;:::o;12186:88::-;12241:7;12259:12;;12252:19;;12186:88;:::o;18649:139::-;18713:4;3130:19;3138:10;3130:7;:19::i;:::-;3122:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;18737:43:::1;18760:4;18767;;;;;;;;;;;18773:6;18737:14;:43::i;:::-;18730:50;;18649:139:::0;;;:::o;13396:370::-;13496:4;13551:17;13516:11;:19;13528:6;13516:19;;;;;;;;;;;;;;;:31;13536:10;13516:31;;;;;;;;;;;;;;;;:52;13513:186;;13618:69;13654:6;13618:69;;;;;;;;;;;;;;;;;:11;:19;13630:6;13618:19;;;;;;;;;;;;;;;:31;13638:10;13618:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;13584:11;:19;13596:6;13584:19;;;;;;;;;;;;;;;:31;13604:10;13584:31;;;;;;;;;;;;;;;:103;;;;13513:186;13718:40;13732:6;13740:9;13751:6;13718:13;:40::i;:::-;13711:47;;13396:370;;;;;:::o;18800:142::-;18853:7;18880:54;18918:15;18928:4;;;;;;;;;;;18918:9;:15::i;:::-;18880:33;18897:15;18907:4;;;;;;;;;;;18897:9;:15::i;:::-;18880:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;18873:61;;18800:142;:::o;3231:103::-;3286:4;3321:5;;;;;;;;;;;3310:16;;:7;:16;;;3303:23;;3231:103;;;:::o;12280:80::-;12332:5;10212:1;12341:16;;12280:80;:::o;17015:158::-;3130:19;3138:10;3130:7;:19::i;:::-;3122:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;17110:6:::1;17092:5;:15;17098:8;17092:15;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;17127:38;17148:8;17158:6;17127:20;:38::i;:::-;17015:158:::0;;:::o;19665:80::-;3130:19;3138:10;3130:7;:19::i;:::-;3122:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;19732:5:::1;19721:8;;:16;;;;;;;;;;;;;;;;;;19665:80::o:0;17185:115::-;17253:4;3130:19;3138:10;3130:7;:19::i;:::-;3122:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;17277:5:::1;:15;17283:8;17277:15;;;;;;;;;;;;;;;;;;;;;;;;;17270:22;;17185:115:::0;;;:::o;13102:122::-;13157:4;13181:35;13189:7;13198:17;13181:7;:35::i;:::-;13174:42;;13102:122;;;:::o;19500:157::-;19576:7;19603:11;;;;;;;;;;;:33;;;19637:11;19603:46;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19596:53;;19500:157;;;:::o;18950:135::-;3130:19;3138:10;3130:7;:19::i;:::-;3122:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;19060:16:::1;19034:15;;:43;;;;;;;;;;;;;;;;;;18950:135:::0;:::o;10838:85::-;;;;;;;;;;;;;:::o;17797:119::-;3130:19;3138:10;3130:7;:19::i;:::-;3122:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;17902:6:::1;17880:11;:19;17892:6;17880:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;17797:119:::0;;:::o;19253:115::-;19305:7;19332:11;;;;;;;;;;;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19325:35;;19253:115;:::o;17924:139::-;3130:19;3138:10;3130:7;:19::i;:::-;3122:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;18002:2:::1;17994:4;:10;;17985:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;18051:4;18040:8;:15;;;;17924:139:::0;:::o;12626:105::-;12692:7;12710:9;:18;12720:7;12710:18;;;;;;;;;;;;;;;;12703:25;;12626:105;;;:::o;19380:111::-;19430:7;19457:11;;;;;;;;;;;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19450:33;;19380:111;:::o;10739:92::-;;;;;;;;;;;;;:::o;12542:78::-;12594:7;12612:5;;;;;;;;;;;12605:12;;12542:78;:::o;18481:156::-;18555:7;18582:11;;;;;;;;;;;:34;;;18617:11;18582:47;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18575:54;;18481:156;;;:::o;12366:84::-;12416:13;12440:7;;;;;;;;;;;;;;;;;12433:14;;12366:84;:::o;10963:19::-;;;;;;;;;;;;;:::o;13232:156::-;13312:4;13336:44;13350:10;13362:9;13373:6;13336:13;:44::i;:::-;13329:51;;13232:156;;;;:::o;10991:25::-;;;;:::o;16880:115::-;3130:19;3138:10;3130:7;:19::i;:::-;3122:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;16946:12:::1;16933:10;:25;;;;16983:4;16969:11;;:18;;;;;;;;;;;;;;;;;;16880:115::o:0;12737:133::-;12821:7;12839:11;:19;12851:6;12839:19;;;;;;;;;;;;;;;:28;12859:7;12839:28;;;;;;;;;;;;;;;;12832:35;;12737:133;;;;:::o;19093:152::-;3130:19;3138:10;3130:7;:19::i;:::-;3122:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;19182:9:::1;19163:8;;:29;;;;;;;;;;;;;;;;;;19203:11;;;;;;;;;;;:23;;;19227:9;19203:34;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19093:152:::0;:::o;18257:90::-;18302:11;;;;;;;;;;;:25;;;18328:10;18302:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18257:90::o;3459:136::-;3130:19;3138:10;3130:7;:19::i;:::-;3122:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3543:3:::1;3535:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;3562:25;3583:3;3562:25;;;;;;:::i;:::-;;;;;;;;3459:136:::0;:::o;18075:174::-;3130:19;3138:10;3130:7;:19::i;:::-;3122:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;18127:26:::1;18156:21;18127:50;;18196:15;;;;;;;;;;;18188:33;;:53;18222:18;18188:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;18116:133;18075:174::o:0;17657:132::-;3130:19;3138:10;3130:7;:19::i;:::-;3122:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;17745:36:::1;17766:6;17774;17745:20;:36::i;:::-;17657:132:::0;;:::o;10932:24::-;;;;;;;;;;;;;:::o;15243:330::-;15336:4;15373:53;15395:6;15373:53;;;;;;;;;;;;;;;;;:9;:17;15383:6;15373:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;15353:9;:17;15363:6;15353:17;;;;;;;;;;;;;;;:73;;;;15460:32;15485:6;15460:9;:20;15470:9;15460:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;15437:9;:20;15447:9;15437:20;;;;;;;;;;;;;;;:55;;;;15525:9;15508:35;;15517:6;15508:35;;;15536:6;15508:35;;;;;;:::i;:::-;;;;;;;;15561:4;15554:11;;15243:330;;;;;:::o;893:192::-;979:7;1012:1;1007;:6;;1015:12;999:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1039:9;1055:1;1051;:5;;;;:::i;:::-;1039:17;;1076:1;1069:8;;;893:192;;;;;:::o;13774:1457::-;13866:4;13896:5;;;;;;;;;;;13887:14;;:6;:14;;;;:35;;;;;13917:5;;;;;;;;;;13905:17;;:9;:17;;;;13887:35;13883:89;;;13932:11;;;;;;;;;;;13924:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;13883:89;14033:5;:13;14039:6;14033:13;;;;;;;;;;;;;;;;;;;;;;;;;14032:14;:35;;;;;14051:5;:16;14057:9;14051:16;;;;;;;;;;;;;;;;;;;;;;;;;14050:17;14032:35;14023:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;14095:8;;;;;;;;;;;14091:130;;;14133:5;;;;;;;;;;14125:13;;:6;:13;;;;:34;;;;;14154:5;;;;;;;;;;14142:17;;:9;:17;;;;14125:34;14121:80;;;14178:6;;14170;:14;;14161:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;14121:80;14091:130;14265:1;14252:10;;:14;;;;:::i;:::-;14235:12;:32;14231:139;;14304:4;14285:5;:16;14291:9;14285:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;14353:4;14323:16;:27;14340:9;14323:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;14231:139;14392:6;;;;;;;;;;14389:63;;;14408:41;14423:6;14431:9;14442:6;14408:14;:41::i;:::-;14401:48;;;;14389:63;14474:19;14523:4;;;;;;;;;;;14512:15;;:9;:15;;;:47;;;;;14558:1;14531:24;14549:4;14531:9;:24::i;:::-;:28;14512:47;14474:86;;14574:14;14571:33;;;14591:10;:8;:10::i;:::-;14571:33;14636:53;14658:6;14636:53;;;;;;;;;;;;;;;;;:9;:17;14646:6;14636:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;14616:9;:17;14626:6;14616:17;;;;;;;;;;;;;;;:73;;;;14702:22;14727:32;14741:6;14749:9;14727:13;:32::i;:::-;:67;;14788:6;14727:67;;;14762:23;14770:6;14778;14762:7;:23::i;:::-;14727:67;14702:92;;14838:40;14863:14;14838:9;:20;14848:9;14838:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;14815:9;:20;14825:9;14815:20;;;;;;;;;;;;;;;:63;;;;14904:4;;;;;;;;;;;14894:14;;:6;:14;;;;:43;;;;;14913:16;:24;14930:6;14913:24;;;;;;;;;;;;;;;;;;;;;;;;;14912:25;14894:43;14891:114;;;14944:11;;;;;;;;;;;:20;;;14965:6;14973:9;:17;14983:6;14973:17;;;;;;;;;;;;;;;;14944:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14940:63;;;;;;14891:114;15031:4;;;;;;;;;;;15018:17;;:9;:17;;;;:49;;;;;15040:16;:27;15057:9;15040:27;;;;;;;;;;;;;;;;;;;;;;;;;15039:28;15018:49;15015:126;;;15074:11;;;;;;;;;;;:20;;;15095:9;15106;:20;15116:9;15106:20;;;;;;;;;;;;;;;;15074:53;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15070:69;;;;;;15015:126;15175:9;15158:43;;15167:6;15158:43;;;15186:14;15158:43;;;;;;:::i;:::-;;;;;;;;15219:4;15212:11;;;;13774:1457;;;;;;:::o;751:136::-;809:7;836:43;840:1;843;836:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;829:50;;751:136;;;;:::o;17312:337::-;17417:4;17399:23;;:6;:23;;;;:41;;;;;17436:4;;;;;;;;;;;17426:14;;:6;:14;;;;17399:41;17391:50;;;;;;17479:6;17452:16;:24;17469:6;17452:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;17499:6;17496:146;;;17521:11;;;;;;;;;;;:20;;;17542:6;17550:1;17521:31;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17496:146;;;17583:11;;;;;;;;;;;:20;;;17604:6;17612:9;:17;17622:6;17612:17;;;;;;;;;;;;;;;;17583:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17496:146;17312:337;;:::o;564:181::-;622:7;642:9;658:1;654;:5;;;;:::i;:::-;642:17;;683:1;678;:6;;670:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;736:1;729:8;;;564:181;;;;:::o;16165:701::-;11278:4;11269:6;;:13;;;;;;;;;;;;;;;;;;16214:20:::1;16237:24;16255:4;16237:9;:24::i;:::-;16214:47;;16274:21;16312:1;16298:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16274:40;;16343:4;16325;16330:1;16325:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;16369:4;;;;;;;;;;;16359;16364:1;16359:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;16396:6;;;;;;;;;;;:57;;;16468:12;16495:1;16511:4;16538;16558:15;16396:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16605:22;16630:30;16658:1;16631:21;16630:27;;:30;;;;:::i;:::-;16605:55;;16671:23;16697:30;16725:1;16698:21;16697:27;;:30;;;;:::i;:::-;16671:56;;16763:15;;;;;;;;;;;16755:33;;:50;16789:15;16755:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;16824:8;;;;;;;;;;;16816:26;;:42;16843:14;16816:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;16203:663;;;;11296:5:::0;11287:6;;:14;;;;;;;;;;;;;;;;;;16165:701::o;15584:206::-;15665:4;15693:11;:19;15705:6;15693:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;15716:11;:22;15728:9;15716:22;;;;;;;;;;;;;;;;;;;;;;;;;15693:45;15691:48;:90;;;;;15755:4;;;;;;;;;;;15745:14;;:6;:14;;;:35;;;;15776:4;;;;;;;;;;;15763:17;;:9;:17;;;15745:35;15691:90;15682:101;;15584:206;;;;:::o;15798:354::-;15865:7;15885:17;15925:40;15950:14;;15925:20;15936:8;;15925:6;:10;;:20;;;;:::i;:::-;:24;;:40;;;;:::i;:::-;15913:52;;16003:39;16032:9;16003;:24;16021:4;16003:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;15976:9;:24;15994:4;15976:24;;;;;;;;;;;;;;;:66;;;;16083:4;16058:42;;16067:6;16058:42;;;16090:9;16058:42;;;;;;:::i;:::-;;;;;;;;16123:21;16134:9;16123:6;:10;;:21;;;;:::i;:::-;16116:28;;;15798:354;;;;:::o;1347:132::-;1405:7;1432:39;1436:1;1439;1432:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1425:46;;1347:132;;;;:::o;1091:250::-;1149:7;1178:1;1173;:6;1169:47;;;1203:1;1196:8;;;;1169:47;1228:9;1244:1;1240;:5;;;;:::i;:::-;1228:17;;1273:1;1268;1264;:5;;;;:::i;:::-;:10;1256:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1332:1;1325:8;;;1091:250;;;;;:::o;1485:345::-;1571:7;1670:1;1666;:5;1673:12;1658:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1697:9;1713:1;1709;:5;;;;:::i;:::-;1697:17;;1821:1;1814:8;;;1485:345;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:329::-;3553:6;3602:2;3590:9;3581:7;3577:23;3573:32;3570:119;;;3608:79;;:::i;:::-;3570:119;3728:1;3753:53;3798:7;3789:6;3778:9;3774:22;3753:53;:::i;:::-;3743:63;;3699:117;3494:329;;;;:::o;3829:118::-;3916:24;3934:5;3916:24;:::i;:::-;3911:3;3904:37;3829:118;;:::o;3953:222::-;4046:4;4084:2;4073:9;4069:18;4061:26;;4097:71;4165:1;4154:9;4150:17;4141:6;4097:71;:::i;:::-;3953:222;;;;:::o;4181:329::-;4240:6;4289:2;4277:9;4268:7;4264:23;4260:32;4257:119;;;4295:79;;:::i;:::-;4257:119;4415:1;4440:53;4485:7;4476:6;4465:9;4461:22;4440:53;:::i;:::-;4430:63;;4386:117;4181:329;;;;:::o;4516:619::-;4593:6;4601;4609;4658:2;4646:9;4637:7;4633:23;4629:32;4626:119;;;4664:79;;:::i;:::-;4626:119;4784:1;4809:53;4854:7;4845:6;4834:9;4830:22;4809:53;:::i;:::-;4799:63;;4755:117;4911:2;4937:53;4982:7;4973:6;4962:9;4958:22;4937:53;:::i;:::-;4927:63;;4882:118;5039:2;5065:53;5110:7;5101:6;5090:9;5086:22;5065:53;:::i;:::-;5055:63;;5010:118;4516:619;;;;;:::o;5141:86::-;5176:7;5216:4;5209:5;5205:16;5194:27;;5141:86;;;:::o;5233:112::-;5316:22;5332:5;5316:22;:::i;:::-;5311:3;5304:35;5233:112;;:::o;5351:214::-;5440:4;5478:2;5467:9;5463:18;5455:26;;5491:67;5555:1;5544:9;5540:17;5531:6;5491:67;:::i;:::-;5351:214;;;;:::o;5571:116::-;5641:21;5656:5;5641:21;:::i;:::-;5634:5;5631:32;5621:60;;5677:1;5674;5667:12;5621:60;5571:116;:::o;5693:133::-;5736:5;5774:6;5761:20;5752:29;;5790:30;5814:5;5790:30;:::i;:::-;5693:133;;;;:::o;5832:468::-;5897:6;5905;5954:2;5942:9;5933:7;5929:23;5925:32;5922:119;;;5960:79;;:::i;:::-;5922:119;6080:1;6105:53;6150:7;6141:6;6130:9;6126:22;6105:53;:::i;:::-;6095:63;;6051:117;6207:2;6233:50;6275:7;6266:6;6255:9;6251:22;6233:50;:::i;:::-;6223:60;;6178:115;5832:468;;;;;:::o;6306:104::-;6351:7;6380:24;6398:5;6380:24;:::i;:::-;6369:35;;6306:104;;;:::o;6416:142::-;6519:32;6545:5;6519:32;:::i;:::-;6514:3;6507:45;6416:142;;:::o;6564:254::-;6673:4;6711:2;6700:9;6696:18;6688:26;;6724:87;6808:1;6797:9;6793:17;6784:6;6724:87;:::i;:::-;6564:254;;;;:::o;6824:118::-;6911:24;6929:5;6911:24;:::i;:::-;6906:3;6899:37;6824:118;;:::o;6948:222::-;7041:4;7079:2;7068:9;7064:18;7056:26;;7092:71;7160:1;7149:9;7145:17;7136:6;7092:71;:::i;:::-;6948:222;;;;:::o;7176:474::-;7244:6;7252;7301:2;7289:9;7280:7;7276:23;7272:32;7269:119;;;7307:79;;:::i;:::-;7269:119;7427:1;7452:53;7497:7;7488:6;7477:9;7473:22;7452:53;:::i;:::-;7442:63;;7398:117;7554:2;7580:53;7625:7;7616:6;7605:9;7601:22;7580:53;:::i;:::-;7570:63;;7525:118;7176:474;;;;;:::o;7656:138::-;7737:32;7763:5;7737:32;:::i;:::-;7730:5;7727:43;7717:71;;7784:1;7781;7774:12;7717:71;7656:138;:::o;7800:155::-;7854:5;7892:6;7879:20;7870:29;;7908:41;7943:5;7908:41;:::i;:::-;7800:155;;;;:::o;7961:345::-;8028:6;8077:2;8065:9;8056:7;8052:23;8048:32;8045:119;;;8083:79;;:::i;:::-;8045:119;8203:1;8228:61;8281:7;8272:6;8261:9;8257:22;8228:61;:::i;:::-;8218:71;;8174:125;7961:345;;;;:::o;8312:60::-;8340:3;8361:5;8354:12;;8312:60;;;:::o;8378:142::-;8428:9;8461:53;8479:34;8488:24;8506:5;8488:24;:::i;:::-;8479:34;:::i;:::-;8461:53;:::i;:::-;8448:66;;8378:142;;;:::o;8526:126::-;8576:9;8609:37;8640:5;8609:37;:::i;:::-;8596:50;;8526:126;;;:::o;8658:144::-;8726:9;8759:37;8790:5;8759:37;:::i;:::-;8746:50;;8658:144;;;:::o;8808:167::-;8913:55;8962:5;8913:55;:::i;:::-;8908:3;8901:68;8808:167;;:::o;8981:258::-;9092:4;9130:2;9119:9;9115:18;9107:26;;9143:89;9229:1;9218:9;9214:17;9205:6;9143:89;:::i;:::-;8981:258;;;;:::o;9245:156::-;9385:8;9381:1;9373:6;9369:14;9362:32;9245:156;:::o;9407:365::-;9549:3;9570:66;9634:1;9629:3;9570:66;:::i;:::-;9563:73;;9645:93;9734:3;9645:93;:::i;:::-;9763:2;9758:3;9754:12;9747:19;;9407:365;;;:::o;9778:419::-;9944:4;9982:2;9971:9;9967:18;9959:26;;10031:9;10025:4;10021:20;10017:1;10006:9;10002:17;9995:47;10059:131;10185:4;10059:131;:::i;:::-;10051:139;;9778:419;;;:::o;10203:143::-;10260:5;10291:6;10285:13;10276:22;;10307:33;10334:5;10307:33;:::i;:::-;10203:143;;;;:::o;10352:351::-;10422:6;10471:2;10459:9;10450:7;10446:23;10442:32;10439:119;;;10477:79;;:::i;:::-;10439:119;10597:1;10622:64;10678:7;10669:6;10658:9;10654:22;10622:64;:::i;:::-;10612:74;;10568:128;10352:351;;;;:::o;10709:170::-;10849:22;10845:1;10837:6;10833:14;10826:46;10709:170;:::o;10885:366::-;11027:3;11048:67;11112:2;11107:3;11048:67;:::i;:::-;11041:74;;11124:93;11213:3;11124:93;:::i;:::-;11242:2;11237:3;11233:12;11226:19;;10885:366;;;:::o;11257:419::-;11423:4;11461:2;11450:9;11446:18;11438:26;;11510:9;11504:4;11500:20;11496:1;11485:9;11481:17;11474:47;11538:131;11664:4;11538:131;:::i;:::-;11530:139;;11257:419;;;:::o;11682:134::-;11740:9;11773:37;11804:5;11773:37;:::i;:::-;11760:50;;11682:134;;;:::o;11822:147::-;11917:45;11956:5;11917:45;:::i;:::-;11912:3;11905:58;11822:147;;:::o;11975:238::-;12076:4;12114:2;12103:9;12099:18;12091:26;;12127:79;12203:1;12192:9;12188:17;12179:6;12127:79;:::i;:::-;11975:238;;;;:::o;12219:180::-;12267:77;12264:1;12257:88;12364:4;12361:1;12354:15;12388:4;12385:1;12378:15;12405:191;12445:4;12465:20;12483:1;12465:20;:::i;:::-;12460:25;;12499:20;12517:1;12499:20;:::i;:::-;12494:25;;12538:1;12535;12532:8;12529:34;;;12543:18;;:::i;:::-;12529:34;12588:1;12585;12581:9;12573:17;;12405:191;;;;:::o;12602:174::-;12742:26;12738:1;12730:6;12726:14;12719:50;12602:174;:::o;12782:366::-;12924:3;12945:67;13009:2;13004:3;12945:67;:::i;:::-;12938:74;;13021:93;13110:3;13021:93;:::i;:::-;13139:2;13134:3;13130:12;13123:19;;12782:366;;;:::o;13154:419::-;13320:4;13358:2;13347:9;13343:18;13335:26;;13407:9;13401:4;13397:20;13393:1;13382:9;13378:17;13371:47;13435:131;13561:4;13435:131;:::i;:::-;13427:139;;13154:419;;;:::o;13579:158::-;13719:10;13715:1;13707:6;13703:14;13696:34;13579:158;:::o;13743:365::-;13885:3;13906:66;13970:1;13965:3;13906:66;:::i;:::-;13899:73;;13981:93;14070:3;13981:93;:::i;:::-;14099:2;14094:3;14090:12;14083:19;;13743:365;;;:::o;14114:419::-;14280:4;14318:2;14307:9;14303:18;14295:26;;14367:9;14361:4;14357:20;14353:1;14342:9;14338:17;14331:47;14395:131;14521:4;14395:131;:::i;:::-;14387:139;;14114:419;;;:::o;14539:162::-;14679:14;14675:1;14667:6;14663:14;14656:38;14539:162;:::o;14707:366::-;14849:3;14870:67;14934:2;14929:3;14870:67;:::i;:::-;14863:74;;14946:93;15035:3;14946:93;:::i;:::-;15064:2;15059:3;15055:12;15048:19;;14707:366;;;:::o;15079:419::-;15245:4;15283:2;15272:9;15268:18;15260:26;;15332:9;15326:4;15322:20;15318:1;15307:9;15303:17;15296:47;15360:131;15486:4;15360:131;:::i;:::-;15352:139;;15079:419;;;:::o;15504:305::-;15544:3;15563:20;15581:1;15563:20;:::i;:::-;15558:25;;15597:20;15615:1;15597:20;:::i;:::-;15592:25;;15751:1;15683:66;15679:74;15676:1;15673:81;15670:107;;;15757:18;;:::i;:::-;15670:107;15801:1;15798;15794:9;15787:16;;15504:305;;;;:::o;15815:332::-;15936:4;15974:2;15963:9;15959:18;15951:26;;15987:71;16055:1;16044:9;16040:17;16031:6;15987:71;:::i;:::-;16068:72;16136:2;16125:9;16121:18;16112:6;16068:72;:::i;:::-;15815:332;;;;;:::o;16153:85::-;16198:7;16227:5;16216:16;;16153:85;;;:::o;16244:158::-;16302:9;16335:61;16353:42;16362:32;16388:5;16362:32;:::i;:::-;16353:42;:::i;:::-;16335:61;:::i;:::-;16322:74;;16244:158;;;:::o;16408:147::-;16503:45;16542:5;16503:45;:::i;:::-;16498:3;16491:58;16408:147;;:::o;16561:348::-;16690:4;16728:2;16717:9;16713:18;16705:26;;16741:71;16809:1;16798:9;16794:17;16785:6;16741:71;:::i;:::-;16822:80;16898:2;16887:9;16883:18;16874:6;16822:80;:::i;:::-;16561:348;;;;;:::o;16915:177::-;17055:29;17051:1;17043:6;17039:14;17032:53;16915:177;:::o;17098:366::-;17240:3;17261:67;17325:2;17320:3;17261:67;:::i;:::-;17254:74;;17337:93;17426:3;17337:93;:::i;:::-;17455:2;17450:3;17446:12;17439:19;;17098:366;;;:::o;17470:419::-;17636:4;17674:2;17663:9;17659:18;17651:26;;17723:9;17717:4;17713:20;17709:1;17698:9;17694:17;17687:47;17751:131;17877:4;17751:131;:::i;:::-;17743:139;;17470:419;;;:::o;17895:180::-;17943:77;17940:1;17933:88;18040:4;18037:1;18030:15;18064:4;18061:1;18054:15;18081:180;18129:77;18126:1;18119:88;18226:4;18223:1;18216:15;18250:4;18247:1;18240:15;18267:114;18334:6;18368:5;18362:12;18352:22;;18267:114;;;:::o;18387:184::-;18486:11;18520:6;18515:3;18508:19;18560:4;18555:3;18551:14;18536:29;;18387:184;;;;:::o;18577:132::-;18644:4;18667:3;18659:11;;18697:4;18692:3;18688:14;18680:22;;18577:132;;;:::o;18715:108::-;18792:24;18810:5;18792:24;:::i;:::-;18787:3;18780:37;18715:108;;:::o;18829:179::-;18898:10;18919:46;18961:3;18953:6;18919:46;:::i;:::-;18997:4;18992:3;18988:14;18974:28;;18829:179;;;;:::o;19014:113::-;19084:4;19116;19111:3;19107:14;19099:22;;19014:113;;;:::o;19163:732::-;19282:3;19311:54;19359:5;19311:54;:::i;:::-;19381:86;19460:6;19455:3;19381:86;:::i;:::-;19374:93;;19491:56;19541:5;19491:56;:::i;:::-;19570:7;19601:1;19586:284;19611:6;19608:1;19605:13;19586:284;;;19687:6;19681:13;19714:63;19773:3;19758:13;19714:63;:::i;:::-;19707:70;;19800:60;19853:6;19800:60;:::i;:::-;19790:70;;19646:224;19633:1;19630;19626:9;19621:14;;19586:284;;;19590:14;19886:3;19879:10;;19287:608;;;19163:732;;;;:::o;19901:831::-;20164:4;20202:3;20191:9;20187:19;20179:27;;20216:71;20284:1;20273:9;20269:17;20260:6;20216:71;:::i;:::-;20297:80;20373:2;20362:9;20358:18;20349:6;20297:80;:::i;:::-;20424:9;20418:4;20414:20;20409:2;20398:9;20394:18;20387:48;20452:108;20555:4;20546:6;20452:108;:::i;:::-;20444:116;;20570:72;20638:2;20627:9;20623:18;20614:6;20570:72;:::i;:::-;20652:73;20720:3;20709:9;20705:19;20696:6;20652:73;:::i;:::-;19901:831;;;;;;;;:::o;20738:348::-;20778:7;20801:20;20819:1;20801:20;:::i;:::-;20796:25;;20835:20;20853:1;20835:20;:::i;:::-;20830:25;;21023:1;20955:66;20951:74;20948:1;20945:81;20940:1;20933:9;20926:17;20922:105;20919:131;;;21030:18;;:::i;:::-;20919:131;21078:1;21075;21071:9;21060:20;;20738:348;;;;:::o;21092:180::-;21140:77;21137:1;21130:88;21237:4;21234:1;21227:15;21261:4;21258:1;21251:15;21278:185;21318:1;21335:20;21353:1;21335:20;:::i;:::-;21330:25;;21369:20;21387:1;21369:20;:::i;:::-;21364:25;;21408:1;21398:35;;21413:18;;:::i;:::-;21398:35;21455:1;21452;21448:9;21443:14;;21278:185;;;;:::o;21469:220::-;21609:34;21605:1;21597:6;21593:14;21586:58;21678:3;21673:2;21665:6;21661:15;21654:28;21469:220;:::o;21695:366::-;21837:3;21858:67;21922:2;21917:3;21858:67;:::i;:::-;21851:74;;21934:93;22023:3;21934:93;:::i;:::-;22052:2;22047:3;22043:12;22036:19;;21695:366;;;:::o;22067:419::-;22233:4;22271:2;22260:9;22256:18;22248:26;;22320:9;22314:4;22310:20;22306:1;22295:9;22291:17;22284:47;22348:131;22474:4;22348:131;:::i;:::-;22340:139;;22067:419;;;:::o

Swarm Source

ipfs://a8e8755b77e8bb479df9326bfe23350c804e2f8b632fabdbb52fe5177ef2eaad
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.