ETH Price: $3,143.59 (-8.53%)
Gas: 9 Gwei

Token

Nuky Inu (NUKY)
 

Overview

Max Total Supply

1,000,000,000,000 NUKY

Holders

16

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
6,818,520,725.283331505 NUKY

Value
$0.00
0xd619de66921e17952113f1b280a0C14688950273
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:
NukyInu

Compiler Version
v0.8.14+commit.80d49f37

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-19
*/

/**
 *When I saw the design and development of the police, it was my parents’ three free throws, I got nervous, I looked at the scenery, I saw the development database, it’s the scorecard, 
 time to see the scenery, Master Kong, 
 that’s your meal card, and the barber is happy.
*/

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 NukyInu is Context, IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = "Nuky Inu";
    string private constant _symbol = "NUKY";
    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 = 18000000000 * 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"}]

6080604052683635c9adc5dea000006000196200001d91906200052c565b6000196200002c919062000593565b600655600760085560056009556000601260146101000a81548160ff0219169083151502179055506000601260156101000a81548160ff0219169083151502179055506000601260166101000a81548160ff0219169083151502179055506000601260176101000a81548160ff0219169083151502179055506000601260186101000a81548160ff021916908315150217905550683635c9adc5dea00000601355348015620000da57600080fd5b50604051620041d0380380620041d0833981810160405281019062000100919062000638565b600062000112620004c260201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506006546002600062000249620004c260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600560006200029d620004ca60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200044a620004c260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620004b2919062000690565b60405180910390a35050620006ad565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200053982620004f3565b91506200054683620004f3565b925082620005595762000558620004fd565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620005a082620004f3565b9150620005ad83620004f3565b925082821015620005c357620005c262000564565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200060082620005d3565b9050919050565b6200061281620005f3565b81146200061e57600080fd5b50565b600081519050620006328162000607565b92915050565b60008060408385031215620006525762000651620005ce565b5b6000620006628582860162000621565b9250506020620006758582860162000621565b9150509250929050565b6200068a81620004f3565b82525050565b6000602082019050620006a760008301846200067f565b92915050565b613b1380620006bd6000396000f3fe6080604052600436106101025760003560e01c8063715018a611610095578063c3c8cd8011610064578063c3c8cd8014610330578063c9567bf914610347578063d543dbeb1461035e578063dd62ed3e14610387578063e8078d94146103c457610109565b8063715018a6146102865780638da5cb5b1461029d57806395d89b41146102c8578063a9059cbb146102f357610109565b8063313ce567116100d1578063313ce567146101de5780635932ead1146102095780636fc3eaec1461023257806370a082311461024957610109565b806306fdde031461010e578063095ea7b31461013957806318160ddd1461017657806323b872dd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b506101236103db565b6040516101309190612cf0565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b9190612dab565b610418565b60405161016d9190612e06565b60405180910390f35b34801561018257600080fd5b5061018b610436565b6040516101989190612e30565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612e4b565b610447565b6040516101d59190612e06565b60405180910390f35b3480156101ea57600080fd5b506101f3610520565b6040516102009190612eba565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b9190612f01565b610529565b005b34801561023e57600080fd5b506102476105db565b005b34801561025557600080fd5b50610270600480360381019061026b9190612f2e565b61064d565b60405161027d9190612e30565b60405180910390f35b34801561029257600080fd5b5061029b61069e565b005b3480156102a957600080fd5b506102b26107f1565b6040516102bf9190612f6a565b60405180910390f35b3480156102d457600080fd5b506102dd61081a565b6040516102ea9190612cf0565b60405180910390f35b3480156102ff57600080fd5b5061031a60048036038101906103159190612dab565b610857565b6040516103279190612e06565b60405180910390f35b34801561033c57600080fd5b50610345610875565b005b34801561035357600080fd5b5061035c6108ef565b005b34801561036a57600080fd5b5061038560048036038101906103809190612f85565b6109ba565b005b34801561039357600080fd5b506103ae60048036038101906103a99190612fb2565b610b03565b6040516103bb9190612e30565b60405180910390f35b3480156103d057600080fd5b506103d9610b8a565b005b60606040518060400160405280600881526020017f4e756b7920496e75000000000000000000000000000000000000000000000000815250905090565b600061042c61042561104b565b8484611053565b6001905092915050565b6000683635c9adc5dea00000905090565b600061045484848461121c565b6105158461046061104b565b61051085604051806060016040528060288152602001613ab660289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104c661104b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120d99092919063ffffffff16565b611053565b600190509392505050565b60006009905090565b61053161104b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b59061303e565b60405180910390fd5b80601260186101000a81548160ff02191690831515021790555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661061c61104b565b73ffffffffffffffffffffffffffffffffffffffff161461063c57600080fd5b600047905061064a8161213d565b50565b6000610697600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612238565b9050919050565b6106a661104b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610733576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072a9061303e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4e554b5900000000000000000000000000000000000000000000000000000000815250905090565b600061086b61086461104b565b848461121c565b6001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108b661104b565b73ffffffffffffffffffffffffffffffffffffffff16146108d657600080fd5b60006108e13061064d565b90506108ec816122a6565b50565b6108f761104b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610984576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097b9061303e565b60405180910390fd5b601260159054906101000a900460ff1661099d57600080fd5b6001601260146101000a81548160ff021916908315150217905550565b6109c261104b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a469061303e565b60405180910390fd5b60008111610a92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a89906130aa565b60405180910390fd5b610ac16064610ab383683635c9adc5dea0000061251f90919063ffffffff16565b61259990919063ffffffff16565b6013819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf601354604051610af89190612e30565b60405180910390a150565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610b9261104b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c169061303e565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610caf30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea00000611053565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1e91906130df565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da991906130df565b6040518363ffffffff1660e01b8152600401610dc692919061310c565b6020604051808303816000875af1158015610de5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0991906130df565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e923061064d565b600080610e9d6107f1565b426040518863ffffffff1660e01b8152600401610ebf9695949392919061317a565b60606040518083038185885af1158015610edd573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f0291906131f0565b5050506001601260176101000a81548160ff0219169083151502179055506001601260186101000a81548160ff0219169083151502179055506001601260156101000a81548160ff02191690831515021790555067f9ccd8a1c5080000601381905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611004929190613243565b6020604051808303816000875af1158015611023573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110479190613281565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b990613320565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611131576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611128906133b2565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161120f9190612e30565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361128b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128290613444565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f1906134d6565b60405180910390fd5b6000811161133d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133490613568565b60405180910390fd5b6113456107f1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113b357506113836107f1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561201657601260189054906101000a900460ff16156115e6573073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561143557503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561148f5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156114e95750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156115e557601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661152f61104b565b73ffffffffffffffffffffffffffffffffffffffff1614806115a55750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661158d61104b565b73ffffffffffffffffffffffffffffffffffffffff16145b6115e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115db906135d4565b60405180910390fd5b5b5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561168a5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61169357600080fd5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561173e5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117945750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156117ac5750601260189054906101000a900460ff165b1561188557601260149054906101000a900460ff166117ca57600080fd5b6013548111156117d957600080fd5b42600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061182457600080fd5b601e426118319190613623565b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600660098190555060026008819055505b60006118903061064d565b9050601260169054906101000a900460ff161580156118fd5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156119155750601260179054906101000a900460ff165b156120145761196b606461195d600361194f601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661064d565b61251f90919063ffffffff16565b61259990919063ffffffff16565b821115801561197c57506013548211155b61198557600080fd5b42600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106119d057600080fd5b4262015180600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a1f9190613623565b1015611a6b576000600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403611ba157600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190611b0290613679565b919050555042600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e1042611b599190613623565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fa9565b6001600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403611c9357600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190611c3890613679565b9190505550611c2042611c4b9190613623565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fa8565b6002600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403611d8557600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190611d2a90613679565b919050555061546042611d3d9190613623565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fa7565b6003600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403611e7757600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190611e1c90613679565b919050555061a8c042611e2f9190613623565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fa6565b6004600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403611fa557600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190611f0e90613679565b919050555062015180600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f619190613623565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b5b5b5b611fb2816122a6565b60004790506000811115611fca57611fc94761213d565b5b612012600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125e3565b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120bd5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156120c757600090505b6120d38484848461260c565b50505050565b6000838311158290612121576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121189190612cf0565b60405180910390fd5b506000838561213091906136c1565b9050809150509392505050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61218d60028461259990919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156121b8573d6000803e3d6000fd5b50601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61220960028461259990919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612234573d6000803e3d6000fd5b5050565b600060065482111561227f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227690613767565b60405180910390fd5b600061228961264b565b905061229e818461259990919063ffffffff16565b915050919050565b6001601260166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156122de576122dd613787565b5b60405190808252806020026020018201604052801561230c5781602001602082028036833780820191505090505b5090503081600081518110612324576123236137b6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ef91906130df565b81600181518110612403576124026137b6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061246a30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611053565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016124ce9594939291906138a3565b600060405180830381600087803b1580156124e857600080fd5b505af11580156124fc573d6000803e3d6000fd5b50505050506000601260166101000a81548160ff02191690831515021790555050565b60008083036125315760009050612593565b6000828461253f91906138fd565b905082848261254e9190613986565b1461258e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258590613a29565b60405180910390fd5b809150505b92915050565b60006125db83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612676565b905092915050565b806008546125f191906138fd565b600881905550600181111561260957600a6009819055505b50565b8061261a576126196126d9565b5b612625848484612704565b8061263357612632612639565b5b50505050565b60076008819055506005600981905550565b60008060006126586128cf565b9150915061266f818361259990919063ffffffff16565b9250505090565b600080831182906126bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b49190612cf0565b60405180910390fd5b50600083856126cc9190613986565b9050809150509392505050565b60006008541480156126ed57506000600954145b61270257600060088190555060006009819055505b565b60008060008060008061271687612931565b95509550955095509550955061277486600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461299990919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061280985600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129e390919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061285581612a41565b61285f8483612afe565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516128bc9190612e30565b60405180910390a3505050505050505050565b600080600060065490506000683635c9adc5dea000009050612905683635c9adc5dea0000060065461259990919063ffffffff16565b82101561292457600654683635c9adc5dea0000093509350505061292d565b81819350935050505b9091565b600080600080600080600080600061294e8a600854600954612b38565b925092509250600061295e61264b565b905060008060006129718e878787612bce565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006129db83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120d9565b905092915050565b60008082846129f29190613623565b905083811015612a37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2e90613a95565b60405180910390fd5b8091505092915050565b6000612a4b61264b565b90506000612a62828461251f90919063ffffffff16565b9050612ab681600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129e390919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612b138260065461299990919063ffffffff16565b600681905550612b2e816007546129e390919063ffffffff16565b6007819055505050565b600080600080612b646064612b56888a61251f90919063ffffffff16565b61259990919063ffffffff16565b90506000612b8e6064612b80888b61251f90919063ffffffff16565b61259990919063ffffffff16565b90506000612bb782612ba9858c61299990919063ffffffff16565b61299990919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612be7858961251f90919063ffffffff16565b90506000612bfe868961251f90919063ffffffff16565b90506000612c15878961251f90919063ffffffff16565b90506000612c3e82612c30858761299990919063ffffffff16565b61299990919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c91578082015181840152602081019050612c76565b83811115612ca0576000848401525b50505050565b6000601f19601f8301169050919050565b6000612cc282612c57565b612ccc8185612c62565b9350612cdc818560208601612c73565b612ce581612ca6565b840191505092915050565b60006020820190508181036000830152612d0a8184612cb7565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612d4282612d17565b9050919050565b612d5281612d37565b8114612d5d57600080fd5b50565b600081359050612d6f81612d49565b92915050565b6000819050919050565b612d8881612d75565b8114612d9357600080fd5b50565b600081359050612da581612d7f565b92915050565b60008060408385031215612dc257612dc1612d12565b5b6000612dd085828601612d60565b9250506020612de185828601612d96565b9150509250929050565b60008115159050919050565b612e0081612deb565b82525050565b6000602082019050612e1b6000830184612df7565b92915050565b612e2a81612d75565b82525050565b6000602082019050612e456000830184612e21565b92915050565b600080600060608486031215612e6457612e63612d12565b5b6000612e7286828701612d60565b9350506020612e8386828701612d60565b9250506040612e9486828701612d96565b9150509250925092565b600060ff82169050919050565b612eb481612e9e565b82525050565b6000602082019050612ecf6000830184612eab565b92915050565b612ede81612deb565b8114612ee957600080fd5b50565b600081359050612efb81612ed5565b92915050565b600060208284031215612f1757612f16612d12565b5b6000612f2584828501612eec565b91505092915050565b600060208284031215612f4457612f43612d12565b5b6000612f5284828501612d60565b91505092915050565b612f6481612d37565b82525050565b6000602082019050612f7f6000830184612f5b565b92915050565b600060208284031215612f9b57612f9a612d12565b5b6000612fa984828501612d96565b91505092915050565b60008060408385031215612fc957612fc8612d12565b5b6000612fd785828601612d60565b9250506020612fe885828601612d60565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613028602083612c62565b915061303382612ff2565b602082019050919050565b600060208201905081810360008301526130578161301b565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b6000613094601d83612c62565b915061309f8261305e565b602082019050919050565b600060208201905081810360008301526130c381613087565b9050919050565b6000815190506130d981612d49565b92915050565b6000602082840312156130f5576130f4612d12565b5b6000613103848285016130ca565b91505092915050565b60006040820190506131216000830185612f5b565b61312e6020830184612f5b565b9392505050565b6000819050919050565b6000819050919050565b600061316461315f61315a84613135565b61313f565b612d75565b9050919050565b61317481613149565b82525050565b600060c08201905061318f6000830189612f5b565b61319c6020830188612e21565b6131a9604083018761316b565b6131b6606083018661316b565b6131c36080830185612f5b565b6131d060a0830184612e21565b979650505050505050565b6000815190506131ea81612d7f565b92915050565b60008060006060848603121561320957613208612d12565b5b6000613217868287016131db565b9350506020613228868287016131db565b9250506040613239868287016131db565b9150509250925092565b60006040820190506132586000830185612f5b565b6132656020830184612e21565b9392505050565b60008151905061327b81612ed5565b92915050565b60006020828403121561329757613296612d12565b5b60006132a58482850161326c565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061330a602483612c62565b9150613315826132ae565b604082019050919050565b60006020820190508181036000830152613339816132fd565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061339c602283612c62565b91506133a782613340565b604082019050919050565b600060208201905081810360008301526133cb8161338f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061342e602583612c62565b9150613439826133d2565b604082019050919050565b6000602082019050818103600083015261345d81613421565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006134c0602383612c62565b91506134cb82613464565b604082019050919050565b600060208201905081810360008301526134ef816134b3565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613552602983612c62565b915061355d826134f6565b604082019050919050565b6000602082019050818103600083015261358181613545565b9050919050565b7f4552523a20556e6973776170206f6e6c79000000000000000000000000000000600082015250565b60006135be601183612c62565b91506135c982613588565b602082019050919050565b600060208201905081810360008301526135ed816135b1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061362e82612d75565b915061363983612d75565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561366e5761366d6135f4565b5b828201905092915050565b600061368482612d75565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036136b6576136b56135f4565b5b600182019050919050565b60006136cc82612d75565b91506136d783612d75565b9250828210156136ea576136e96135f4565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613751602a83612c62565b915061375c826136f5565b604082019050919050565b6000602082019050818103600083015261378081613744565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61381a81612d37565b82525050565b600061382c8383613811565b60208301905092915050565b6000602082019050919050565b6000613850826137e5565b61385a81856137f0565b935061386583613801565b8060005b8381101561389657815161387d8882613820565b975061388883613838565b925050600181019050613869565b5085935050505092915050565b600060a0820190506138b86000830188612e21565b6138c5602083018761316b565b81810360408301526138d78186613845565b90506138e66060830185612f5b565b6138f36080830184612e21565b9695505050505050565b600061390882612d75565b915061391383612d75565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561394c5761394b6135f4565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061399182612d75565b915061399c83612d75565b9250826139ac576139ab613957565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a13602183612c62565b9150613a1e826139b7565b604082019050919050565b60006020820190508181036000830152613a4281613a06565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613a7f601b83612c62565b9150613a8a82613a49565b602082019050919050565b60006020820190508181036000830152613aae81613a72565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d8a58fc09531e716f8edb51e8ad7750cb6fd64d9d333d032c472d2a286a9368264736f6c634300080e003300000000000000000000000036d32b2d2dc1f28a4d717a1f92f7ddbabd3ae0b600000000000000000000000036d32b2d2dc1f28a4d717a1f92f7ddbabd3ae0b6

Deployed Bytecode

0x6080604052600436106101025760003560e01c8063715018a611610095578063c3c8cd8011610064578063c3c8cd8014610330578063c9567bf914610347578063d543dbeb1461035e578063dd62ed3e14610387578063e8078d94146103c457610109565b8063715018a6146102865780638da5cb5b1461029d57806395d89b41146102c8578063a9059cbb146102f357610109565b8063313ce567116100d1578063313ce567146101de5780635932ead1146102095780636fc3eaec1461023257806370a082311461024957610109565b806306fdde031461010e578063095ea7b31461013957806318160ddd1461017657806323b872dd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b506101236103db565b6040516101309190612cf0565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b9190612dab565b610418565b60405161016d9190612e06565b60405180910390f35b34801561018257600080fd5b5061018b610436565b6040516101989190612e30565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612e4b565b610447565b6040516101d59190612e06565b60405180910390f35b3480156101ea57600080fd5b506101f3610520565b6040516102009190612eba565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b9190612f01565b610529565b005b34801561023e57600080fd5b506102476105db565b005b34801561025557600080fd5b50610270600480360381019061026b9190612f2e565b61064d565b60405161027d9190612e30565b60405180910390f35b34801561029257600080fd5b5061029b61069e565b005b3480156102a957600080fd5b506102b26107f1565b6040516102bf9190612f6a565b60405180910390f35b3480156102d457600080fd5b506102dd61081a565b6040516102ea9190612cf0565b60405180910390f35b3480156102ff57600080fd5b5061031a60048036038101906103159190612dab565b610857565b6040516103279190612e06565b60405180910390f35b34801561033c57600080fd5b50610345610875565b005b34801561035357600080fd5b5061035c6108ef565b005b34801561036a57600080fd5b5061038560048036038101906103809190612f85565b6109ba565b005b34801561039357600080fd5b506103ae60048036038101906103a99190612fb2565b610b03565b6040516103bb9190612e30565b60405180910390f35b3480156103d057600080fd5b506103d9610b8a565b005b60606040518060400160405280600881526020017f4e756b7920496e75000000000000000000000000000000000000000000000000815250905090565b600061042c61042561104b565b8484611053565b6001905092915050565b6000683635c9adc5dea00000905090565b600061045484848461121c565b6105158461046061104b565b61051085604051806060016040528060288152602001613ab660289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104c661104b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120d99092919063ffffffff16565b611053565b600190509392505050565b60006009905090565b61053161104b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b59061303e565b60405180910390fd5b80601260186101000a81548160ff02191690831515021790555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661061c61104b565b73ffffffffffffffffffffffffffffffffffffffff161461063c57600080fd5b600047905061064a8161213d565b50565b6000610697600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612238565b9050919050565b6106a661104b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610733576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072a9061303e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4e554b5900000000000000000000000000000000000000000000000000000000815250905090565b600061086b61086461104b565b848461121c565b6001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108b661104b565b73ffffffffffffffffffffffffffffffffffffffff16146108d657600080fd5b60006108e13061064d565b90506108ec816122a6565b50565b6108f761104b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610984576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097b9061303e565b60405180910390fd5b601260159054906101000a900460ff1661099d57600080fd5b6001601260146101000a81548160ff021916908315150217905550565b6109c261104b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a469061303e565b60405180910390fd5b60008111610a92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a89906130aa565b60405180910390fd5b610ac16064610ab383683635c9adc5dea0000061251f90919063ffffffff16565b61259990919063ffffffff16565b6013819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf601354604051610af89190612e30565b60405180910390a150565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610b9261104b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c169061303e565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610caf30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea00000611053565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1e91906130df565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da991906130df565b6040518363ffffffff1660e01b8152600401610dc692919061310c565b6020604051808303816000875af1158015610de5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0991906130df565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e923061064d565b600080610e9d6107f1565b426040518863ffffffff1660e01b8152600401610ebf9695949392919061317a565b60606040518083038185885af1158015610edd573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f0291906131f0565b5050506001601260176101000a81548160ff0219169083151502179055506001601260186101000a81548160ff0219169083151502179055506001601260156101000a81548160ff02191690831515021790555067f9ccd8a1c5080000601381905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611004929190613243565b6020604051808303816000875af1158015611023573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110479190613281565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b990613320565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611131576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611128906133b2565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161120f9190612e30565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361128b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128290613444565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f1906134d6565b60405180910390fd5b6000811161133d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133490613568565b60405180910390fd5b6113456107f1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113b357506113836107f1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561201657601260189054906101000a900460ff16156115e6573073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561143557503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561148f5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156114e95750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156115e557601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661152f61104b565b73ffffffffffffffffffffffffffffffffffffffff1614806115a55750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661158d61104b565b73ffffffffffffffffffffffffffffffffffffffff16145b6115e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115db906135d4565b60405180910390fd5b5b5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561168a5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61169357600080fd5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561173e5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117945750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156117ac5750601260189054906101000a900460ff165b1561188557601260149054906101000a900460ff166117ca57600080fd5b6013548111156117d957600080fd5b42600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061182457600080fd5b601e426118319190613623565b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600660098190555060026008819055505b60006118903061064d565b9050601260169054906101000a900460ff161580156118fd5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156119155750601260179054906101000a900460ff165b156120145761196b606461195d600361194f601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661064d565b61251f90919063ffffffff16565b61259990919063ffffffff16565b821115801561197c57506013548211155b61198557600080fd5b42600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106119d057600080fd5b4262015180600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a1f9190613623565b1015611a6b576000600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403611ba157600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190611b0290613679565b919050555042600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e1042611b599190613623565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fa9565b6001600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403611c9357600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190611c3890613679565b9190505550611c2042611c4b9190613623565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fa8565b6002600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403611d8557600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190611d2a90613679565b919050555061546042611d3d9190613623565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fa7565b6003600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403611e7757600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190611e1c90613679565b919050555061a8c042611e2f9190613623565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fa6565b6004600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403611fa557600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190611f0e90613679565b919050555062015180600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f619190613623565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b5b5b5b611fb2816122a6565b60004790506000811115611fca57611fc94761213d565b5b612012600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125e3565b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120bd5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156120c757600090505b6120d38484848461260c565b50505050565b6000838311158290612121576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121189190612cf0565b60405180910390fd5b506000838561213091906136c1565b9050809150509392505050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61218d60028461259990919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156121b8573d6000803e3d6000fd5b50601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61220960028461259990919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612234573d6000803e3d6000fd5b5050565b600060065482111561227f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227690613767565b60405180910390fd5b600061228961264b565b905061229e818461259990919063ffffffff16565b915050919050565b6001601260166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156122de576122dd613787565b5b60405190808252806020026020018201604052801561230c5781602001602082028036833780820191505090505b5090503081600081518110612324576123236137b6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ef91906130df565b81600181518110612403576124026137b6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061246a30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611053565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016124ce9594939291906138a3565b600060405180830381600087803b1580156124e857600080fd5b505af11580156124fc573d6000803e3d6000fd5b50505050506000601260166101000a81548160ff02191690831515021790555050565b60008083036125315760009050612593565b6000828461253f91906138fd565b905082848261254e9190613986565b1461258e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258590613a29565b60405180910390fd5b809150505b92915050565b60006125db83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612676565b905092915050565b806008546125f191906138fd565b600881905550600181111561260957600a6009819055505b50565b8061261a576126196126d9565b5b612625848484612704565b8061263357612632612639565b5b50505050565b60076008819055506005600981905550565b60008060006126586128cf565b9150915061266f818361259990919063ffffffff16565b9250505090565b600080831182906126bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b49190612cf0565b60405180910390fd5b50600083856126cc9190613986565b9050809150509392505050565b60006008541480156126ed57506000600954145b61270257600060088190555060006009819055505b565b60008060008060008061271687612931565b95509550955095509550955061277486600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461299990919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061280985600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129e390919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061285581612a41565b61285f8483612afe565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516128bc9190612e30565b60405180910390a3505050505050505050565b600080600060065490506000683635c9adc5dea000009050612905683635c9adc5dea0000060065461259990919063ffffffff16565b82101561292457600654683635c9adc5dea0000093509350505061292d565b81819350935050505b9091565b600080600080600080600080600061294e8a600854600954612b38565b925092509250600061295e61264b565b905060008060006129718e878787612bce565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006129db83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120d9565b905092915050565b60008082846129f29190613623565b905083811015612a37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2e90613a95565b60405180910390fd5b8091505092915050565b6000612a4b61264b565b90506000612a62828461251f90919063ffffffff16565b9050612ab681600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129e390919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612b138260065461299990919063ffffffff16565b600681905550612b2e816007546129e390919063ffffffff16565b6007819055505050565b600080600080612b646064612b56888a61251f90919063ffffffff16565b61259990919063ffffffff16565b90506000612b8e6064612b80888b61251f90919063ffffffff16565b61259990919063ffffffff16565b90506000612bb782612ba9858c61299990919063ffffffff16565b61299990919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612be7858961251f90919063ffffffff16565b90506000612bfe868961251f90919063ffffffff16565b90506000612c15878961251f90919063ffffffff16565b90506000612c3e82612c30858761299990919063ffffffff16565b61299990919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c91578082015181840152602081019050612c76565b83811115612ca0576000848401525b50505050565b6000601f19601f8301169050919050565b6000612cc282612c57565b612ccc8185612c62565b9350612cdc818560208601612c73565b612ce581612ca6565b840191505092915050565b60006020820190508181036000830152612d0a8184612cb7565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612d4282612d17565b9050919050565b612d5281612d37565b8114612d5d57600080fd5b50565b600081359050612d6f81612d49565b92915050565b6000819050919050565b612d8881612d75565b8114612d9357600080fd5b50565b600081359050612da581612d7f565b92915050565b60008060408385031215612dc257612dc1612d12565b5b6000612dd085828601612d60565b9250506020612de185828601612d96565b9150509250929050565b60008115159050919050565b612e0081612deb565b82525050565b6000602082019050612e1b6000830184612df7565b92915050565b612e2a81612d75565b82525050565b6000602082019050612e456000830184612e21565b92915050565b600080600060608486031215612e6457612e63612d12565b5b6000612e7286828701612d60565b9350506020612e8386828701612d60565b9250506040612e9486828701612d96565b9150509250925092565b600060ff82169050919050565b612eb481612e9e565b82525050565b6000602082019050612ecf6000830184612eab565b92915050565b612ede81612deb565b8114612ee957600080fd5b50565b600081359050612efb81612ed5565b92915050565b600060208284031215612f1757612f16612d12565b5b6000612f2584828501612eec565b91505092915050565b600060208284031215612f4457612f43612d12565b5b6000612f5284828501612d60565b91505092915050565b612f6481612d37565b82525050565b6000602082019050612f7f6000830184612f5b565b92915050565b600060208284031215612f9b57612f9a612d12565b5b6000612fa984828501612d96565b91505092915050565b60008060408385031215612fc957612fc8612d12565b5b6000612fd785828601612d60565b9250506020612fe885828601612d60565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613028602083612c62565b915061303382612ff2565b602082019050919050565b600060208201905081810360008301526130578161301b565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b6000613094601d83612c62565b915061309f8261305e565b602082019050919050565b600060208201905081810360008301526130c381613087565b9050919050565b6000815190506130d981612d49565b92915050565b6000602082840312156130f5576130f4612d12565b5b6000613103848285016130ca565b91505092915050565b60006040820190506131216000830185612f5b565b61312e6020830184612f5b565b9392505050565b6000819050919050565b6000819050919050565b600061316461315f61315a84613135565b61313f565b612d75565b9050919050565b61317481613149565b82525050565b600060c08201905061318f6000830189612f5b565b61319c6020830188612e21565b6131a9604083018761316b565b6131b6606083018661316b565b6131c36080830185612f5b565b6131d060a0830184612e21565b979650505050505050565b6000815190506131ea81612d7f565b92915050565b60008060006060848603121561320957613208612d12565b5b6000613217868287016131db565b9350506020613228868287016131db565b9250506040613239868287016131db565b9150509250925092565b60006040820190506132586000830185612f5b565b6132656020830184612e21565b9392505050565b60008151905061327b81612ed5565b92915050565b60006020828403121561329757613296612d12565b5b60006132a58482850161326c565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061330a602483612c62565b9150613315826132ae565b604082019050919050565b60006020820190508181036000830152613339816132fd565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061339c602283612c62565b91506133a782613340565b604082019050919050565b600060208201905081810360008301526133cb8161338f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061342e602583612c62565b9150613439826133d2565b604082019050919050565b6000602082019050818103600083015261345d81613421565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006134c0602383612c62565b91506134cb82613464565b604082019050919050565b600060208201905081810360008301526134ef816134b3565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613552602983612c62565b915061355d826134f6565b604082019050919050565b6000602082019050818103600083015261358181613545565b9050919050565b7f4552523a20556e6973776170206f6e6c79000000000000000000000000000000600082015250565b60006135be601183612c62565b91506135c982613588565b602082019050919050565b600060208201905081810360008301526135ed816135b1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061362e82612d75565b915061363983612d75565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561366e5761366d6135f4565b5b828201905092915050565b600061368482612d75565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036136b6576136b56135f4565b5b600182019050919050565b60006136cc82612d75565b91506136d783612d75565b9250828210156136ea576136e96135f4565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613751602a83612c62565b915061375c826136f5565b604082019050919050565b6000602082019050818103600083015261378081613744565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61381a81612d37565b82525050565b600061382c8383613811565b60208301905092915050565b6000602082019050919050565b6000613850826137e5565b61385a81856137f0565b935061386583613801565b8060005b8381101561389657815161387d8882613820565b975061388883613838565b925050600181019050613869565b5085935050505092915050565b600060a0820190506138b86000830188612e21565b6138c5602083018761316b565b81810360408301526138d78186613845565b90506138e66060830185612f5b565b6138f36080830184612e21565b9695505050505050565b600061390882612d75565b915061391383612d75565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561394c5761394b6135f4565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061399182612d75565b915061399c83612d75565b9250826139ac576139ab613957565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a13602183612c62565b9150613a1e826139b7565b604082019050919050565b60006020820190508181036000830152613a4281613a06565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613a7f601b83612c62565b9150613a8a82613a49565b602082019050919050565b60006020820190508181036000830152613aae81613a72565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d8a58fc09531e716f8edb51e8ad7750cb6fd64d9d333d032c472d2a286a9368264736f6c634300080e0033

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

00000000000000000000000036d32b2d2dc1f28a4d717a1f92f7ddbabd3ae0b600000000000000000000000036d32b2d2dc1f28a4d717a1f92f7ddbabd3ae0b6

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

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000036d32b2d2dc1f28a4d717a1f92f7ddbabd3ae0b6
Arg [1] : 00000000000000000000000036d32b2d2dc1f28a4d717a1f92f7ddbabd3ae0b6


Deployed Bytecode Sourcemap

3795:12532:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5783:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6635:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6060:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6804:310;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5969:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7122:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13029:191;;;;;;;;;;;;;:::i;:::-;;6163:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2848:148;;;;;;;;;;;;;:::i;:::-;;2634:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5874:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6309:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12829:192;;;;;;;;;;;;;:::i;:::-;;11938:111;;;;;;;;;;;;;:::i;:::-;;16069:255;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6484:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12057:764;;;;;;;;;;;;;:::i;:::-;;5783:83;5820:13;5853:5;;;;;;;;;;;;;;;;;5846:12;;5783:83;:::o;6635:161::-;6710:4;6727:39;6736:12;:10;:12::i;:::-;6750:7;6759:6;6727:8;:39::i;:::-;6784:4;6777:11;;6635:161;;;;:::o;6060:95::-;6113:7;4335:21;6133:14;;6060:95;:::o;6804:310::-;6902:4;6919:36;6929:6;6937:9;6948:6;6919:9;:36::i;:::-;6966:118;6975:6;6982:12;:10;:12::i;:::-;6995:88;7033:6;6995:88;;;;;;;;;;;;;;;;;:11;:19;7007:6;6995:19;;;;;;;;;;;;;;;:33;7015:12;:10;:12::i;:::-;6995:33;;;;;;;;;;;;;;;;:37;;:88;;;;;:::i;:::-;6966:8;:118::i;:::-;7102:4;7095:11;;6804:310;;;;;:::o;5969:83::-;6010:5;4011:1;6028:16;;5969:83;:::o;7122:103::-;2771:12;:10;:12::i;:::-;2761:22;;:6;;;;;;;;;;:22;;;2753:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7212:5:::1;7194:15;;:23;;;;;;;;;;;;;;;;;;7122:103:::0;:::o;13029:191::-;13095:12;;;;;;;;;;;13079:28;;:12;:10;:12::i;:::-;:28;;;13071:37;;;;;;13119:26;13148:21;13119:50;;13180:32;13193:18;13180:12;:32::i;:::-;13060:160;13029:191::o;6163:138::-;6229:7;6256:37;6276:7;:16;6284:7;6276:16;;;;;;;;;;;;;;;;6256:19;:37::i;:::-;6249:44;;6163:138;;;:::o;2848:148::-;2771:12;:10;:12::i;:::-;2761:22;;:6;;;;;;;;;;:22;;;2753:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2955:1:::1;2918:40;;2939:6;::::0;::::1;;;;;;;;2918:40;;;;;;;;;;;;2986:1;2969:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2848:148::o:0;2634:79::-;2672:7;2699:6;;;;;;;;;;;2692:13;;2634:79;:::o;5874:87::-;5913:13;5946:7;;;;;;;;;;;;;;;;;5939:14;;5874:87;:::o;6309:167::-;6387:4;6404:42;6414:12;:10;:12::i;:::-;6428:9;6439:6;6404:9;:42::i;:::-;6464:4;6457:11;;6309:167;;;;:::o;12829:192::-;12895:12;;;;;;;;;;;12879:28;;:12;:10;:12::i;:::-;:28;;;12871:37;;;;;;12919:23;12945:24;12963:4;12945:9;:24::i;:::-;12919:50;;12980:33;12997:15;12980:16;:33::i;:::-;12860:161;12829:192::o;11938:111::-;2771:12;:10;:12::i;:::-;2761:22;;:6;;;;;;;;;;:22;;;2753:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11997:14:::1;;;;;;;;;;;11989:23;;;::::0;::::1;;12037:4;12023:11;;:18;;;;;;;;;;;;;;;;;;11938:111::o:0;16069:255::-;2771:12;:10;:12::i;:::-;2761:22;;:6;;;;;;;;;;:22;;;2753:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16171:1:::1;16156:12;:16;16148:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;16232:36;16262:5;16232:25;16244:12;4335:21;16232:11;;:25;;;;:::i;:::-;:29;;:36;;;;:::i;:::-;16217:12;:51;;;;16284:32;16303:12;;16284:32;;;;;;:::i;:::-;;;;;;;;16069:255:::0;:::o;6484:143::-;6565:7;6592:11;:18;6604:5;6592:18;;;;;;;;;;;;;;;:27;6611:7;6592:27;;;;;;;;;;;;;;;;6585:34;;6484:143;;;;:::o;12057:764::-;2771:12;:10;:12::i;:::-;2761:22;;:6;;;;;;;;;;:22;;;2753:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12113:35:::1;12170:42;12113:100;;12242:16;12224:15;;:34;;;;;;;;;;;;;;;;;;12269:58;12286:4;12301:15;;;;;;;;;;;4335:21;12269:8;:58::i;:::-;12372:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12354:56;;;12419:4;12426:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12354:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12338:13;;:112;;;;;;;;;;;;;;;;;;12461:15;;;;;;;;;;;:31;;;12500:21;12531:4;12537:24;12555:4;12537:9;:24::i;:::-;12562:1;12564::::0;12566:7:::1;:5;:7::i;:::-;12574:15;12461:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12615:4;12601:11;;:18;;;;;;;;;;;;;;;;;;12648:4;12630:15;;:22;;;;;;;;;;;;;;;;;;12680:4;12663:14;;:21;;;;;;;;;;;;;;;;;;12710:19;12695:12;:34;;;;12747:13;;;;;;;;;;;12740:29;;;12778:15;;;;;;;;;;;12795:17;12740:73;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12102:719;12057:764::o:0;355:98::-;408:7;435:10;428:17;;355:98;:::o;7922:335::-;8032:1;8015:19;;:5;:19;;;8007:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8113:1;8094:21;;:7;:21;;;8086:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8195:6;8165:11;:18;8177:5;8165:18;;;;;;;;;;;;;;;:27;8184:7;8165:27;;;;;;;;;;;;;;;:36;;;;8233:7;8217:32;;8226:5;8217:32;;;8242:6;8217:32;;;;;;:::i;:::-;;;;;;;;7922:335;;;:::o;8265:3087::-;8369:1;8353:18;;:4;:18;;;8345:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8446:1;8432:16;;:2;:16;;;8424:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8516:1;8507:6;:10;8499:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8588:7;:5;:7::i;:::-;8580:15;;:4;:15;;;;:32;;;;;8605:7;:5;:7::i;:::-;8599:13;;:2;:13;;;;8580:32;8576:2551;;;8633:15;;;;;;;;;;;8629:320;;;8689:4;8673:21;;:4;:21;;;;:44;;;;;8712:4;8698:19;;:2;:19;;;;8673:44;:80;;;;;8737:15;;;;;;;;;;;8721:32;;:4;:32;;;;8673:80;:114;;;;;8771:15;;;;;;;;;;;8757:30;;:2;:30;;;;8673:114;8669:265;;;8844:15;;;;;;;;;;;8820:40;;:12;:10;:12::i;:::-;:40;;;:73;;;;8880:13;;;;;;;;;;;8864:29;;:12;:10;:12::i;:::-;:29;;;8820:73;8812:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;8669:265;8629:320;8972:4;:10;8977:4;8972:10;;;;;;;;;;;;;;;;;;;;;;;;;8971:11;:24;;;;;8987:4;:8;8992:2;8987:8;;;;;;;;;;;;;;;;;;;;;;;;;8986:9;8971:24;8963:33;;;;;;9023:13;;;;;;;;;;;9015:21;;:4;:21;;;:55;;;;;9054:15;;;;;;;;;;;9040:30;;:2;:30;;;;9015:55;:82;;;;;9075:18;:22;9094:2;9075:22;;;;;;;;;;;;;;;;;;;;;;;;;9074:23;9015:82;:101;;;;;9101:15;;;;;;;;;;;9015:101;9011:401;;;9145:11;;;;;;;;;;;9137:20;;;;;;9194:12;;9184:6;:22;;9176:31;;;;;;9252:15;9234:11;:15;9246:2;9234:15;;;;;;;;;;;;;;;;:33;9226:42;;;;;;9324:10;9305:15;:30;;;;:::i;:::-;9287:11;:15;9299:2;9287:15;;;;;;;;;;;;;;;:48;;;;9365:1;9354:8;:12;;;;9395:1;9385:7;:11;;;;9011:401;9426:28;9457:24;9475:4;9457:9;:24::i;:::-;9426:55;;9501:6;;;;;;;;;;;9500:7;:32;;;;;9519:13;;;;;;;;;;;9511:21;;:4;:21;;;;9500:32;:47;;;;;9536:11;;;;;;;;;;;9500:47;9496:1620;;;9586:40;9622:3;9586:31;9615:1;9586:24;9596:13;;;;;;;;;;;9586:9;:24::i;:::-;:28;;:31;;;;:::i;:::-;:35;;:40;;;;:::i;:::-;9576:6;:50;;:76;;;;;9640:12;;9630:6;:22;;9576:76;9568:85;;;;;;9701:15;9680:12;:18;9693:4;9680:18;;;;;;;;;;;;;;;;:36;9672:45;;;;;;9768:15;9758:6;9739:9;:15;9749:4;9739:15;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;:44;9736:111;;;9826:1;9807:10;:16;9818:4;9807:16;;;;;;;;;;;;;;;:20;;;;9736:111;9889:1;9869:10;:16;9880:4;9869:16;;;;;;;;;;;;;;;;:21;9865:943;;9915:10;:16;9926:4;9915:16;;;;;;;;;;;;;;;;:18;;;;;;;;;:::i;:::-;;;;;;9974:15;9956:9;:15;9966:4;9956:15;;;;;;;;;;;;;;;:33;;;;10052:7;10033:15;:27;;;;:::i;:::-;10012:12;:18;10025:4;10012:18;;;;;;;;;;;;;;;:48;;;;9865:943;;;10127:1;10107:10;:16;10118:4;10107:16;;;;;;;;;;;;;;;;:21;10103:705;;10153:10;:16;10164:4;10153:16;;;;;;;;;;;;;;;;:18;;;;;;;;;:::i;:::-;;;;;;10234:7;10215:15;:27;;;;:::i;:::-;10194:12;:18;10207:4;10194:18;;;;;;;;;;;;;;;:48;;;;10103:705;;;10309:1;10289:10;:16;10300:4;10289:16;;;;;;;;;;;;;;;;:21;10285:523;;10335:10;:16;10346:4;10335:16;;;;;;;;;;;;;;;;:18;;;;;;;;;:::i;:::-;;;;;;10416:7;10397:15;:27;;;;:::i;:::-;10376:12;:18;10389:4;10376:18;;;;;;;;;;;;;;;:48;;;;10285:523;;;10491:1;10471:10;:16;10482:4;10471:16;;;;;;;;;;;;;;;;:21;10467:341;;10517:10;:16;10528:4;10517:16;;;;;;;;;;;;;;;;:18;;;;;;;;;:::i;:::-;;;;;;10598:8;10579:15;:28;;;;:::i;:::-;10558:12;:18;10571:4;10558:18;;;;;;;;;;;;;;;:49;;;;10467:341;;;10674:1;10654:10;:16;10665:4;10654:16;;;;;;;;;;;;;;;;:21;10650:158;;10700:10;:16;10711:4;10700:16;;;;;;;;;;;;;;;;:18;;;;;;;;;:::i;:::-;;;;;;10781:6;10762:9;:15;10772:4;10762:15;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;10741:12;:18;10754:4;10741:18;;;;;;;;;;;;;;;:47;;;;10650:158;10467:341;10285:523;10103:705;9865:943;10826:38;10843:20;10826:16;:38::i;:::-;10883:26;10912:21;10883:50;;10977:1;10956:18;:22;10952:106;;;11003:35;11016:21;11003:12;:35::i;:::-;10952:106;11076:24;11083:10;:16;11094:4;11083:16;;;;;;;;;;;;;;;;11076:6;:24::i;:::-;9549:1567;9496:1620;8614:2513;8576:2551;11137:12;11152:4;11137:19;;11173:18;:24;11192:4;11173:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11201:18;:22;11220:2;11201:22;;;;;;;;;;;;;;;;;;;;;;;;;11173:50;11169:98;;;11250:5;11240:15;;11169:98;11279:41;11294:4;11300:2;11304:6;11312:7;11279:14;:41::i;:::-;8334:3018;8265:3087;;;:::o;1492:190::-;1578:7;1611:1;1606;:6;;1614:12;1598:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1638:9;1654:1;1650;:5;;;;:::i;:::-;1638:17;;1673:1;1666:8;;;1492:190;;;;;:::o;11775:151::-;11832:12;;;;;;;;;;;:21;;:36;11854:13;11865:1;11854:6;:10;;:13;;;;:::i;:::-;11832:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11879:15;;;;;;;;;;;:24;;:39;11904:13;11915:1;11904:6;:10;;:13;;;;:::i;:::-;11879:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11775:151;:::o;7233:253::-;7301:7;7340;;7329;:18;;7321:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7404:19;7426:10;:8;:10::i;:::-;7404:32;;7454:24;7466:11;7454:7;:11;;:24;;;;:::i;:::-;7447:31;;;7233:253;;;:::o;11360:407::-;5289:4;5280:6;;:13;;;;;;;;;;;;;;;;;;11438:21:::1;11476:1;11462:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11438:40;;11507:4;11489;11494:1;11489:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11533:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11523:4;11528:1;11523:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11566:62;11583:4;11598:15;;;;;;;;;;;11616:11;11566:8;:62::i;:::-;11639:15;;;;;;;;;;;:66;;;11706:11;11719:1;11722:4;11736;11743:15;11639:120;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11427:340;5325:5:::0;5316:6;;:14;;;;;;;;;;;;;;;;;;11360:407;:::o;1690:246::-;1748:7;1777:1;1772;:6;1768:47;;1802:1;1795:8;;;;1768:47;1825:9;1841:1;1837;:5;;;;:::i;:::-;1825:17;;1870:1;1865;1861;:5;;;;:::i;:::-;:10;1853:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1927:1;1920:8;;;1690:246;;;;;:::o;1944:132::-;2002:7;2029:39;2033:1;2036;2029:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2022:46;;1944:132;;;;:::o;7741:173::-;7816:10;7806:7;;:20;;;;:::i;:::-;7796:7;:30;;;;7854:1;7841:10;:14;7837:60;;;7883:2;7872:8;:13;;;;7837:60;7741:173;:::o;13228:239::-;13341:7;13336:28;;13350:14;:12;:14::i;:::-;13336:28;13375:44;13393:6;13401:9;13412:6;13375:17;:44::i;:::-;13435:7;13430:29;;13444:15;:13;:15::i;:::-;13430:29;13228:239;;;;:::o;7643:86::-;7697:1;7687:7;:11;;;;7720:1;7709:8;:12;;;;7643:86::o;15632:164::-;15674:7;15695:15;15712;15731:19;:17;:19::i;:::-;15694:56;;;;15768:20;15780:7;15768;:11;;:20;;;;:::i;:::-;15761:27;;;;15632:164;:::o;2084:189::-;2170:7;2202:1;2198;:5;2205:12;2190:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2229:9;2245:1;2241;:5;;;;:::i;:::-;2229:17;;2264:1;2257:8;;;2084:189;;;;;:::o;7498:137::-;7556:1;7545:7;;:12;:29;;;;;7573:1;7561:8;;:13;7545:29;7576:7;7541:42;7603:1;7593:7;:11;;;;7626:1;7615:8;:12;;;;7498:137;:::o;13475:487::-;13574:15;13591:23;13616:12;13630:23;13655:12;13669:13;13686:19;13697:7;13686:10;:19::i;:::-;13573:132;;;;;;;;;;;;13734:28;13754:7;13734;:15;13742:6;13734:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13716:7;:15;13724:6;13716:15;;;;;;;;;;;;;;;:46;;;;13794:39;13817:15;13794:7;:18;13802:9;13794:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13773:7;:18;13781:9;13773:18;;;;;;;;;;;;;;;:60;;;;13844:16;13854:5;13844:9;:16::i;:::-;13871:23;13883:4;13889;13871:11;:23::i;:::-;13927:9;13910:44;;13919:6;13910:44;;;13938:15;13910:44;;;;;;:::i;:::-;;;;;;;;13562:400;;;;;;13475:487;;;:::o;15804:257::-;15855:7;15864;15884:15;15902:7;;15884:25;;15920:15;4335:21;15920:25;;15970:20;4335:21;15970:7;;:11;;:20;;;;:::i;:::-;15960:7;:30;15956:61;;;16000:7;;4335:21;15992:25;;;;;;;;15956:61;16036:7;16045;16028:25;;;;;;15804:257;;;:::o;14381:467::-;14440:7;14449;14458;14467;14476;14485;14506:23;14531:12;14545:13;14562:39;14574:7;14583;;14592:8;;14562:11;:39::i;:::-;14505:96;;;;;;14612:19;14634:10;:8;:10::i;:::-;14612:32;;14656:15;14673:23;14698:12;14714:46;14726:7;14735:4;14741:5;14748:11;14714;:46::i;:::-;14655:105;;;;;;14779:7;14788:15;14805:4;14811:15;14828:4;14834:5;14771:69;;;;;;;;;;;;;;;;;;;14381:467;;;;;;;:::o;1348:136::-;1406:7;1433:43;1437:1;1440;1433:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1426:50;;1348:136;;;;:::o;1161:179::-;1219:7;1239:9;1255:1;1251;:5;;;;:::i;:::-;1239:17;;1280:1;1275;:6;;1267:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1331:1;1324:8;;;1161:179;;;;:::o;13970:211::-;14023:19;14045:10;:8;:10::i;:::-;14023:32;;14066:13;14082:22;14092:11;14082:5;:9;;:22;;;;:::i;:::-;14066:38;;14140:33;14167:5;14140:7;:22;14156:4;14140:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14115:7;:22;14131:4;14115:22;;;;;;;;;;;;;;;:58;;;;14012:169;;13970:211;:::o;14189:147::-;14267:17;14279:4;14267:7;;:11;;:17;;;;:::i;:::-;14257:7;:27;;;;14308:20;14323:4;14308:10;;:14;;:20;;;;:::i;:::-;14295:10;:33;;;;14189:147;;:::o;14856:351::-;14949:7;14958;14967;14987:12;15002:28;15026:3;15002:19;15014:6;15002:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;14987:43;;15041:13;15057:29;15082:3;15057:20;15069:7;15057;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;15041:45;;15097:23;15123:28;15145:5;15123:17;15135:4;15123:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15097:54;;15170:15;15187:4;15193:5;15162:37;;;;;;;;;14856:351;;;;;;;:::o;15215:409::-;15325:7;15334;15343;15363:15;15381:24;15393:11;15381:7;:11;;:24;;;;:::i;:::-;15363:42;;15416:12;15431:21;15440:11;15431:4;:8;;:21;;;;:::i;:::-;15416:36;;15463:13;15479:22;15489:11;15479:5;:9;;:22;;;;:::i;:::-;15463:38;;15512:23;15538:28;15560:5;15538:17;15550:4;15538:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15512:54;;15585:7;15594:15;15611:4;15577:39;;;;;;;;;;15215: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://d8a58fc09531e716f8edb51e8ad7750cb6fd64d9d333d032c472d2a286a93682
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.