ETH Price: $2,375.12 (-4.29%)

Token

Erica (ERICA)
 

Overview

Max Total Supply

1,000,000,000,000 ERICA

Holders

88

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000000612 ERICA

Value
$0.00
0xa3cef3389e699c8ba870c55ca4bffa2a387b3fc0
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:
ERICA

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-02-04
*/

/**
 * 
 * Welcome to Erica Token
 * 
 * 
 * 
 * SPDX-License-Identifier: UNLICENSED 
 * 
*/

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

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

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

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 ERICA 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) private _isExcludedFromMaxWallet;
    mapping (address => bool) private _bots;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1e12 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    string private constant _name = "Erica";
    string private constant _symbol = "ERICA";
    
    uint256 private minContractTokensToSwap = 2e9 * 10**9;
    uint8 private constant _decimals = 9;

    uint256 private _taxFee = 1;
    uint256 private _teamFee = 3;
    uint256 private _maxWalletSize = 1e7 * 10**9;

    uint256 private _buyFee = 3;
    uint256 private _sellFee = 3;
    uint256 private _transferFee = 0;

    uint256 private _previousTaxFee = _taxFee;
    uint256 private _previousteamFee = _teamFee;

    address payable private _devWallet;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen = false;
    bool private _swapAll = false;
    bool private _takeFeeFromTransfer = false;
    bool private inSwap = false;

    mapping(address => bool) private automatedMarketMakerPairs;

    event Response(bool feeSent);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
        constructor (address payable devWallet) {
        _devWallet = devWallet;
        
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;

        _isExcludedFromFee[devWallet] = true;

        _isExcludedFromMaxWallet[owner()] = true;
        _isExcludedFromMaxWallet[address(this)] = true;
        _isExcludedFromMaxWallet[devWallet] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

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

    function removeAllFee() private {
        if(_taxFee == 0 && _teamFee == 0) return;
        _previousTaxFee = _taxFee;
        _previousteamFee = _teamFee;
        _taxFee = 0;
        _teamFee = 0;
    }
    
    function restoreAllFee() private {
        _taxFee = _previousTaxFee;
        _teamFee = _previousteamFee;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    
    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if(from != owner() && to != owner()) {
            
            require(!_bots[from] && !_bots[to]);

            if(to != uniswapV2Pair && !_isExcludedFromMaxWallet[to]) {
                require(balanceOf(address(to)) + amount <= _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }
            
            if(from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
                require(tradingOpen, "Trading not yet enabled.");
                _teamFee = _buyFee;               
            }
            
            if(!inSwap && from != uniswapV2Pair && tradingOpen) {
                uint256 contractTokenBalance = balanceOf(address(this));
                _teamFee = _sellFee;

                if(contractTokenBalance > minContractTokensToSwap) {
                    if(!_swapAll) {
                        contractTokenBalance = minContractTokensToSwap;
                    }
                    swapBack(contractTokenBalance);
                }
            }
        }
        bool takeFee = true;

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

        if(!automatedMarketMakerPairs[from] && !automatedMarketMakerPairs[to]) {
            if (_takeFeeFromTransfer) {
                _teamFee = _transferFee;
            } else {
                takeFee = false;
            }
        }
        
        _tokenTransfer(from,to,amount,takeFee);
    }

    function swapBack(uint256 contractTokenBalance) private lockTheSwap {
        
        swapTokensForEth(contractTokenBalance);

        uint256 contractETHBalance = address(this).balance;
        if(contractETHBalance > 0) {
            sendETHToFee(address(this).balance);
        }
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        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 manualSwapTokensForEth(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 {
        (bool dev, ) = _devWallet.call{value: amount}("");
        emit Response(dev);
    }
    
    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
        if(!takeFee)
            removeAllFee();
        _transferStandard(sender, recipient, amount);
        if(!takeFee)
            restoreAllFee();
    }

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

        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

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

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

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

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

    function _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 _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 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);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        tradingOpen = true;
        automatedMarketMakerPairs[uniswapV2Pair] = true;
    }
    
    function setDevWallet (address payable dev) external onlyOwner() {
        _isExcludedFromFee[_devWallet] = false;
        _devWallet = dev;
        _isExcludedFromFee[dev] = true;
    }

    function excludeFromFee (address payable ad) external onlyOwner {
        _isExcludedFromFee[ad] = true;
    }
    
    function includeToFee (address payable ad) external onlyOwner {
        _isExcludedFromFee[ad] = false;
    }

    function isExcludedToFee(address ad) public view returns (bool) {
        return _isExcludedFromFee[ad];
    }

    function excludeFromMaxWallet(address[] calldata ads, bool onoff) public onlyOwner {
        for (uint i = 0; i < ads.length; i++) {
            _isExcludedFromMaxWallet[ads[i]] = onoff;
        }
    }
    
    function isExcludedMaxWallet(address ad) public view returns (bool) {
        return _isExcludedFromMaxWallet[ad];
    }

    function setTakeFeeFromTransfer(bool onoff) external onlyOwner {
        _takeFeeFromTransfer = onoff;
    }
    
    function setBuyFee(uint256 buy) external onlyOwner {
        require(buy <= 5, "Buy fee must be less than 5");
        _buyFee = buy;
    }

    function setSellFee(uint256 sell) external onlyOwner {
        require(sell <= 5, "Sell fee must be less than 5");
        _sellFee = sell;
    }

    function setTransferFee(uint256 fee) external onlyOwner {
        require(fee <= 5, "Transfer fee must be less than 5");
        _transferFee = fee;
    }
        
    function setTaxFee(uint256 tax) external onlyOwner {
        require(tax <= 5, "tax must be less than 5");
        _taxFee = tax;
    }

    function setMinContractTokensToSwap(uint256 numToken) external onlyOwner {
        minContractTokensToSwap = numToken * 10**9;
    }

    function setMaxWallet(uint256 amt) external onlyOwner {
        _maxWalletSize = amt * 10**9;
    }

    function setSwapAll(bool onoff) external onlyOwner {
        _swapAll = onoff;
    }
    
    function setBots(address[] calldata bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            if (bots_[i] != uniswapV2Pair && bots_[i] != address(uniswapV2Router)) {
                _bots[bots_[i]] = true;
            }
        }
    }
    
    function delBot(address notbot) public onlyOwner {
        _bots[notbot] = false;
    }
    
    function isBot(address ad) public view returns (bool) {
        return _bots[ad];
    }

    function manualswap() external onlyOwner {
        uint256 contractBalance = balanceOf(address(this));
        manualSwapTokensForEth(contractBalance);
    }
    
    function manualsend() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function thisBalance() public view returns (uint) {
        return balanceOf(address(this));
    }

    function amountInPool() public view returns (uint) {
        return balanceOf(uniswapV2Pair);
    }

    function setAutomatedMarketMakerPair(address pair, bool value) external onlyOwner {
        require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs");
        _setAutomatedMarketMakerPair(pair, value);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"devWallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"feeSent","type":"bool"}],"name":"Response","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amountInPool","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":[{"internalType":"address payable","name":"ad","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"ads","type":"address[]"},{"internalType":"bool","name":"onoff","type":"bool"}],"name":"excludeFromMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"ad","type":"address"}],"name":"includeToFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"ad","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ad","type":"address"}],"name":"isExcludedMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ad","type":"address"}],"name":"isExcludedToFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buy","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"dev","type":"address"}],"name":"setDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amt","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numToken","type":"uint256"}],"name":"setMinContractTokensToSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"sell","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setSwapAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setTakeFeeFromTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tax","type":"uint256"}],"name":"setTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"setTransferFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"thisBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052683635c9adc5dea000006000196200001d919062000625565b6000196200002c9190620005ac565b600855671bc16d674ec80000600a556001600b556003600c55662386f26fc10000600d556003600e556003600f556000601055600b54601155600c546012556000601560146101000a81548160ff02191690831515021790555060006015806101000a81548160ff0219169083151502179055506000601560166101000a81548160ff0219169083151502179055506000601560176101000a81548160ff021916908315150217905550348015620000e357600080fd5b506040516200550e3803806200550e83398181016040528101906200010991906200054c565b60006200011b6200050460201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060085460026000620002116200050460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160056000620002656200050c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660006200037c6200050c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200048d6200050460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620004f591906200058f565b60405180910390a350620006da565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000815190506200054681620006c0565b92915050565b600060208284031215620005655762000564620006bb565b5b6000620005758482850162000535565b91505092915050565b62000589816200061b565b82525050565b6000602082019050620005a660008301846200057e565b92915050565b6000620005b9826200061b565b9150620005c6836200061b565b925082821015620005dc57620005db6200065d565b5b828203905092915050565b6000620005f482620005fb565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600062000632826200061b565b91506200063f836200061b565b9250826200065257620006516200068c565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b620006cb81620005e7565b8114620006d757600080fd5b50565b614e2480620006ea6000396000f3fe6080604052600436106101fd5760003560e01c80638b4cee081161010d578063c3c8cd80116100a0578063db8aeab11161006f578063db8aeab1146106ea578063db92dbb614610713578063dd62ed3e1461073e578063de30aad11461077b578063e1ab04c9146107a457610204565b8063c3c8cd801461066a578063c4081a4c14610681578063c9567bf9146106aa578063cf0848f7146106c157610204565b80639a7a23d6116100dc5780639a7a23d6146105b2578063a9059cbb146105db578063b515566a14610618578063c11875691461064157610204565b80638b4cee081461050a5780638da5cb5b146105335780638f02bb5b1461055e57806395d89b411461058757610204565b806327f3a72a116101905780635d0044ca1161015f5780635d0044ca146104395780636fc3eaec1461046257806370a0823114610479578063715018a6146104b6578063844f30fb146104cd57610204565b806327f3a72a1461037d578063313ce567146103a85780633bbac579146103d3578063437823ec1461041057610204565b806318160ddd116101cc57806318160ddd146102c35780631f53ac02146102ee57806323b872dd14610317578063273123b71461035457610204565b806306fdde0314610209578063095ea7b3146102345780630cc835a31461027157806312dfbd331461029a57610204565b3661020457005b600080fd5b34801561021557600080fd5b5061021e6107e1565b60405161022b9190614336565b60405180910390f35b34801561024057600080fd5b5061025b60048036038101906102569190613cf2565b61081e565b604051610268919061431b565b60405180910390f35b34801561027d57600080fd5b5061029860048036038101906102939190613e39565b61083c565b005b3480156102a657600080fd5b506102c160048036038101906102bc9190613e39565b61091f565b005b3480156102cf57600080fd5b506102d86109cd565b6040516102e59190614578565b60405180910390f35b3480156102fa57600080fd5b5061031560048036038101906103109190613bf2565b6109de565b005b34801561032357600080fd5b5061033e60048036038101906103399190613c5f565b610b89565b60405161034b919061431b565b60405180910390f35b34801561036057600080fd5b5061037b60048036038101906103769190613b98565b610c62565b005b34801561038957600080fd5b50610392610d52565b60405161039f9190614578565b60405180910390f35b3480156103b457600080fd5b506103bd610d62565b6040516103ca91906145ed565b60405180910390f35b3480156103df57600080fd5b506103fa60048036038101906103f59190613b98565b610d6b565b604051610407919061431b565b60405180910390f35b34801561041c57600080fd5b5061043760048036038101906104329190613bf2565b610dc1565b005b34801561044557600080fd5b50610460600480360381019061045b9190613e39565b610eb1565b005b34801561046e57600080fd5b50610477610f5f565b005b34801561048557600080fd5b506104a0600480360381019061049b9190613b98565b611005565b6040516104ad9190614578565b60405180910390f35b3480156104c257600080fd5b506104cb611056565b005b3480156104d957600080fd5b506104f460048036038101906104ef9190613b98565b6111a9565b604051610501919061431b565b60405180910390f35b34801561051657600080fd5b50610531600480360381019061052c9190613e39565b6111ff565b005b34801561053f57600080fd5b506105486112e2565b604051610555919061424d565b60405180910390f35b34801561056a57600080fd5b5061058560048036038101906105809190613e39565b61130b565b005b34801561059357600080fd5b5061059c6113ee565b6040516105a99190614336565b60405180910390f35b3480156105be57600080fd5b506105d960048036038101906105d49190613cb2565b61142b565b005b3480156105e757600080fd5b5061060260048036038101906105fd9190613cf2565b61155f565b60405161060f919061431b565b60405180910390f35b34801561062457600080fd5b5061063f600480360381019061063a9190613d32565b61157d565b005b34801561064d57600080fd5b5061066860048036038101906106639190613ddf565b6117b7565b005b34801561067657600080fd5b5061067f611869565b005b34801561068d57600080fd5b506106a860048036038101906106a39190613e39565b611917565b005b3480156106b657600080fd5b506106bf6119fa565b005b3480156106cd57600080fd5b506106e860048036038101906106e39190613bf2565b611f8b565b005b3480156106f657600080fd5b50610711600480360381019061070c9190613d7f565b61207b565b005b34801561071f57600080fd5b506107286121b5565b6040516107359190614578565b60405180910390f35b34801561074a57600080fd5b5061076560048036038101906107609190613c1f565b6121e7565b6040516107729190614578565b60405180910390f35b34801561078757600080fd5b506107a2600480360381019061079d9190613ddf565b61226e565b005b3480156107b057600080fd5b506107cb60048036038101906107c69190613b98565b61231f565b6040516107d8919061431b565b60405180910390f35b60606040518060400160405280600581526020017f4572696361000000000000000000000000000000000000000000000000000000815250905090565b600061083261082b612375565b848461237d565b6001905092915050565b610844612375565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c890614478565b60405180910390fd5b6005811115610915576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090c90614538565b60405180910390fd5b80600e8190555050565b610927612375565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ab90614478565b60405180910390fd5b633b9aca00816109c491906146ef565b600a8190555050565b6000683635c9adc5dea00000905090565b6109e6612375565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6a90614478565b60405180910390fd5b600060056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000610b96848484612548565b610c5784610ba2612375565b610c5285604051806060016040528060288152602001614dc760289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c08612375565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c5a9092919063ffffffff16565b61237d565b600190509392505050565b610c6a612375565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cf7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cee90614478565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000610d5d30611005565b905090565b60006009905090565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610dc9612375565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4d90614478565b60405180910390fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610eb9612375565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3d90614478565b60405180910390fd5b633b9aca0081610f5691906146ef565b600d8190555050565b610f67612375565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ff4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610feb90614478565b60405180910390fd5b600047905061100281612cbe565b50565b600061104f600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d87565b9050919050565b61105e612375565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e290614478565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611207612375565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611294576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128b90614478565b60405180910390fd5b60058111156112d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cf906143d8565b60405180910390fd5b80600f8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611313612375565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139790614478565b60405180910390fd5b60058111156113e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113db90614438565b60405180910390fd5b8060108190555050565b60606040518060400160405280600581526020017f4552494341000000000000000000000000000000000000000000000000000000815250905090565b611433612375565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b790614478565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611551576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611548906143f8565b60405180910390fd5b61155b8282612df5565b5050565b600061157361156c612375565b8484612548565b6001905092915050565b611585612375565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611612576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160990614478565b60405180910390fd5b60005b828290508110156117b257601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683838381811061166c5761166b6148d0565b5b90506020020160208101906116819190613b98565b73ffffffffffffffffffffffffffffffffffffffff161415801561171a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168383838181106116ec576116eb6148d0565b5b90506020020160208101906117019190613b98565b73ffffffffffffffffffffffffffffffffffffffff1614155b1561179f57600160076000858585818110611738576117376148d0565b5b905060200201602081019061174d9190613b98565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80806117aa90614829565b915050611615565b505050565b6117bf612375565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461184c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184390614478565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b611871612375565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f590614478565b60405180910390fd5b600061190930611005565b905061191481612e50565b50565b61191f612375565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a390614478565b60405180910390fd5b60058111156119f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e790614418565b60405180910390fd5b80600b8190555050565b611a02612375565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8690614478565b60405180910390fd5b601560149054906101000a900460ff1615611adf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad690614518565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611b6f30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea0000061237d565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015611bb557600080fd5b505afa158015611bc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bed9190613bc5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611c4f57600080fd5b505afa158015611c63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c879190613bc5565b6040518363ffffffff1660e01b8152600401611ca4929190614268565b602060405180830381600087803b158015611cbe57600080fd5b505af1158015611cd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cf69190613bc5565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611d7f30611005565b600080611d8a6112e2565b426040518863ffffffff1660e01b8152600401611dac969594939291906142ba565b6060604051808303818588803b158015611dc557600080fd5b505af1158015611dd9573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611dfe9190613e66565b505050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611ea0929190614291565b602060405180830381600087803b158015611eba57600080fd5b505af1158015611ece573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ef29190613e0c565b506001601560146101000a81548160ff021916908315150217905550600160166000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611f93612375565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612020576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201790614478565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b612083612375565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612110576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210790614478565b60405180910390fd5b60005b838390508110156121af578160066000868685818110612136576121356148d0565b5b905060200201602081019061214b9190613b98565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806121a790614829565b915050612113565b50505050565b60006121e2601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611005565b905090565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b612276612375565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612303576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122fa90614478565b60405180910390fd5b806015806101000a81548160ff02191690831515021790555050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156123ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e4906144f8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561245d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245490614398565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161253b9190614578565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156125b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125af906144b8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612628576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261f90614358565b60405180910390fd5b6000811161266b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161266290614498565b60405180910390fd5b6126736112e2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156126e157506126b16112e2565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612ac557600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561278a5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61279357600080fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561283b5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561289957600d548161284d84611005565b6128579190614668565b1115612898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161288f906144d8565b60405180910390fd5b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156129445750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561299a5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156129f857601560149054906101000a900460ff166129ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129e590614558565b60405180910390fd5b600e54600c819055505b601560179054906101000a900460ff16158015612a635750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612a7b5750601560149054906101000a900460ff165b15612ac4576000612a8b30611005565b9050600f54600c81905550600a54811115612ac25760158054906101000a900460ff16612ab857600a5490505b612ac1816130d8565b5b505b5b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612b6c5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612b7657600090505b601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612c1a5750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612c4857601560169054906101000a900460ff1615612c4257601054600c81905550612c47565b600090505b5b612c5484848484613133565b50505050565b6000838311158290612ca2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c999190614336565b60405180910390fd5b5060008385612cb19190614749565b9050809150509392505050565b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612d0690614238565b60006040518083038185875af1925050503d8060008114612d43576040519150601f19603f3d011682016040523d82523d6000602084013e612d48565b606091505b505090507fb6caad5b328a3de9a49b44605241a4b72f6f1aa955829d12e37decfd84a0b8ca81604051612d7b919061431b565b60405180910390a15050565b6000600854821115612dce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dc590614378565b60405180910390fd5b6000612dd8613160565b9050612ded818461318b90919063ffffffff16565b915050919050565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6001601560176101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612e8857612e876148ff565b5b604051908082528060200260200182016040528015612eb65781602001602082028036833780820191505090505b5090503081600081518110612ece57612ecd6148d0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612f7057600080fd5b505afa158015612f84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fa89190613bc5565b81600181518110612fbc57612fbb6148d0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061302330601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461237d565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613087959493929190614593565b600060405180830381600087803b1580156130a157600080fd5b505af11580156130b5573d6000803e3d6000fd5b50505050506000601560176101000a81548160ff02191690831515021790555050565b6001601560176101000a81548160ff0219169083151502179055506130fc816131d5565b600047905060008111156131145761311347612cbe565b5b506000601560176101000a81548160ff02191690831515021790555050565b8061314157613140613427565b5b61314c84848461346a565b8061315a57613159613635565b5b50505050565b600080600061316d613649565b91509150613184818361318b90919063ffffffff16565b9250505090565b60006131cd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506136ab565b905092915050565b6000600267ffffffffffffffff8111156131f2576131f16148ff565b5b6040519080825280602002602001820160405280156132205781602001602082028036833780820191505090505b5090503081600081518110613238576132376148d0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156132da57600080fd5b505afa1580156132ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133129190613bc5565b81600181518110613326576133256148d0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061338d30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461237d565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016133f1959493929190614593565b600060405180830381600087803b15801561340b57600080fd5b505af115801561341f573d6000803e3d6000fd5b505050505050565b6000600b5414801561343b57506000600c54145b1561344557613468565b600b54601181905550600c546012819055506000600b819055506000600c819055505b565b60008060008060008061347c8761370e565b9550955095509550955095506134da86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461377690919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061356f85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546137c090919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506135bb8161381e565b6135c584836138db565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516136229190614578565b60405180910390a3505050505050505050565b601154600b81905550601254600c81905550565b600080600060085490506000683635c9adc5dea00000905061367f683635c9adc5dea0000060085461318b90919063ffffffff16565b82101561369e57600854683635c9adc5dea000009350935050506136a7565b81819350935050505b9091565b600080831182906136f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136e99190614336565b60405180910390fd5b506000838561370191906146be565b9050809150509392505050565b600080600080600080600080600061372b8a600b54600c54613915565b925092509250600061373b613160565b9050600080600061374e8e8787876139ab565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006137b883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612c5a565b905092915050565b60008082846137cf9190614668565b905083811015613814576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161380b906143b8565b60405180910390fd5b8091505092915050565b6000613828613160565b9050600061383f8284613a3490919063ffffffff16565b905061389381600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546137c090919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6138f08260085461377690919063ffffffff16565b60088190555061390b816009546137c090919063ffffffff16565b6009819055505050565b6000806000806139416064613933888a613a3490919063ffffffff16565b61318b90919063ffffffff16565b9050600061396b606461395d888b613a3490919063ffffffff16565b61318b90919063ffffffff16565b9050600061399482613986858c61377690919063ffffffff16565b61377690919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806139c48589613a3490919063ffffffff16565b905060006139db8689613a3490919063ffffffff16565b905060006139f28789613a3490919063ffffffff16565b90506000613a1b82613a0d858761377690919063ffffffff16565b61377690919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415613a475760009050613aa9565b60008284613a5591906146ef565b9050828482613a6491906146be565b14613aa4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613a9b90614458565b60405180910390fd5b809150505b92915050565b600081359050613abe81614d6a565b92915050565b600081519050613ad381614d6a565b92915050565b600081359050613ae881614d81565b92915050565b60008083601f840112613b0457613b03614933565b5b8235905067ffffffffffffffff811115613b2157613b2061492e565b5b602083019150836020820283011115613b3d57613b3c614938565b5b9250929050565b600081359050613b5381614d98565b92915050565b600081519050613b6881614d98565b92915050565b600081359050613b7d81614daf565b92915050565b600081519050613b9281614daf565b92915050565b600060208284031215613bae57613bad614942565b5b6000613bbc84828501613aaf565b91505092915050565b600060208284031215613bdb57613bda614942565b5b6000613be984828501613ac4565b91505092915050565b600060208284031215613c0857613c07614942565b5b6000613c1684828501613ad9565b91505092915050565b60008060408385031215613c3657613c35614942565b5b6000613c4485828601613aaf565b9250506020613c5585828601613aaf565b9150509250929050565b600080600060608486031215613c7857613c77614942565b5b6000613c8686828701613aaf565b9350506020613c9786828701613aaf565b9250506040613ca886828701613b6e565b9150509250925092565b60008060408385031215613cc957613cc8614942565b5b6000613cd785828601613aaf565b9250506020613ce885828601613b44565b9150509250929050565b60008060408385031215613d0957613d08614942565b5b6000613d1785828601613aaf565b9250506020613d2885828601613b6e565b9150509250929050565b60008060208385031215613d4957613d48614942565b5b600083013567ffffffffffffffff811115613d6757613d6661493d565b5b613d7385828601613aee565b92509250509250929050565b600080600060408486031215613d9857613d97614942565b5b600084013567ffffffffffffffff811115613db657613db561493d565b5b613dc286828701613aee565b93509350506020613dd586828701613b44565b9150509250925092565b600060208284031215613df557613df4614942565b5b6000613e0384828501613b44565b91505092915050565b600060208284031215613e2257613e21614942565b5b6000613e3084828501613b59565b91505092915050565b600060208284031215613e4f57613e4e614942565b5b6000613e5d84828501613b6e565b91505092915050565b600080600060608486031215613e7f57613e7e614942565b5b6000613e8d86828701613b83565b9350506020613e9e86828701613b83565b9250506040613eaf86828701613b83565b9150509250925092565b6000613ec58383613ed1565b60208301905092915050565b613eda8161477d565b82525050565b613ee98161477d565b82525050565b6000613efa82614618565b613f04818561463b565b9350613f0f83614608565b8060005b83811015613f40578151613f278882613eb9565b9750613f328361462e565b925050600181019050613f13565b5085935050505092915050565b613f56816147a1565b82525050565b613f65816147e4565b82525050565b6000613f7682614623565b613f808185614657565b9350613f908185602086016147f6565b613f9981614947565b840191505092915050565b6000613fb1602383614657565b9150613fbc82614958565b604082019050919050565b6000613fd4602a83614657565b9150613fdf826149a7565b604082019050919050565b6000613ff7602283614657565b9150614002826149f6565b604082019050919050565b600061401a601b83614657565b915061402582614a45565b602082019050919050565b600061403d601c83614657565b915061404882614a6e565b602082019050919050565b6000614060603983614657565b915061406b82614a97565b604082019050919050565b6000614083601783614657565b915061408e82614ae6565b602082019050919050565b60006140a6602083614657565b91506140b182614b0f565b602082019050919050565b60006140c9602183614657565b91506140d482614b38565b604082019050919050565b60006140ec602083614657565b91506140f782614b87565b602082019050919050565b600061410f602983614657565b915061411a82614bb0565b604082019050919050565b6000614132602583614657565b915061413d82614bff565b604082019050919050565b6000614155602383614657565b915061416082614c4e565b604082019050919050565b600061417860008361464c565b915061418382614c9d565b600082019050919050565b600061419b602483614657565b91506141a682614ca0565b604082019050919050565b60006141be601783614657565b91506141c982614cef565b602082019050919050565b60006141e1601b83614657565b91506141ec82614d18565b602082019050919050565b6000614204601883614657565b915061420f82614d41565b602082019050919050565b614223816147cd565b82525050565b614232816147d7565b82525050565b60006142438261416b565b9150819050919050565b60006020820190506142626000830184613ee0565b92915050565b600060408201905061427d6000830185613ee0565b61428a6020830184613ee0565b9392505050565b60006040820190506142a66000830185613ee0565b6142b3602083018461421a565b9392505050565b600060c0820190506142cf6000830189613ee0565b6142dc602083018861421a565b6142e96040830187613f5c565b6142f66060830186613f5c565b6143036080830185613ee0565b61431060a083018461421a565b979650505050505050565b60006020820190506143306000830184613f4d565b92915050565b600060208201905081810360008301526143508184613f6b565b905092915050565b6000602082019050818103600083015261437181613fa4565b9050919050565b6000602082019050818103600083015261439181613fc7565b9050919050565b600060208201905081810360008301526143b181613fea565b9050919050565b600060208201905081810360008301526143d18161400d565b9050919050565b600060208201905081810360008301526143f181614030565b9050919050565b6000602082019050818103600083015261441181614053565b9050919050565b6000602082019050818103600083015261443181614076565b9050919050565b6000602082019050818103600083015261445181614099565b9050919050565b60006020820190508181036000830152614471816140bc565b9050919050565b60006020820190508181036000830152614491816140df565b9050919050565b600060208201905081810360008301526144b181614102565b9050919050565b600060208201905081810360008301526144d181614125565b9050919050565b600060208201905081810360008301526144f181614148565b9050919050565b600060208201905081810360008301526145118161418e565b9050919050565b60006020820190508181036000830152614531816141b1565b9050919050565b60006020820190508181036000830152614551816141d4565b9050919050565b60006020820190508181036000830152614571816141f7565b9050919050565b600060208201905061458d600083018461421a565b92915050565b600060a0820190506145a8600083018861421a565b6145b56020830187613f5c565b81810360408301526145c78186613eef565b90506145d66060830185613ee0565b6145e3608083018461421a565b9695505050505050565b60006020820190506146026000830184614229565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000614673826147cd565b915061467e836147cd565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156146b3576146b2614872565b5b828201905092915050565b60006146c9826147cd565b91506146d4836147cd565b9250826146e4576146e36148a1565b5b828204905092915050565b60006146fa826147cd565b9150614705836147cd565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561473e5761473d614872565b5b828202905092915050565b6000614754826147cd565b915061475f836147cd565b92508282101561477257614771614872565b5b828203905092915050565b6000614788826147ad565b9050919050565b600061479a826147ad565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006147ef826147cd565b9050919050565b60005b838110156148145780820151818401526020810190506147f9565b83811115614823576000848401525b50505050565b6000614834826147cd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561486757614866614872565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f53656c6c20666565206d757374206265206c657373207468616e203500000000600082015250565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b7f746178206d757374206265206c657373207468616e2035000000000000000000600082015250565b7f5472616e7366657220666565206d757374206265206c657373207468616e2035600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f42757920666565206d757374206265206c657373207468616e20350000000000600082015250565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b614d738161477d565b8114614d7e57600080fd5b50565b614d8a8161478f565b8114614d9557600080fd5b50565b614da1816147a1565b8114614dac57600080fd5b50565b614db8816147cd565b8114614dc357600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122008c40e2575a7c8c80b62deeb13fb42b4880ec56da507c572ca6e8ef2db02951464736f6c63430008070033000000000000000000000000490a34647b153d0d068c43ce0cddea8cbfc817bb

Deployed Bytecode

0x6080604052600436106101fd5760003560e01c80638b4cee081161010d578063c3c8cd80116100a0578063db8aeab11161006f578063db8aeab1146106ea578063db92dbb614610713578063dd62ed3e1461073e578063de30aad11461077b578063e1ab04c9146107a457610204565b8063c3c8cd801461066a578063c4081a4c14610681578063c9567bf9146106aa578063cf0848f7146106c157610204565b80639a7a23d6116100dc5780639a7a23d6146105b2578063a9059cbb146105db578063b515566a14610618578063c11875691461064157610204565b80638b4cee081461050a5780638da5cb5b146105335780638f02bb5b1461055e57806395d89b411461058757610204565b806327f3a72a116101905780635d0044ca1161015f5780635d0044ca146104395780636fc3eaec1461046257806370a0823114610479578063715018a6146104b6578063844f30fb146104cd57610204565b806327f3a72a1461037d578063313ce567146103a85780633bbac579146103d3578063437823ec1461041057610204565b806318160ddd116101cc57806318160ddd146102c35780631f53ac02146102ee57806323b872dd14610317578063273123b71461035457610204565b806306fdde0314610209578063095ea7b3146102345780630cc835a31461027157806312dfbd331461029a57610204565b3661020457005b600080fd5b34801561021557600080fd5b5061021e6107e1565b60405161022b9190614336565b60405180910390f35b34801561024057600080fd5b5061025b60048036038101906102569190613cf2565b61081e565b604051610268919061431b565b60405180910390f35b34801561027d57600080fd5b5061029860048036038101906102939190613e39565b61083c565b005b3480156102a657600080fd5b506102c160048036038101906102bc9190613e39565b61091f565b005b3480156102cf57600080fd5b506102d86109cd565b6040516102e59190614578565b60405180910390f35b3480156102fa57600080fd5b5061031560048036038101906103109190613bf2565b6109de565b005b34801561032357600080fd5b5061033e60048036038101906103399190613c5f565b610b89565b60405161034b919061431b565b60405180910390f35b34801561036057600080fd5b5061037b60048036038101906103769190613b98565b610c62565b005b34801561038957600080fd5b50610392610d52565b60405161039f9190614578565b60405180910390f35b3480156103b457600080fd5b506103bd610d62565b6040516103ca91906145ed565b60405180910390f35b3480156103df57600080fd5b506103fa60048036038101906103f59190613b98565b610d6b565b604051610407919061431b565b60405180910390f35b34801561041c57600080fd5b5061043760048036038101906104329190613bf2565b610dc1565b005b34801561044557600080fd5b50610460600480360381019061045b9190613e39565b610eb1565b005b34801561046e57600080fd5b50610477610f5f565b005b34801561048557600080fd5b506104a0600480360381019061049b9190613b98565b611005565b6040516104ad9190614578565b60405180910390f35b3480156104c257600080fd5b506104cb611056565b005b3480156104d957600080fd5b506104f460048036038101906104ef9190613b98565b6111a9565b604051610501919061431b565b60405180910390f35b34801561051657600080fd5b50610531600480360381019061052c9190613e39565b6111ff565b005b34801561053f57600080fd5b506105486112e2565b604051610555919061424d565b60405180910390f35b34801561056a57600080fd5b5061058560048036038101906105809190613e39565b61130b565b005b34801561059357600080fd5b5061059c6113ee565b6040516105a99190614336565b60405180910390f35b3480156105be57600080fd5b506105d960048036038101906105d49190613cb2565b61142b565b005b3480156105e757600080fd5b5061060260048036038101906105fd9190613cf2565b61155f565b60405161060f919061431b565b60405180910390f35b34801561062457600080fd5b5061063f600480360381019061063a9190613d32565b61157d565b005b34801561064d57600080fd5b5061066860048036038101906106639190613ddf565b6117b7565b005b34801561067657600080fd5b5061067f611869565b005b34801561068d57600080fd5b506106a860048036038101906106a39190613e39565b611917565b005b3480156106b657600080fd5b506106bf6119fa565b005b3480156106cd57600080fd5b506106e860048036038101906106e39190613bf2565b611f8b565b005b3480156106f657600080fd5b50610711600480360381019061070c9190613d7f565b61207b565b005b34801561071f57600080fd5b506107286121b5565b6040516107359190614578565b60405180910390f35b34801561074a57600080fd5b5061076560048036038101906107609190613c1f565b6121e7565b6040516107729190614578565b60405180910390f35b34801561078757600080fd5b506107a2600480360381019061079d9190613ddf565b61226e565b005b3480156107b057600080fd5b506107cb60048036038101906107c69190613b98565b61231f565b6040516107d8919061431b565b60405180910390f35b60606040518060400160405280600581526020017f4572696361000000000000000000000000000000000000000000000000000000815250905090565b600061083261082b612375565b848461237d565b6001905092915050565b610844612375565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c890614478565b60405180910390fd5b6005811115610915576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090c90614538565b60405180910390fd5b80600e8190555050565b610927612375565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ab90614478565b60405180910390fd5b633b9aca00816109c491906146ef565b600a8190555050565b6000683635c9adc5dea00000905090565b6109e6612375565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6a90614478565b60405180910390fd5b600060056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000610b96848484612548565b610c5784610ba2612375565b610c5285604051806060016040528060288152602001614dc760289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c08612375565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c5a9092919063ffffffff16565b61237d565b600190509392505050565b610c6a612375565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cf7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cee90614478565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000610d5d30611005565b905090565b60006009905090565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610dc9612375565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4d90614478565b60405180910390fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610eb9612375565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3d90614478565b60405180910390fd5b633b9aca0081610f5691906146ef565b600d8190555050565b610f67612375565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ff4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610feb90614478565b60405180910390fd5b600047905061100281612cbe565b50565b600061104f600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d87565b9050919050565b61105e612375565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e290614478565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611207612375565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611294576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128b90614478565b60405180910390fd5b60058111156112d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cf906143d8565b60405180910390fd5b80600f8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611313612375565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139790614478565b60405180910390fd5b60058111156113e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113db90614438565b60405180910390fd5b8060108190555050565b60606040518060400160405280600581526020017f4552494341000000000000000000000000000000000000000000000000000000815250905090565b611433612375565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b790614478565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611551576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611548906143f8565b60405180910390fd5b61155b8282612df5565b5050565b600061157361156c612375565b8484612548565b6001905092915050565b611585612375565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611612576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160990614478565b60405180910390fd5b60005b828290508110156117b257601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683838381811061166c5761166b6148d0565b5b90506020020160208101906116819190613b98565b73ffffffffffffffffffffffffffffffffffffffff161415801561171a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168383838181106116ec576116eb6148d0565b5b90506020020160208101906117019190613b98565b73ffffffffffffffffffffffffffffffffffffffff1614155b1561179f57600160076000858585818110611738576117376148d0565b5b905060200201602081019061174d9190613b98565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80806117aa90614829565b915050611615565b505050565b6117bf612375565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461184c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184390614478565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b611871612375565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f590614478565b60405180910390fd5b600061190930611005565b905061191481612e50565b50565b61191f612375565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a390614478565b60405180910390fd5b60058111156119f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e790614418565b60405180910390fd5b80600b8190555050565b611a02612375565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8690614478565b60405180910390fd5b601560149054906101000a900460ff1615611adf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad690614518565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611b6f30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea0000061237d565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015611bb557600080fd5b505afa158015611bc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bed9190613bc5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611c4f57600080fd5b505afa158015611c63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c879190613bc5565b6040518363ffffffff1660e01b8152600401611ca4929190614268565b602060405180830381600087803b158015611cbe57600080fd5b505af1158015611cd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cf69190613bc5565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611d7f30611005565b600080611d8a6112e2565b426040518863ffffffff1660e01b8152600401611dac969594939291906142ba565b6060604051808303818588803b158015611dc557600080fd5b505af1158015611dd9573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611dfe9190613e66565b505050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611ea0929190614291565b602060405180830381600087803b158015611eba57600080fd5b505af1158015611ece573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ef29190613e0c565b506001601560146101000a81548160ff021916908315150217905550600160166000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611f93612375565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612020576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201790614478565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b612083612375565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612110576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210790614478565b60405180910390fd5b60005b838390508110156121af578160066000868685818110612136576121356148d0565b5b905060200201602081019061214b9190613b98565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806121a790614829565b915050612113565b50505050565b60006121e2601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611005565b905090565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b612276612375565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612303576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122fa90614478565b60405180910390fd5b806015806101000a81548160ff02191690831515021790555050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156123ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e4906144f8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561245d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245490614398565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161253b9190614578565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156125b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125af906144b8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612628576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261f90614358565b60405180910390fd5b6000811161266b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161266290614498565b60405180910390fd5b6126736112e2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156126e157506126b16112e2565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612ac557600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561278a5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61279357600080fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561283b5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561289957600d548161284d84611005565b6128579190614668565b1115612898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161288f906144d8565b60405180910390fd5b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156129445750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561299a5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156129f857601560149054906101000a900460ff166129ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129e590614558565b60405180910390fd5b600e54600c819055505b601560179054906101000a900460ff16158015612a635750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612a7b5750601560149054906101000a900460ff165b15612ac4576000612a8b30611005565b9050600f54600c81905550600a54811115612ac25760158054906101000a900460ff16612ab857600a5490505b612ac1816130d8565b5b505b5b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612b6c5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612b7657600090505b601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612c1a5750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612c4857601560169054906101000a900460ff1615612c4257601054600c81905550612c47565b600090505b5b612c5484848484613133565b50505050565b6000838311158290612ca2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c999190614336565b60405180910390fd5b5060008385612cb19190614749565b9050809150509392505050565b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612d0690614238565b60006040518083038185875af1925050503d8060008114612d43576040519150601f19603f3d011682016040523d82523d6000602084013e612d48565b606091505b505090507fb6caad5b328a3de9a49b44605241a4b72f6f1aa955829d12e37decfd84a0b8ca81604051612d7b919061431b565b60405180910390a15050565b6000600854821115612dce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dc590614378565b60405180910390fd5b6000612dd8613160565b9050612ded818461318b90919063ffffffff16565b915050919050565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6001601560176101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612e8857612e876148ff565b5b604051908082528060200260200182016040528015612eb65781602001602082028036833780820191505090505b5090503081600081518110612ece57612ecd6148d0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612f7057600080fd5b505afa158015612f84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fa89190613bc5565b81600181518110612fbc57612fbb6148d0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061302330601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461237d565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613087959493929190614593565b600060405180830381600087803b1580156130a157600080fd5b505af11580156130b5573d6000803e3d6000fd5b50505050506000601560176101000a81548160ff02191690831515021790555050565b6001601560176101000a81548160ff0219169083151502179055506130fc816131d5565b600047905060008111156131145761311347612cbe565b5b506000601560176101000a81548160ff02191690831515021790555050565b8061314157613140613427565b5b61314c84848461346a565b8061315a57613159613635565b5b50505050565b600080600061316d613649565b91509150613184818361318b90919063ffffffff16565b9250505090565b60006131cd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506136ab565b905092915050565b6000600267ffffffffffffffff8111156131f2576131f16148ff565b5b6040519080825280602002602001820160405280156132205781602001602082028036833780820191505090505b5090503081600081518110613238576132376148d0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156132da57600080fd5b505afa1580156132ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133129190613bc5565b81600181518110613326576133256148d0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061338d30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461237d565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016133f1959493929190614593565b600060405180830381600087803b15801561340b57600080fd5b505af115801561341f573d6000803e3d6000fd5b505050505050565b6000600b5414801561343b57506000600c54145b1561344557613468565b600b54601181905550600c546012819055506000600b819055506000600c819055505b565b60008060008060008061347c8761370e565b9550955095509550955095506134da86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461377690919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061356f85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546137c090919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506135bb8161381e565b6135c584836138db565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516136229190614578565b60405180910390a3505050505050505050565b601154600b81905550601254600c81905550565b600080600060085490506000683635c9adc5dea00000905061367f683635c9adc5dea0000060085461318b90919063ffffffff16565b82101561369e57600854683635c9adc5dea000009350935050506136a7565b81819350935050505b9091565b600080831182906136f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136e99190614336565b60405180910390fd5b506000838561370191906146be565b9050809150509392505050565b600080600080600080600080600061372b8a600b54600c54613915565b925092509250600061373b613160565b9050600080600061374e8e8787876139ab565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006137b883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612c5a565b905092915050565b60008082846137cf9190614668565b905083811015613814576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161380b906143b8565b60405180910390fd5b8091505092915050565b6000613828613160565b9050600061383f8284613a3490919063ffffffff16565b905061389381600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546137c090919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6138f08260085461377690919063ffffffff16565b60088190555061390b816009546137c090919063ffffffff16565b6009819055505050565b6000806000806139416064613933888a613a3490919063ffffffff16565b61318b90919063ffffffff16565b9050600061396b606461395d888b613a3490919063ffffffff16565b61318b90919063ffffffff16565b9050600061399482613986858c61377690919063ffffffff16565b61377690919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806139c48589613a3490919063ffffffff16565b905060006139db8689613a3490919063ffffffff16565b905060006139f28789613a3490919063ffffffff16565b90506000613a1b82613a0d858761377690919063ffffffff16565b61377690919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415613a475760009050613aa9565b60008284613a5591906146ef565b9050828482613a6491906146be565b14613aa4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613a9b90614458565b60405180910390fd5b809150505b92915050565b600081359050613abe81614d6a565b92915050565b600081519050613ad381614d6a565b92915050565b600081359050613ae881614d81565b92915050565b60008083601f840112613b0457613b03614933565b5b8235905067ffffffffffffffff811115613b2157613b2061492e565b5b602083019150836020820283011115613b3d57613b3c614938565b5b9250929050565b600081359050613b5381614d98565b92915050565b600081519050613b6881614d98565b92915050565b600081359050613b7d81614daf565b92915050565b600081519050613b9281614daf565b92915050565b600060208284031215613bae57613bad614942565b5b6000613bbc84828501613aaf565b91505092915050565b600060208284031215613bdb57613bda614942565b5b6000613be984828501613ac4565b91505092915050565b600060208284031215613c0857613c07614942565b5b6000613c1684828501613ad9565b91505092915050565b60008060408385031215613c3657613c35614942565b5b6000613c4485828601613aaf565b9250506020613c5585828601613aaf565b9150509250929050565b600080600060608486031215613c7857613c77614942565b5b6000613c8686828701613aaf565b9350506020613c9786828701613aaf565b9250506040613ca886828701613b6e565b9150509250925092565b60008060408385031215613cc957613cc8614942565b5b6000613cd785828601613aaf565b9250506020613ce885828601613b44565b9150509250929050565b60008060408385031215613d0957613d08614942565b5b6000613d1785828601613aaf565b9250506020613d2885828601613b6e565b9150509250929050565b60008060208385031215613d4957613d48614942565b5b600083013567ffffffffffffffff811115613d6757613d6661493d565b5b613d7385828601613aee565b92509250509250929050565b600080600060408486031215613d9857613d97614942565b5b600084013567ffffffffffffffff811115613db657613db561493d565b5b613dc286828701613aee565b93509350506020613dd586828701613b44565b9150509250925092565b600060208284031215613df557613df4614942565b5b6000613e0384828501613b44565b91505092915050565b600060208284031215613e2257613e21614942565b5b6000613e3084828501613b59565b91505092915050565b600060208284031215613e4f57613e4e614942565b5b6000613e5d84828501613b6e565b91505092915050565b600080600060608486031215613e7f57613e7e614942565b5b6000613e8d86828701613b83565b9350506020613e9e86828701613b83565b9250506040613eaf86828701613b83565b9150509250925092565b6000613ec58383613ed1565b60208301905092915050565b613eda8161477d565b82525050565b613ee98161477d565b82525050565b6000613efa82614618565b613f04818561463b565b9350613f0f83614608565b8060005b83811015613f40578151613f278882613eb9565b9750613f328361462e565b925050600181019050613f13565b5085935050505092915050565b613f56816147a1565b82525050565b613f65816147e4565b82525050565b6000613f7682614623565b613f808185614657565b9350613f908185602086016147f6565b613f9981614947565b840191505092915050565b6000613fb1602383614657565b9150613fbc82614958565b604082019050919050565b6000613fd4602a83614657565b9150613fdf826149a7565b604082019050919050565b6000613ff7602283614657565b9150614002826149f6565b604082019050919050565b600061401a601b83614657565b915061402582614a45565b602082019050919050565b600061403d601c83614657565b915061404882614a6e565b602082019050919050565b6000614060603983614657565b915061406b82614a97565b604082019050919050565b6000614083601783614657565b915061408e82614ae6565b602082019050919050565b60006140a6602083614657565b91506140b182614b0f565b602082019050919050565b60006140c9602183614657565b91506140d482614b38565b604082019050919050565b60006140ec602083614657565b91506140f782614b87565b602082019050919050565b600061410f602983614657565b915061411a82614bb0565b604082019050919050565b6000614132602583614657565b915061413d82614bff565b604082019050919050565b6000614155602383614657565b915061416082614c4e565b604082019050919050565b600061417860008361464c565b915061418382614c9d565b600082019050919050565b600061419b602483614657565b91506141a682614ca0565b604082019050919050565b60006141be601783614657565b91506141c982614cef565b602082019050919050565b60006141e1601b83614657565b91506141ec82614d18565b602082019050919050565b6000614204601883614657565b915061420f82614d41565b602082019050919050565b614223816147cd565b82525050565b614232816147d7565b82525050565b60006142438261416b565b9150819050919050565b60006020820190506142626000830184613ee0565b92915050565b600060408201905061427d6000830185613ee0565b61428a6020830184613ee0565b9392505050565b60006040820190506142a66000830185613ee0565b6142b3602083018461421a565b9392505050565b600060c0820190506142cf6000830189613ee0565b6142dc602083018861421a565b6142e96040830187613f5c565b6142f66060830186613f5c565b6143036080830185613ee0565b61431060a083018461421a565b979650505050505050565b60006020820190506143306000830184613f4d565b92915050565b600060208201905081810360008301526143508184613f6b565b905092915050565b6000602082019050818103600083015261437181613fa4565b9050919050565b6000602082019050818103600083015261439181613fc7565b9050919050565b600060208201905081810360008301526143b181613fea565b9050919050565b600060208201905081810360008301526143d18161400d565b9050919050565b600060208201905081810360008301526143f181614030565b9050919050565b6000602082019050818103600083015261441181614053565b9050919050565b6000602082019050818103600083015261443181614076565b9050919050565b6000602082019050818103600083015261445181614099565b9050919050565b60006020820190508181036000830152614471816140bc565b9050919050565b60006020820190508181036000830152614491816140df565b9050919050565b600060208201905081810360008301526144b181614102565b9050919050565b600060208201905081810360008301526144d181614125565b9050919050565b600060208201905081810360008301526144f181614148565b9050919050565b600060208201905081810360008301526145118161418e565b9050919050565b60006020820190508181036000830152614531816141b1565b9050919050565b60006020820190508181036000830152614551816141d4565b9050919050565b60006020820190508181036000830152614571816141f7565b9050919050565b600060208201905061458d600083018461421a565b92915050565b600060a0820190506145a8600083018861421a565b6145b56020830187613f5c565b81810360408301526145c78186613eef565b90506145d66060830185613ee0565b6145e3608083018461421a565b9695505050505050565b60006020820190506146026000830184614229565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000614673826147cd565b915061467e836147cd565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156146b3576146b2614872565b5b828201905092915050565b60006146c9826147cd565b91506146d4836147cd565b9250826146e4576146e36148a1565b5b828204905092915050565b60006146fa826147cd565b9150614705836147cd565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561473e5761473d614872565b5b828202905092915050565b6000614754826147cd565b915061475f836147cd565b92508282101561477257614771614872565b5b828203905092915050565b6000614788826147ad565b9050919050565b600061479a826147ad565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006147ef826147cd565b9050919050565b60005b838110156148145780820151818401526020810190506147f9565b83811115614823576000848401525b50505050565b6000614834826147cd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561486757614866614872565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f53656c6c20666565206d757374206265206c657373207468616e203500000000600082015250565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b7f746178206d757374206265206c657373207468616e2035000000000000000000600082015250565b7f5472616e7366657220666565206d757374206265206c657373207468616e2035600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f42757920666565206d757374206265206c657373207468616e20350000000000600082015250565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b614d738161477d565b8114614d7e57600080fd5b50565b614d8a8161478f565b8114614d9557600080fd5b50565b614da1816147a1565b8114614dac57600080fd5b50565b614db8816147cd565b8114614dc357600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122008c40e2575a7c8c80b62deeb13fb42b4880ec56da507c572ca6e8ef2db02951464736f6c63430008070033

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

000000000000000000000000490a34647b153d0d068c43ce0cddea8cbfc817bb

-----Decoded View---------------
Arg [0] : devWallet (address): 0x490A34647B153d0d068c43ce0cDDeA8cBFc817Bb

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000490a34647b153d0d068c43ce0cddea8cbfc817bb


Deployed Bytecode Sourcemap

3890:14807:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6057:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6909:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16306:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16931:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6334:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15275:190;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7078:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17564:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18095:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6243:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17665:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15473:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17073:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17934:153;;;;;;;;;;;;;:::i;:::-;;6437:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2969:148;;;;;;;;;;;;;:::i;:::-;;15716:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16456:148;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2755:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16612:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6148:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18312:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6583:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17280:272;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16184:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17762:160;;;;;;;;;;;;;:::i;:::-;;16785:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14496:767;;;;;;;;;;;;;:::i;:::-;;15597:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15836:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18203:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6758:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17182:86;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16054:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6057:83;6094:13;6127:5;;;;;;;;;;;;;;;;;6120:12;;6057:83;:::o;6909:161::-;6984:4;7001:39;7010:12;:10;:12::i;:::-;7024:7;7033:6;7001:8;:39::i;:::-;7058:4;7051:11;;6909:161;;;;:::o;16306:142::-;2892:12;:10;:12::i;:::-;2882:22;;:6;;;;;;;;;;:22;;;2874:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16383:1:::1;16376:3;:8;;16368:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;16437:3;16427:7;:13;;;;16306:142:::0;:::o;16931:134::-;2892:12;:10;:12::i;:::-;2882:22;;:6;;;;;;;;;;:22;;;2874:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17052:5:::1;17041:8;:16;;;;:::i;:::-;17015:23;:42;;;;16931:134:::0;:::o;6334:95::-;6387:7;4405:12;6407:14;;6334:95;:::o;15275:190::-;2892:12;:10;:12::i;:::-;2882:22;;:6;;;;;;;;;;:22;;;2874:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15384:5:::1;15351:18;:30;15370:10;;;;;;;;;;;15351:30;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;15413:3;15400:10;;:16;;;;;;;;;;;;;;;;;;15453:4;15427:18;:23;15446:3;15427:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;15275:190:::0;:::o;7078:313::-;7176:4;7193:36;7203:6;7211:9;7222:6;7193:9;:36::i;:::-;7240:121;7249:6;7257:12;:10;:12::i;:::-;7271:89;7309:6;7271:89;;;;;;;;;;;;;;;;;:11;:19;7283:6;7271:19;;;;;;;;;;;;;;;:33;7291:12;:10;:12::i;:::-;7271:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7240:8;:121::i;:::-;7379:4;7372:11;;7078:313;;;;;:::o;17564:89::-;2892:12;:10;:12::i;:::-;2882:22;;:6;;;;;;;;;;:22;;;2874:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17640:5:::1;17624;:13;17630:6;17624:13;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;17564:89:::0;:::o;18095:100::-;18139:4;18163:24;18181:4;18163:9;:24::i;:::-;18156:31;;18095:100;:::o;6243:83::-;6284:5;4714:1;6302:16;;6243:83;:::o;17665:89::-;17713:4;17737:5;:9;17743:2;17737:9;;;;;;;;;;;;;;;;;;;;;;;;;17730:16;;17665:89;;;:::o;15473:112::-;2892:12;:10;:12::i;:::-;2882:22;;:6;;;;;;;;;;:22;;;2874:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15573:4:::1;15548:18;:22;15567:2;15548:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;15473:112:::0;:::o;17073:101::-;2892:12;:10;:12::i;:::-;2882:22;;:6;;;;;;;;;;:22;;;2874:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17161:5:::1;17155:3;:11;;;;:::i;:::-;17138:14;:28;;;;17073:101:::0;:::o;17934:153::-;2892:12;:10;:12::i;:::-;2882:22;;:6;;;;;;;;;;:22;;;2874:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17986:26:::1;18015:21;17986:50;;18047:32;18060:18;18047:12;:32::i;:::-;17975:112;17934:153::o:0;6437:138::-;6503:7;6530:37;6550:7;:16;6558:7;6550:16;;;;;;;;;;;;;;;;6530:19;:37::i;:::-;6523:44;;6437:138;;;:::o;2969:148::-;2892:12;:10;:12::i;:::-;2882:22;;:6;;;;;;;;;;:22;;;2874:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3076:1:::1;3039:40;;3060:6;::::0;::::1;;;;;;;;3039:40;;;;;;;;;;;;3107:1;3090:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2969:148::o:0;15716:112::-;15774:4;15798:18;:22;15817:2;15798:22;;;;;;;;;;;;;;;;;;;;;;;;;15791:29;;15716:112;;;:::o;16456:148::-;2892:12;:10;:12::i;:::-;2882:22;;:6;;;;;;;;;;:22;;;2874:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16536:1:::1;16528:4;:9;;16520:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;16592:4;16581:8;:15;;;;16456:148:::0;:::o;2755:79::-;2793:7;2820:6;;;;;;;;;;;2813:13;;2755:79;:::o;16612:157::-;2892:12;:10;:12::i;:::-;2882:22;;:6;;;;;;;;;;:22;;;2874:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16694:1:::1;16687:3;:8;;16679:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;16758:3;16743:12;:18;;;;16612:157:::0;:::o;6148:87::-;6187:13;6220:7;;;;;;;;;;;;;;;;;6213:14;;6148:87;:::o;18312:244::-;2892:12;:10;:12::i;:::-;2882:22;;:6;;;;;;;;;;:22;;;2874:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18421:13:::1;;;;;;;;;;;18413:21;;:4;:21;;;;18405:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;18507:41;18536:4;18542:5;18507:28;:41::i;:::-;18312:244:::0;;:::o;6583:167::-;6661:4;6678:42;6688:12;:10;:12::i;:::-;6702:9;6713:6;6678:9;:42::i;:::-;6738:4;6731:11;;6583:167;;;;:::o;17280:272::-;2892:12;:10;:12::i;:::-;2882:22;;:6;;;;;;;;;;:22;;;2874:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17356:6:::1;17351:194;17372:5;;:12;;17368:1;:16;17351:194;;;17422:13;;;;;;;;;;;17410:25;;:5;;17416:1;17410:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;:25;;;;:65;;;;;17459:15;;;;;;;;;;;17439:36;;:5;;17445:1;17439:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;:36;;;;17410:65;17406:128;;;17514:4;17496:5;:15;17502:5;;17508:1;17502:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17496:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;17406:128;17386:3;;;;;:::i;:::-;;;;17351:194;;;;17280:272:::0;;:::o;16184:110::-;2892:12;:10;:12::i;:::-;2882:22;;:6;;;;;;;;;;:22;;;2874:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16281:5:::1;16258:20;;:28;;;;;;;;;;;;;;;;;;16184:110:::0;:::o;17762:160::-;2892:12;:10;:12::i;:::-;2882:22;;:6;;;;;;;;;;:22;;;2874:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17814:23:::1;17840:24;17858:4;17840:9;:24::i;:::-;17814:50;;17875:39;17898:15;17875:22;:39::i;:::-;17803:119;17762:160::o:0;16785:138::-;2892:12;:10;:12::i;:::-;2882:22;;:6;;;;;;;;;;:22;;;2874:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16862:1:::1;16855:3;:8;;16847:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;16912:3;16902:7;:13;;;;16785:138:::0;:::o;14496:767::-;2892:12;:10;:12::i;:::-;2882:22;;:6;;;;;;;;;;:22;;;2874:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14560:11:::1;;;;;;;;;;;14559:12;14551:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;14609:35;14666:42;14609:100;;14738:16;14720:15;;:34;;;;;;;;;;;;;;;;;;14765:58;14782:4;14797:15;;;;;;;;;;;4405:12;14765:8;:58::i;:::-;14868:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14850:56;;;14915:4;14922:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14850:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14834:13;;:112;;;;;;;;;;;;;;;;;;14957:15;;;;;;;;;;;:31;;;14996:21;15027:4;15033:24;15051:4;15033:9;:24::i;:::-;15058:1;15060::::0;15062:7:::1;:5;:7::i;:::-;15070:15;14957:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15104:13;;;;;;;;;;;15097:29;;;15135:15;;;;;;;;;;;15153:14;15097:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15193:4;15179:11;;:18;;;;;;;;;;;;;;;;;;15251:4;15208:25;:40;15234:13;;;;;;;;;;;15208:40;;;;;;;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;14540:723;14496:767::o:0;15597:111::-;2892:12;:10;:12::i;:::-;2882:22;;:6;;;;;;;;;;:22;;;2874:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15695:5:::1;15670:18;:22;15689:2;15670:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;15597:111:::0;:::o;15836:206::-;2892:12;:10;:12::i;:::-;2882:22;;:6;;;;;;;;;;:22;;;2874:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15935:6:::1;15930:105;15951:3;;:10;;15947:1;:14;15930:105;;;16018:5;15983:24;:32;16008:3;;16012:1;16008:6;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;15983:32;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;15963:3;;;;;:::i;:::-;;;;15930:105;;;;15836:206:::0;;;:::o;18203:101::-;18248:4;18272:24;18282:13;;;;;;;;;;;18272:9;:24::i;:::-;18265:31;;18203:101;:::o;6758:143::-;6839:7;6866:11;:18;6878:5;6866:18;;;;;;;;;;;;;;;:27;6885:7;6866:27;;;;;;;;;;;;;;;;6859:34;;6758:143;;;;:::o;17182:86::-;2892:12;:10;:12::i;:::-;2882:22;;:6;;;;;;;;;;:22;;;2874:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17255:5:::1;17244:8;::::0;:16:::1;;;;;;;;;;;;;;;;;;17182:86:::0;:::o;16054:122::-;16116:4;16140:24;:28;16165:2;16140:28;;;;;;;;;;;;;;;;;;;;;;;;;16133:35;;16054:122;;;:::o;164:98::-;217:7;244:10;237:17;;164:98;:::o;8006:335::-;8116:1;8099:19;;:5;:19;;;;8091:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8197:1;8178:21;;:7;:21;;;;8170:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8279:6;8249:11;:18;8261:5;8249:18;;;;;;;;;;;;;;;:27;8268:7;8249:27;;;;;;;;;;;;;;;:36;;;;8317:7;8301:32;;8310:5;8301:32;;;8326:6;8301:32;;;;;;:::i;:::-;;;;;;;;8006:335;;;:::o;8353:1818::-;8457:1;8441:18;;:4;:18;;;;8433:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8534:1;8520:16;;:2;:16;;;;8512:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8604:1;8595:6;:10;8587:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8675:7;:5;:7::i;:::-;8667:15;;:4;:15;;;;:32;;;;;8692:7;:5;:7::i;:::-;8686:13;;:2;:13;;;;8667:32;8664:1053;;;8739:5;:11;8745:4;8739:11;;;;;;;;;;;;;;;;;;;;;;;;;8738:12;:26;;;;;8755:5;:9;8761:2;8755:9;;;;;;;;;;;;;;;;;;;;;;;;;8754:10;8738:26;8730:35;;;;;;8791:13;;;;;;;;;;;8785:19;;:2;:19;;;;:52;;;;;8809:24;:28;8834:2;8809:28;;;;;;;;;;;;;;;;;;;;;;;;;8808:29;8785:52;8782:189;;;8901:14;;8891:6;8866:22;8884:2;8866:9;:22::i;:::-;:31;;;;:::i;:::-;:49;;8858:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;8782:189;9010:13;;;;;;;;;;;9002:21;;:4;:21;;;:55;;;;;9041:15;;;;;;;;;;;9027:30;;:2;:30;;;;9002:55;:82;;;;;9062:18;:22;9081:2;9062:22;;;;;;;;;;;;;;;;;;;;;;;;;9061:23;9002:82;8999:222;;;9113:11;;;;;;;;;;;9105:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;9183:7;;9172:8;:18;;;;8999:222;9253:6;;;;;;;;;;;9252:7;:32;;;;;9271:13;;;;;;;;;;;9263:21;;:4;:21;;;;9252:32;:47;;;;;9288:11;;;;;;;;;;;9252:47;9249:457;;;9320:28;9351:24;9369:4;9351:9;:24::i;:::-;9320:55;;9405:8;;9394;:19;;;;9460:23;;9437:20;:46;9434:257;;;9512:8;;;;;;;;;;9508:111;;9572:23;;9549:46;;9508:111;9641:30;9650:20;9641:8;:30::i;:::-;9434:257;9301:405;9249:457;8664:1053;9727:12;9742:4;9727:19;;9762:18;:24;9781:4;9762:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;9790:18;:22;9809:2;9790:22;;;;;;;;;;;;;;;;;;;;;;;;;9762:50;9759:97;;;9839:5;9829:15;;9759:97;9872:25;:31;9898:4;9872:31;;;;;;;;;;;;;;;;;;;;;;;;;9871:32;:66;;;;;9908:25;:29;9934:2;9908:29;;;;;;;;;;;;;;;;;;;;;;;;;9907:30;9871:66;9868:237;;;9958:20;;;;;;;;;;;9954:140;;;10010:12;;9999:8;:23;;;;9954:140;;;10073:5;10063:15;;9954:140;9868:237;10125:38;10140:4;10145:2;10148:6;10155:7;10125:14;:38::i;:::-;8422:1749;8353:1818;;;:::o;1301:190::-;1387:7;1420:1;1415;:6;;1423:12;1407:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1447:9;1463:1;1459;:5;;;;:::i;:::-;1447:17;;1482:1;1475:8;;;1301:190;;;;;:::o;11468:143::-;11526:8;11540:10;;;;;;;;;;;:15;;11563:6;11540:34;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11525:49;;;11590:13;11599:3;11590:13;;;;;;:::i;:::-;;;;;;;;11514:97;11468:143;:::o;7399:254::-;7466:7;7505;;7494;:18;;7486:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7570:19;7593:10;:8;:10::i;:::-;7570:33;;7621:24;7633:11;7621:7;:11;;:24;;;;:::i;:::-;7614:31;;;7399:254;;;:::o;18564:130::-;18681:5;18647:25;:31;18673:4;18647:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;18564:130;;:::o;10963:489::-;5488:4;5479:6;;:13;;;;;;;;;;;;;;;;;;11047:21:::1;11085:1;11071:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11047:40;;11116:4;11098;11103:1;11098:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11142:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11132:4;11137:1;11132:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11175:62;11192:4;11207:15;;;;;;;;;;;11225:11;11175:8;:62::i;:::-;11248:15;;;;;;;;;;;:66;;;11329:11;11355:1;11371:4;11398;11418:15;11248:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11036:416;5524:5:::0;5515:6;;:14;;;;;;;;;;;;;;;;;;10963:489;:::o;10179:297::-;5488:4;5479:6;;:13;;;;;;;;;;;;;;;;;;10268:38:::1;10285:20;10268:16;:38::i;:::-;10319:26;10348:21;10319:50;;10404:1;10383:18;:22;10380:89;;;10422:35;10435:21;10422:12;:35::i;:::-;10380:89;10247:229;5524:5:::0;5515:6;;:14;;;;;;;;;;;;;;;;;;10179:297;:::o;11623:263::-;11735:7;11731:40;;11757:14;:12;:14::i;:::-;11731:40;11782:44;11800:6;11808:9;11819:6;11782:17;:44::i;:::-;11841:7;11837:41;;11863:15;:13;:15::i;:::-;11837:41;11623:263;;;;:::o;13227:163::-;13268:7;13289:15;13306;13325:19;:17;:19::i;:::-;13288:56;;;;13362:20;13374:7;13362;:11;;:20;;;;:::i;:::-;13355:27;;;;13227:163;:::o;1752:132::-;1810:7;1837:39;1841:1;1844;1837:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1830:46;;1752:132;;;;:::o;10484:471::-;10550:21;10588:1;10574:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10550:40;;10619:4;10601;10606:1;10601:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;10645:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10635:4;10640:1;10635:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;10678:62;10695:4;10710:15;;;;;;;;;;;10728:11;10678:8;:62::i;:::-;10751:15;;;;;;;;;;;:66;;;10832:11;10858:1;10874:4;10901;10921:15;10751:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10539:416;10484:471;:::o;7661:210::-;7718:1;7707:7;;:12;:29;;;;;7735:1;7723:8;;:13;7707:29;7704:41;;;7738:7;;7704:41;7773:7;;7755:15;:25;;;;7810:8;;7791:16;:27;;;;7839:1;7829:7;:11;;;;7862:1;7851:8;:12;;;;7661:210;:::o;11894:490::-;11993:15;12010:23;12035:12;12049:23;12074:12;12088:13;12105:19;12116:7;12105:10;:19::i;:::-;11992:132;;;;;;;;;;;;12153:28;12173:7;12153;:15;12161:6;12153:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;12135:7;:15;12143:6;12135:15;;;;;;;;;;;;;;;:46;;;;12213:39;12236:15;12213:7;:18;12221:9;12213:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;12192:7;:18;12200:9;12192:18;;;;;;;;;;;;;;;:60;;;;12266:16;12276:5;12266:9;:16::i;:::-;12293:23;12305:4;12311;12293:11;:23::i;:::-;12349:9;12332:44;;12341:6;12332:44;;;12360:15;12332:44;;;;;;:::i;:::-;;;;;;;;11981:403;;;;;;11894:490;;;:::o;7883:115::-;7937:15;;7927:7;:25;;;;7974:16;;7963:8;:27;;;;7883:115::o;13398:255::-;13448:7;13457;13477:15;13495:7;;13477:25;;13513:15;4405:12;13513:25;;13562:20;4405:12;13562:7;;:11;;:20;;;;:::i;:::-;13552:7;:30;13549:60;;;13592:7;;4405:12;13584:25;;;;;;;;13549:60;13628:7;13637;13620:25;;;;;;13398:255;;;:::o;1892:189::-;1978:7;2010:1;2006;:5;2013:12;1998:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2037:9;2053:1;2049;:5;;;;:::i;:::-;2037:17;;2072:1;2065:8;;;1892:189;;;;;:::o;12392:468::-;12451:7;12460;12469;12478;12487;12496;12517:23;12542:12;12556:13;12573:39;12585:7;12594;;12603:8;;12573:11;:39::i;:::-;12516:96;;;;;;12623:19;12646:10;:8;:10::i;:::-;12623:33;;12668:15;12685:23;12710:12;12726:46;12738:7;12747:4;12753:5;12760:11;12726;:46::i;:::-;12667:105;;;;;;12791:7;12800:15;12817:4;12823:15;12840:4;12846:5;12783:69;;;;;;;;;;;;;;;;;;;12392:468;;;;;;;:::o;1157:136::-;1215:7;1242:43;1246:1;1249;1242:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1235:50;;1157:136;;;;:::o;970:179::-;1028:7;1048:9;1064:1;1060;:5;;;;:::i;:::-;1048:17;;1089:1;1084;:6;;1076:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1140:1;1133:8;;;970:179;;;;:::o;14078:214::-;14131:19;14154:10;:8;:10::i;:::-;14131:33;;14175:13;14191:22;14201:11;14191:5;:9;;:22;;;;:::i;:::-;14175:38;;14251:33;14278:5;14251:7;:22;14267:4;14251:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14226:7;:22;14242:4;14226:22;;;;;;;;;;;;;;;:58;;;;14120:172;;14078:214;:::o;14300:147::-;14378:17;14390:4;14378:7;;:11;;:17;;;;:::i;:::-;14368:7;:27;;;;14419:20;14434:4;14419:10;;:14;;:20;;;;:::i;:::-;14406:10;:33;;;;14300:147;;:::o;12868:351::-;12961:7;12970;12979;12999:12;13014:28;13038:3;13014:19;13026:6;13014:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;12999:43;;13053:13;13069:29;13094:3;13069:20;13081:7;13069;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;13053:45;;13109:23;13135:28;13157:5;13135:17;13147:4;13135:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13109:54;;13182:15;13199:4;13205:5;13174:37;;;;;;;;;12868:351;;;;;;;:::o;13661:409::-;13771:7;13780;13789;13809:15;13827:24;13839:11;13827:7;:11;;:24;;;;:::i;:::-;13809:42;;13862:12;13877:21;13886:11;13877:4;:8;;:21;;;;:::i;:::-;13862:36;;13909:13;13925:22;13935:11;13925:5;:9;;:22;;;;:::i;:::-;13909:38;;13958:23;13984:28;14006:5;13984:17;13996:4;13984:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13958:54;;14031:7;14040:15;14057:4;14023:39;;;;;;;;;;13661:409;;;;;;;;:::o;1499:245::-;1557:7;1585:1;1580;:6;1577:46;;;1610:1;1603:8;;;;1577:46;1633:9;1649:1;1645;:5;;;;:::i;:::-;1633:17;;1678:1;1673;1669;:5;;;;:::i;:::-;:10;1661:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1735:1;1728:8;;;1499:245;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;301:155::-;355:5;393:6;380:20;371:29;;409:41;444:5;409:41;:::i;:::-;301:155;;;;:::o;479:568::-;552:8;562:6;612:3;605:4;597:6;593:17;589:27;579:122;;620:79;;:::i;:::-;579:122;733:6;720:20;710:30;;763:18;755:6;752:30;749:117;;;785:79;;:::i;:::-;749:117;899:4;891:6;887:17;875:29;;953:3;945:4;937:6;933:17;923:8;919:32;916:41;913:128;;;960:79;;:::i;:::-;913:128;479:568;;;;;:::o;1053:133::-;1096:5;1134:6;1121:20;1112:29;;1150:30;1174:5;1150:30;:::i;:::-;1053:133;;;;:::o;1192:137::-;1246:5;1277:6;1271:13;1262:22;;1293:30;1317:5;1293:30;:::i;:::-;1192:137;;;;:::o;1335:139::-;1381:5;1419:6;1406:20;1397:29;;1435:33;1462:5;1435:33;:::i;:::-;1335:139;;;;:::o;1480:143::-;1537:5;1568:6;1562:13;1553:22;;1584:33;1611:5;1584:33;:::i;:::-;1480:143;;;;:::o;1629:329::-;1688:6;1737:2;1725:9;1716:7;1712:23;1708:32;1705:119;;;1743:79;;:::i;:::-;1705:119;1863:1;1888:53;1933:7;1924:6;1913:9;1909:22;1888:53;:::i;:::-;1878:63;;1834:117;1629:329;;;;:::o;1964:351::-;2034:6;2083:2;2071:9;2062:7;2058:23;2054:32;2051:119;;;2089:79;;:::i;:::-;2051:119;2209:1;2234:64;2290:7;2281:6;2270:9;2266:22;2234:64;:::i;:::-;2224:74;;2180:128;1964:351;;;;:::o;2321:345::-;2388:6;2437:2;2425:9;2416:7;2412:23;2408:32;2405:119;;;2443:79;;:::i;:::-;2405:119;2563:1;2588:61;2641:7;2632:6;2621:9;2617:22;2588:61;:::i;:::-;2578:71;;2534:125;2321:345;;;;:::o;2672:474::-;2740:6;2748;2797:2;2785:9;2776:7;2772:23;2768:32;2765:119;;;2803:79;;:::i;:::-;2765:119;2923:1;2948:53;2993:7;2984:6;2973:9;2969:22;2948:53;:::i;:::-;2938:63;;2894:117;3050:2;3076:53;3121:7;3112:6;3101:9;3097:22;3076:53;:::i;:::-;3066:63;;3021:118;2672:474;;;;;:::o;3152:619::-;3229:6;3237;3245;3294:2;3282:9;3273:7;3269:23;3265:32;3262:119;;;3300:79;;:::i;:::-;3262:119;3420:1;3445:53;3490:7;3481:6;3470:9;3466:22;3445:53;:::i;:::-;3435:63;;3391:117;3547:2;3573:53;3618:7;3609:6;3598:9;3594:22;3573:53;:::i;:::-;3563:63;;3518:118;3675:2;3701:53;3746:7;3737:6;3726:9;3722:22;3701:53;:::i;:::-;3691:63;;3646:118;3152:619;;;;;:::o;3777:468::-;3842:6;3850;3899:2;3887:9;3878:7;3874:23;3870:32;3867:119;;;3905:79;;:::i;:::-;3867:119;4025:1;4050:53;4095:7;4086:6;4075:9;4071:22;4050:53;:::i;:::-;4040:63;;3996:117;4152:2;4178:50;4220:7;4211:6;4200:9;4196:22;4178:50;:::i;:::-;4168:60;;4123:115;3777:468;;;;;:::o;4251:474::-;4319:6;4327;4376:2;4364:9;4355:7;4351:23;4347:32;4344:119;;;4382:79;;:::i;:::-;4344:119;4502:1;4527:53;4572:7;4563:6;4552:9;4548:22;4527:53;:::i;:::-;4517:63;;4473:117;4629:2;4655:53;4700:7;4691:6;4680:9;4676:22;4655:53;:::i;:::-;4645:63;;4600:118;4251:474;;;;;:::o;4731:559::-;4817:6;4825;4874:2;4862:9;4853:7;4849:23;4845:32;4842:119;;;4880:79;;:::i;:::-;4842:119;5028:1;5017:9;5013:17;5000:31;5058:18;5050:6;5047:30;5044:117;;;5080:79;;:::i;:::-;5044:117;5193:80;5265:7;5256:6;5245:9;5241:22;5193:80;:::i;:::-;5175:98;;;;4971:312;4731:559;;;;;:::o;5296:698::-;5388:6;5396;5404;5453:2;5441:9;5432:7;5428:23;5424:32;5421:119;;;5459:79;;:::i;:::-;5421:119;5607:1;5596:9;5592:17;5579:31;5637:18;5629:6;5626:30;5623:117;;;5659:79;;:::i;:::-;5623:117;5772:80;5844:7;5835:6;5824:9;5820:22;5772:80;:::i;:::-;5754:98;;;;5550:312;5901:2;5927:50;5969:7;5960:6;5949:9;5945:22;5927:50;:::i;:::-;5917:60;;5872:115;5296:698;;;;;:::o;6000:323::-;6056:6;6105:2;6093:9;6084:7;6080:23;6076:32;6073:119;;;6111:79;;:::i;:::-;6073:119;6231:1;6256:50;6298:7;6289:6;6278:9;6274:22;6256:50;:::i;:::-;6246:60;;6202:114;6000:323;;;;:::o;6329:345::-;6396:6;6445:2;6433:9;6424:7;6420:23;6416:32;6413:119;;;6451:79;;:::i;:::-;6413:119;6571:1;6596:61;6649:7;6640:6;6629:9;6625:22;6596:61;:::i;:::-;6586:71;;6542:125;6329:345;;;;:::o;6680:329::-;6739:6;6788:2;6776:9;6767:7;6763:23;6759:32;6756:119;;;6794:79;;:::i;:::-;6756:119;6914:1;6939:53;6984:7;6975:6;6964:9;6960:22;6939:53;:::i;:::-;6929:63;;6885:117;6680:329;;;;:::o;7015:663::-;7103:6;7111;7119;7168:2;7156:9;7147:7;7143:23;7139:32;7136:119;;;7174:79;;:::i;:::-;7136:119;7294:1;7319:64;7375:7;7366:6;7355:9;7351:22;7319:64;:::i;:::-;7309:74;;7265:128;7432:2;7458:64;7514:7;7505:6;7494:9;7490:22;7458:64;:::i;:::-;7448:74;;7403:129;7571:2;7597:64;7653:7;7644:6;7633:9;7629:22;7597:64;:::i;:::-;7587:74;;7542:129;7015:663;;;;;:::o;7684:179::-;7753:10;7774:46;7816:3;7808:6;7774:46;:::i;:::-;7852:4;7847:3;7843:14;7829:28;;7684:179;;;;:::o;7869:108::-;7946:24;7964:5;7946:24;:::i;:::-;7941:3;7934:37;7869:108;;:::o;7983:118::-;8070:24;8088:5;8070:24;:::i;:::-;8065:3;8058:37;7983:118;;:::o;8137:732::-;8256:3;8285:54;8333:5;8285:54;:::i;:::-;8355:86;8434:6;8429:3;8355:86;:::i;:::-;8348:93;;8465:56;8515:5;8465:56;:::i;:::-;8544:7;8575:1;8560:284;8585:6;8582:1;8579:13;8560:284;;;8661:6;8655:13;8688:63;8747:3;8732:13;8688:63;:::i;:::-;8681:70;;8774:60;8827:6;8774:60;:::i;:::-;8764:70;;8620:224;8607:1;8604;8600:9;8595:14;;8560:284;;;8564:14;8860:3;8853:10;;8261:608;;;8137:732;;;;:::o;8875:109::-;8956:21;8971:5;8956:21;:::i;:::-;8951:3;8944:34;8875:109;;:::o;8990:147::-;9085:45;9124:5;9085:45;:::i;:::-;9080:3;9073:58;8990:147;;:::o;9143:364::-;9231:3;9259:39;9292:5;9259:39;:::i;:::-;9314:71;9378:6;9373:3;9314:71;:::i;:::-;9307:78;;9394:52;9439:6;9434:3;9427:4;9420:5;9416:16;9394:52;:::i;:::-;9471:29;9493:6;9471:29;:::i;:::-;9466:3;9462:39;9455:46;;9235:272;9143:364;;;;:::o;9513:366::-;9655:3;9676:67;9740:2;9735:3;9676:67;:::i;:::-;9669:74;;9752:93;9841:3;9752:93;:::i;:::-;9870:2;9865:3;9861:12;9854:19;;9513:366;;;:::o;9885:::-;10027:3;10048:67;10112:2;10107:3;10048:67;:::i;:::-;10041:74;;10124:93;10213:3;10124:93;:::i;:::-;10242:2;10237:3;10233:12;10226:19;;9885:366;;;:::o;10257:::-;10399:3;10420:67;10484:2;10479:3;10420:67;:::i;:::-;10413:74;;10496:93;10585:3;10496:93;:::i;:::-;10614:2;10609:3;10605:12;10598:19;;10257:366;;;:::o;10629:::-;10771:3;10792:67;10856:2;10851:3;10792:67;:::i;:::-;10785:74;;10868:93;10957:3;10868:93;:::i;:::-;10986:2;10981:3;10977:12;10970:19;;10629:366;;;:::o;11001:::-;11143:3;11164:67;11228:2;11223:3;11164:67;:::i;:::-;11157:74;;11240:93;11329:3;11240:93;:::i;:::-;11358:2;11353:3;11349:12;11342:19;;11001:366;;;:::o;11373:::-;11515:3;11536:67;11600:2;11595:3;11536:67;:::i;:::-;11529:74;;11612:93;11701:3;11612:93;:::i;:::-;11730:2;11725:3;11721:12;11714:19;;11373:366;;;:::o;11745:::-;11887:3;11908:67;11972:2;11967:3;11908:67;:::i;:::-;11901:74;;11984:93;12073:3;11984:93;:::i;:::-;12102:2;12097:3;12093:12;12086:19;;11745:366;;;:::o;12117:::-;12259:3;12280:67;12344:2;12339:3;12280:67;:::i;:::-;12273:74;;12356:93;12445:3;12356:93;:::i;:::-;12474:2;12469:3;12465:12;12458:19;;12117:366;;;:::o;12489:::-;12631:3;12652:67;12716:2;12711:3;12652:67;:::i;:::-;12645:74;;12728:93;12817:3;12728:93;:::i;:::-;12846:2;12841:3;12837:12;12830:19;;12489:366;;;:::o;12861:::-;13003:3;13024:67;13088:2;13083:3;13024:67;:::i;:::-;13017:74;;13100:93;13189:3;13100:93;:::i;:::-;13218:2;13213:3;13209:12;13202:19;;12861:366;;;:::o;13233:::-;13375:3;13396:67;13460:2;13455:3;13396:67;:::i;:::-;13389:74;;13472:93;13561:3;13472:93;:::i;:::-;13590:2;13585:3;13581:12;13574:19;;13233:366;;;:::o;13605:::-;13747:3;13768:67;13832:2;13827:3;13768:67;:::i;:::-;13761:74;;13844:93;13933:3;13844:93;:::i;:::-;13962:2;13957:3;13953:12;13946:19;;13605:366;;;:::o;13977:::-;14119:3;14140:67;14204:2;14199:3;14140:67;:::i;:::-;14133:74;;14216:93;14305:3;14216:93;:::i;:::-;14334:2;14329:3;14325:12;14318:19;;13977:366;;;:::o;14349:398::-;14508:3;14529:83;14610:1;14605:3;14529:83;:::i;:::-;14522:90;;14621:93;14710:3;14621:93;:::i;:::-;14739:1;14734:3;14730:11;14723:18;;14349:398;;;:::o;14753:366::-;14895:3;14916:67;14980:2;14975:3;14916:67;:::i;:::-;14909:74;;14992:93;15081:3;14992:93;:::i;:::-;15110:2;15105:3;15101:12;15094:19;;14753:366;;;:::o;15125:::-;15267:3;15288:67;15352:2;15347:3;15288:67;:::i;:::-;15281:74;;15364:93;15453:3;15364:93;:::i;:::-;15482:2;15477:3;15473:12;15466:19;;15125:366;;;:::o;15497:::-;15639:3;15660:67;15724:2;15719:3;15660:67;:::i;:::-;15653:74;;15736:93;15825:3;15736:93;:::i;:::-;15854:2;15849:3;15845:12;15838:19;;15497:366;;;:::o;15869:::-;16011:3;16032:67;16096:2;16091:3;16032:67;:::i;:::-;16025:74;;16108:93;16197:3;16108:93;:::i;:::-;16226:2;16221:3;16217:12;16210:19;;15869:366;;;:::o;16241:118::-;16328:24;16346:5;16328:24;:::i;:::-;16323:3;16316:37;16241:118;;:::o;16365:112::-;16448:22;16464:5;16448:22;:::i;:::-;16443:3;16436:35;16365:112;;:::o;16483:379::-;16667:3;16689:147;16832:3;16689:147;:::i;:::-;16682:154;;16853:3;16846:10;;16483:379;;;:::o;16868:222::-;16961:4;16999:2;16988:9;16984:18;16976:26;;17012:71;17080:1;17069:9;17065:17;17056:6;17012:71;:::i;:::-;16868:222;;;;:::o;17096:332::-;17217:4;17255:2;17244:9;17240:18;17232:26;;17268:71;17336:1;17325:9;17321:17;17312:6;17268:71;:::i;:::-;17349:72;17417:2;17406:9;17402:18;17393:6;17349:72;:::i;:::-;17096:332;;;;;:::o;17434:::-;17555:4;17593:2;17582:9;17578:18;17570:26;;17606:71;17674:1;17663:9;17659:17;17650:6;17606:71;:::i;:::-;17687:72;17755:2;17744:9;17740:18;17731:6;17687:72;:::i;:::-;17434:332;;;;;:::o;17772:807::-;18021:4;18059:3;18048:9;18044:19;18036:27;;18073:71;18141:1;18130:9;18126:17;18117:6;18073:71;:::i;:::-;18154:72;18222:2;18211:9;18207:18;18198:6;18154:72;:::i;:::-;18236:80;18312:2;18301:9;18297:18;18288:6;18236:80;:::i;:::-;18326;18402:2;18391:9;18387:18;18378:6;18326:80;:::i;:::-;18416:73;18484:3;18473:9;18469:19;18460:6;18416:73;:::i;:::-;18499;18567:3;18556:9;18552:19;18543:6;18499:73;:::i;:::-;17772:807;;;;;;;;;:::o;18585:210::-;18672:4;18710:2;18699:9;18695:18;18687:26;;18723:65;18785:1;18774:9;18770:17;18761:6;18723:65;:::i;:::-;18585:210;;;;:::o;18801:313::-;18914:4;18952:2;18941:9;18937:18;18929:26;;19001:9;18995:4;18991:20;18987:1;18976:9;18972:17;18965:47;19029:78;19102:4;19093:6;19029:78;:::i;:::-;19021:86;;18801:313;;;;:::o;19120:419::-;19286:4;19324:2;19313:9;19309:18;19301:26;;19373:9;19367:4;19363:20;19359:1;19348:9;19344:17;19337:47;19401:131;19527:4;19401:131;:::i;:::-;19393:139;;19120:419;;;:::o;19545:::-;19711:4;19749:2;19738:9;19734:18;19726:26;;19798:9;19792:4;19788:20;19784:1;19773:9;19769:17;19762:47;19826:131;19952:4;19826:131;:::i;:::-;19818:139;;19545:419;;;:::o;19970:::-;20136:4;20174:2;20163:9;20159:18;20151:26;;20223:9;20217:4;20213:20;20209:1;20198:9;20194:17;20187:47;20251:131;20377:4;20251:131;:::i;:::-;20243:139;;19970:419;;;:::o;20395:::-;20561:4;20599:2;20588:9;20584:18;20576:26;;20648:9;20642:4;20638:20;20634:1;20623:9;20619:17;20612:47;20676:131;20802:4;20676:131;:::i;:::-;20668:139;;20395:419;;;:::o;20820:::-;20986:4;21024:2;21013:9;21009:18;21001:26;;21073:9;21067:4;21063:20;21059:1;21048:9;21044:17;21037:47;21101:131;21227:4;21101:131;:::i;:::-;21093:139;;20820:419;;;:::o;21245:::-;21411:4;21449:2;21438:9;21434:18;21426:26;;21498:9;21492:4;21488:20;21484:1;21473:9;21469:17;21462:47;21526:131;21652:4;21526:131;:::i;:::-;21518:139;;21245:419;;;:::o;21670:::-;21836:4;21874:2;21863:9;21859:18;21851:26;;21923:9;21917:4;21913:20;21909:1;21898:9;21894:17;21887:47;21951:131;22077:4;21951:131;:::i;:::-;21943:139;;21670:419;;;:::o;22095:::-;22261:4;22299:2;22288:9;22284:18;22276:26;;22348:9;22342:4;22338:20;22334:1;22323:9;22319:17;22312:47;22376:131;22502:4;22376:131;:::i;:::-;22368:139;;22095:419;;;:::o;22520:::-;22686:4;22724:2;22713:9;22709:18;22701:26;;22773:9;22767:4;22763:20;22759:1;22748:9;22744:17;22737:47;22801:131;22927:4;22801:131;:::i;:::-;22793:139;;22520:419;;;:::o;22945:::-;23111:4;23149:2;23138:9;23134:18;23126:26;;23198:9;23192:4;23188:20;23184:1;23173:9;23169:17;23162:47;23226:131;23352:4;23226:131;:::i;:::-;23218:139;;22945:419;;;:::o;23370:::-;23536:4;23574:2;23563:9;23559:18;23551:26;;23623:9;23617:4;23613:20;23609:1;23598:9;23594:17;23587:47;23651:131;23777:4;23651:131;:::i;:::-;23643:139;;23370:419;;;:::o;23795:::-;23961:4;23999:2;23988:9;23984:18;23976:26;;24048:9;24042:4;24038:20;24034:1;24023:9;24019:17;24012:47;24076:131;24202:4;24076:131;:::i;:::-;24068:139;;23795:419;;;:::o;24220:::-;24386:4;24424:2;24413:9;24409:18;24401:26;;24473:9;24467:4;24463:20;24459:1;24448:9;24444:17;24437:47;24501:131;24627:4;24501:131;:::i;:::-;24493:139;;24220:419;;;:::o;24645:::-;24811:4;24849:2;24838:9;24834:18;24826:26;;24898:9;24892:4;24888:20;24884:1;24873:9;24869:17;24862:47;24926:131;25052:4;24926:131;:::i;:::-;24918:139;;24645:419;;;:::o;25070:::-;25236:4;25274:2;25263:9;25259:18;25251:26;;25323:9;25317:4;25313:20;25309:1;25298:9;25294:17;25287:47;25351:131;25477:4;25351:131;:::i;:::-;25343:139;;25070:419;;;:::o;25495:::-;25661:4;25699:2;25688:9;25684:18;25676:26;;25748:9;25742:4;25738:20;25734:1;25723:9;25719:17;25712:47;25776:131;25902:4;25776:131;:::i;:::-;25768:139;;25495:419;;;:::o;25920:::-;26086:4;26124:2;26113:9;26109:18;26101:26;;26173:9;26167:4;26163:20;26159:1;26148:9;26144:17;26137:47;26201:131;26327:4;26201:131;:::i;:::-;26193:139;;25920:419;;;:::o;26345:222::-;26438:4;26476:2;26465:9;26461:18;26453:26;;26489:71;26557:1;26546:9;26542:17;26533:6;26489:71;:::i;:::-;26345:222;;;;:::o;26573:831::-;26836:4;26874:3;26863:9;26859:19;26851:27;;26888:71;26956:1;26945:9;26941:17;26932:6;26888:71;:::i;:::-;26969:80;27045:2;27034:9;27030:18;27021:6;26969:80;:::i;:::-;27096:9;27090:4;27086:20;27081:2;27070:9;27066:18;27059:48;27124:108;27227:4;27218:6;27124:108;:::i;:::-;27116:116;;27242:72;27310:2;27299:9;27295:18;27286:6;27242:72;:::i;:::-;27324:73;27392:3;27381:9;27377:19;27368:6;27324:73;:::i;:::-;26573:831;;;;;;;;:::o;27410:214::-;27499:4;27537:2;27526:9;27522:18;27514:26;;27550:67;27614:1;27603:9;27599:17;27590:6;27550:67;:::i;:::-;27410:214;;;;:::o;27711:132::-;27778:4;27801:3;27793:11;;27831:4;27826:3;27822:14;27814:22;;27711:132;;;:::o;27849:114::-;27916:6;27950:5;27944:12;27934:22;;27849:114;;;:::o;27969:99::-;28021:6;28055:5;28049:12;28039:22;;27969:99;;;:::o;28074:113::-;28144:4;28176;28171:3;28167:14;28159:22;;28074:113;;;:::o;28193:184::-;28292:11;28326:6;28321:3;28314:19;28366:4;28361:3;28357:14;28342:29;;28193:184;;;;:::o;28383:147::-;28484:11;28521:3;28506:18;;28383:147;;;;:::o;28536:169::-;28620:11;28654:6;28649:3;28642:19;28694:4;28689:3;28685:14;28670:29;;28536:169;;;;:::o;28711:305::-;28751:3;28770:20;28788:1;28770:20;:::i;:::-;28765:25;;28804:20;28822:1;28804:20;:::i;:::-;28799:25;;28958:1;28890:66;28886:74;28883:1;28880:81;28877:107;;;28964:18;;:::i;:::-;28877:107;29008:1;29005;29001:9;28994:16;;28711:305;;;;:::o;29022:185::-;29062:1;29079:20;29097:1;29079:20;:::i;:::-;29074:25;;29113:20;29131:1;29113:20;:::i;:::-;29108:25;;29152:1;29142:35;;29157:18;;:::i;:::-;29142:35;29199:1;29196;29192:9;29187:14;;29022:185;;;;:::o;29213:348::-;29253:7;29276:20;29294:1;29276:20;:::i;:::-;29271:25;;29310:20;29328:1;29310:20;:::i;:::-;29305:25;;29498:1;29430:66;29426:74;29423:1;29420:81;29415:1;29408:9;29401:17;29397:105;29394:131;;;29505:18;;:::i;:::-;29394:131;29553:1;29550;29546:9;29535:20;;29213:348;;;;:::o;29567:191::-;29607:4;29627:20;29645:1;29627:20;:::i;:::-;29622:25;;29661:20;29679:1;29661:20;:::i;:::-;29656:25;;29700:1;29697;29694:8;29691:34;;;29705:18;;:::i;:::-;29691:34;29750:1;29747;29743:9;29735:17;;29567:191;;;;:::o;29764:96::-;29801:7;29830:24;29848:5;29830:24;:::i;:::-;29819:35;;29764:96;;;:::o;29866:104::-;29911:7;29940:24;29958:5;29940:24;:::i;:::-;29929:35;;29866:104;;;:::o;29976:90::-;30010:7;30053:5;30046:13;30039:21;30028:32;;29976:90;;;:::o;30072:126::-;30109:7;30149:42;30142:5;30138:54;30127:65;;30072:126;;;:::o;30204:77::-;30241:7;30270:5;30259:16;;30204:77;;;:::o;30287:86::-;30322:7;30362:4;30355:5;30351:16;30340:27;;30287:86;;;:::o;30379:121::-;30437:9;30470:24;30488:5;30470:24;:::i;:::-;30457:37;;30379:121;;;:::o;30506:307::-;30574:1;30584:113;30598:6;30595:1;30592:13;30584:113;;;30683:1;30678:3;30674:11;30668:18;30664:1;30659:3;30655:11;30648:39;30620:2;30617:1;30613:10;30608:15;;30584:113;;;30715:6;30712:1;30709:13;30706:101;;;30795:1;30786:6;30781:3;30777:16;30770:27;30706:101;30555:258;30506:307;;;:::o;30819:233::-;30858:3;30881:24;30899:5;30881:24;:::i;:::-;30872:33;;30927:66;30920:5;30917:77;30914:103;;;30997:18;;:::i;:::-;30914:103;31044:1;31037:5;31033:13;31026:20;;30819:233;;;:::o;31058:180::-;31106:77;31103:1;31096:88;31203:4;31200:1;31193:15;31227:4;31224:1;31217:15;31244:180;31292:77;31289:1;31282:88;31389:4;31386:1;31379:15;31413:4;31410:1;31403:15;31430:180;31478:77;31475:1;31468:88;31575:4;31572:1;31565:15;31599:4;31596:1;31589:15;31616:180;31664:77;31661:1;31654:88;31761:4;31758:1;31751:15;31785:4;31782:1;31775:15;31802:117;31911:1;31908;31901:12;31925:117;32034:1;32031;32024:12;32048:117;32157:1;32154;32147:12;32171:117;32280:1;32277;32270:12;32294:117;32403:1;32400;32393:12;32417:102;32458:6;32509:2;32505:7;32500:2;32493:5;32489:14;32485:28;32475:38;;32417:102;;;:::o;32525:222::-;32665:34;32661:1;32653:6;32649:14;32642:58;32734:5;32729:2;32721:6;32717:15;32710:30;32525:222;:::o;32753:229::-;32893:34;32889:1;32881:6;32877:14;32870:58;32962:12;32957:2;32949:6;32945:15;32938:37;32753:229;:::o;32988:221::-;33128:34;33124:1;33116:6;33112:14;33105:58;33197:4;33192:2;33184:6;33180:15;33173:29;32988:221;:::o;33215:177::-;33355:29;33351:1;33343:6;33339:14;33332:53;33215:177;:::o;33398:178::-;33538:30;33534:1;33526:6;33522:14;33515:54;33398:178;:::o;33582:244::-;33722:34;33718:1;33710:6;33706:14;33699:58;33791:27;33786:2;33778:6;33774:15;33767:52;33582:244;:::o;33832:173::-;33972:25;33968:1;33960:6;33956:14;33949:49;33832:173;:::o;34011:182::-;34151:34;34147:1;34139:6;34135:14;34128:58;34011:182;:::o;34199:220::-;34339:34;34335:1;34327:6;34323:14;34316:58;34408:3;34403:2;34395:6;34391:15;34384:28;34199:220;:::o;34425:182::-;34565:34;34561:1;34553:6;34549:14;34542:58;34425:182;:::o;34613:228::-;34753:34;34749:1;34741:6;34737:14;34730:58;34822:11;34817:2;34809:6;34805:15;34798:36;34613:228;:::o;34847:224::-;34987:34;34983:1;34975:6;34971:14;34964:58;35056:7;35051:2;35043:6;35039:15;35032:32;34847:224;:::o;35077:222::-;35217:34;35213:1;35205:6;35201:14;35194:58;35286:5;35281:2;35273:6;35269:15;35262:30;35077:222;:::o;35305:114::-;;:::o;35425:223::-;35565:34;35561:1;35553:6;35549:14;35542:58;35634:6;35629:2;35621:6;35617:15;35610:31;35425:223;:::o;35654:173::-;35794:25;35790:1;35782:6;35778:14;35771:49;35654:173;:::o;35833:177::-;35973:29;35969:1;35961:6;35957:14;35950:53;35833:177;:::o;36016:174::-;36156:26;36152:1;36144:6;36140:14;36133:50;36016:174;:::o;36196:122::-;36269:24;36287:5;36269:24;:::i;:::-;36262:5;36259:35;36249:63;;36308:1;36305;36298:12;36249:63;36196:122;:::o;36324:138::-;36405:32;36431:5;36405:32;:::i;:::-;36398:5;36395:43;36385:71;;36452:1;36449;36442:12;36385:71;36324:138;:::o;36468:116::-;36538:21;36553:5;36538:21;:::i;:::-;36531:5;36528:32;36518:60;;36574:1;36571;36564:12;36518:60;36468:116;:::o;36590:122::-;36663:24;36681:5;36663:24;:::i;:::-;36656:5;36653:35;36643:63;;36702:1;36699;36692:12;36643:63;36590:122;:::o

Swarm Source

ipfs://08c40e2575a7c8c80b62deeb13fb42b4880ec56da507c572ca6e8ef2db029514
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.