ETH Price: $2,357.90 (+0.64%)

Token

Cota Inu (COTA)
 

Overview

Max Total Supply

1,000,000,000,000 COTA

Holders

12

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
37,323,950,656.648703393 COTA

Value
$0.00
0x658a315ad7e029a26d491c23bcc90438780c1262
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:
CotaInu

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-06-21
*/

pragma solidity ^0.8.4;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function 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);
}

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

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

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

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

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

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

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

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);
}

contract CotaInu is Context, IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = "Cota Inu";
    string private constant _symbol = "COTA";
    uint8 private constant _decimals = 9;
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _taxFee = 7;
    uint256 private _teamFee = 5;
    mapping(address => bool) private bots;
    mapping(address => uint256) private buycooldown;
    mapping(address => uint256) private sellcooldown;
    mapping(address => uint256) private firstsell;
    mapping(address => uint256) private sellnumber;
    address payable private _teamAddress;
    address payable private _marketingFunds;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen = false;
    bool private liquidityAdded = false;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = _tTotal;
    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor(address payable addr1, address payable addr2) {
        _teamAddress = addr1;
        _marketingFunds = addr2;
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_teamAddress] = true;
        _isExcludedFromFee[_marketingFunds] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,"ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    function tokenFromReflection(uint256 rAmount) private view returns (uint256) {
        require(rAmount <= _rTotal,"Amount must be less than total reflections");
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }
    
    function removeAllFee() private {
        if (_taxFee == 0 && _teamFee == 0) return;
        _taxFee = 0;
        _teamFee = 0;
    }

    function restoreAllFee() private {
        _taxFee = 7;
        _teamFee = 5;
    }
    
    function setFee(uint256 multiplier) private {
        _taxFee = _taxFee * multiplier;
        if (multiplier > 1) {
            _teamFee = 10;
        }
        
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (from != owner() && to != owner()) {
            if (cooldownEnabled) {
                if (from != address(this) && to != address(this) && from != address(uniswapV2Router) && to != address(uniswapV2Router)) {
                    require(_msgSender() == address(uniswapV2Router) || _msgSender() == uniswapV2Pair,"ERR: Uniswap only");
                }
            }
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to] && cooldownEnabled) {
                require(tradingOpen);
                require(amount <= _maxTxAmount);
                require(buycooldown[to] < block.timestamp);
                buycooldown[to] = block.timestamp + (30 seconds);
                _teamFee = 6;
                _taxFee = 2;
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                require(amount <= balanceOf(uniswapV2Pair).mul(3).div(100) && amount <= _maxTxAmount);
                require(sellcooldown[from] < block.timestamp);
                if(firstsell[from] + (1 days) < block.timestamp){
                    sellnumber[from] = 0;
                }
                if (sellnumber[from] == 0) {
                    sellnumber[from]++;
                    firstsell[from] = block.timestamp;
                    sellcooldown[from] = block.timestamp + (1 hours);
                }
                else if (sellnumber[from] == 1) {
                    sellnumber[from]++;
                    sellcooldown[from] = block.timestamp + (2 hours);
                }
                else if (sellnumber[from] == 2) {
                    sellnumber[from]++;
                    sellcooldown[from] = block.timestamp + (6 hours);
                }
                else if (sellnumber[from] == 3) {
                    sellnumber[from]++;
                    sellcooldown[from] = block.timestamp + (12 hours);
                }
                else if (sellnumber[from] == 4) {
                    sellnumber[from]++;
                    sellcooldown[from] = firstsell[from] + (1 days);
                }
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                setFee(sellnumber[from]);
            }
        }
        bool takeFee = true;

        if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            takeFee = false;
        }

        _tokenTransfer(from, to, amount, takeFee);
        restoreAllFee;
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);
    }

    function sendETHToFee(uint256 amount) private {
        _teamAddress.transfer(amount.div(2));
        _marketingFunds.transfer(amount.div(2));
    }
    
    function openTrading() public onlyOwner {
        require(liquidityAdded);
        tradingOpen = true;
    }

    function addLiquidity() external onlyOwner() {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;
        liquidityAdded = true;
        _maxTxAmount = 45000000000 * 10**9;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router),type(uint256).max);
    }

    function manualswap() external {
        require(_msgSender() == _teamAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _teamAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _taxFee, _teamFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 teamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(teamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function setMaxTxPercent(uint256 maxTxPercent) external onlyOwner() {
        require(maxTxPercent > 0, "Amount must be greater than 0");
        _maxTxAmount = _tTotal.mul(maxTxPercent).div(10**2);
        emit MaxTxAmountUpdated(_maxTxAmount);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"addr1","type":"address"},{"internalType":"address payable","name":"addr2","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":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":[],"name":"addLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxPercent","type":"uint256"}],"name":"setMaxTxPercent","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":"pure","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"},{"stateMutability":"payable","type":"receive"}]

6080604052683635c9adc5dea000006000196200001d91906200052c565b6000196200002c919062000593565b600655600760085560056009556000601260146101000a81548160ff0219169083151502179055506000601260156101000a81548160ff0219169083151502179055506000601260166101000a81548160ff0219169083151502179055506000601260176101000a81548160ff0219169083151502179055506000601260186101000a81548160ff021916908315150217905550683635c9adc5dea00000601355348015620000da57600080fd5b506040516200423c3803806200423c833981810160405281019062000100919062000638565b600062000112620004c260201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506006546002600062000249620004c260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600560006200029d620004ca60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200044a620004c260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620004b2919062000690565b60405180910390a35050620006ad565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200053982620004f3565b91506200054683620004f3565b925082620005595762000558620004fd565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620005a082620004f3565b9150620005ad83620004f3565b925082821015620005c357620005c262000564565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200060082620005d3565b9050919050565b6200061281620005f3565b81146200061e57600080fd5b50565b600081519050620006328162000607565b92915050565b60008060408385031215620006525762000651620005ce565b5b6000620006628582860162000621565b9250506020620006758582860162000621565b9150509250929050565b6200068a81620004f3565b82525050565b6000602082019050620006a760008301846200067f565b92915050565b613b7f80620006bd6000396000f3fe6080604052600436106101025760003560e01c8063715018a611610095578063c3c8cd8011610064578063c3c8cd8014610330578063c9567bf914610347578063d543dbeb1461035e578063dd62ed3e14610387578063e8078d94146103c457610109565b8063715018a6146102865780638da5cb5b1461029d57806395d89b41146102c8578063a9059cbb146102f357610109565b8063313ce567116100d1578063313ce567146101de5780635932ead1146102095780636fc3eaec1461023257806370a082311461024957610109565b806306fdde031461010e578063095ea7b31461013957806318160ddd1461017657806323b872dd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b506101236103db565b6040516101309190612d5b565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b9190612e16565b610418565b60405161016d9190612e71565b60405180910390f35b34801561018257600080fd5b5061018b610436565b6040516101989190612e9b565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612eb6565b610447565b6040516101d59190612e71565b60405180910390f35b3480156101ea57600080fd5b506101f3610520565b6040516102009190612f25565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b9190612f6c565b610529565b005b34801561023e57600080fd5b506102476105db565b005b34801561025557600080fd5b50610270600480360381019061026b9190612f99565b61064d565b60405161027d9190612e9b565b60405180910390f35b34801561029257600080fd5b5061029b61069e565b005b3480156102a957600080fd5b506102b26107f1565b6040516102bf9190612fd5565b60405180910390f35b3480156102d457600080fd5b506102dd61081a565b6040516102ea9190612d5b565b60405180910390f35b3480156102ff57600080fd5b5061031a60048036038101906103159190612e16565b610857565b6040516103279190612e71565b60405180910390f35b34801561033c57600080fd5b50610345610875565b005b34801561035357600080fd5b5061035c6108ef565b005b34801561036a57600080fd5b5061038560048036038101906103809190612ff0565b6109ba565b005b34801561039357600080fd5b506103ae60048036038101906103a9919061301d565b610b03565b6040516103bb9190612e9b565b60405180910390f35b3480156103d057600080fd5b506103d9610b8a565b005b60606040518060400160405280600881526020017f436f746120496e75000000000000000000000000000000000000000000000000815250905090565b600061042c610425611097565b848461109f565b6001905092915050565b6000683635c9adc5dea00000905090565b600061045484848461126a565b61051584610460611097565b61051085604051806060016040528060288152602001613b2260289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104c6611097565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461212e9092919063ffffffff16565b61109f565b600190509392505050565b60006009905090565b610531611097565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b5906130a9565b60405180910390fd5b80601260186101000a81548160ff02191690831515021790555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661061c611097565b73ffffffffffffffffffffffffffffffffffffffff161461063c57600080fd5b600047905061064a81612192565b50565b6000610697600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461228d565b9050919050565b6106a6611097565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610733576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072a906130a9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f434f544100000000000000000000000000000000000000000000000000000000815250905090565b600061086b610864611097565b848461126a565b6001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108b6611097565b73ffffffffffffffffffffffffffffffffffffffff16146108d657600080fd5b60006108e13061064d565b90506108ec816122fb565b50565b6108f7611097565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610984576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097b906130a9565b60405180910390fd5b601260159054906101000a900460ff1661099d57600080fd5b6001601260146101000a81548160ff021916908315150217905550565b6109c2611097565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a46906130a9565b60405180910390fd5b60008111610a92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8990613115565b60405180910390fd5b610ac16064610ab383683635c9adc5dea0000061258390919063ffffffff16565b6125fe90919063ffffffff16565b6013819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf601354604051610af89190612e9b565b60405180910390a150565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610b92611097565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c16906130a9565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610caf30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea0000061109f565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610cf557600080fd5b505afa158015610d09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2d919061314a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610d8f57600080fd5b505afa158015610da3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc7919061314a565b6040518363ffffffff1660e01b8152600401610de4929190613177565b602060405180830381600087803b158015610dfe57600080fd5b505af1158015610e12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e36919061314a565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610ebf3061064d565b600080610eca6107f1565b426040518863ffffffff1660e01b8152600401610eec969594939291906131e5565b6060604051808303818588803b158015610f0557600080fd5b505af1158015610f19573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f3e919061325b565b5050506001601260176101000a81548160ff0219169083151502179055506001601260186101000a81548160ff0219169083151502179055506001601260156101000a81548160ff021916908315150217905550680270801d946c940000601381905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016110419291906132ae565b602060405180830381600087803b15801561105b57600080fd5b505af115801561106f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109391906132ec565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561110f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111069061338b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561117f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111769061341d565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161125d9190612e9b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d1906134af565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561134a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134190613541565b60405180910390fd5b6000811161138d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611384906135d3565b60405180910390fd5b6113956107f1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561140357506113d36107f1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561206b57601260189054906101000a900460ff1615611636573073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561148557503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156114df5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156115395750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561163557601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661157f611097565b73ffffffffffffffffffffffffffffffffffffffff1614806115f55750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115dd611097565b73ffffffffffffffffffffffffffffffffffffffff16145b611634576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162b9061363f565b60405180910390fd5b5b5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116da5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6116e357600080fd5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561178e5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117e45750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156117fc5750601260189054906101000a900460ff165b156118d557601260149054906101000a900460ff1661181a57600080fd5b60135481111561182957600080fd5b42600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061187457600080fd5b601e42611881919061368e565b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600660098190555060026008819055505b60006118e03061064d565b9050601260169054906101000a900460ff1615801561194d5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156119655750601260179054906101000a900460ff165b15612069576119bb60646119ad600361199f601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661064d565b61258390919063ffffffff16565b6125fe90919063ffffffff16565b82111580156119cc57506013548211155b6119d557600080fd5b42600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611a2057600080fd5b4262015180600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a6f919061368e565b1015611abb576000600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415611bf257600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190611b53906136e4565b919050555042600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e1042611baa919061368e565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ffe565b6001600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415611ce557600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190611c8a906136e4565b9190505550611c2042611c9d919061368e565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ffd565b6002600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415611dd857600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190611d7d906136e4565b919050555061546042611d90919061368e565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ffc565b6003600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415611ecb57600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190611e70906136e4565b919050555061a8c042611e83919061368e565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ffb565b6004600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415611ffa57600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190611f63906136e4565b919050555062015180600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fb6919061368e565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b5b5b5b612007816122fb565b6000479050600081111561201f5761201e47612192565b5b612067600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612648565b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806121125750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561211c57600090505b61212884848484612671565b50505050565b6000838311158290612176576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216d9190612d5b565b60405180910390fd5b5060008385612185919061372d565b9050809150509392505050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6121e26002846125fe90919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561220d573d6000803e3d6000fd5b50601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61225e6002846125fe90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612289573d6000803e3d6000fd5b5050565b60006006548211156122d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122cb906137d3565b60405180910390fd5b60006122de6126b0565b90506122f381846125fe90919063ffffffff16565b915050919050565b6001601260166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612333576123326137f3565b5b6040519080825280602002602001820160405280156123615781602001602082028036833780820191505090505b509050308160008151811061237957612378613822565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561241b57600080fd5b505afa15801561242f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612453919061314a565b8160018151811061246757612466613822565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124ce30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461109f565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161253295949392919061390f565b600060405180830381600087803b15801561254c57600080fd5b505af1158015612560573d6000803e3d6000fd5b50505050506000601260166101000a81548160ff02191690831515021790555050565b60008083141561259657600090506125f8565b600082846125a49190613969565b90508284826125b391906139f2565b146125f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ea90613a95565b60405180910390fd5b809150505b92915050565b600061264083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506126db565b905092915050565b806008546126569190613969565b600881905550600181111561266e57600a6009819055505b50565b8061267f5761267e61273e565b5b61268a84848461276f565b806126985761269761269e565b5b50505050565b60076008819055506005600981905550565b60008060006126bd61293a565b915091506126d481836125fe90919063ffffffff16565b9250505090565b60008083118290612722576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127199190612d5b565b60405180910390fd5b506000838561273191906139f2565b9050809150509392505050565b600060085414801561275257506000600954145b1561275c5761276d565b600060088190555060006009819055505b565b6000806000806000806127818761299c565b9550955095509550955095506127df86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a0490919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061287485600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a4e90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128c081612aac565b6128ca8483612b69565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516129279190612e9b565b60405180910390a3505050505050505050565b600080600060065490506000683635c9adc5dea000009050612970683635c9adc5dea000006006546125fe90919063ffffffff16565b82101561298f57600654683635c9adc5dea00000935093505050612998565b81819350935050505b9091565b60008060008060008060008060006129b98a600854600954612ba3565b92509250925060006129c96126b0565b905060008060006129dc8e878787612c39565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612a4683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061212e565b905092915050565b6000808284612a5d919061368e565b905083811015612aa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a9990613b01565b60405180910390fd5b8091505092915050565b6000612ab66126b0565b90506000612acd828461258390919063ffffffff16565b9050612b2181600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a4e90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612b7e82600654612a0490919063ffffffff16565b600681905550612b9981600754612a4e90919063ffffffff16565b6007819055505050565b600080600080612bcf6064612bc1888a61258390919063ffffffff16565b6125fe90919063ffffffff16565b90506000612bf96064612beb888b61258390919063ffffffff16565b6125fe90919063ffffffff16565b90506000612c2282612c14858c612a0490919063ffffffff16565b612a0490919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612c52858961258390919063ffffffff16565b90506000612c69868961258390919063ffffffff16565b90506000612c80878961258390919063ffffffff16565b90506000612ca982612c9b8587612a0490919063ffffffff16565b612a0490919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612cfc578082015181840152602081019050612ce1565b83811115612d0b576000848401525b50505050565b6000601f19601f8301169050919050565b6000612d2d82612cc2565b612d378185612ccd565b9350612d47818560208601612cde565b612d5081612d11565b840191505092915050565b60006020820190508181036000830152612d758184612d22565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612dad82612d82565b9050919050565b612dbd81612da2565b8114612dc857600080fd5b50565b600081359050612dda81612db4565b92915050565b6000819050919050565b612df381612de0565b8114612dfe57600080fd5b50565b600081359050612e1081612dea565b92915050565b60008060408385031215612e2d57612e2c612d7d565b5b6000612e3b85828601612dcb565b9250506020612e4c85828601612e01565b9150509250929050565b60008115159050919050565b612e6b81612e56565b82525050565b6000602082019050612e866000830184612e62565b92915050565b612e9581612de0565b82525050565b6000602082019050612eb06000830184612e8c565b92915050565b600080600060608486031215612ecf57612ece612d7d565b5b6000612edd86828701612dcb565b9350506020612eee86828701612dcb565b9250506040612eff86828701612e01565b9150509250925092565b600060ff82169050919050565b612f1f81612f09565b82525050565b6000602082019050612f3a6000830184612f16565b92915050565b612f4981612e56565b8114612f5457600080fd5b50565b600081359050612f6681612f40565b92915050565b600060208284031215612f8257612f81612d7d565b5b6000612f9084828501612f57565b91505092915050565b600060208284031215612faf57612fae612d7d565b5b6000612fbd84828501612dcb565b91505092915050565b612fcf81612da2565b82525050565b6000602082019050612fea6000830184612fc6565b92915050565b60006020828403121561300657613005612d7d565b5b600061301484828501612e01565b91505092915050565b6000806040838503121561303457613033612d7d565b5b600061304285828601612dcb565b925050602061305385828601612dcb565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613093602083612ccd565b915061309e8261305d565b602082019050919050565b600060208201905081810360008301526130c281613086565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b60006130ff601d83612ccd565b915061310a826130c9565b602082019050919050565b6000602082019050818103600083015261312e816130f2565b9050919050565b60008151905061314481612db4565b92915050565b6000602082840312156131605761315f612d7d565b5b600061316e84828501613135565b91505092915050565b600060408201905061318c6000830185612fc6565b6131996020830184612fc6565b9392505050565b6000819050919050565b6000819050919050565b60006131cf6131ca6131c5846131a0565b6131aa565b612de0565b9050919050565b6131df816131b4565b82525050565b600060c0820190506131fa6000830189612fc6565b6132076020830188612e8c565b61321460408301876131d6565b61322160608301866131d6565b61322e6080830185612fc6565b61323b60a0830184612e8c565b979650505050505050565b60008151905061325581612dea565b92915050565b60008060006060848603121561327457613273612d7d565b5b600061328286828701613246565b935050602061329386828701613246565b92505060406132a486828701613246565b9150509250925092565b60006040820190506132c36000830185612fc6565b6132d06020830184612e8c565b9392505050565b6000815190506132e681612f40565b92915050565b60006020828403121561330257613301612d7d565b5b6000613310848285016132d7565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613375602483612ccd565b915061338082613319565b604082019050919050565b600060208201905081810360008301526133a481613368565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613407602283612ccd565b9150613412826133ab565b604082019050919050565b60006020820190508181036000830152613436816133fa565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613499602583612ccd565b91506134a48261343d565b604082019050919050565b600060208201905081810360008301526134c88161348c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061352b602383612ccd565b9150613536826134cf565b604082019050919050565b6000602082019050818103600083015261355a8161351e565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006135bd602983612ccd565b91506135c882613561565b604082019050919050565b600060208201905081810360008301526135ec816135b0565b9050919050565b7f4552523a20556e6973776170206f6e6c79000000000000000000000000000000600082015250565b6000613629601183612ccd565b9150613634826135f3565b602082019050919050565b600060208201905081810360008301526136588161361c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061369982612de0565b91506136a483612de0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156136d9576136d861365f565b5b828201905092915050565b60006136ef82612de0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156137225761372161365f565b5b600182019050919050565b600061373882612de0565b915061374383612de0565b9250828210156137565761375561365f565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006137bd602a83612ccd565b91506137c882613761565b604082019050919050565b600060208201905081810360008301526137ec816137b0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61388681612da2565b82525050565b6000613898838361387d565b60208301905092915050565b6000602082019050919050565b60006138bc82613851565b6138c6818561385c565b93506138d18361386d565b8060005b838110156139025781516138e9888261388c565b97506138f4836138a4565b9250506001810190506138d5565b5085935050505092915050565b600060a0820190506139246000830188612e8c565b61393160208301876131d6565b818103604083015261394381866138b1565b90506139526060830185612fc6565b61395f6080830184612e8c565b9695505050505050565b600061397482612de0565b915061397f83612de0565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156139b8576139b761365f565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006139fd82612de0565b9150613a0883612de0565b925082613a1857613a176139c3565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a7f602183612ccd565b9150613a8a82613a23565b604082019050919050565b60006020820190508181036000830152613aae81613a72565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613aeb601b83612ccd565b9150613af682613ab5565b602082019050919050565b60006020820190508181036000830152613b1a81613ade565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122077c3fd2ac58aa138ab4b9c393e0e70da57dcb5df5a106aa8f1fe2b06283df11a64736f6c634300080900330000000000000000000000005cd3a333f14c666da707c68cb35517071906771e0000000000000000000000005cd3a333f14c666da707c68cb35517071906771e

Deployed Bytecode

0x6080604052600436106101025760003560e01c8063715018a611610095578063c3c8cd8011610064578063c3c8cd8014610330578063c9567bf914610347578063d543dbeb1461035e578063dd62ed3e14610387578063e8078d94146103c457610109565b8063715018a6146102865780638da5cb5b1461029d57806395d89b41146102c8578063a9059cbb146102f357610109565b8063313ce567116100d1578063313ce567146101de5780635932ead1146102095780636fc3eaec1461023257806370a082311461024957610109565b806306fdde031461010e578063095ea7b31461013957806318160ddd1461017657806323b872dd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b506101236103db565b6040516101309190612d5b565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b9190612e16565b610418565b60405161016d9190612e71565b60405180910390f35b34801561018257600080fd5b5061018b610436565b6040516101989190612e9b565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612eb6565b610447565b6040516101d59190612e71565b60405180910390f35b3480156101ea57600080fd5b506101f3610520565b6040516102009190612f25565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b9190612f6c565b610529565b005b34801561023e57600080fd5b506102476105db565b005b34801561025557600080fd5b50610270600480360381019061026b9190612f99565b61064d565b60405161027d9190612e9b565b60405180910390f35b34801561029257600080fd5b5061029b61069e565b005b3480156102a957600080fd5b506102b26107f1565b6040516102bf9190612fd5565b60405180910390f35b3480156102d457600080fd5b506102dd61081a565b6040516102ea9190612d5b565b60405180910390f35b3480156102ff57600080fd5b5061031a60048036038101906103159190612e16565b610857565b6040516103279190612e71565b60405180910390f35b34801561033c57600080fd5b50610345610875565b005b34801561035357600080fd5b5061035c6108ef565b005b34801561036a57600080fd5b5061038560048036038101906103809190612ff0565b6109ba565b005b34801561039357600080fd5b506103ae60048036038101906103a9919061301d565b610b03565b6040516103bb9190612e9b565b60405180910390f35b3480156103d057600080fd5b506103d9610b8a565b005b60606040518060400160405280600881526020017f436f746120496e75000000000000000000000000000000000000000000000000815250905090565b600061042c610425611097565b848461109f565b6001905092915050565b6000683635c9adc5dea00000905090565b600061045484848461126a565b61051584610460611097565b61051085604051806060016040528060288152602001613b2260289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104c6611097565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461212e9092919063ffffffff16565b61109f565b600190509392505050565b60006009905090565b610531611097565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b5906130a9565b60405180910390fd5b80601260186101000a81548160ff02191690831515021790555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661061c611097565b73ffffffffffffffffffffffffffffffffffffffff161461063c57600080fd5b600047905061064a81612192565b50565b6000610697600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461228d565b9050919050565b6106a6611097565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610733576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072a906130a9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f434f544100000000000000000000000000000000000000000000000000000000815250905090565b600061086b610864611097565b848461126a565b6001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108b6611097565b73ffffffffffffffffffffffffffffffffffffffff16146108d657600080fd5b60006108e13061064d565b90506108ec816122fb565b50565b6108f7611097565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610984576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097b906130a9565b60405180910390fd5b601260159054906101000a900460ff1661099d57600080fd5b6001601260146101000a81548160ff021916908315150217905550565b6109c2611097565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a46906130a9565b60405180910390fd5b60008111610a92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8990613115565b60405180910390fd5b610ac16064610ab383683635c9adc5dea0000061258390919063ffffffff16565b6125fe90919063ffffffff16565b6013819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf601354604051610af89190612e9b565b60405180910390a150565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610b92611097565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c16906130a9565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610caf30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea0000061109f565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610cf557600080fd5b505afa158015610d09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2d919061314a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610d8f57600080fd5b505afa158015610da3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc7919061314a565b6040518363ffffffff1660e01b8152600401610de4929190613177565b602060405180830381600087803b158015610dfe57600080fd5b505af1158015610e12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e36919061314a565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610ebf3061064d565b600080610eca6107f1565b426040518863ffffffff1660e01b8152600401610eec969594939291906131e5565b6060604051808303818588803b158015610f0557600080fd5b505af1158015610f19573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f3e919061325b565b5050506001601260176101000a81548160ff0219169083151502179055506001601260186101000a81548160ff0219169083151502179055506001601260156101000a81548160ff021916908315150217905550680270801d946c940000601381905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016110419291906132ae565b602060405180830381600087803b15801561105b57600080fd5b505af115801561106f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109391906132ec565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561110f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111069061338b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561117f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111769061341d565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161125d9190612e9b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d1906134af565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561134a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134190613541565b60405180910390fd5b6000811161138d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611384906135d3565b60405180910390fd5b6113956107f1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561140357506113d36107f1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561206b57601260189054906101000a900460ff1615611636573073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561148557503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156114df5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156115395750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561163557601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661157f611097565b73ffffffffffffffffffffffffffffffffffffffff1614806115f55750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115dd611097565b73ffffffffffffffffffffffffffffffffffffffff16145b611634576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162b9061363f565b60405180910390fd5b5b5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116da5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6116e357600080fd5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561178e5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117e45750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156117fc5750601260189054906101000a900460ff165b156118d557601260149054906101000a900460ff1661181a57600080fd5b60135481111561182957600080fd5b42600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061187457600080fd5b601e42611881919061368e565b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600660098190555060026008819055505b60006118e03061064d565b9050601260169054906101000a900460ff1615801561194d5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156119655750601260179054906101000a900460ff165b15612069576119bb60646119ad600361199f601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661064d565b61258390919063ffffffff16565b6125fe90919063ffffffff16565b82111580156119cc57506013548211155b6119d557600080fd5b42600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611a2057600080fd5b4262015180600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a6f919061368e565b1015611abb576000600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415611bf257600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190611b53906136e4565b919050555042600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e1042611baa919061368e565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ffe565b6001600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415611ce557600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190611c8a906136e4565b9190505550611c2042611c9d919061368e565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ffd565b6002600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415611dd857600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190611d7d906136e4565b919050555061546042611d90919061368e565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ffc565b6003600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415611ecb57600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190611e70906136e4565b919050555061a8c042611e83919061368e565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ffb565b6004600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415611ffa57600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190611f63906136e4565b919050555062015180600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fb6919061368e565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b5b5b5b612007816122fb565b6000479050600081111561201f5761201e47612192565b5b612067600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612648565b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806121125750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561211c57600090505b61212884848484612671565b50505050565b6000838311158290612176576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216d9190612d5b565b60405180910390fd5b5060008385612185919061372d565b9050809150509392505050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6121e26002846125fe90919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561220d573d6000803e3d6000fd5b50601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61225e6002846125fe90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612289573d6000803e3d6000fd5b5050565b60006006548211156122d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122cb906137d3565b60405180910390fd5b60006122de6126b0565b90506122f381846125fe90919063ffffffff16565b915050919050565b6001601260166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612333576123326137f3565b5b6040519080825280602002602001820160405280156123615781602001602082028036833780820191505090505b509050308160008151811061237957612378613822565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561241b57600080fd5b505afa15801561242f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612453919061314a565b8160018151811061246757612466613822565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124ce30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461109f565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161253295949392919061390f565b600060405180830381600087803b15801561254c57600080fd5b505af1158015612560573d6000803e3d6000fd5b50505050506000601260166101000a81548160ff02191690831515021790555050565b60008083141561259657600090506125f8565b600082846125a49190613969565b90508284826125b391906139f2565b146125f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ea90613a95565b60405180910390fd5b809150505b92915050565b600061264083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506126db565b905092915050565b806008546126569190613969565b600881905550600181111561266e57600a6009819055505b50565b8061267f5761267e61273e565b5b61268a84848461276f565b806126985761269761269e565b5b50505050565b60076008819055506005600981905550565b60008060006126bd61293a565b915091506126d481836125fe90919063ffffffff16565b9250505090565b60008083118290612722576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127199190612d5b565b60405180910390fd5b506000838561273191906139f2565b9050809150509392505050565b600060085414801561275257506000600954145b1561275c5761276d565b600060088190555060006009819055505b565b6000806000806000806127818761299c565b9550955095509550955095506127df86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a0490919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061287485600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a4e90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128c081612aac565b6128ca8483612b69565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516129279190612e9b565b60405180910390a3505050505050505050565b600080600060065490506000683635c9adc5dea000009050612970683635c9adc5dea000006006546125fe90919063ffffffff16565b82101561298f57600654683635c9adc5dea00000935093505050612998565b81819350935050505b9091565b60008060008060008060008060006129b98a600854600954612ba3565b92509250925060006129c96126b0565b905060008060006129dc8e878787612c39565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612a4683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061212e565b905092915050565b6000808284612a5d919061368e565b905083811015612aa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a9990613b01565b60405180910390fd5b8091505092915050565b6000612ab66126b0565b90506000612acd828461258390919063ffffffff16565b9050612b2181600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a4e90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612b7e82600654612a0490919063ffffffff16565b600681905550612b9981600754612a4e90919063ffffffff16565b6007819055505050565b600080600080612bcf6064612bc1888a61258390919063ffffffff16565b6125fe90919063ffffffff16565b90506000612bf96064612beb888b61258390919063ffffffff16565b6125fe90919063ffffffff16565b90506000612c2282612c14858c612a0490919063ffffffff16565b612a0490919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612c52858961258390919063ffffffff16565b90506000612c69868961258390919063ffffffff16565b90506000612c80878961258390919063ffffffff16565b90506000612ca982612c9b8587612a0490919063ffffffff16565b612a0490919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612cfc578082015181840152602081019050612ce1565b83811115612d0b576000848401525b50505050565b6000601f19601f8301169050919050565b6000612d2d82612cc2565b612d378185612ccd565b9350612d47818560208601612cde565b612d5081612d11565b840191505092915050565b60006020820190508181036000830152612d758184612d22565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612dad82612d82565b9050919050565b612dbd81612da2565b8114612dc857600080fd5b50565b600081359050612dda81612db4565b92915050565b6000819050919050565b612df381612de0565b8114612dfe57600080fd5b50565b600081359050612e1081612dea565b92915050565b60008060408385031215612e2d57612e2c612d7d565b5b6000612e3b85828601612dcb565b9250506020612e4c85828601612e01565b9150509250929050565b60008115159050919050565b612e6b81612e56565b82525050565b6000602082019050612e866000830184612e62565b92915050565b612e9581612de0565b82525050565b6000602082019050612eb06000830184612e8c565b92915050565b600080600060608486031215612ecf57612ece612d7d565b5b6000612edd86828701612dcb565b9350506020612eee86828701612dcb565b9250506040612eff86828701612e01565b9150509250925092565b600060ff82169050919050565b612f1f81612f09565b82525050565b6000602082019050612f3a6000830184612f16565b92915050565b612f4981612e56565b8114612f5457600080fd5b50565b600081359050612f6681612f40565b92915050565b600060208284031215612f8257612f81612d7d565b5b6000612f9084828501612f57565b91505092915050565b600060208284031215612faf57612fae612d7d565b5b6000612fbd84828501612dcb565b91505092915050565b612fcf81612da2565b82525050565b6000602082019050612fea6000830184612fc6565b92915050565b60006020828403121561300657613005612d7d565b5b600061301484828501612e01565b91505092915050565b6000806040838503121561303457613033612d7d565b5b600061304285828601612dcb565b925050602061305385828601612dcb565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613093602083612ccd565b915061309e8261305d565b602082019050919050565b600060208201905081810360008301526130c281613086565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b60006130ff601d83612ccd565b915061310a826130c9565b602082019050919050565b6000602082019050818103600083015261312e816130f2565b9050919050565b60008151905061314481612db4565b92915050565b6000602082840312156131605761315f612d7d565b5b600061316e84828501613135565b91505092915050565b600060408201905061318c6000830185612fc6565b6131996020830184612fc6565b9392505050565b6000819050919050565b6000819050919050565b60006131cf6131ca6131c5846131a0565b6131aa565b612de0565b9050919050565b6131df816131b4565b82525050565b600060c0820190506131fa6000830189612fc6565b6132076020830188612e8c565b61321460408301876131d6565b61322160608301866131d6565b61322e6080830185612fc6565b61323b60a0830184612e8c565b979650505050505050565b60008151905061325581612dea565b92915050565b60008060006060848603121561327457613273612d7d565b5b600061328286828701613246565b935050602061329386828701613246565b92505060406132a486828701613246565b9150509250925092565b60006040820190506132c36000830185612fc6565b6132d06020830184612e8c565b9392505050565b6000815190506132e681612f40565b92915050565b60006020828403121561330257613301612d7d565b5b6000613310848285016132d7565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613375602483612ccd565b915061338082613319565b604082019050919050565b600060208201905081810360008301526133a481613368565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613407602283612ccd565b9150613412826133ab565b604082019050919050565b60006020820190508181036000830152613436816133fa565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613499602583612ccd565b91506134a48261343d565b604082019050919050565b600060208201905081810360008301526134c88161348c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061352b602383612ccd565b9150613536826134cf565b604082019050919050565b6000602082019050818103600083015261355a8161351e565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006135bd602983612ccd565b91506135c882613561565b604082019050919050565b600060208201905081810360008301526135ec816135b0565b9050919050565b7f4552523a20556e6973776170206f6e6c79000000000000000000000000000000600082015250565b6000613629601183612ccd565b9150613634826135f3565b602082019050919050565b600060208201905081810360008301526136588161361c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061369982612de0565b91506136a483612de0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156136d9576136d861365f565b5b828201905092915050565b60006136ef82612de0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156137225761372161365f565b5b600182019050919050565b600061373882612de0565b915061374383612de0565b9250828210156137565761375561365f565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006137bd602a83612ccd565b91506137c882613761565b604082019050919050565b600060208201905081810360008301526137ec816137b0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61388681612da2565b82525050565b6000613898838361387d565b60208301905092915050565b6000602082019050919050565b60006138bc82613851565b6138c6818561385c565b93506138d18361386d565b8060005b838110156139025781516138e9888261388c565b97506138f4836138a4565b9250506001810190506138d5565b5085935050505092915050565b600060a0820190506139246000830188612e8c565b61393160208301876131d6565b818103604083015261394381866138b1565b90506139526060830185612fc6565b61395f6080830184612e8c565b9695505050505050565b600061397482612de0565b915061397f83612de0565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156139b8576139b761365f565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006139fd82612de0565b9150613a0883612de0565b925082613a1857613a176139c3565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a7f602183612ccd565b9150613a8a82613a23565b604082019050919050565b60006020820190508181036000830152613aae81613a72565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613aeb601b83612ccd565b9150613af682613ab5565b602082019050919050565b60006020820190508181036000830152613b1a81613ade565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122077c3fd2ac58aa138ab4b9c393e0e70da57dcb5df5a106aa8f1fe2b06283df11a64736f6c63430008090033

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

0000000000000000000000005cd3a333f14c666da707c68cb35517071906771e0000000000000000000000005cd3a333f14c666da707c68cb35517071906771e

-----Decoded View---------------
Arg [0] : addr1 (address): 0x5Cd3A333F14c666DA707c68cb35517071906771E
Arg [1] : addr2 (address): 0x5Cd3A333F14c666DA707c68cb35517071906771E

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000005cd3a333f14c666da707c68cb35517071906771e
Arg [1] : 0000000000000000000000005cd3a333f14c666da707c68cb35517071906771e


Deployed Bytecode Sourcemap

3500:12532:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5488:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6340:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5765:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6509:310;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5674:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6827:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12734:191;;;;;;;;;;;;;:::i;:::-;;5868:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2553:148;;;;;;;;;;;;;:::i;:::-;;2339:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5579:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6014:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12534:192;;;;;;;;;;;;;:::i;:::-;;11643:111;;;;;;;;;;;;;:::i;:::-;;15774:255;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6189:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11762:764;;;;;;;;;;;;;:::i;:::-;;5488:83;5525:13;5558:5;;;;;;;;;;;;;;;;;5551:12;;5488:83;:::o;6340:161::-;6415:4;6432:39;6441:12;:10;:12::i;:::-;6455:7;6464:6;6432:8;:39::i;:::-;6489:4;6482:11;;6340:161;;;;:::o;5765:95::-;5818:7;4040:21;5838:14;;5765:95;:::o;6509:310::-;6607:4;6624:36;6634:6;6642:9;6653:6;6624:9;:36::i;:::-;6671:118;6680:6;6687:12;:10;:12::i;:::-;6700:88;6738:6;6700:88;;;;;;;;;;;;;;;;;:11;:19;6712:6;6700:19;;;;;;;;;;;;;;;:33;6720:12;:10;:12::i;:::-;6700:33;;;;;;;;;;;;;;;;:37;;:88;;;;;:::i;:::-;6671:8;:118::i;:::-;6807:4;6800:11;;6509:310;;;;;:::o;5674:83::-;5715:5;3716:1;5733:16;;5674:83;:::o;6827:103::-;2476:12;:10;:12::i;:::-;2466:22;;:6;;;;;;;;;;:22;;;2458:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6917:5:::1;6899:15;;:23;;;;;;;;;;;;;;;;;;6827:103:::0;:::o;12734:191::-;12800:12;;;;;;;;;;;12784:28;;:12;:10;:12::i;:::-;:28;;;12776:37;;;;;;12824:26;12853:21;12824:50;;12885:32;12898:18;12885:12;:32::i;:::-;12765:160;12734:191::o;5868:138::-;5934:7;5961:37;5981:7;:16;5989:7;5981:16;;;;;;;;;;;;;;;;5961:19;:37::i;:::-;5954:44;;5868:138;;;:::o;2553:148::-;2476:12;:10;:12::i;:::-;2466:22;;:6;;;;;;;;;;:22;;;2458:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2660:1:::1;2623:40;;2644:6;::::0;::::1;;;;;;;;2623:40;;;;;;;;;;;;2691:1;2674:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2553:148::o:0;2339:79::-;2377:7;2404:6;;;;;;;;;;;2397:13;;2339:79;:::o;5579:87::-;5618:13;5651:7;;;;;;;;;;;;;;;;;5644:14;;5579:87;:::o;6014:167::-;6092:4;6109:42;6119:12;:10;:12::i;:::-;6133:9;6144:6;6109:9;:42::i;:::-;6169:4;6162:11;;6014:167;;;;:::o;12534:192::-;12600:12;;;;;;;;;;;12584:28;;:12;:10;:12::i;:::-;:28;;;12576:37;;;;;;12624:23;12650:24;12668:4;12650:9;:24::i;:::-;12624:50;;12685:33;12702:15;12685:16;:33::i;:::-;12565:161;12534:192::o;11643:111::-;2476:12;:10;:12::i;:::-;2466:22;;:6;;;;;;;;;;:22;;;2458:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11702:14:::1;;;;;;;;;;;11694:23;;;::::0;::::1;;11742:4;11728:11;;:18;;;;;;;;;;;;;;;;;;11643:111::o:0;15774:255::-;2476:12;:10;:12::i;:::-;2466:22;;:6;;;;;;;;;;:22;;;2458:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15876:1:::1;15861:12;:16;15853:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;15937:36;15967:5;15937:25;15949:12;4040:21;15937:11;;:25;;;;:::i;:::-;:29;;:36;;;;:::i;:::-;15922:12;:51;;;;15989:32;16008:12;;15989:32;;;;;;:::i;:::-;;;;;;;;15774:255:::0;:::o;6189:143::-;6270:7;6297:11;:18;6309:5;6297:18;;;;;;;;;;;;;;;:27;6316:7;6297:27;;;;;;;;;;;;;;;;6290:34;;6189:143;;;;:::o;11762:764::-;2476:12;:10;:12::i;:::-;2466:22;;:6;;;;;;;;;;:22;;;2458:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11818:35:::1;11875:42;11818:100;;11947:16;11929:15;;:34;;;;;;;;;;;;;;;;;;11974:58;11991:4;12006:15;;;;;;;;;;;4040:21;11974:8;:58::i;:::-;12077:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12059:56;;;12124:4;12131:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12059:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12043:13;;:112;;;;;;;;;;;;;;;;;;12166:15;;;;;;;;;;;:31;;;12205:21;12236:4;12242:24;12260:4;12242:9;:24::i;:::-;12267:1;12269::::0;12271:7:::1;:5;:7::i;:::-;12279:15;12166:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12320:4;12306:11;;:18;;;;;;;;;;;;;;;;;;12353:4;12335:15;;:22;;;;;;;;;;;;;;;;;;12385:4;12368:14;;:21;;;;;;;;;;;;;;;;;;12415:19;12400:12;:34;;;;12452:13;;;;;;;;;;;12445:29;;;12483:15;;;;;;;;;;;12500:17;12445:73;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11807:719;11762:764::o:0;60:98::-;113:7;140:10;133:17;;60:98;:::o;7627:335::-;7737:1;7720:19;;:5;:19;;;;7712:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7818:1;7799:21;;:7;:21;;;;7791:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7900:6;7870:11;:18;7882:5;7870:18;;;;;;;;;;;;;;;:27;7889:7;7870:27;;;;;;;;;;;;;;;:36;;;;7938:7;7922:32;;7931:5;7922:32;;;7947:6;7922:32;;;;;;:::i;:::-;;;;;;;;7627:335;;;:::o;7970:3087::-;8074:1;8058:18;;:4;:18;;;;8050:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8151:1;8137:16;;:2;:16;;;;8129:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8221:1;8212:6;:10;8204:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8293:7;:5;:7::i;:::-;8285:15;;:4;:15;;;;:32;;;;;8310:7;:5;:7::i;:::-;8304:13;;:2;:13;;;;8285:32;8281:2551;;;8338:15;;;;;;;;;;;8334:320;;;8394:4;8378:21;;:4;:21;;;;:44;;;;;8417:4;8403:19;;:2;:19;;;;8378:44;:80;;;;;8442:15;;;;;;;;;;;8426:32;;:4;:32;;;;8378:80;:114;;;;;8476:15;;;;;;;;;;;8462:30;;:2;:30;;;;8378:114;8374:265;;;8549:15;;;;;;;;;;;8525:40;;:12;:10;:12::i;:::-;:40;;;:73;;;;8585:13;;;;;;;;;;;8569:29;;:12;:10;:12::i;:::-;:29;;;8525:73;8517:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;8374:265;8334:320;8677:4;:10;8682:4;8677:10;;;;;;;;;;;;;;;;;;;;;;;;;8676:11;:24;;;;;8692:4;:8;8697:2;8692:8;;;;;;;;;;;;;;;;;;;;;;;;;8691:9;8676:24;8668:33;;;;;;8728:13;;;;;;;;;;;8720:21;;:4;:21;;;:55;;;;;8759:15;;;;;;;;;;;8745:30;;:2;:30;;;;8720:55;:82;;;;;8780:18;:22;8799:2;8780:22;;;;;;;;;;;;;;;;;;;;;;;;;8779:23;8720:82;:101;;;;;8806:15;;;;;;;;;;;8720:101;8716:401;;;8850:11;;;;;;;;;;;8842:20;;;;;;8899:12;;8889:6;:22;;8881:31;;;;;;8957:15;8939:11;:15;8951:2;8939:15;;;;;;;;;;;;;;;;:33;8931:42;;;;;;9029:10;9010:15;:30;;;;:::i;:::-;8992:11;:15;9004:2;8992:15;;;;;;;;;;;;;;;:48;;;;9070:1;9059:8;:12;;;;9100:1;9090:7;:11;;;;8716:401;9131:28;9162:24;9180:4;9162:9;:24::i;:::-;9131:55;;9206:6;;;;;;;;;;;9205:7;:32;;;;;9224:13;;;;;;;;;;;9216:21;;:4;:21;;;;9205:32;:47;;;;;9241:11;;;;;;;;;;;9205:47;9201:1620;;;9291:40;9327:3;9291:31;9320:1;9291:24;9301:13;;;;;;;;;;;9291:9;:24::i;:::-;:28;;:31;;;;:::i;:::-;:35;;:40;;;;:::i;:::-;9281:6;:50;;:76;;;;;9345:12;;9335:6;:22;;9281:76;9273:85;;;;;;9406:15;9385:12;:18;9398:4;9385:18;;;;;;;;;;;;;;;;:36;9377:45;;;;;;9473:15;9463:6;9444:9;:15;9454:4;9444:15;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;:44;9441:111;;;9531:1;9512:10;:16;9523:4;9512:16;;;;;;;;;;;;;;;:20;;;;9441:111;9594:1;9574:10;:16;9585:4;9574:16;;;;;;;;;;;;;;;;:21;9570:943;;;9620:10;:16;9631:4;9620:16;;;;;;;;;;;;;;;;:18;;;;;;;;;:::i;:::-;;;;;;9679:15;9661:9;:15;9671:4;9661:15;;;;;;;;;;;;;;;:33;;;;9757:7;9738:15;:27;;;;:::i;:::-;9717:12;:18;9730:4;9717:18;;;;;;;;;;;;;;;:48;;;;9570:943;;;9832:1;9812:10;:16;9823:4;9812:16;;;;;;;;;;;;;;;;:21;9808:705;;;9858:10;:16;9869:4;9858:16;;;;;;;;;;;;;;;;:18;;;;;;;;;:::i;:::-;;;;;;9939:7;9920:15;:27;;;;:::i;:::-;9899:12;:18;9912:4;9899:18;;;;;;;;;;;;;;;:48;;;;9808:705;;;10014:1;9994:10;:16;10005:4;9994:16;;;;;;;;;;;;;;;;:21;9990:523;;;10040:10;:16;10051:4;10040:16;;;;;;;;;;;;;;;;:18;;;;;;;;;:::i;:::-;;;;;;10121:7;10102:15;:27;;;;:::i;:::-;10081:12;:18;10094:4;10081:18;;;;;;;;;;;;;;;:48;;;;9990:523;;;10196:1;10176:10;:16;10187:4;10176:16;;;;;;;;;;;;;;;;:21;10172:341;;;10222:10;:16;10233:4;10222:16;;;;;;;;;;;;;;;;:18;;;;;;;;;:::i;:::-;;;;;;10303:8;10284:15;:28;;;;:::i;:::-;10263:12;:18;10276:4;10263:18;;;;;;;;;;;;;;;:49;;;;10172:341;;;10379:1;10359:10;:16;10370:4;10359:16;;;;;;;;;;;;;;;;:21;10355:158;;;10405:10;:16;10416:4;10405:16;;;;;;;;;;;;;;;;:18;;;;;;;;;:::i;:::-;;;;;;10486:6;10467:9;:15;10477:4;10467:15;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;10446:12;:18;10459:4;10446:18;;;;;;;;;;;;;;;:47;;;;10355:158;10172:341;9990:523;9808:705;9570:943;10531:38;10548:20;10531:16;:38::i;:::-;10588:26;10617:21;10588:50;;10682:1;10661:18;:22;10657:106;;;10708:35;10721:21;10708:12;:35::i;:::-;10657:106;10781:24;10788:10;:16;10799:4;10788:16;;;;;;;;;;;;;;;;10781:6;:24::i;:::-;9254:1567;9201:1620;8319:2513;8281:2551;10842:12;10857:4;10842:19;;10878:18;:24;10897:4;10878:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10906:18;:22;10925:2;10906:22;;;;;;;;;;;;;;;;;;;;;;;;;10878:50;10874:98;;;10955:5;10945:15;;10874:98;10984:41;10999:4;11005:2;11009:6;11017:7;10984:14;:41::i;:::-;8039:3018;7970:3087;;;:::o;1197:190::-;1283:7;1316:1;1311;:6;;1319:12;1303:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1343:9;1359:1;1355;:5;;;;:::i;:::-;1343:17;;1378:1;1371:8;;;1197:190;;;;;:::o;11480:151::-;11537:12;;;;;;;;;;;:21;;:36;11559:13;11570:1;11559:6;:10;;:13;;;;:::i;:::-;11537:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11584:15;;;;;;;;;;;:24;;:39;11609:13;11620:1;11609:6;:10;;:13;;;;:::i;:::-;11584:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11480:151;:::o;6938:253::-;7006:7;7045;;7034;:18;;7026:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7109:19;7131:10;:8;:10::i;:::-;7109:32;;7159:24;7171:11;7159:7;:11;;:24;;;;:::i;:::-;7152:31;;;6938:253;;;:::o;11065:407::-;4994:4;4985:6;;:13;;;;;;;;;;;;;;;;;;11143:21:::1;11181:1;11167:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11143:40;;11212:4;11194;11199:1;11194:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11238:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11228:4;11233:1;11228:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11271:62;11288:4;11303:15;;;;;;;;;;;11321:11;11271:8;:62::i;:::-;11344:15;;;;;;;;;;;:66;;;11411:11;11424:1;11427:4;11441;11448:15;11344:120;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11132:340;5030:5:::0;5021:6;;:14;;;;;;;;;;;;;;;;;;11065:407;:::o;1395:246::-;1453:7;1482:1;1477;:6;1473:47;;;1507:1;1500:8;;;;1473:47;1530:9;1546:1;1542;:5;;;;:::i;:::-;1530:17;;1575:1;1570;1566;:5;;;;:::i;:::-;:10;1558:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1632:1;1625:8;;;1395:246;;;;;:::o;1649:132::-;1707:7;1734:39;1738:1;1741;1734:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1727:46;;1649:132;;;;:::o;7446:173::-;7521:10;7511:7;;:20;;;;:::i;:::-;7501:7;:30;;;;7559:1;7546:10;:14;7542:60;;;7588:2;7577:8;:13;;;;7542:60;7446:173;:::o;12933:239::-;13046:7;13041:28;;13055:14;:12;:14::i;:::-;13041:28;13080:44;13098:6;13106:9;13117:6;13080:17;:44::i;:::-;13140:7;13135:29;;13149:15;:13;:15::i;:::-;13135:29;12933:239;;;;:::o;7348:86::-;7402:1;7392:7;:11;;;;7425:1;7414:8;:12;;;;7348:86::o;15337:164::-;15379:7;15400:15;15417;15436:19;:17;:19::i;:::-;15399:56;;;;15473:20;15485:7;15473;:11;;:20;;;;:::i;:::-;15466:27;;;;15337:164;:::o;1789:189::-;1875:7;1907:1;1903;:5;1910:12;1895:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1934:9;1950:1;1946;:5;;;;:::i;:::-;1934:17;;1969:1;1962:8;;;1789:189;;;;;:::o;7203:137::-;7261:1;7250:7;;:12;:29;;;;;7278:1;7266:8;;:13;7250:29;7246:42;;;7281:7;;7246:42;7308:1;7298:7;:11;;;;7331:1;7320:8;:12;;;;7203:137;:::o;13180:487::-;13279:15;13296:23;13321:12;13335:23;13360:12;13374:13;13391:19;13402:7;13391:10;:19::i;:::-;13278:132;;;;;;;;;;;;13439:28;13459:7;13439;:15;13447:6;13439:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13421:7;:15;13429:6;13421:15;;;;;;;;;;;;;;;:46;;;;13499:39;13522:15;13499:7;:18;13507:9;13499:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13478:7;:18;13486:9;13478:18;;;;;;;;;;;;;;;:60;;;;13549:16;13559:5;13549:9;:16::i;:::-;13576:23;13588:4;13594;13576:11;:23::i;:::-;13632:9;13615:44;;13624:6;13615:44;;;13643:15;13615:44;;;;;;:::i;:::-;;;;;;;;13267:400;;;;;;13180:487;;;:::o;15509:257::-;15560:7;15569;15589:15;15607:7;;15589:25;;15625:15;4040:21;15625:25;;15675:20;4040:21;15675:7;;:11;;:20;;;;:::i;:::-;15665:7;:30;15661:61;;;15705:7;;4040:21;15697:25;;;;;;;;15661:61;15741:7;15750;15733:25;;;;;;15509:257;;;:::o;14086:467::-;14145:7;14154;14163;14172;14181;14190;14211:23;14236:12;14250:13;14267:39;14279:7;14288;;14297:8;;14267:11;:39::i;:::-;14210:96;;;;;;14317:19;14339:10;:8;:10::i;:::-;14317:32;;14361:15;14378:23;14403:12;14419:46;14431:7;14440:4;14446:5;14453:11;14419;:46::i;:::-;14360:105;;;;;;14484:7;14493:15;14510:4;14516:15;14533:4;14539:5;14476:69;;;;;;;;;;;;;;;;;;;14086:467;;;;;;;:::o;1053:136::-;1111:7;1138:43;1142:1;1145;1138:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1131:50;;1053:136;;;;:::o;866:179::-;924:7;944:9;960:1;956;:5;;;;:::i;:::-;944:17;;985:1;980;:6;;972:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1036:1;1029:8;;;866:179;;;;:::o;13675:211::-;13728:19;13750:10;:8;:10::i;:::-;13728:32;;13771:13;13787:22;13797:11;13787:5;:9;;:22;;;;:::i;:::-;13771:38;;13845:33;13872:5;13845:7;:22;13861:4;13845:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;13820:7;:22;13836:4;13820:22;;;;;;;;;;;;;;;:58;;;;13717:169;;13675:211;:::o;13894:147::-;13972:17;13984:4;13972:7;;:11;;:17;;;;:::i;:::-;13962:7;:27;;;;14013:20;14028:4;14013:10;;:14;;:20;;;;:::i;:::-;14000:10;:33;;;;13894:147;;:::o;14561:351::-;14654:7;14663;14672;14692:12;14707:28;14731:3;14707:19;14719:6;14707:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;14692:43;;14746:13;14762:29;14787:3;14762:20;14774:7;14762;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;14746:45;;14802:23;14828:28;14850:5;14828:17;14840:4;14828:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14802:54;;14875:15;14892:4;14898:5;14867:37;;;;;;;;;14561:351;;;;;;;:::o;14920:409::-;15030:7;15039;15048;15068:15;15086:24;15098:11;15086:7;:11;;:24;;;;:::i;:::-;15068:42;;15121:12;15136:21;15145:11;15136:4;:8;;:21;;;;:::i;:::-;15121:36;;15168:13;15184:22;15194:11;15184:5;:9;;:22;;;;:::i;:::-;15168:38;;15217:23;15243:28;15265:5;15243:17;15255:4;15243:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15217:54;;15290:7;15299:15;15316:4;15282:39;;;;;;;;;;14920:409;;;;;;;;:::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:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:86::-;4506:7;4546:4;4539:5;4535:16;4524:27;;4471:86;;;:::o;4563:112::-;4646:22;4662:5;4646:22;:::i;:::-;4641:3;4634:35;4563:112;;:::o;4681:214::-;4770:4;4808:2;4797:9;4793:18;4785:26;;4821:67;4885:1;4874:9;4870:17;4861:6;4821:67;:::i;:::-;4681:214;;;;:::o;4901:116::-;4971:21;4986:5;4971:21;:::i;:::-;4964:5;4961:32;4951:60;;5007:1;5004;4997:12;4951:60;4901:116;:::o;5023:133::-;5066:5;5104:6;5091:20;5082:29;;5120:30;5144:5;5120:30;:::i;:::-;5023:133;;;;:::o;5162:323::-;5218:6;5267:2;5255:9;5246:7;5242:23;5238:32;5235:119;;;5273:79;;:::i;:::-;5235:119;5393:1;5418:50;5460:7;5451:6;5440:9;5436:22;5418:50;:::i;:::-;5408:60;;5364:114;5162:323;;;;:::o;5491:329::-;5550:6;5599:2;5587:9;5578:7;5574:23;5570:32;5567:119;;;5605:79;;:::i;:::-;5567:119;5725:1;5750:53;5795:7;5786:6;5775:9;5771:22;5750:53;:::i;:::-;5740:63;;5696:117;5491:329;;;;:::o;5826:118::-;5913:24;5931:5;5913:24;:::i;:::-;5908:3;5901:37;5826:118;;:::o;5950:222::-;6043:4;6081:2;6070:9;6066:18;6058:26;;6094:71;6162:1;6151:9;6147:17;6138:6;6094:71;:::i;:::-;5950:222;;;;:::o;6178:329::-;6237:6;6286:2;6274:9;6265:7;6261:23;6257:32;6254:119;;;6292:79;;:::i;:::-;6254:119;6412:1;6437:53;6482:7;6473:6;6462:9;6458:22;6437:53;:::i;:::-;6427:63;;6383:117;6178:329;;;;:::o;6513:474::-;6581:6;6589;6638:2;6626:9;6617:7;6613:23;6609:32;6606:119;;;6644:79;;:::i;:::-;6606:119;6764:1;6789:53;6834:7;6825:6;6814:9;6810:22;6789:53;:::i;:::-;6779:63;;6735:117;6891:2;6917:53;6962:7;6953:6;6942:9;6938:22;6917:53;:::i;:::-;6907:63;;6862:118;6513:474;;;;;:::o;6993:182::-;7133:34;7129:1;7121:6;7117:14;7110:58;6993:182;:::o;7181:366::-;7323:3;7344:67;7408:2;7403:3;7344:67;:::i;:::-;7337:74;;7420:93;7509:3;7420:93;:::i;:::-;7538:2;7533:3;7529:12;7522:19;;7181:366;;;:::o;7553:419::-;7719:4;7757:2;7746:9;7742:18;7734:26;;7806:9;7800:4;7796:20;7792:1;7781:9;7777:17;7770:47;7834:131;7960:4;7834:131;:::i;:::-;7826:139;;7553:419;;;:::o;7978:179::-;8118:31;8114:1;8106:6;8102:14;8095:55;7978:179;:::o;8163:366::-;8305:3;8326:67;8390:2;8385:3;8326:67;:::i;:::-;8319:74;;8402:93;8491:3;8402:93;:::i;:::-;8520:2;8515:3;8511:12;8504:19;;8163:366;;;:::o;8535:419::-;8701:4;8739:2;8728:9;8724:18;8716:26;;8788:9;8782:4;8778:20;8774:1;8763:9;8759:17;8752:47;8816:131;8942:4;8816:131;:::i;:::-;8808:139;;8535:419;;;:::o;8960:143::-;9017:5;9048:6;9042:13;9033:22;;9064:33;9091:5;9064:33;:::i;:::-;8960:143;;;;:::o;9109:351::-;9179:6;9228:2;9216:9;9207:7;9203:23;9199:32;9196:119;;;9234:79;;:::i;:::-;9196:119;9354:1;9379:64;9435:7;9426:6;9415:9;9411:22;9379:64;:::i;:::-;9369:74;;9325:128;9109:351;;;;:::o;9466:332::-;9587:4;9625:2;9614:9;9610:18;9602:26;;9638:71;9706:1;9695:9;9691:17;9682:6;9638:71;:::i;:::-;9719:72;9787:2;9776:9;9772:18;9763:6;9719:72;:::i;:::-;9466:332;;;;;:::o;9804:85::-;9849:7;9878:5;9867:16;;9804:85;;;:::o;9895:60::-;9923:3;9944:5;9937:12;;9895:60;;;:::o;9961:158::-;10019:9;10052:61;10070:42;10079:32;10105:5;10079:32;:::i;:::-;10070:42;:::i;:::-;10052:61;:::i;:::-;10039:74;;9961:158;;;:::o;10125:147::-;10220:45;10259:5;10220:45;:::i;:::-;10215:3;10208:58;10125:147;;:::o;10278:807::-;10527:4;10565:3;10554:9;10550:19;10542:27;;10579:71;10647:1;10636:9;10632:17;10623:6;10579:71;:::i;:::-;10660:72;10728:2;10717:9;10713:18;10704:6;10660:72;:::i;:::-;10742:80;10818:2;10807:9;10803:18;10794:6;10742:80;:::i;:::-;10832;10908:2;10897:9;10893:18;10884:6;10832:80;:::i;:::-;10922:73;10990:3;10979:9;10975:19;10966:6;10922:73;:::i;:::-;11005;11073:3;11062:9;11058:19;11049:6;11005:73;:::i;:::-;10278:807;;;;;;;;;:::o;11091:143::-;11148:5;11179:6;11173:13;11164:22;;11195:33;11222:5;11195:33;:::i;:::-;11091:143;;;;:::o;11240:663::-;11328:6;11336;11344;11393:2;11381:9;11372:7;11368:23;11364:32;11361:119;;;11399:79;;:::i;:::-;11361:119;11519:1;11544:64;11600:7;11591:6;11580:9;11576:22;11544:64;:::i;:::-;11534:74;;11490:128;11657:2;11683:64;11739:7;11730:6;11719:9;11715:22;11683:64;:::i;:::-;11673:74;;11628:129;11796:2;11822:64;11878:7;11869:6;11858:9;11854:22;11822:64;:::i;:::-;11812:74;;11767:129;11240:663;;;;;:::o;11909:332::-;12030:4;12068:2;12057:9;12053:18;12045:26;;12081:71;12149:1;12138:9;12134:17;12125:6;12081:71;:::i;:::-;12162:72;12230:2;12219:9;12215:18;12206:6;12162:72;:::i;:::-;11909:332;;;;;:::o;12247:137::-;12301:5;12332:6;12326:13;12317:22;;12348:30;12372:5;12348:30;:::i;:::-;12247:137;;;;:::o;12390:345::-;12457:6;12506:2;12494:9;12485:7;12481:23;12477:32;12474:119;;;12512:79;;:::i;:::-;12474:119;12632:1;12657:61;12710:7;12701:6;12690:9;12686:22;12657:61;:::i;:::-;12647:71;;12603:125;12390:345;;;;:::o;12741:223::-;12881:34;12877:1;12869:6;12865:14;12858:58;12950:6;12945:2;12937:6;12933:15;12926:31;12741:223;:::o;12970:366::-;13112:3;13133:67;13197:2;13192:3;13133:67;:::i;:::-;13126:74;;13209:93;13298:3;13209:93;:::i;:::-;13327:2;13322:3;13318:12;13311:19;;12970:366;;;:::o;13342:419::-;13508:4;13546:2;13535:9;13531:18;13523:26;;13595:9;13589:4;13585:20;13581:1;13570:9;13566:17;13559:47;13623:131;13749:4;13623:131;:::i;:::-;13615:139;;13342:419;;;:::o;13767:221::-;13907:34;13903:1;13895:6;13891:14;13884:58;13976:4;13971:2;13963:6;13959:15;13952:29;13767:221;:::o;13994:366::-;14136:3;14157:67;14221:2;14216:3;14157:67;:::i;:::-;14150:74;;14233:93;14322:3;14233:93;:::i;:::-;14351:2;14346:3;14342:12;14335:19;;13994:366;;;:::o;14366:419::-;14532:4;14570:2;14559:9;14555:18;14547:26;;14619:9;14613:4;14609:20;14605:1;14594:9;14590:17;14583:47;14647:131;14773:4;14647:131;:::i;:::-;14639:139;;14366:419;;;:::o;14791:224::-;14931:34;14927:1;14919:6;14915:14;14908:58;15000:7;14995:2;14987:6;14983:15;14976:32;14791:224;:::o;15021:366::-;15163:3;15184:67;15248:2;15243:3;15184:67;:::i;:::-;15177:74;;15260:93;15349:3;15260:93;:::i;:::-;15378:2;15373:3;15369:12;15362:19;;15021:366;;;:::o;15393:419::-;15559:4;15597:2;15586:9;15582:18;15574:26;;15646:9;15640:4;15636:20;15632:1;15621:9;15617:17;15610:47;15674:131;15800:4;15674:131;:::i;:::-;15666:139;;15393:419;;;:::o;15818:222::-;15958:34;15954:1;15946:6;15942:14;15935:58;16027:5;16022:2;16014:6;16010:15;16003:30;15818:222;:::o;16046:366::-;16188:3;16209:67;16273:2;16268:3;16209:67;:::i;:::-;16202:74;;16285:93;16374:3;16285:93;:::i;:::-;16403:2;16398:3;16394:12;16387:19;;16046:366;;;:::o;16418:419::-;16584:4;16622:2;16611:9;16607:18;16599:26;;16671:9;16665:4;16661:20;16657:1;16646:9;16642:17;16635:47;16699:131;16825:4;16699:131;:::i;:::-;16691:139;;16418:419;;;:::o;16843:228::-;16983:34;16979:1;16971:6;16967:14;16960:58;17052:11;17047:2;17039:6;17035:15;17028:36;16843:228;:::o;17077:366::-;17219:3;17240:67;17304:2;17299:3;17240:67;:::i;:::-;17233:74;;17316:93;17405:3;17316:93;:::i;:::-;17434:2;17429:3;17425:12;17418:19;;17077:366;;;:::o;17449:419::-;17615:4;17653:2;17642:9;17638:18;17630:26;;17702:9;17696:4;17692:20;17688:1;17677:9;17673:17;17666:47;17730:131;17856:4;17730:131;:::i;:::-;17722:139;;17449:419;;;:::o;17874:167::-;18014:19;18010:1;18002:6;17998:14;17991:43;17874:167;:::o;18047:366::-;18189:3;18210:67;18274:2;18269:3;18210:67;:::i;:::-;18203:74;;18286:93;18375:3;18286:93;:::i;:::-;18404:2;18399:3;18395:12;18388:19;;18047:366;;;:::o;18419:419::-;18585:4;18623:2;18612:9;18608:18;18600:26;;18672:9;18666:4;18662:20;18658:1;18647:9;18643:17;18636:47;18700:131;18826:4;18700:131;:::i;:::-;18692:139;;18419:419;;;:::o;18844:180::-;18892:77;18889:1;18882:88;18989:4;18986:1;18979:15;19013:4;19010:1;19003:15;19030:305;19070:3;19089:20;19107:1;19089:20;:::i;:::-;19084:25;;19123:20;19141:1;19123:20;:::i;:::-;19118:25;;19277:1;19209:66;19205:74;19202:1;19199:81;19196:107;;;19283:18;;:::i;:::-;19196:107;19327:1;19324;19320:9;19313:16;;19030:305;;;;:::o;19341:233::-;19380:3;19403:24;19421:5;19403:24;:::i;:::-;19394:33;;19449:66;19442:5;19439:77;19436:103;;;19519:18;;:::i;:::-;19436:103;19566:1;19559:5;19555:13;19548:20;;19341:233;;;:::o;19580:191::-;19620:4;19640:20;19658:1;19640:20;:::i;:::-;19635:25;;19674:20;19692:1;19674:20;:::i;:::-;19669:25;;19713:1;19710;19707:8;19704:34;;;19718:18;;:::i;:::-;19704:34;19763:1;19760;19756:9;19748:17;;19580:191;;;;:::o;19777:229::-;19917:34;19913:1;19905:6;19901:14;19894:58;19986:12;19981:2;19973:6;19969:15;19962:37;19777:229;:::o;20012:366::-;20154:3;20175:67;20239:2;20234:3;20175:67;:::i;:::-;20168:74;;20251:93;20340:3;20251:93;:::i;:::-;20369:2;20364:3;20360:12;20353:19;;20012:366;;;:::o;20384:419::-;20550:4;20588:2;20577:9;20573:18;20565:26;;20637:9;20631:4;20627:20;20623:1;20612:9;20608:17;20601:47;20665:131;20791:4;20665:131;:::i;:::-;20657:139;;20384:419;;;:::o;20809:180::-;20857:77;20854:1;20847:88;20954:4;20951:1;20944:15;20978:4;20975:1;20968:15;20995:180;21043:77;21040:1;21033:88;21140:4;21137:1;21130:15;21164:4;21161:1;21154:15;21181:114;21248:6;21282:5;21276:12;21266:22;;21181:114;;;:::o;21301:184::-;21400:11;21434:6;21429:3;21422:19;21474:4;21469:3;21465:14;21450:29;;21301:184;;;;:::o;21491:132::-;21558:4;21581:3;21573:11;;21611:4;21606:3;21602:14;21594:22;;21491:132;;;:::o;21629:108::-;21706:24;21724:5;21706:24;:::i;:::-;21701:3;21694:37;21629:108;;:::o;21743:179::-;21812:10;21833:46;21875:3;21867:6;21833:46;:::i;:::-;21911:4;21906:3;21902:14;21888:28;;21743:179;;;;:::o;21928:113::-;21998:4;22030;22025:3;22021:14;22013:22;;21928:113;;;:::o;22077:732::-;22196:3;22225:54;22273:5;22225:54;:::i;:::-;22295:86;22374:6;22369:3;22295:86;:::i;:::-;22288:93;;22405:56;22455:5;22405:56;:::i;:::-;22484:7;22515:1;22500:284;22525:6;22522:1;22519:13;22500:284;;;22601:6;22595:13;22628:63;22687:3;22672:13;22628:63;:::i;:::-;22621:70;;22714:60;22767:6;22714:60;:::i;:::-;22704:70;;22560:224;22547:1;22544;22540:9;22535:14;;22500:284;;;22504:14;22800:3;22793:10;;22201:608;;;22077:732;;;;:::o;22815:831::-;23078:4;23116:3;23105:9;23101:19;23093:27;;23130:71;23198:1;23187:9;23183:17;23174:6;23130:71;:::i;:::-;23211:80;23287:2;23276:9;23272:18;23263:6;23211:80;:::i;:::-;23338:9;23332:4;23328:20;23323:2;23312:9;23308:18;23301:48;23366:108;23469:4;23460:6;23366:108;:::i;:::-;23358:116;;23484:72;23552:2;23541:9;23537:18;23528:6;23484:72;:::i;:::-;23566:73;23634:3;23623:9;23619:19;23610:6;23566:73;:::i;:::-;22815:831;;;;;;;;:::o;23652:348::-;23692:7;23715:20;23733:1;23715:20;:::i;:::-;23710:25;;23749:20;23767:1;23749:20;:::i;:::-;23744:25;;23937:1;23869:66;23865:74;23862:1;23859:81;23854:1;23847:9;23840:17;23836:105;23833:131;;;23944:18;;:::i;:::-;23833:131;23992:1;23989;23985:9;23974:20;;23652:348;;;;:::o;24006:180::-;24054:77;24051:1;24044:88;24151:4;24148:1;24141:15;24175:4;24172:1;24165:15;24192:185;24232:1;24249:20;24267:1;24249:20;:::i;:::-;24244:25;;24283:20;24301:1;24283:20;:::i;:::-;24278:25;;24322:1;24312:35;;24327:18;;:::i;:::-;24312:35;24369:1;24366;24362:9;24357:14;;24192:185;;;;:::o;24383:220::-;24523:34;24519:1;24511:6;24507:14;24500:58;24592:3;24587:2;24579:6;24575:15;24568:28;24383:220;:::o;24609:366::-;24751:3;24772:67;24836:2;24831:3;24772:67;:::i;:::-;24765:74;;24848:93;24937:3;24848:93;:::i;:::-;24966:2;24961:3;24957:12;24950:19;;24609:366;;;:::o;24981:419::-;25147:4;25185:2;25174:9;25170:18;25162:26;;25234:9;25228:4;25224:20;25220:1;25209:9;25205:17;25198:47;25262:131;25388:4;25262:131;:::i;:::-;25254:139;;24981:419;;;:::o;25406:177::-;25546:29;25542:1;25534:6;25530:14;25523:53;25406:177;:::o;25589:366::-;25731:3;25752:67;25816:2;25811:3;25752:67;:::i;:::-;25745:74;;25828:93;25917:3;25828:93;:::i;:::-;25946:2;25941:3;25937:12;25930:19;;25589:366;;;:::o;25961:419::-;26127:4;26165:2;26154:9;26150:18;26142:26;;26214:9;26208:4;26204:20;26200:1;26189:9;26185:17;26178:47;26242:131;26368:4;26242:131;:::i;:::-;26234:139;;25961:419;;;:::o

Swarm Source

ipfs://77c3fd2ac58aa138ab4b9c393e0e70da57dcb5df5a106aa8f1fe2b06283df11a
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.