ETH Price: $2,493.59 (+3.24%)

Token

Hikashu (HIKA)
 

Overview

Max Total Supply

1,000,000,000,000 HIKA

Holders

39

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
15,360,000,000 HIKA

Value
$0.00
0x53924b5cd3f330c5e85668756566a57e86a1447a
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:
Hikashu

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-01-11
*/

pragma solidity ^0.8.4;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

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

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

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

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

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

}

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

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

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

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

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

}  

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

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

contract Hikashu 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 bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1e12 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    uint256 private _feeAddr1 = 0;
    uint256 private _feeAddr2 = 4;
    address payable private _feeAddrWallet1;
    address payable private _feeAddrWallet2;
    
    string private constant _name = "Hikashu";
    string private constant _symbol = "HIKA";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = _tTotal;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        _feeAddrWallet1 = payable(0x31Bceab004edb9cacf6C531f50cB2CA78Ff682Dc);
        _feeAddrWallet2 = payable(0x31Bceab004edb9cacf6C531f50cB2CA78Ff682Dc);
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet1] = true;
        _isExcludedFromFee[_feeAddrWallet2] = true;
        emit Transfer(address(0x0000000000000000000000000000000000000000), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        if (from != owner() && to != owner()) {
            require(!bots[to] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            
            
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
		
        _tokenTransfer(from,to,amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
        
    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet1.transfer(amount.div(2));
        _feeAddrWallet2.transfer(amount.div(2));
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;
        _maxTxAmount = 1e12 * 10**9;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    function setBots(address[] memory bots_) external {
     require(_msgSender() == _feeAddrWallet1);
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    
    function delBot(address notbot) external {
       require(_msgSender() == _feeAddrWallet1);
       bots[notbot] = false;
    }
        
    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

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

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

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

    receive() external payable {}
    
    function manualswap() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

        function setfee(uint256 fee1, uint256 fee2) external onlyOwner(){
            _feeAddr1 = fee1;
            _feeAddr2 =  fee2;    

        }
    

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

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

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

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

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fee1","type":"uint256"},{"internalType":"uint256","name":"fee2","type":"uint256"}],"name":"setfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052683635c9adc5dea000006000196200001d919062000531565b6000196200002c9190620004ec565b6008556000600a556004600b556000600f60156101000a81548160ff0219169083151502179055506000600f60166101000a81548160ff0219169083151502179055506000600f60176101000a81548160ff021916908315150217905550683635c9adc5dea00000601055348015620000a457600080fd5b506000620000b76200048d60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3507331bceab004edb9cacf6c531f50cb2ca78ff682dc600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507331bceab004edb9cacf6c531f50cb2ca78ff682dc600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060085460026000620002166200048d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600560006200026a6200049560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620004176200048d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea000006040516200047f9190620004cf565b60405180910390a3620005c7565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620004c98162000527565b82525050565b6000602082019050620004e66000830184620004be565b92915050565b6000620004f98262000527565b9150620005068362000527565b9250828210156200051c576200051b62000569565b5b828203905092915050565b6000819050919050565b60006200053e8262000527565b91506200054b8362000527565b9250826200055e576200055d62000598565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b61330780620005d76000396000f3fe60806040526004361061010d5760003560e01c806370a0823111610095578063a9059cbb11610064578063a9059cbb14610350578063b515566a1461038d578063c3c8cd80146103b6578063c9567bf9146103cd578063dd62ed3e146103e457610114565b806370a08231146102a6578063715018a6146102e35780638da5cb5b146102fa57806395d89b411461032557610114565b806323b872dd116100dc57806323b872dd146101d5578063273123b714610212578063313ce5671461023b5780635932ead1146102665780636fc3eaec1461028f57610114565b806306fdde0314610119578063095ea7b31461014457806318160ddd146101815780631894be52146101ac57610114565b3661011457005b600080fd5b34801561012557600080fd5b5061012e610421565b60405161013b9190612a61565b60405180910390f35b34801561015057600080fd5b5061016b600480360381019061016691906125b7565b61045e565b6040516101789190612a46565b60405180910390f35b34801561018d57600080fd5b5061019661047c565b6040516101a39190612bc3565b60405180910390f35b3480156101b857600080fd5b506101d360048036038101906101ce9190612686565b61048d565b005b3480156101e157600080fd5b506101fc60048036038101906101f79190612568565b610534565b6040516102099190612a46565b60405180910390f35b34801561021e57600080fd5b50610239600480360381019061023491906124da565b61060d565b005b34801561024757600080fd5b506102506106c9565b60405161025d9190612c38565b60405180910390f35b34801561027257600080fd5b5061028d60048036038101906102889190612634565b6106d2565b005b34801561029b57600080fd5b506102a4610784565b005b3480156102b257600080fd5b506102cd60048036038101906102c891906124da565b6107f6565b6040516102da9190612bc3565b60405180910390f35b3480156102ef57600080fd5b506102f8610847565b005b34801561030657600080fd5b5061030f61099a565b60405161031c9190612978565b60405180910390f35b34801561033157600080fd5b5061033a6109c3565b6040516103479190612a61565b60405180910390f35b34801561035c57600080fd5b50610377600480360381019061037291906125b7565b610a00565b6040516103849190612a46565b60405180910390f35b34801561039957600080fd5b506103b460048036038101906103af91906125f3565b610a1e565b005b3480156103c257600080fd5b506103cb610b3a565b005b3480156103d957600080fd5b506103e2610bb4565b005b3480156103f057600080fd5b5061040b6004803603810190610406919061252c565b611111565b6040516104189190612bc3565b60405180910390f35b60606040518060400160405280600781526020017f48696b6173687500000000000000000000000000000000000000000000000000815250905090565b600061047261046b611198565b84846111a0565b6001905092915050565b6000683635c9adc5dea00000905090565b610495611198565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610522576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161051990612b23565b60405180910390fd5b81600a8190555080600b819055505050565b600061054184848461136b565b6106028461054d611198565b6105fd856040518060600160405280602881526020016132aa60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105b3611198565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118499092919063ffffffff16565b6111a0565b600190509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661064e611198565b73ffffffffffffffffffffffffffffffffffffffff161461066e57600080fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b6106da611198565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610767576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075e90612b23565b60405180910390fd5b80600f60176101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107c5611198565b73ffffffffffffffffffffffffffffffffffffffff16146107e557600080fd5b60004790506107f3816118ad565b50565b6000610840600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119a8565b9050919050565b61084f611198565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d390612b23565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f48494b4100000000000000000000000000000000000000000000000000000000815250905090565b6000610a14610a0d611198565b848461136b565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a5f611198565b73ffffffffffffffffffffffffffffffffffffffff1614610a7f57600080fd5b60005b8151811015610b3657600160066000848481518110610aca577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610b2e90612ed9565b915050610a82565b5050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b7b611198565b73ffffffffffffffffffffffffffffffffffffffff1614610b9b57600080fd5b6000610ba6306107f6565b9050610bb181611a16565b50565b610bbc611198565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4090612b23565b60405180910390fd5b600f60149054906101000a900460ff1615610c99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9090612ba3565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d2930600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea000006111a0565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610d6f57600080fd5b505afa158015610d83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da79190612503565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610e0957600080fd5b505afa158015610e1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e419190612503565b6040518363ffffffff1660e01b8152600401610e5e929190612993565b602060405180830381600087803b158015610e7857600080fd5b505af1158015610e8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb09190612503565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f39306107f6565b600080610f4461099a565b426040518863ffffffff1660e01b8152600401610f66969594939291906129e5565b6060604051808303818588803b158015610f7f57600080fd5b505af1158015610f93573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610fb891906126c2565b5050506001600f60166101000a81548160ff0219169083151502179055506001600f60176101000a81548160ff021916908315150217905550683635c9adc5dea000006010819055506001600f60146101000a81548160ff021916908315150217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016110bb9291906129bc565b602060405180830381600087803b1580156110d557600080fd5b505af11580156110e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110d919061265d565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611210576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120790612b83565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611280576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127790612ac3565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161135e9190612bc3565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d290612b63565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561144b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144290612a83565b60405180910390fd5b6000811161148e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148590612b43565b60405180910390fd5b61149661099a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561150457506114d461099a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561183957600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115ad5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6115b657600080fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116615750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156116b75750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156116cf5750600f60179054906101000a900460ff165b1561177f576010548111156116e357600080fd5b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061172e57600080fd5b601e4261173b9190612cf9565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600061178a306107f6565b9050600f60159054906101000a900460ff161580156117f75750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561180f5750600f60169054906101000a900460ff165b156118375761181d81611a16565b6000479050600081111561183557611834476118ad565b5b505b505b611844838383611d10565b505050565b6000838311158290611891576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118889190612a61565b60405180910390fd5b50600083856118a09190612dda565b9050809150509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6118fd600284611d2090919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611928573d6000803e3d6000fd5b50600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611979600284611d2090919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156119a4573d6000803e3d6000fd5b5050565b60006008548211156119ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e690612aa3565b60405180910390fd5b60006119f9611d6a565b9050611a0e8184611d2090919063ffffffff16565b915050919050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611a74577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611aa25781602001602082028036833780820191505090505b5090503081600081518110611ae0577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611b8257600080fd5b505afa158015611b96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bba9190612503565b81600181518110611bf4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611c5b30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111a0565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611cbf959493929190612bde565b600060405180830381600087803b158015611cd957600080fd5b505af1158015611ced573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b611d1b838383611d95565b505050565b6000611d6283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f60565b905092915050565b6000806000611d77611fc3565b91509150611d8e8183611d2090919063ffffffff16565b9250505090565b600080600080600080611da787612025565b955095509550955095509550611e0586600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461208d90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e9a85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120d790919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ee681612135565b611ef084836121f2565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611f4d9190612bc3565b60405180910390a3505050505050505050565b60008083118290611fa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9e9190612a61565b60405180910390fd5b5060008385611fb69190612d4f565b9050809150509392505050565b600080600060085490506000683635c9adc5dea000009050611ff9683635c9adc5dea00000600854611d2090919063ffffffff16565b82101561201857600854683635c9adc5dea00000935093505050612021565b81819350935050505b9091565b60008060008060008060008060006120428a600a54600b5461222c565b9250925092506000612052611d6a565b905060008060006120658e8787876122c2565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006120cf83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611849565b905092915050565b60008082846120e69190612cf9565b90508381101561212b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212290612ae3565b60405180910390fd5b8091505092915050565b600061213f611d6a565b90506000612156828461234b90919063ffffffff16565b90506121aa81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120d790919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6122078260085461208d90919063ffffffff16565b600881905550612222816009546120d790919063ffffffff16565b6009819055505050565b600080600080612258606461224a888a61234b90919063ffffffff16565b611d2090919063ffffffff16565b905060006122826064612274888b61234b90919063ffffffff16565b611d2090919063ffffffff16565b905060006122ab8261229d858c61208d90919063ffffffff16565b61208d90919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806122db858961234b90919063ffffffff16565b905060006122f2868961234b90919063ffffffff16565b90506000612309878961234b90919063ffffffff16565b9050600061233282612324858761208d90919063ffffffff16565b61208d90919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561235e57600090506123c0565b6000828461236c9190612d80565b905082848261237b9190612d4f565b146123bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b290612b03565b60405180910390fd5b809150505b92915050565b60006123d96123d484612c78565b612c53565b905080838252602082019050828560208602820111156123f857600080fd5b60005b85811015612428578161240e8882612432565b8452602084019350602083019250506001810190506123fb565b5050509392505050565b60008135905061244181613264565b92915050565b60008151905061245681613264565b92915050565b600082601f83011261246d57600080fd5b813561247d8482602086016123c6565b91505092915050565b6000813590506124958161327b565b92915050565b6000815190506124aa8161327b565b92915050565b6000813590506124bf81613292565b92915050565b6000815190506124d481613292565b92915050565b6000602082840312156124ec57600080fd5b60006124fa84828501612432565b91505092915050565b60006020828403121561251557600080fd5b600061252384828501612447565b91505092915050565b6000806040838503121561253f57600080fd5b600061254d85828601612432565b925050602061255e85828601612432565b9150509250929050565b60008060006060848603121561257d57600080fd5b600061258b86828701612432565b935050602061259c86828701612432565b92505060406125ad868287016124b0565b9150509250925092565b600080604083850312156125ca57600080fd5b60006125d885828601612432565b92505060206125e9858286016124b0565b9150509250929050565b60006020828403121561260557600080fd5b600082013567ffffffffffffffff81111561261f57600080fd5b61262b8482850161245c565b91505092915050565b60006020828403121561264657600080fd5b600061265484828501612486565b91505092915050565b60006020828403121561266f57600080fd5b600061267d8482850161249b565b91505092915050565b6000806040838503121561269957600080fd5b60006126a7858286016124b0565b92505060206126b8858286016124b0565b9150509250929050565b6000806000606084860312156126d757600080fd5b60006126e5868287016124c5565b93505060206126f6868287016124c5565b9250506040612707868287016124c5565b9150509250925092565b600061271d8383612729565b60208301905092915050565b61273281612e0e565b82525050565b61274181612e0e565b82525050565b600061275282612cb4565b61275c8185612cd7565b935061276783612ca4565b8060005b8381101561279857815161277f8882612711565b975061278a83612cca565b92505060018101905061276b565b5085935050505092915050565b6127ae81612e20565b82525050565b6127bd81612e63565b82525050565b60006127ce82612cbf565b6127d88185612ce8565b93506127e8818560208601612e75565b6127f181612faf565b840191505092915050565b6000612809602383612ce8565b915061281482612fc0565b604082019050919050565b600061282c602a83612ce8565b91506128378261300f565b604082019050919050565b600061284f602283612ce8565b915061285a8261305e565b604082019050919050565b6000612872601b83612ce8565b915061287d826130ad565b602082019050919050565b6000612895602183612ce8565b91506128a0826130d6565b604082019050919050565b60006128b8602083612ce8565b91506128c382613125565b602082019050919050565b60006128db602983612ce8565b91506128e68261314e565b604082019050919050565b60006128fe602583612ce8565b91506129098261319d565b604082019050919050565b6000612921602483612ce8565b915061292c826131ec565b604082019050919050565b6000612944601783612ce8565b915061294f8261323b565b602082019050919050565b61296381612e4c565b82525050565b61297281612e56565b82525050565b600060208201905061298d6000830184612738565b92915050565b60006040820190506129a86000830185612738565b6129b56020830184612738565b9392505050565b60006040820190506129d16000830185612738565b6129de602083018461295a565b9392505050565b600060c0820190506129fa6000830189612738565b612a07602083018861295a565b612a1460408301876127b4565b612a2160608301866127b4565b612a2e6080830185612738565b612a3b60a083018461295a565b979650505050505050565b6000602082019050612a5b60008301846127a5565b92915050565b60006020820190508181036000830152612a7b81846127c3565b905092915050565b60006020820190508181036000830152612a9c816127fc565b9050919050565b60006020820190508181036000830152612abc8161281f565b9050919050565b60006020820190508181036000830152612adc81612842565b9050919050565b60006020820190508181036000830152612afc81612865565b9050919050565b60006020820190508181036000830152612b1c81612888565b9050919050565b60006020820190508181036000830152612b3c816128ab565b9050919050565b60006020820190508181036000830152612b5c816128ce565b9050919050565b60006020820190508181036000830152612b7c816128f1565b9050919050565b60006020820190508181036000830152612b9c81612914565b9050919050565b60006020820190508181036000830152612bbc81612937565b9050919050565b6000602082019050612bd8600083018461295a565b92915050565b600060a082019050612bf3600083018861295a565b612c0060208301876127b4565b8181036040830152612c128186612747565b9050612c216060830185612738565b612c2e608083018461295a565b9695505050505050565b6000602082019050612c4d6000830184612969565b92915050565b6000612c5d612c6e565b9050612c698282612ea8565b919050565b6000604051905090565b600067ffffffffffffffff821115612c9357612c92612f80565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612d0482612e4c565b9150612d0f83612e4c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612d4457612d43612f22565b5b828201905092915050565b6000612d5a82612e4c565b9150612d6583612e4c565b925082612d7557612d74612f51565b5b828204905092915050565b6000612d8b82612e4c565b9150612d9683612e4c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612dcf57612dce612f22565b5b828202905092915050565b6000612de582612e4c565b9150612df083612e4c565b925082821015612e0357612e02612f22565b5b828203905092915050565b6000612e1982612e2c565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612e6e82612e4c565b9050919050565b60005b83811015612e93578082015181840152602081019050612e78565b83811115612ea2576000848401525b50505050565b612eb182612faf565b810181811067ffffffffffffffff82111715612ed057612ecf612f80565b5b80604052505050565b6000612ee482612e4c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612f1757612f16612f22565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b61326d81612e0e565b811461327857600080fd5b50565b61328481612e20565b811461328f57600080fd5b50565b61329b81612e4c565b81146132a657600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201daceb6c235590d97c2c67e1286b70a228718d05ac66661c17409758431f73f464736f6c63430008040033

Deployed Bytecode

0x60806040526004361061010d5760003560e01c806370a0823111610095578063a9059cbb11610064578063a9059cbb14610350578063b515566a1461038d578063c3c8cd80146103b6578063c9567bf9146103cd578063dd62ed3e146103e457610114565b806370a08231146102a6578063715018a6146102e35780638da5cb5b146102fa57806395d89b411461032557610114565b806323b872dd116100dc57806323b872dd146101d5578063273123b714610212578063313ce5671461023b5780635932ead1146102665780636fc3eaec1461028f57610114565b806306fdde0314610119578063095ea7b31461014457806318160ddd146101815780631894be52146101ac57610114565b3661011457005b600080fd5b34801561012557600080fd5b5061012e610421565b60405161013b9190612a61565b60405180910390f35b34801561015057600080fd5b5061016b600480360381019061016691906125b7565b61045e565b6040516101789190612a46565b60405180910390f35b34801561018d57600080fd5b5061019661047c565b6040516101a39190612bc3565b60405180910390f35b3480156101b857600080fd5b506101d360048036038101906101ce9190612686565b61048d565b005b3480156101e157600080fd5b506101fc60048036038101906101f79190612568565b610534565b6040516102099190612a46565b60405180910390f35b34801561021e57600080fd5b50610239600480360381019061023491906124da565b61060d565b005b34801561024757600080fd5b506102506106c9565b60405161025d9190612c38565b60405180910390f35b34801561027257600080fd5b5061028d60048036038101906102889190612634565b6106d2565b005b34801561029b57600080fd5b506102a4610784565b005b3480156102b257600080fd5b506102cd60048036038101906102c891906124da565b6107f6565b6040516102da9190612bc3565b60405180910390f35b3480156102ef57600080fd5b506102f8610847565b005b34801561030657600080fd5b5061030f61099a565b60405161031c9190612978565b60405180910390f35b34801561033157600080fd5b5061033a6109c3565b6040516103479190612a61565b60405180910390f35b34801561035c57600080fd5b50610377600480360381019061037291906125b7565b610a00565b6040516103849190612a46565b60405180910390f35b34801561039957600080fd5b506103b460048036038101906103af91906125f3565b610a1e565b005b3480156103c257600080fd5b506103cb610b3a565b005b3480156103d957600080fd5b506103e2610bb4565b005b3480156103f057600080fd5b5061040b6004803603810190610406919061252c565b611111565b6040516104189190612bc3565b60405180910390f35b60606040518060400160405280600781526020017f48696b6173687500000000000000000000000000000000000000000000000000815250905090565b600061047261046b611198565b84846111a0565b6001905092915050565b6000683635c9adc5dea00000905090565b610495611198565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610522576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161051990612b23565b60405180910390fd5b81600a8190555080600b819055505050565b600061054184848461136b565b6106028461054d611198565b6105fd856040518060600160405280602881526020016132aa60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105b3611198565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118499092919063ffffffff16565b6111a0565b600190509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661064e611198565b73ffffffffffffffffffffffffffffffffffffffff161461066e57600080fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b6106da611198565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610767576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075e90612b23565b60405180910390fd5b80600f60176101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107c5611198565b73ffffffffffffffffffffffffffffffffffffffff16146107e557600080fd5b60004790506107f3816118ad565b50565b6000610840600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119a8565b9050919050565b61084f611198565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d390612b23565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f48494b4100000000000000000000000000000000000000000000000000000000815250905090565b6000610a14610a0d611198565b848461136b565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a5f611198565b73ffffffffffffffffffffffffffffffffffffffff1614610a7f57600080fd5b60005b8151811015610b3657600160066000848481518110610aca577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610b2e90612ed9565b915050610a82565b5050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b7b611198565b73ffffffffffffffffffffffffffffffffffffffff1614610b9b57600080fd5b6000610ba6306107f6565b9050610bb181611a16565b50565b610bbc611198565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4090612b23565b60405180910390fd5b600f60149054906101000a900460ff1615610c99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9090612ba3565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d2930600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea000006111a0565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610d6f57600080fd5b505afa158015610d83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da79190612503565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610e0957600080fd5b505afa158015610e1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e419190612503565b6040518363ffffffff1660e01b8152600401610e5e929190612993565b602060405180830381600087803b158015610e7857600080fd5b505af1158015610e8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb09190612503565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f39306107f6565b600080610f4461099a565b426040518863ffffffff1660e01b8152600401610f66969594939291906129e5565b6060604051808303818588803b158015610f7f57600080fd5b505af1158015610f93573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610fb891906126c2565b5050506001600f60166101000a81548160ff0219169083151502179055506001600f60176101000a81548160ff021916908315150217905550683635c9adc5dea000006010819055506001600f60146101000a81548160ff021916908315150217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016110bb9291906129bc565b602060405180830381600087803b1580156110d557600080fd5b505af11580156110e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110d919061265d565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611210576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120790612b83565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611280576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127790612ac3565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161135e9190612bc3565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d290612b63565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561144b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144290612a83565b60405180910390fd5b6000811161148e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148590612b43565b60405180910390fd5b61149661099a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561150457506114d461099a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561183957600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115ad5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6115b657600080fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116615750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156116b75750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156116cf5750600f60179054906101000a900460ff165b1561177f576010548111156116e357600080fd5b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061172e57600080fd5b601e4261173b9190612cf9565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600061178a306107f6565b9050600f60159054906101000a900460ff161580156117f75750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561180f5750600f60169054906101000a900460ff165b156118375761181d81611a16565b6000479050600081111561183557611834476118ad565b5b505b505b611844838383611d10565b505050565b6000838311158290611891576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118889190612a61565b60405180910390fd5b50600083856118a09190612dda565b9050809150509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6118fd600284611d2090919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611928573d6000803e3d6000fd5b50600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611979600284611d2090919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156119a4573d6000803e3d6000fd5b5050565b60006008548211156119ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e690612aa3565b60405180910390fd5b60006119f9611d6a565b9050611a0e8184611d2090919063ffffffff16565b915050919050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611a74577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611aa25781602001602082028036833780820191505090505b5090503081600081518110611ae0577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611b8257600080fd5b505afa158015611b96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bba9190612503565b81600181518110611bf4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611c5b30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111a0565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611cbf959493929190612bde565b600060405180830381600087803b158015611cd957600080fd5b505af1158015611ced573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b611d1b838383611d95565b505050565b6000611d6283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f60565b905092915050565b6000806000611d77611fc3565b91509150611d8e8183611d2090919063ffffffff16565b9250505090565b600080600080600080611da787612025565b955095509550955095509550611e0586600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461208d90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e9a85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120d790919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ee681612135565b611ef084836121f2565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611f4d9190612bc3565b60405180910390a3505050505050505050565b60008083118290611fa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9e9190612a61565b60405180910390fd5b5060008385611fb69190612d4f565b9050809150509392505050565b600080600060085490506000683635c9adc5dea000009050611ff9683635c9adc5dea00000600854611d2090919063ffffffff16565b82101561201857600854683635c9adc5dea00000935093505050612021565b81819350935050505b9091565b60008060008060008060008060006120428a600a54600b5461222c565b9250925092506000612052611d6a565b905060008060006120658e8787876122c2565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006120cf83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611849565b905092915050565b60008082846120e69190612cf9565b90508381101561212b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212290612ae3565b60405180910390fd5b8091505092915050565b600061213f611d6a565b90506000612156828461234b90919063ffffffff16565b90506121aa81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120d790919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6122078260085461208d90919063ffffffff16565b600881905550612222816009546120d790919063ffffffff16565b6009819055505050565b600080600080612258606461224a888a61234b90919063ffffffff16565b611d2090919063ffffffff16565b905060006122826064612274888b61234b90919063ffffffff16565b611d2090919063ffffffff16565b905060006122ab8261229d858c61208d90919063ffffffff16565b61208d90919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806122db858961234b90919063ffffffff16565b905060006122f2868961234b90919063ffffffff16565b90506000612309878961234b90919063ffffffff16565b9050600061233282612324858761208d90919063ffffffff16565b61208d90919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561235e57600090506123c0565b6000828461236c9190612d80565b905082848261237b9190612d4f565b146123bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b290612b03565b60405180910390fd5b809150505b92915050565b60006123d96123d484612c78565b612c53565b905080838252602082019050828560208602820111156123f857600080fd5b60005b85811015612428578161240e8882612432565b8452602084019350602083019250506001810190506123fb565b5050509392505050565b60008135905061244181613264565b92915050565b60008151905061245681613264565b92915050565b600082601f83011261246d57600080fd5b813561247d8482602086016123c6565b91505092915050565b6000813590506124958161327b565b92915050565b6000815190506124aa8161327b565b92915050565b6000813590506124bf81613292565b92915050565b6000815190506124d481613292565b92915050565b6000602082840312156124ec57600080fd5b60006124fa84828501612432565b91505092915050565b60006020828403121561251557600080fd5b600061252384828501612447565b91505092915050565b6000806040838503121561253f57600080fd5b600061254d85828601612432565b925050602061255e85828601612432565b9150509250929050565b60008060006060848603121561257d57600080fd5b600061258b86828701612432565b935050602061259c86828701612432565b92505060406125ad868287016124b0565b9150509250925092565b600080604083850312156125ca57600080fd5b60006125d885828601612432565b92505060206125e9858286016124b0565b9150509250929050565b60006020828403121561260557600080fd5b600082013567ffffffffffffffff81111561261f57600080fd5b61262b8482850161245c565b91505092915050565b60006020828403121561264657600080fd5b600061265484828501612486565b91505092915050565b60006020828403121561266f57600080fd5b600061267d8482850161249b565b91505092915050565b6000806040838503121561269957600080fd5b60006126a7858286016124b0565b92505060206126b8858286016124b0565b9150509250929050565b6000806000606084860312156126d757600080fd5b60006126e5868287016124c5565b93505060206126f6868287016124c5565b9250506040612707868287016124c5565b9150509250925092565b600061271d8383612729565b60208301905092915050565b61273281612e0e565b82525050565b61274181612e0e565b82525050565b600061275282612cb4565b61275c8185612cd7565b935061276783612ca4565b8060005b8381101561279857815161277f8882612711565b975061278a83612cca565b92505060018101905061276b565b5085935050505092915050565b6127ae81612e20565b82525050565b6127bd81612e63565b82525050565b60006127ce82612cbf565b6127d88185612ce8565b93506127e8818560208601612e75565b6127f181612faf565b840191505092915050565b6000612809602383612ce8565b915061281482612fc0565b604082019050919050565b600061282c602a83612ce8565b91506128378261300f565b604082019050919050565b600061284f602283612ce8565b915061285a8261305e565b604082019050919050565b6000612872601b83612ce8565b915061287d826130ad565b602082019050919050565b6000612895602183612ce8565b91506128a0826130d6565b604082019050919050565b60006128b8602083612ce8565b91506128c382613125565b602082019050919050565b60006128db602983612ce8565b91506128e68261314e565b604082019050919050565b60006128fe602583612ce8565b91506129098261319d565b604082019050919050565b6000612921602483612ce8565b915061292c826131ec565b604082019050919050565b6000612944601783612ce8565b915061294f8261323b565b602082019050919050565b61296381612e4c565b82525050565b61297281612e56565b82525050565b600060208201905061298d6000830184612738565b92915050565b60006040820190506129a86000830185612738565b6129b56020830184612738565b9392505050565b60006040820190506129d16000830185612738565b6129de602083018461295a565b9392505050565b600060c0820190506129fa6000830189612738565b612a07602083018861295a565b612a1460408301876127b4565b612a2160608301866127b4565b612a2e6080830185612738565b612a3b60a083018461295a565b979650505050505050565b6000602082019050612a5b60008301846127a5565b92915050565b60006020820190508181036000830152612a7b81846127c3565b905092915050565b60006020820190508181036000830152612a9c816127fc565b9050919050565b60006020820190508181036000830152612abc8161281f565b9050919050565b60006020820190508181036000830152612adc81612842565b9050919050565b60006020820190508181036000830152612afc81612865565b9050919050565b60006020820190508181036000830152612b1c81612888565b9050919050565b60006020820190508181036000830152612b3c816128ab565b9050919050565b60006020820190508181036000830152612b5c816128ce565b9050919050565b60006020820190508181036000830152612b7c816128f1565b9050919050565b60006020820190508181036000830152612b9c81612914565b9050919050565b60006020820190508181036000830152612bbc81612937565b9050919050565b6000602082019050612bd8600083018461295a565b92915050565b600060a082019050612bf3600083018861295a565b612c0060208301876127b4565b8181036040830152612c128186612747565b9050612c216060830185612738565b612c2e608083018461295a565b9695505050505050565b6000602082019050612c4d6000830184612969565b92915050565b6000612c5d612c6e565b9050612c698282612ea8565b919050565b6000604051905090565b600067ffffffffffffffff821115612c9357612c92612f80565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612d0482612e4c565b9150612d0f83612e4c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612d4457612d43612f22565b5b828201905092915050565b6000612d5a82612e4c565b9150612d6583612e4c565b925082612d7557612d74612f51565b5b828204905092915050565b6000612d8b82612e4c565b9150612d9683612e4c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612dcf57612dce612f22565b5b828202905092915050565b6000612de582612e4c565b9150612df083612e4c565b925082821015612e0357612e02612f22565b5b828203905092915050565b6000612e1982612e2c565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612e6e82612e4c565b9050919050565b60005b83811015612e93578082015181840152602081019050612e78565b83811115612ea2576000848401525b50505050565b612eb182612faf565b810181811067ffffffffffffffff82111715612ed057612ecf612f80565b5b80604052505050565b6000612ee482612e4c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612f1757612f16612f22565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b61326d81612e0e565b811461327857600080fd5b50565b61328481612e20565b811461328f57600080fd5b50565b61329b81612e4c565b81146132a657600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201daceb6c235590d97c2c67e1286b70a228718d05ac66661c17409758431f73f464736f6c63430008040033

Deployed Bytecode Sourcemap

3477:10365:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5363:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6215:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5640:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11995:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6384:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10371:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5549:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6705:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11789:194;;;;;;;;;;;;;:::i;:::-;;5743:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2556:148;;;;;;;;;;;;;:::i;:::-;;2342:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5454:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5889:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10155:204;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11582:195;;;;;;;;;;;;;:::i;:::-;;9334:809;;;;;;;;;;;;;:::i;:::-;;6064:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5363:83;5400:13;5433:5;;;;;;;;;;;;;;;;;5426:12;;5363:83;:::o;6215:161::-;6290:4;6307:39;6316:12;:10;:12::i;:::-;6330:7;6339:6;6307:8;:39::i;:::-;6364:4;6357:11;;6215:161;;;;:::o;5640:95::-;5693:7;3977:12;5713:14;;5640:95;:::o;11995:145::-;2479:12;:10;:12::i;:::-;2469:22;;:6;;;;;;;;;;:22;;;2461:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12086:4:::1;12074:9;:16;;;;12118:4;12105:9;:17;;;;11995:145:::0;;:::o;6384:313::-;6482:4;6499:36;6509:6;6517:9;6528:6;6499:9;:36::i;:::-;6546:121;6555:6;6563:12;:10;:12::i;:::-;6577:89;6615:6;6577:89;;;;;;;;;;;;;;;;;:11;:19;6589:6;6577:19;;;;;;;;;;;;;;;:33;6597:12;:10;:12::i;:::-;6577:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6546:8;:121::i;:::-;6685:4;6678:11;;6384:313;;;;;:::o;10371:129::-;10446:15;;;;;;;;;;;10430:31;;:12;:10;:12::i;:::-;:31;;;10422:40;;;;;;10487:5;10472:4;:12;10477:6;10472:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;10371:129;:::o;5549:83::-;5590:5;4391:1;5608:16;;5549:83;:::o;6705:103::-;2479:12;:10;:12::i;:::-;2469:22;;:6;;;;;;;;;;:22;;;2461:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6795:5:::1;6777:15;;:23;;;;;;;;;;;;;;;;;;6705:103:::0;:::o;11789:194::-;11855:15;;;;;;;;;;;11839:31;;:12;:10;:12::i;:::-;:31;;;11831:40;;;;;;11882:26;11911:21;11882:50;;11943:32;11956:18;11943:12;:32::i;:::-;11789:194;:::o;5743:138::-;5809:7;5836:37;5856:7;:16;5864:7;5856:16;;;;;;;;;;;;;;;;5836:19;:37::i;:::-;5829:44;;5743:138;;;:::o;2556:148::-;2479:12;:10;:12::i;:::-;2469:22;;:6;;;;;;;;;;:22;;;2461:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2663:1:::1;2626:40;;2647:6;::::0;::::1;;;;;;;;2626:40;;;;;;;;;;;;2694:1;2677:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2556:148::o:0;2342:79::-;2380:7;2407:6;;;;;;;;;;;2400:13;;2342:79;:::o;5454:87::-;5493:13;5526:7;;;;;;;;;;;;;;;;;5519:14;;5454:87;:::o;5889:167::-;5967:4;5984:42;5994:12;:10;:12::i;:::-;6008:9;6019:6;5984:9;:42::i;:::-;6044:4;6037:11;;5889:167;;;;:::o;10155:204::-;10237:15;;;;;;;;;;;10221:31;;:12;:10;:12::i;:::-;:31;;;10213:40;;;;;;10269:6;10264:88;10285:5;:12;10281:1;:16;10264:88;;;10336:4;10319;:14;10324:5;10330:1;10324:8;;;;;;;;;;;;;;;;;;;;;;10319:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10299:3;;;;;:::i;:::-;;;;10264:88;;;;10155:204;:::o;11582:195::-;11648:15;;;;;;;;;;;11632:31;;:12;:10;:12::i;:::-;:31;;;11624:40;;;;;;11675:23;11701:24;11719:4;11701:9;:24::i;:::-;11675:50;;11736:33;11753:15;11736:16;:33::i;:::-;11582:195;:::o;9334:809::-;2479:12;:10;:12::i;:::-;2469:22;;:6;;;;;;;;;;:22;;;2461:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9398:11:::1;;;;;;;;;;;9397:12;9389:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;9447:35;9504:42;9447:100;;9576:16;9558:15;;:34;;;;;;;;;;;;;;;;;;9603:58;9620:4;9635:15;;;;;;;;;;;3977:12;9603:8;:58::i;:::-;9706:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9688:56;;;9753:4;9760:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9688:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9672:13;;:112;;;;;;;;;;;;;;;;;;9795:15;;;;;;;;;;;:31;;;9834:21;9865:4;9871:24;9889:4;9871:9;:24::i;:::-;9896:1;9898::::0;9900:7:::1;:5;:7::i;:::-;9908:15;9795:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;9949:4;9935:11;;:18;;;;;;;;;;;;;;;;;;9982:4;9964:15;;:22;;;;;;;;;;;;;;;;;;10012:12;9997;:27;;;;10049:4;10035:11;;:18;;;;;;;;;;;;;;;;;;10071:13;;;;;;;;;;;10064:29;;;10102:15;;;;;;;;;;;10120:14;10064:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2539:1;9334:809::o:0;6064:143::-;6145:7;6172:11;:18;6184:5;6172:18;;;;;;;;;;;;;;;:27;6191:7;6172:27;;;;;;;;;;;;;;;;6165:34;;6064:143;;;;:::o;60:98::-;113:7;140:10;133:17;;60:98;:::o;7078:335::-;7188:1;7171:19;;:5;:19;;;;7163:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7269:1;7250:21;;:7;:21;;;;7242:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7351:6;7321:11;:18;7333:5;7321:18;;;;;;;;;;;;;;;:27;7340:7;7321:27;;;;;;;;;;;;;;;:36;;;;7389:7;7373:32;;7382:5;7373:32;;;7398:6;7373:32;;;;;;:::i;:::-;;;;;;;;7078:335;;;:::o;7421:1240::-;7525:1;7509:18;;:4;:18;;;;7501:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7602:1;7588:16;;:2;:16;;;;7580:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7672:1;7663:6;:10;7655:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7742:7;:5;:7::i;:::-;7734:15;;:4;:15;;;;:32;;;;;7759:7;:5;:7::i;:::-;7753:13;;:2;:13;;;;7734:32;7730:879;;;7792:4;:8;7797:2;7792:8;;;;;;;;;;;;;;;;;;;;;;;;;7791:9;:22;;;;;7805:4;:8;7810:2;7805:8;;;;;;;;;;;;;;;;;;;;;;;;;7804:9;7791:22;7783:31;;;;;;7841:13;;;;;;;;;;;7833:21;;:4;:21;;;:55;;;;;7872:15;;;;;;;;;;;7858:30;;:2;:30;;;;7833:55;:83;;;;;7894:18;:22;7913:2;7894:22;;;;;;;;;;;;;;;;;;;;;;;;;7892:24;7833:83;:102;;;;;7920:15;;;;;;;;;;;7833:102;7829:325;;;8003:12;;7993:6;:22;;7985:31;;;;;;8058:15;8043:8;:12;8052:2;8043:12;;;;;;;;;;;;;;;;:30;8035:39;;;;;;8127:10;8108:15;:30;;;;:::i;:::-;8093:8;:12;8102:2;8093:12;;;;;;;;;;;;;;;:45;;;;7829:325;8210:28;8241:24;8259:4;8241:9;:24::i;:::-;8210:55;;8285:6;;;;;;;;;;;8284:7;:32;;;;;8303:13;;;;;;;;;;;8295:21;;:4;:21;;;;8284:32;:47;;;;;8320:11;;;;;;;;;;;8284:47;8280:318;;;8352:38;8369:20;8352:16;:38::i;:::-;8409:26;8438:21;8409:50;;8502:1;8481:18;:22;8478:105;;;8528:35;8541:21;8528:12;:35::i;:::-;8478:105;8280:318;;7730:879;;8623:30;8638:4;8643:2;8646:6;8623:14;:30::i;:::-;7421:1240;;;:::o;1197:190::-;1283:7;1316:1;1311;:6;;1319:12;1303:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1343:9;1359:1;1355;:5;;;;:::i;:::-;1343:17;;1378:1;1371:8;;;1197:190;;;;;:::o;9168:154::-;9225:15;;;;;;;;;;;:24;;:39;9250:13;9261:1;9250:6;:10;;:13;;;;:::i;:::-;9225:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9275:15;;;;;;;;;;;:24;;:39;9300:13;9311:1;9300:6;:10;;:13;;;;:::i;:::-;9275:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9168:154;:::o;6816:254::-;6883:7;6922;;6911;:18;;6903:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6987:19;7010:10;:8;:10::i;:::-;6987:33;;7038:24;7050:11;7038:7;:11;;:24;;;;:::i;:::-;7031:31;;;6816:254;;;:::o;8669:483::-;4773:4;4764:6;;:13;;;;;;;;;;;;;;;;;;8747:21:::1;8785:1;8771:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8747:40;;8816:4;8798;8803:1;8798:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;8842:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8832:4;8837:1;8832:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;8875:62;8892:4;8907:15;;;;;;;;;;;8925:11;8875:8;:62::i;:::-;8948:15;;;;;;;;;;;:66;;;9029:11;9055:1;9071:4;9098;9118:15;8948:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4788:1;4809:5:::0;4800:6;;:14;;;;;;;;;;;;;;;;;;8669:483;:::o;10516:146::-;10610:44;10628:6;10636:9;10647:6;10610:17;:44::i;:::-;10516:146;;;:::o;1649:132::-;1707:7;1734:39;1738:1;1741;1734:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1727:46;;1649:132;;;;:::o;13406:163::-;13447:7;13468:15;13485;13504:19;:17;:19::i;:::-;13467:56;;;;13541:20;13553:7;13541;:11;;:20;;;;:::i;:::-;13534:27;;;;13406:163;:::o;10670:488::-;10769:15;10786:23;10811:12;10825:23;10850:12;10864:13;10881:19;10892:7;10881:10;:19::i;:::-;10768:132;;;;;;;;;;;;10929:28;10949:7;10929;:15;10937:6;10929:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;10911:7;:15;10919:6;10911:15;;;;;;;;;;;;;;;:46;;;;10989:39;11012:15;10989:7;:18;10997:9;10989:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;10968:7;:18;10976:9;10968:18;;;;;;;;;;;;;;;:60;;;;11040:16;11050:5;11040:9;:16::i;:::-;11067:23;11079:4;11085;11067:11;:23::i;:::-;11123:9;11106:44;;11115:6;11106:44;;;11134:15;11106:44;;;;;;:::i;:::-;;;;;;;;10670:488;;;;;;;;;:::o;1789:189::-;1875:7;1907:1;1903;:5;1910:12;1895:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1934:9;1950:1;1946;:5;;;;:::i;:::-;1934:17;;1969:1;1962:8;;;1789:189;;;;;:::o;13577:262::-;13627:7;13636;13656:15;13674:7;;13656:25;;13692:15;3977:12;13692:25;;13748:20;3977:12;13748:7;;:11;;:20;;;;:::i;:::-;13738:7;:30;13734:61;;;13778:7;;3977:12;13770:25;;;;;;;;13734:61;13814:7;13823;13806:25;;;;;;13577:262;;;:::o;12154:471::-;12213:7;12222;12231;12240;12249;12258;12279:23;12304:12;12318:13;12335:42;12347:7;12356:9;;12367;;12335:11;:42::i;:::-;12278:99;;;;;;12388:19;12411:10;:8;:10::i;:::-;12388:33;;12433:15;12450:23;12475:12;12491:46;12503:7;12512:4;12518:5;12525:11;12491;:46::i;:::-;12432:105;;;;;;12556:7;12565:15;12582:4;12588:15;12605:4;12611:5;12548:69;;;;;;;;;;;;;;;;;;;12154:471;;;;;;;:::o;1053:136::-;1111:7;1138:43;1142:1;1145;1138:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1131:50;;1053:136;;;;:::o;866:179::-;924:7;944:9;960:1;956;:5;;;;:::i;:::-;944:17;;985:1;980;:6;;972:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1036:1;1029:8;;;866:179;;;;:::o;11166:212::-;11219:19;11242:10;:8;:10::i;:::-;11219:33;;11263:13;11279:22;11289:11;11279:5;:9;;:22;;;;:::i;:::-;11263:38;;11337:33;11364:5;11337:7;:22;11353:4;11337:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;11312:7;:22;11328:4;11312:22;;;;;;;;;;;;;;;:58;;;;11166:212;;;:::o;11386:147::-;11464:17;11476:4;11464:7;;:11;;:17;;;;:::i;:::-;11454:7;:27;;;;11505:20;11520:4;11505:10;;:14;;:20;;;;:::i;:::-;11492:10;:33;;;;11386:147;;:::o;12633:351::-;12726:7;12735;12744;12764:12;12779:28;12803:3;12779:19;12791:6;12779:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;12764:43;;12818:13;12834:29;12859:3;12834:20;12846:7;12834;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;12818:45;;12874:23;12900:28;12922:5;12900:17;12912:4;12900:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;12874:54;;12947:15;12964:4;12970:5;12939:37;;;;;;;;;12633:351;;;;;;;:::o;12992:409::-;13102:7;13111;13120;13140:15;13158:24;13170:11;13158:7;:11;;:24;;;;:::i;:::-;13140:42;;13193:12;13208:21;13217:11;13208:4;:8;;:21;;;;:::i;:::-;13193:36;;13240:13;13256:22;13266:11;13256:5;:9;;:22;;;;:::i;:::-;13240:38;;13289:23;13315:28;13337:5;13315:17;13327:4;13315:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13289:54;;13362:7;13371:15;13388:4;13354:39;;;;;;;;;;12992:409;;;;;;;;:::o;1395:246::-;1453:7;1482:1;1477;:6;1473:47;;;1507:1;1500:8;;;;1473:47;1530:9;1546:1;1542;:5;;;;:::i;:::-;1530:17;;1575:1;1570;1566;:5;;;;:::i;:::-;:10;1558:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1632:1;1625:8;;;1395:246;;;;;:::o;24:655:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;414:1;411;404:12;350:2;450:1;435:238;460:6;457:1;454:13;435:238;;;528:3;557:37;590:3;578:10;557:37;:::i;:::-;552:3;545:50;624:4;619:3;615:14;608:21;;658:4;653:3;649:14;642:21;;495:178;482:1;479;475:9;470:14;;435:238;;;439:14;126:553;;;;;;;:::o;685:139::-;731:5;769:6;756:20;747:29;;785:33;812:5;785:33;:::i;:::-;737:87;;;;:::o;830:143::-;887:5;918:6;912:13;903:22;;934:33;961:5;934:33;:::i;:::-;893:80;;;;:::o;996:303::-;1067:5;1116:3;1109:4;1101:6;1097:17;1093:27;1083:2;;1134:1;1131;1124:12;1083:2;1174:6;1161:20;1199:94;1289:3;1281:6;1274:4;1266:6;1262:17;1199:94;:::i;:::-;1190:103;;1073:226;;;;;:::o;1305:133::-;1348:5;1386:6;1373:20;1364:29;;1402:30;1426:5;1402:30;:::i;:::-;1354:84;;;;:::o;1444:137::-;1498:5;1529:6;1523:13;1514:22;;1545:30;1569:5;1545:30;:::i;:::-;1504:77;;;;:::o;1587:139::-;1633:5;1671:6;1658:20;1649:29;;1687:33;1714:5;1687:33;:::i;:::-;1639:87;;;;:::o;1732:143::-;1789:5;1820:6;1814:13;1805:22;;1836:33;1863:5;1836:33;:::i;:::-;1795:80;;;;:::o;1881:262::-;1940:6;1989:2;1977:9;1968:7;1964:23;1960:32;1957:2;;;2005:1;2002;1995:12;1957:2;2048:1;2073:53;2118:7;2109:6;2098:9;2094:22;2073:53;:::i;:::-;2063:63;;2019:117;1947:196;;;;:::o;2149:284::-;2219:6;2268:2;2256:9;2247:7;2243:23;2239:32;2236:2;;;2284:1;2281;2274:12;2236:2;2327:1;2352:64;2408:7;2399:6;2388:9;2384:22;2352:64;:::i;:::-;2342:74;;2298:128;2226:207;;;;:::o;2439:407::-;2507:6;2515;2564:2;2552:9;2543:7;2539:23;2535:32;2532:2;;;2580:1;2577;2570:12;2532:2;2623:1;2648:53;2693:7;2684:6;2673:9;2669:22;2648:53;:::i;:::-;2638:63;;2594:117;2750:2;2776:53;2821:7;2812:6;2801:9;2797:22;2776:53;:::i;:::-;2766:63;;2721:118;2522:324;;;;;:::o;2852:552::-;2929:6;2937;2945;2994:2;2982:9;2973:7;2969:23;2965:32;2962:2;;;3010:1;3007;3000:12;2962:2;3053:1;3078:53;3123:7;3114:6;3103:9;3099:22;3078:53;:::i;:::-;3068:63;;3024:117;3180:2;3206:53;3251:7;3242:6;3231:9;3227:22;3206:53;:::i;:::-;3196:63;;3151:118;3308:2;3334:53;3379:7;3370:6;3359:9;3355:22;3334:53;:::i;:::-;3324:63;;3279:118;2952:452;;;;;:::o;3410:407::-;3478:6;3486;3535:2;3523:9;3514:7;3510:23;3506:32;3503:2;;;3551:1;3548;3541:12;3503:2;3594:1;3619:53;3664:7;3655:6;3644:9;3640:22;3619:53;:::i;:::-;3609:63;;3565:117;3721:2;3747:53;3792:7;3783:6;3772:9;3768:22;3747:53;:::i;:::-;3737:63;;3692:118;3493:324;;;;;:::o;3823:405::-;3907:6;3956:2;3944:9;3935:7;3931:23;3927:32;3924:2;;;3972:1;3969;3962:12;3924:2;4043:1;4032:9;4028:17;4015:31;4073:18;4065:6;4062:30;4059:2;;;4105:1;4102;4095:12;4059:2;4133:78;4203:7;4194:6;4183:9;4179:22;4133:78;:::i;:::-;4123:88;;3986:235;3914:314;;;;:::o;4234:256::-;4290:6;4339:2;4327:9;4318:7;4314:23;4310:32;4307:2;;;4355:1;4352;4345:12;4307:2;4398:1;4423:50;4465:7;4456:6;4445:9;4441:22;4423:50;:::i;:::-;4413:60;;4369:114;4297:193;;;;:::o;4496:278::-;4563:6;4612:2;4600:9;4591:7;4587:23;4583:32;4580:2;;;4628:1;4625;4618:12;4580:2;4671:1;4696:61;4749:7;4740:6;4729:9;4725:22;4696:61;:::i;:::-;4686:71;;4642:125;4570:204;;;;:::o;4780:407::-;4848:6;4856;4905:2;4893:9;4884:7;4880:23;4876:32;4873:2;;;4921:1;4918;4911:12;4873:2;4964:1;4989:53;5034:7;5025:6;5014:9;5010:22;4989:53;:::i;:::-;4979:63;;4935:117;5091:2;5117:53;5162:7;5153:6;5142:9;5138:22;5117:53;:::i;:::-;5107:63;;5062:118;4863:324;;;;;:::o;5193:596::-;5281:6;5289;5297;5346:2;5334:9;5325:7;5321:23;5317:32;5314:2;;;5362:1;5359;5352:12;5314:2;5405:1;5430:64;5486:7;5477:6;5466:9;5462:22;5430:64;:::i;:::-;5420:74;;5376:128;5543:2;5569:64;5625:7;5616:6;5605:9;5601:22;5569:64;:::i;:::-;5559:74;;5514:129;5682:2;5708:64;5764:7;5755:6;5744:9;5740:22;5708:64;:::i;:::-;5698:74;;5653:129;5304:485;;;;;:::o;5795:179::-;5864:10;5885:46;5927:3;5919:6;5885:46;:::i;:::-;5963:4;5958:3;5954:14;5940:28;;5875:99;;;;:::o;5980:108::-;6057:24;6075:5;6057:24;:::i;:::-;6052:3;6045:37;6035:53;;:::o;6094:118::-;6181:24;6199:5;6181:24;:::i;:::-;6176:3;6169:37;6159:53;;:::o;6248:732::-;6367:3;6396:54;6444:5;6396:54;:::i;:::-;6466:86;6545:6;6540:3;6466:86;:::i;:::-;6459:93;;6576:56;6626:5;6576:56;:::i;:::-;6655:7;6686:1;6671:284;6696:6;6693:1;6690:13;6671:284;;;6772:6;6766:13;6799:63;6858:3;6843:13;6799:63;:::i;:::-;6792:70;;6885:60;6938:6;6885:60;:::i;:::-;6875:70;;6731:224;6718:1;6715;6711:9;6706:14;;6671:284;;;6675:14;6971:3;6964:10;;6372:608;;;;;;;:::o;6986:109::-;7067:21;7082:5;7067:21;:::i;:::-;7062:3;7055:34;7045:50;;:::o;7101:147::-;7196:45;7235:5;7196:45;:::i;:::-;7191:3;7184:58;7174:74;;:::o;7254:364::-;7342:3;7370:39;7403:5;7370:39;:::i;:::-;7425:71;7489:6;7484:3;7425:71;:::i;:::-;7418:78;;7505:52;7550:6;7545:3;7538:4;7531:5;7527:16;7505:52;:::i;:::-;7582:29;7604:6;7582:29;:::i;:::-;7577:3;7573:39;7566:46;;7346:272;;;;;:::o;7624:366::-;7766:3;7787:67;7851:2;7846:3;7787:67;:::i;:::-;7780:74;;7863:93;7952:3;7863:93;:::i;:::-;7981:2;7976:3;7972:12;7965:19;;7770:220;;;:::o;7996:366::-;8138:3;8159:67;8223:2;8218:3;8159:67;:::i;:::-;8152:74;;8235:93;8324:3;8235:93;:::i;:::-;8353:2;8348:3;8344:12;8337:19;;8142:220;;;:::o;8368:366::-;8510:3;8531:67;8595:2;8590:3;8531:67;:::i;:::-;8524:74;;8607:93;8696:3;8607:93;:::i;:::-;8725:2;8720:3;8716:12;8709:19;;8514:220;;;:::o;8740:366::-;8882:3;8903:67;8967:2;8962:3;8903:67;:::i;:::-;8896:74;;8979:93;9068:3;8979:93;:::i;:::-;9097:2;9092:3;9088:12;9081:19;;8886:220;;;:::o;9112:366::-;9254:3;9275:67;9339:2;9334:3;9275:67;:::i;:::-;9268:74;;9351:93;9440:3;9351:93;:::i;:::-;9469:2;9464:3;9460:12;9453:19;;9258:220;;;:::o;9484:366::-;9626:3;9647:67;9711:2;9706:3;9647:67;:::i;:::-;9640:74;;9723:93;9812:3;9723:93;:::i;:::-;9841:2;9836:3;9832:12;9825:19;;9630:220;;;:::o;9856:366::-;9998:3;10019:67;10083:2;10078:3;10019:67;:::i;:::-;10012:74;;10095:93;10184:3;10095:93;:::i;:::-;10213:2;10208:3;10204:12;10197:19;;10002:220;;;:::o;10228:366::-;10370:3;10391:67;10455:2;10450:3;10391:67;:::i;:::-;10384:74;;10467:93;10556:3;10467:93;:::i;:::-;10585:2;10580:3;10576:12;10569:19;;10374:220;;;:::o;10600:366::-;10742:3;10763:67;10827:2;10822:3;10763:67;:::i;:::-;10756:74;;10839:93;10928:3;10839:93;:::i;:::-;10957:2;10952:3;10948:12;10941:19;;10746:220;;;:::o;10972:366::-;11114:3;11135:67;11199:2;11194:3;11135:67;:::i;:::-;11128:74;;11211:93;11300:3;11211:93;:::i;:::-;11329:2;11324:3;11320:12;11313:19;;11118:220;;;:::o;11344:118::-;11431:24;11449:5;11431:24;:::i;:::-;11426:3;11419:37;11409:53;;:::o;11468:112::-;11551:22;11567:5;11551:22;:::i;:::-;11546:3;11539:35;11529:51;;:::o;11586:222::-;11679:4;11717:2;11706:9;11702:18;11694:26;;11730:71;11798:1;11787:9;11783:17;11774:6;11730:71;:::i;:::-;11684:124;;;;:::o;11814:332::-;11935:4;11973:2;11962:9;11958:18;11950:26;;11986:71;12054:1;12043:9;12039:17;12030:6;11986:71;:::i;:::-;12067:72;12135:2;12124:9;12120:18;12111:6;12067:72;:::i;:::-;11940:206;;;;;:::o;12152:332::-;12273:4;12311:2;12300:9;12296:18;12288:26;;12324:71;12392:1;12381:9;12377:17;12368:6;12324:71;:::i;:::-;12405:72;12473:2;12462:9;12458:18;12449:6;12405:72;:::i;:::-;12278:206;;;;;:::o;12490:807::-;12739:4;12777:3;12766:9;12762:19;12754:27;;12791:71;12859:1;12848:9;12844:17;12835:6;12791:71;:::i;:::-;12872:72;12940:2;12929:9;12925:18;12916:6;12872:72;:::i;:::-;12954:80;13030:2;13019:9;13015:18;13006:6;12954:80;:::i;:::-;13044;13120:2;13109:9;13105:18;13096:6;13044:80;:::i;:::-;13134:73;13202:3;13191:9;13187:19;13178:6;13134:73;:::i;:::-;13217;13285:3;13274:9;13270:19;13261:6;13217:73;:::i;:::-;12744:553;;;;;;;;;:::o;13303:210::-;13390:4;13428:2;13417:9;13413:18;13405:26;;13441:65;13503:1;13492:9;13488:17;13479:6;13441:65;:::i;:::-;13395:118;;;;:::o;13519:313::-;13632:4;13670:2;13659:9;13655:18;13647:26;;13719:9;13713:4;13709:20;13705:1;13694:9;13690:17;13683:47;13747:78;13820:4;13811:6;13747:78;:::i;:::-;13739:86;;13637:195;;;;:::o;13838:419::-;14004:4;14042:2;14031:9;14027:18;14019:26;;14091:9;14085:4;14081:20;14077:1;14066:9;14062:17;14055:47;14119:131;14245:4;14119:131;:::i;:::-;14111:139;;14009:248;;;:::o;14263:419::-;14429:4;14467:2;14456:9;14452:18;14444:26;;14516:9;14510:4;14506:20;14502:1;14491:9;14487:17;14480:47;14544:131;14670:4;14544:131;:::i;:::-;14536:139;;14434:248;;;:::o;14688:419::-;14854:4;14892:2;14881:9;14877:18;14869:26;;14941:9;14935:4;14931:20;14927:1;14916:9;14912:17;14905:47;14969:131;15095:4;14969:131;:::i;:::-;14961:139;;14859:248;;;:::o;15113:419::-;15279:4;15317:2;15306:9;15302:18;15294:26;;15366:9;15360:4;15356:20;15352:1;15341:9;15337:17;15330:47;15394:131;15520:4;15394:131;:::i;:::-;15386:139;;15284:248;;;:::o;15538:419::-;15704:4;15742:2;15731:9;15727:18;15719:26;;15791:9;15785:4;15781:20;15777:1;15766:9;15762:17;15755:47;15819:131;15945:4;15819:131;:::i;:::-;15811:139;;15709:248;;;:::o;15963:419::-;16129:4;16167:2;16156:9;16152:18;16144:26;;16216:9;16210:4;16206:20;16202:1;16191:9;16187:17;16180:47;16244:131;16370:4;16244:131;:::i;:::-;16236:139;;16134:248;;;:::o;16388:419::-;16554:4;16592:2;16581:9;16577:18;16569:26;;16641:9;16635:4;16631:20;16627:1;16616:9;16612:17;16605:47;16669:131;16795:4;16669:131;:::i;:::-;16661:139;;16559:248;;;:::o;16813:419::-;16979:4;17017:2;17006:9;17002:18;16994:26;;17066:9;17060:4;17056:20;17052:1;17041:9;17037:17;17030:47;17094:131;17220:4;17094:131;:::i;:::-;17086:139;;16984:248;;;:::o;17238:419::-;17404:4;17442:2;17431:9;17427:18;17419:26;;17491:9;17485:4;17481:20;17477:1;17466:9;17462:17;17455:47;17519:131;17645:4;17519:131;:::i;:::-;17511:139;;17409:248;;;:::o;17663:419::-;17829:4;17867:2;17856:9;17852:18;17844:26;;17916:9;17910:4;17906:20;17902:1;17891:9;17887:17;17880:47;17944:131;18070:4;17944:131;:::i;:::-;17936:139;;17834:248;;;:::o;18088:222::-;18181:4;18219:2;18208:9;18204:18;18196:26;;18232:71;18300:1;18289:9;18285:17;18276:6;18232:71;:::i;:::-;18186:124;;;;:::o;18316:831::-;18579:4;18617:3;18606:9;18602:19;18594:27;;18631:71;18699:1;18688:9;18684:17;18675:6;18631:71;:::i;:::-;18712:80;18788:2;18777:9;18773:18;18764:6;18712:80;:::i;:::-;18839:9;18833:4;18829:20;18824:2;18813:9;18809:18;18802:48;18867:108;18970:4;18961:6;18867:108;:::i;:::-;18859:116;;18985:72;19053:2;19042:9;19038:18;19029:6;18985:72;:::i;:::-;19067:73;19135:3;19124:9;19120:19;19111:6;19067:73;:::i;:::-;18584:563;;;;;;;;:::o;19153:214::-;19242:4;19280:2;19269:9;19265:18;19257:26;;19293:67;19357:1;19346:9;19342:17;19333:6;19293:67;:::i;:::-;19247:120;;;;:::o;19373:129::-;19407:6;19434:20;;:::i;:::-;19424:30;;19463:33;19491:4;19483:6;19463:33;:::i;:::-;19414:88;;;:::o;19508:75::-;19541:6;19574:2;19568:9;19558:19;;19548:35;:::o;19589:311::-;19666:4;19756:18;19748:6;19745:30;19742:2;;;19778:18;;:::i;:::-;19742:2;19828:4;19820:6;19816:17;19808:25;;19888:4;19882;19878:15;19870:23;;19671:229;;;:::o;19906:132::-;19973:4;19996:3;19988:11;;20026:4;20021:3;20017:14;20009:22;;19978:60;;;:::o;20044:114::-;20111:6;20145:5;20139:12;20129:22;;20118:40;;;:::o;20164:99::-;20216:6;20250:5;20244:12;20234:22;;20223:40;;;:::o;20269:113::-;20339:4;20371;20366:3;20362:14;20354:22;;20344:38;;;:::o;20388:184::-;20487:11;20521:6;20516:3;20509:19;20561:4;20556:3;20552:14;20537:29;;20499:73;;;;:::o;20578:169::-;20662:11;20696:6;20691:3;20684:19;20736:4;20731:3;20727:14;20712:29;;20674:73;;;;:::o;20753:305::-;20793:3;20812:20;20830:1;20812:20;:::i;:::-;20807:25;;20846:20;20864:1;20846:20;:::i;:::-;20841:25;;21000:1;20932:66;20928:74;20925:1;20922:81;20919:2;;;21006:18;;:::i;:::-;20919:2;21050:1;21047;21043:9;21036:16;;20797:261;;;;:::o;21064:185::-;21104:1;21121:20;21139:1;21121:20;:::i;:::-;21116:25;;21155:20;21173:1;21155:20;:::i;:::-;21150:25;;21194:1;21184:2;;21199:18;;:::i;:::-;21184:2;21241:1;21238;21234:9;21229:14;;21106:143;;;;:::o;21255:348::-;21295:7;21318:20;21336:1;21318:20;:::i;:::-;21313:25;;21352:20;21370:1;21352:20;:::i;:::-;21347:25;;21540:1;21472:66;21468:74;21465:1;21462:81;21457:1;21450:9;21443:17;21439:105;21436:2;;;21547:18;;:::i;:::-;21436:2;21595:1;21592;21588:9;21577:20;;21303:300;;;;:::o;21609:191::-;21649:4;21669:20;21687:1;21669:20;:::i;:::-;21664:25;;21703:20;21721:1;21703:20;:::i;:::-;21698:25;;21742:1;21739;21736:8;21733:2;;;21747:18;;:::i;:::-;21733:2;21792:1;21789;21785:9;21777:17;;21654:146;;;;:::o;21806:96::-;21843:7;21872:24;21890:5;21872:24;:::i;:::-;21861:35;;21851:51;;;:::o;21908:90::-;21942:7;21985:5;21978:13;21971:21;21960:32;;21950:48;;;:::o;22004:126::-;22041:7;22081:42;22074:5;22070:54;22059:65;;22049:81;;;:::o;22136:77::-;22173:7;22202:5;22191:16;;22181:32;;;:::o;22219:86::-;22254:7;22294:4;22287:5;22283:16;22272:27;;22262:43;;;:::o;22311:121::-;22369:9;22402:24;22420:5;22402:24;:::i;:::-;22389:37;;22379:53;;;:::o;22438:307::-;22506:1;22516:113;22530:6;22527:1;22524:13;22516:113;;;22615:1;22610:3;22606:11;22600:18;22596:1;22591:3;22587:11;22580:39;22552:2;22549:1;22545:10;22540:15;;22516:113;;;22647:6;22644:1;22641:13;22638:2;;;22727:1;22718:6;22713:3;22709:16;22702:27;22638:2;22487:258;;;;:::o;22751:281::-;22834:27;22856:4;22834:27;:::i;:::-;22826:6;22822:40;22964:6;22952:10;22949:22;22928:18;22916:10;22913:34;22910:62;22907:2;;;22975:18;;:::i;:::-;22907:2;23015:10;23011:2;23004:22;22794:238;;;:::o;23038:233::-;23077:3;23100:24;23118:5;23100:24;:::i;:::-;23091:33;;23146:66;23139:5;23136:77;23133:2;;;23216:18;;:::i;:::-;23133:2;23263:1;23256:5;23252:13;23245:20;;23081:190;;;:::o;23277:180::-;23325:77;23322:1;23315:88;23422:4;23419:1;23412:15;23446:4;23443:1;23436:15;23463:180;23511:77;23508:1;23501:88;23608:4;23605:1;23598:15;23632:4;23629:1;23622:15;23649:180;23697:77;23694:1;23687:88;23794:4;23791:1;23784:15;23818:4;23815:1;23808:15;23835:102;23876:6;23927:2;23923:7;23918:2;23911:5;23907:14;23903:28;23893:38;;23883:54;;;:::o;23943:222::-;24083:34;24079:1;24071:6;24067:14;24060:58;24152:5;24147:2;24139:6;24135:15;24128:30;24049:116;:::o;24171:229::-;24311:34;24307:1;24299:6;24295:14;24288:58;24380:12;24375:2;24367:6;24363:15;24356:37;24277:123;:::o;24406:221::-;24546:34;24542:1;24534:6;24530:14;24523:58;24615:4;24610:2;24602:6;24598:15;24591:29;24512:115;:::o;24633:177::-;24773:29;24769:1;24761:6;24757:14;24750:53;24739:71;:::o;24816:220::-;24956:34;24952:1;24944:6;24940:14;24933:58;25025:3;25020:2;25012:6;25008:15;25001:28;24922:114;:::o;25042:182::-;25182:34;25178:1;25170:6;25166:14;25159:58;25148:76;:::o;25230:228::-;25370:34;25366:1;25358:6;25354:14;25347:58;25439:11;25434:2;25426:6;25422:15;25415:36;25336:122;:::o;25464:224::-;25604:34;25600:1;25592:6;25588:14;25581:58;25673:7;25668:2;25660:6;25656:15;25649:32;25570:118;:::o;25694:223::-;25834:34;25830:1;25822:6;25818:14;25811:58;25903:6;25898:2;25890:6;25886:15;25879:31;25800:117;:::o;25923:173::-;26063:25;26059:1;26051:6;26047:14;26040:49;26029:67;:::o;26102:122::-;26175:24;26193:5;26175:24;:::i;:::-;26168:5;26165:35;26155:2;;26214:1;26211;26204:12;26155:2;26145:79;:::o;26230:116::-;26300:21;26315:5;26300:21;:::i;:::-;26293:5;26290:32;26280:2;;26336:1;26333;26326:12;26280:2;26270:76;:::o;26352:122::-;26425:24;26443:5;26425:24;:::i;:::-;26418:5;26415:35;26405:2;;26464:1;26461;26454:12;26405:2;26395:79;:::o

Swarm Source

ipfs://1daceb6c235590d97c2c67e1286b70a228718d05ac66661c17409758431f73f4
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.