ETH Price: $3,691.05 (+2.77%)
Gas: 10 Gwei

Token

ERC-20: FIFA INU (FIFAINU)
 

Overview

Max Total Supply

100,000,000 FIFAINU

Holders

25

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
clownwm.eth
Balance
3,567.22714212 FIFAINU

Value
$0.00
0x1fb49ad78f1f96eb75548eb4b7d138fb5b02aeb0
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:
FIFAINU

Compiler Version
v0.8.4+commit.c7e474f2

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-27
*/

/**

$FIFAINU | FIFA INU

Telegram : https://t.me/FifaInuERC

*/

pragma solidity 0.8.4;
// SPDX-License-Identifier: UNLICENSED
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 FIFAINU is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 100000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    uint256 private _standardTax;
    address payable private _feeAddrWallet;

    string private constant _name = unicode"FIFA INU";
    string private constant _symbol = unicode"FIFAINU";
    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 = 2000000 * 10**9;
    uint256 private _maxWalletSize = 2000000 * 10**9;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _feeAddrWallet = payable(_msgSender());
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet] = true;
        _standardTax = 6;

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

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

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

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

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");


        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            _feeAddr1 = 0;
            _feeAddr2 = _standardTax;
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");

            }


            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance>0) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }else{
          _feeAddr1 = 0;
          _feeAddr2 = 0;
        }

        _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 setStandardTax(uint256 newTax) external onlyOwner{
      require(newTax<_standardTax);
      _standardTax=newTax;
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
    }

    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet.transfer(amount);
    }

    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;

        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    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() == _feeAddrWallet);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

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


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

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

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

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

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"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":"removeLimits","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"uint256","name":"newTax","type":"uint256"}],"name":"setStandardTax","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"}]

608060405267016345785d8a00006000196200001c919062000462565b6000196200002b91906200041d565b6008556000600f60156101000a81548160ff0219169083151502179055506000600f60166101000a81548160ff0219169083151502179055506000600f60176101000a81548160ff02191690831515021790555066071afd498d000060105566071afd498d0000601155348015620000a257600080fd5b506000620000b5620003be60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35062000163620003be60201b60201c565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060085460026000620001ba620003be60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600560006200020e620003c660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506006600c8190555062000349620003be60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a0000604051620003b0919062000400565b60405180910390a3620004f8565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620003fa8162000458565b82525050565b6000602082019050620004176000830184620003ef565b92915050565b60006200042a8262000458565b9150620004378362000458565b9250828210156200044d576200044c6200049a565b5b828203905092915050565b6000819050919050565b60006200046f8262000458565b91506200047c8362000458565b9250826200048f576200048e620004c9565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b61301980620005086000396000f3fe6080604052600436106101025760003560e01c8063715018a61161009557806395d89b411161006457806395d89b4114610308578063a9059cbb14610333578063c3c8cd8014610370578063c9567bf914610387578063dd62ed3e1461039e57610109565b8063715018a614610286578063751039fc1461029d578063843f7be2146102b45780638da5cb5b146102dd57610109565b8063313ce567116100d1578063313ce567146101de5780635932ead1146102095780636fc3eaec1461023257806370a082311461024957610109565b806306fdde031461010e578063095ea7b31461013957806318160ddd1461017657806323b872dd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b506101236103db565b60405161013091906127db565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b919061233f565b610418565b60405161016d91906127c0565b60405180910390f35b34801561018257600080fd5b5061018b610436565b604051610198919061297d565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c391906122f0565b610446565b6040516101d591906127c0565b60405180910390f35b3480156101ea57600080fd5b506101f361051f565b60405161020091906129f2565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b919061237b565b610528565b005b34801561023e57600080fd5b506102476105da565b005b34801561025557600080fd5b50610270600480360381019061026b9190612262565b61064c565b60405161027d919061297d565b60405180910390f35b34801561029257600080fd5b5061029b61069d565b005b3480156102a957600080fd5b506102b26107f0565b005b3480156102c057600080fd5b506102db60048036038101906102d691906123cd565b6108a5565b005b3480156102e957600080fd5b506102f2610952565b6040516102ff91906126f2565b60405180910390f35b34801561031457600080fd5b5061031d61097b565b60405161032a91906127db565b60405180910390f35b34801561033f57600080fd5b5061035a6004803603810190610355919061233f565b6109b8565b60405161036791906127c0565b60405180910390f35b34801561037c57600080fd5b506103856109d6565b005b34801561039357600080fd5b5061039c610a50565b005b3480156103aa57600080fd5b506103c560048036038101906103c091906122b4565b610f9c565b6040516103d2919061297d565b60405180910390f35b60606040518060400160405280600881526020017f4649464120494e55000000000000000000000000000000000000000000000000815250905090565b600061042c610425611023565b848461102b565b6001905092915050565b600067016345785d8a0000905090565b60006104538484846111f6565b6105148461045f611023565b61050f85604051806060016040528060288152602001612fbc60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104c5611023565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116f99092919063ffffffff16565b61102b565b600190509392505050565b60006009905090565b610530611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b4906128bd565b60405180910390fd5b80600f60176101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661061b611023565b73ffffffffffffffffffffffffffffffffffffffff161461063b57600080fd5b60004790506106498161175d565b50565b6000610696600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117c9565b9050919050565b6106a5611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610732576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610729906128bd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6107f8611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087c906128bd565b60405180910390fd5b67016345785d8a000060108190555067016345785d8a0000601181905550565b6108ad611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461093a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610931906128bd565b60405180910390fd5b600c54811061094857600080fd5b80600c8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f46494641494e5500000000000000000000000000000000000000000000000000815250905090565b60006109cc6109c5611023565b84846111f6565b6001905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a17611023565b73ffffffffffffffffffffffffffffffffffffffff1614610a3757600080fd5b6000610a423061064c565b9050610a4d81611837565b50565b610a58611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adc906128bd565b60405180910390fd5b600f60149054906101000a900460ff1615610b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2c9061295d565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bc430600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1667016345785d8a000061102b565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610c0a57600080fd5b505afa158015610c1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c42919061228b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610ca457600080fd5b505afa158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc919061228b565b6040518363ffffffff1660e01b8152600401610cf992919061270d565b602060405180830381600087803b158015610d1357600080fd5b505af1158015610d27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4b919061228b565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610dd43061064c565b600080610ddf610952565b426040518863ffffffff1660e01b8152600401610e019695949392919061275f565b6060604051808303818588803b158015610e1a57600080fd5b505af1158015610e2e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e5391906123f6565b5050506001600f60166101000a81548160ff0219169083151502179055506001600f60176101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff021916908315150217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f46929190612736565b602060405180830381600087803b158015610f6057600080fd5b505af1158015610f74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9891906123a4565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561109b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110929061293d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561110b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111029061285d565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111e9919061297d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611266576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125d906128fd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cd906127fd565b60405180910390fd5b60008111611319576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611310906128dd565b60405180910390fd5b611321610952565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561138f575061135f610952565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156116d857600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114385750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61144157600080fd5b6000600a81905550600c54600b81905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156114fd5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115535750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561156b5750600f60179054906101000a900460ff165b1561160e576010548111156115b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ac9061281d565b60405180910390fd5b601154816115c28461064c565b6115cc9190612a62565b111561160d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116049061291d565b60405180910390fd5b5b60006116193061064c565b9050600f60159054906101000a900460ff161580156116865750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561169e5750600f60169054906101000a900460ff165b80156116aa5750600081115b156116d2576116b881611837565b600047905060008111156116d0576116cf4761175d565b5b505b506116e9565b6000600a819055506000600b819055505b6116f4838383611b31565b505050565b6000838311158290611741576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173891906127db565b60405180910390fd5b50600083856117509190612b43565b9050809150509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156117c5573d6000803e3d6000fd5b5050565b6000600854821115611810576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118079061283d565b60405180910390fd5b600061181a611b41565b905061182f8184611b6c90919063ffffffff16565b915050919050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611895577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156118c35781602001602082028036833780820191505090505b5090503081600081518110611901577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156119a357600080fd5b505afa1580156119b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119db919061228b565b81600181518110611a15577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611a7c30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461102b565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611ae0959493929190612998565b600060405180830381600087803b158015611afa57600080fd5b505af1158015611b0e573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b611b3c838383611bb6565b505050565b6000806000611b4e611d81565b91509150611b658183611b6c90919063ffffffff16565b9250505090565b6000611bae83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611de0565b905092915050565b600080600080600080611bc887611e43565b955095509550955095509550611c2686600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611eab90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611cbb85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ef590919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d0781611f53565b611d118483612010565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611d6e919061297d565b60405180910390a3505050505050505050565b60008060006008549050600067016345785d8a00009050611db567016345785d8a0000600854611b6c90919063ffffffff16565b821015611dd35760085467016345785d8a0000935093505050611ddc565b81819350935050505b9091565b60008083118290611e27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1e91906127db565b60405180910390fd5b5060008385611e369190612ab8565b9050809150509392505050565b6000806000806000806000806000611e608a600a54600b5461204a565b9250925092506000611e70611b41565b90506000806000611e838e8787876120e0565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611eed83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116f9565b905092915050565b6000808284611f049190612a62565b905083811015611f49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f409061287d565b60405180910390fd5b8091505092915050565b6000611f5d611b41565b90506000611f74828461216990919063ffffffff16565b9050611fc881600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ef590919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61202582600854611eab90919063ffffffff16565b60088190555061204081600954611ef590919063ffffffff16565b6009819055505050565b6000806000806120766064612068888a61216990919063ffffffff16565b611b6c90919063ffffffff16565b905060006120a06064612092888b61216990919063ffffffff16565b611b6c90919063ffffffff16565b905060006120c9826120bb858c611eab90919063ffffffff16565b611eab90919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806120f9858961216990919063ffffffff16565b90506000612110868961216990919063ffffffff16565b90506000612127878961216990919063ffffffff16565b90506000612150826121428587611eab90919063ffffffff16565b611eab90919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561217c57600090506121de565b6000828461218a9190612ae9565b90508284826121999190612ab8565b146121d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d09061289d565b60405180910390fd5b809150505b92915050565b6000813590506121f381612f76565b92915050565b60008151905061220881612f76565b92915050565b60008135905061221d81612f8d565b92915050565b60008151905061223281612f8d565b92915050565b60008135905061224781612fa4565b92915050565b60008151905061225c81612fa4565b92915050565b60006020828403121561227457600080fd5b6000612282848285016121e4565b91505092915050565b60006020828403121561229d57600080fd5b60006122ab848285016121f9565b91505092915050565b600080604083850312156122c757600080fd5b60006122d5858286016121e4565b92505060206122e6858286016121e4565b9150509250929050565b60008060006060848603121561230557600080fd5b6000612313868287016121e4565b9350506020612324868287016121e4565b925050604061233586828701612238565b9150509250925092565b6000806040838503121561235257600080fd5b6000612360858286016121e4565b925050602061237185828601612238565b9150509250929050565b60006020828403121561238d57600080fd5b600061239b8482850161220e565b91505092915050565b6000602082840312156123b657600080fd5b60006123c484828501612223565b91505092915050565b6000602082840312156123df57600080fd5b60006123ed84828501612238565b91505092915050565b60008060006060848603121561240b57600080fd5b60006124198682870161224d565b935050602061242a8682870161224d565b925050604061243b8682870161224d565b9150509250925092565b6000612451838361245d565b60208301905092915050565b61246681612b77565b82525050565b61247581612b77565b82525050565b600061248682612a1d565b6124908185612a40565b935061249b83612a0d565b8060005b838110156124cc5781516124b38882612445565b97506124be83612a33565b92505060018101905061249f565b5085935050505092915050565b6124e281612b89565b82525050565b6124f181612bcc565b82525050565b600061250282612a28565b61250c8185612a51565b935061251c818560208601612bde565b61252581612c6f565b840191505092915050565b600061253d602383612a51565b915061254882612c80565b604082019050919050565b6000612560601983612a51565b915061256b82612ccf565b602082019050919050565b6000612583602a83612a51565b915061258e82612cf8565b604082019050919050565b60006125a6602283612a51565b91506125b182612d47565b604082019050919050565b60006125c9601b83612a51565b91506125d482612d96565b602082019050919050565b60006125ec602183612a51565b91506125f782612dbf565b604082019050919050565b600061260f602083612a51565b915061261a82612e0e565b602082019050919050565b6000612632602983612a51565b915061263d82612e37565b604082019050919050565b6000612655602583612a51565b915061266082612e86565b604082019050919050565b6000612678601a83612a51565b915061268382612ed5565b602082019050919050565b600061269b602483612a51565b91506126a682612efe565b604082019050919050565b60006126be601783612a51565b91506126c982612f4d565b602082019050919050565b6126dd81612bb5565b82525050565b6126ec81612bbf565b82525050565b6000602082019050612707600083018461246c565b92915050565b6000604082019050612722600083018561246c565b61272f602083018461246c565b9392505050565b600060408201905061274b600083018561246c565b61275860208301846126d4565b9392505050565b600060c082019050612774600083018961246c565b61278160208301886126d4565b61278e60408301876124e8565b61279b60608301866124e8565b6127a8608083018561246c565b6127b560a08301846126d4565b979650505050505050565b60006020820190506127d560008301846124d9565b92915050565b600060208201905081810360008301526127f581846124f7565b905092915050565b6000602082019050818103600083015261281681612530565b9050919050565b6000602082019050818103600083015261283681612553565b9050919050565b6000602082019050818103600083015261285681612576565b9050919050565b6000602082019050818103600083015261287681612599565b9050919050565b60006020820190508181036000830152612896816125bc565b9050919050565b600060208201905081810360008301526128b6816125df565b9050919050565b600060208201905081810360008301526128d681612602565b9050919050565b600060208201905081810360008301526128f681612625565b9050919050565b6000602082019050818103600083015261291681612648565b9050919050565b600060208201905081810360008301526129368161266b565b9050919050565b600060208201905081810360008301526129568161268e565b9050919050565b60006020820190508181036000830152612976816126b1565b9050919050565b600060208201905061299260008301846126d4565b92915050565b600060a0820190506129ad60008301886126d4565b6129ba60208301876124e8565b81810360408301526129cc818661247b565b90506129db606083018561246c565b6129e860808301846126d4565b9695505050505050565b6000602082019050612a0760008301846126e3565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612a6d82612bb5565b9150612a7883612bb5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612aad57612aac612c11565b5b828201905092915050565b6000612ac382612bb5565b9150612ace83612bb5565b925082612ade57612add612c40565b5b828204905092915050565b6000612af482612bb5565b9150612aff83612bb5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612b3857612b37612c11565b5b828202905092915050565b6000612b4e82612bb5565b9150612b5983612bb5565b925082821015612b6c57612b6b612c11565b5b828203905092915050565b6000612b8282612b95565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612bd782612bb5565b9050919050565b60005b83811015612bfc578082015181840152602081019050612be1565b83811115612c0b576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b612f7f81612b77565b8114612f8a57600080fd5b50565b612f9681612b89565b8114612fa157600080fd5b50565b612fad81612bb5565b8114612fb857600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201c743013efdc5b3bc13e66ac36bb7c95853b50769dd83f75a68cffefc096f99964736f6c63430008040033

Deployed Bytecode

0x6080604052600436106101025760003560e01c8063715018a61161009557806395d89b411161006457806395d89b4114610308578063a9059cbb14610333578063c3c8cd8014610370578063c9567bf914610387578063dd62ed3e1461039e57610109565b8063715018a614610286578063751039fc1461029d578063843f7be2146102b45780638da5cb5b146102dd57610109565b8063313ce567116100d1578063313ce567146101de5780635932ead1146102095780636fc3eaec1461023257806370a082311461024957610109565b806306fdde031461010e578063095ea7b31461013957806318160ddd1461017657806323b872dd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b506101236103db565b60405161013091906127db565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b919061233f565b610418565b60405161016d91906127c0565b60405180910390f35b34801561018257600080fd5b5061018b610436565b604051610198919061297d565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c391906122f0565b610446565b6040516101d591906127c0565b60405180910390f35b3480156101ea57600080fd5b506101f361051f565b60405161020091906129f2565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b919061237b565b610528565b005b34801561023e57600080fd5b506102476105da565b005b34801561025557600080fd5b50610270600480360381019061026b9190612262565b61064c565b60405161027d919061297d565b60405180910390f35b34801561029257600080fd5b5061029b61069d565b005b3480156102a957600080fd5b506102b26107f0565b005b3480156102c057600080fd5b506102db60048036038101906102d691906123cd565b6108a5565b005b3480156102e957600080fd5b506102f2610952565b6040516102ff91906126f2565b60405180910390f35b34801561031457600080fd5b5061031d61097b565b60405161032a91906127db565b60405180910390f35b34801561033f57600080fd5b5061035a6004803603810190610355919061233f565b6109b8565b60405161036791906127c0565b60405180910390f35b34801561037c57600080fd5b506103856109d6565b005b34801561039357600080fd5b5061039c610a50565b005b3480156103aa57600080fd5b506103c560048036038101906103c091906122b4565b610f9c565b6040516103d2919061297d565b60405180910390f35b60606040518060400160405280600881526020017f4649464120494e55000000000000000000000000000000000000000000000000815250905090565b600061042c610425611023565b848461102b565b6001905092915050565b600067016345785d8a0000905090565b60006104538484846111f6565b6105148461045f611023565b61050f85604051806060016040528060288152602001612fbc60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104c5611023565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116f99092919063ffffffff16565b61102b565b600190509392505050565b60006009905090565b610530611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b4906128bd565b60405180910390fd5b80600f60176101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661061b611023565b73ffffffffffffffffffffffffffffffffffffffff161461063b57600080fd5b60004790506106498161175d565b50565b6000610696600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117c9565b9050919050565b6106a5611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610732576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610729906128bd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6107f8611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087c906128bd565b60405180910390fd5b67016345785d8a000060108190555067016345785d8a0000601181905550565b6108ad611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461093a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610931906128bd565b60405180910390fd5b600c54811061094857600080fd5b80600c8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f46494641494e5500000000000000000000000000000000000000000000000000815250905090565b60006109cc6109c5611023565b84846111f6565b6001905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a17611023565b73ffffffffffffffffffffffffffffffffffffffff1614610a3757600080fd5b6000610a423061064c565b9050610a4d81611837565b50565b610a58611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adc906128bd565b60405180910390fd5b600f60149054906101000a900460ff1615610b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2c9061295d565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bc430600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1667016345785d8a000061102b565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610c0a57600080fd5b505afa158015610c1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c42919061228b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610ca457600080fd5b505afa158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc919061228b565b6040518363ffffffff1660e01b8152600401610cf992919061270d565b602060405180830381600087803b158015610d1357600080fd5b505af1158015610d27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4b919061228b565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610dd43061064c565b600080610ddf610952565b426040518863ffffffff1660e01b8152600401610e019695949392919061275f565b6060604051808303818588803b158015610e1a57600080fd5b505af1158015610e2e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e5391906123f6565b5050506001600f60166101000a81548160ff0219169083151502179055506001600f60176101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff021916908315150217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f46929190612736565b602060405180830381600087803b158015610f6057600080fd5b505af1158015610f74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9891906123a4565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561109b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110929061293d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561110b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111029061285d565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111e9919061297d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611266576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125d906128fd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cd906127fd565b60405180910390fd5b60008111611319576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611310906128dd565b60405180910390fd5b611321610952565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561138f575061135f610952565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156116d857600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114385750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61144157600080fd5b6000600a81905550600c54600b81905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156114fd5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115535750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561156b5750600f60179054906101000a900460ff165b1561160e576010548111156115b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ac9061281d565b60405180910390fd5b601154816115c28461064c565b6115cc9190612a62565b111561160d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116049061291d565b60405180910390fd5b5b60006116193061064c565b9050600f60159054906101000a900460ff161580156116865750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561169e5750600f60169054906101000a900460ff165b80156116aa5750600081115b156116d2576116b881611837565b600047905060008111156116d0576116cf4761175d565b5b505b506116e9565b6000600a819055506000600b819055505b6116f4838383611b31565b505050565b6000838311158290611741576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173891906127db565b60405180910390fd5b50600083856117509190612b43565b9050809150509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156117c5573d6000803e3d6000fd5b5050565b6000600854821115611810576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118079061283d565b60405180910390fd5b600061181a611b41565b905061182f8184611b6c90919063ffffffff16565b915050919050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611895577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156118c35781602001602082028036833780820191505090505b5090503081600081518110611901577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156119a357600080fd5b505afa1580156119b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119db919061228b565b81600181518110611a15577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611a7c30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461102b565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611ae0959493929190612998565b600060405180830381600087803b158015611afa57600080fd5b505af1158015611b0e573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b611b3c838383611bb6565b505050565b6000806000611b4e611d81565b91509150611b658183611b6c90919063ffffffff16565b9250505090565b6000611bae83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611de0565b905092915050565b600080600080600080611bc887611e43565b955095509550955095509550611c2686600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611eab90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611cbb85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ef590919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d0781611f53565b611d118483612010565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611d6e919061297d565b60405180910390a3505050505050505050565b60008060006008549050600067016345785d8a00009050611db567016345785d8a0000600854611b6c90919063ffffffff16565b821015611dd35760085467016345785d8a0000935093505050611ddc565b81819350935050505b9091565b60008083118290611e27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1e91906127db565b60405180910390fd5b5060008385611e369190612ab8565b9050809150509392505050565b6000806000806000806000806000611e608a600a54600b5461204a565b9250925092506000611e70611b41565b90506000806000611e838e8787876120e0565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611eed83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116f9565b905092915050565b6000808284611f049190612a62565b905083811015611f49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f409061287d565b60405180910390fd5b8091505092915050565b6000611f5d611b41565b90506000611f74828461216990919063ffffffff16565b9050611fc881600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ef590919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61202582600854611eab90919063ffffffff16565b60088190555061204081600954611ef590919063ffffffff16565b6009819055505050565b6000806000806120766064612068888a61216990919063ffffffff16565b611b6c90919063ffffffff16565b905060006120a06064612092888b61216990919063ffffffff16565b611b6c90919063ffffffff16565b905060006120c9826120bb858c611eab90919063ffffffff16565b611eab90919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806120f9858961216990919063ffffffff16565b90506000612110868961216990919063ffffffff16565b90506000612127878961216990919063ffffffff16565b90506000612150826121428587611eab90919063ffffffff16565b611eab90919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561217c57600090506121de565b6000828461218a9190612ae9565b90508284826121999190612ab8565b146121d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d09061289d565b60405180910390fd5b809150505b92915050565b6000813590506121f381612f76565b92915050565b60008151905061220881612f76565b92915050565b60008135905061221d81612f8d565b92915050565b60008151905061223281612f8d565b92915050565b60008135905061224781612fa4565b92915050565b60008151905061225c81612fa4565b92915050565b60006020828403121561227457600080fd5b6000612282848285016121e4565b91505092915050565b60006020828403121561229d57600080fd5b60006122ab848285016121f9565b91505092915050565b600080604083850312156122c757600080fd5b60006122d5858286016121e4565b92505060206122e6858286016121e4565b9150509250929050565b60008060006060848603121561230557600080fd5b6000612313868287016121e4565b9350506020612324868287016121e4565b925050604061233586828701612238565b9150509250925092565b6000806040838503121561235257600080fd5b6000612360858286016121e4565b925050602061237185828601612238565b9150509250929050565b60006020828403121561238d57600080fd5b600061239b8482850161220e565b91505092915050565b6000602082840312156123b657600080fd5b60006123c484828501612223565b91505092915050565b6000602082840312156123df57600080fd5b60006123ed84828501612238565b91505092915050565b60008060006060848603121561240b57600080fd5b60006124198682870161224d565b935050602061242a8682870161224d565b925050604061243b8682870161224d565b9150509250925092565b6000612451838361245d565b60208301905092915050565b61246681612b77565b82525050565b61247581612b77565b82525050565b600061248682612a1d565b6124908185612a40565b935061249b83612a0d565b8060005b838110156124cc5781516124b38882612445565b97506124be83612a33565b92505060018101905061249f565b5085935050505092915050565b6124e281612b89565b82525050565b6124f181612bcc565b82525050565b600061250282612a28565b61250c8185612a51565b935061251c818560208601612bde565b61252581612c6f565b840191505092915050565b600061253d602383612a51565b915061254882612c80565b604082019050919050565b6000612560601983612a51565b915061256b82612ccf565b602082019050919050565b6000612583602a83612a51565b915061258e82612cf8565b604082019050919050565b60006125a6602283612a51565b91506125b182612d47565b604082019050919050565b60006125c9601b83612a51565b91506125d482612d96565b602082019050919050565b60006125ec602183612a51565b91506125f782612dbf565b604082019050919050565b600061260f602083612a51565b915061261a82612e0e565b602082019050919050565b6000612632602983612a51565b915061263d82612e37565b604082019050919050565b6000612655602583612a51565b915061266082612e86565b604082019050919050565b6000612678601a83612a51565b915061268382612ed5565b602082019050919050565b600061269b602483612a51565b91506126a682612efe565b604082019050919050565b60006126be601783612a51565b91506126c982612f4d565b602082019050919050565b6126dd81612bb5565b82525050565b6126ec81612bbf565b82525050565b6000602082019050612707600083018461246c565b92915050565b6000604082019050612722600083018561246c565b61272f602083018461246c565b9392505050565b600060408201905061274b600083018561246c565b61275860208301846126d4565b9392505050565b600060c082019050612774600083018961246c565b61278160208301886126d4565b61278e60408301876124e8565b61279b60608301866124e8565b6127a8608083018561246c565b6127b560a08301846126d4565b979650505050505050565b60006020820190506127d560008301846124d9565b92915050565b600060208201905081810360008301526127f581846124f7565b905092915050565b6000602082019050818103600083015261281681612530565b9050919050565b6000602082019050818103600083015261283681612553565b9050919050565b6000602082019050818103600083015261285681612576565b9050919050565b6000602082019050818103600083015261287681612599565b9050919050565b60006020820190508181036000830152612896816125bc565b9050919050565b600060208201905081810360008301526128b6816125df565b9050919050565b600060208201905081810360008301526128d681612602565b9050919050565b600060208201905081810360008301526128f681612625565b9050919050565b6000602082019050818103600083015261291681612648565b9050919050565b600060208201905081810360008301526129368161266b565b9050919050565b600060208201905081810360008301526129568161268e565b9050919050565b60006020820190508181036000830152612976816126b1565b9050919050565b600060208201905061299260008301846126d4565b92915050565b600060a0820190506129ad60008301886126d4565b6129ba60208301876124e8565b81810360408301526129cc818661247b565b90506129db606083018561246c565b6129e860808301846126d4565b9695505050505050565b6000602082019050612a0760008301846126e3565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612a6d82612bb5565b9150612a7883612bb5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612aad57612aac612c11565b5b828201905092915050565b6000612ac382612bb5565b9150612ace83612bb5565b925082612ade57612add612c40565b5b828204905092915050565b6000612af482612bb5565b9150612aff83612bb5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612b3857612b37612c11565b5b828202905092915050565b6000612b4e82612bb5565b9150612b5983612bb5565b925082821015612b6c57612b6b612c11565b5b828203905092915050565b6000612b8282612b95565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612bd782612bb5565b9050919050565b60005b83811015612bfc578082015181840152602081019050612be1565b83811115612c0b576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b612f7f81612b77565b8114612f8a57600080fd5b50565b612f9681612b89565b8114612fa157600080fd5b50565b612fad81612bb5565b8114612fb857600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201c743013efdc5b3bc13e66ac36bb7c95853b50769dd83f75a68cffefc096f99964736f6c63430008040033

Deployed Bytecode Sourcemap

3586:9994:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5351:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6203:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5628:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6372:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5537:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6693:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11695:193;;;;;;;;;;;;;:::i;:::-;;5731:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2667:148;;;;;;;;;;;;;:::i;:::-;;9421:118;;;;;;;;;;;;;:::i;:::-;;9282:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2453:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5442:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5877:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11493:194;;;;;;;;;;;;;:::i;:::-;;9651:773;;;;;;;;;;;;;:::i;:::-;;6052:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5351:83;5388:13;5421:5;;;;;;;;;;;;;;;;;5414:12;;5351:83;:::o;6203:161::-;6278:4;6295:39;6304:12;:10;:12::i;:::-;6318:7;6327:6;6295:8;:39::i;:::-;6352:4;6345:11;;6203:161;;;;:::o;5628:95::-;5681:7;4086:17;5701:14;;5628:95;:::o;6372:313::-;6470:4;6487:36;6497:6;6505:9;6516:6;6487:9;:36::i;:::-;6534:121;6543:6;6551:12;:10;:12::i;:::-;6565:89;6603:6;6565:89;;;;;;;;;;;;;;;;;:11;:19;6577:6;6565:19;;;;;;;;;;;;;;;:33;6585:12;:10;:12::i;:::-;6565:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6534:8;:121::i;:::-;6673:4;6666:11;;6372:313;;;;;:::o;5537:83::-;5578:5;4495:1;5596:16;;5537:83;:::o;6693:103::-;2590:12;:10;:12::i;:::-;2580:22;;:6;;;;;;;;;;:22;;;2572:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6783:5:::1;6765:15;;:23;;;;;;;;;;;;;;;;;;6693:103:::0;:::o;11695:193::-;11761:14;;;;;;;;;;;11745:30;;:12;:10;:12::i;:::-;:30;;;11737:39;;;;;;11787:26;11816:21;11787:50;;11848:32;11861:18;11848:12;:32::i;:::-;11695:193;:::o;5731:138::-;5797:7;5824:37;5844:7;:16;5852:7;5844:16;;;;;;;;;;;;;;;;5824:19;:37::i;:::-;5817:44;;5731:138;;;:::o;2667:148::-;2590:12;:10;:12::i;:::-;2580:22;;:6;;;;;;;;;;:22;;;2572:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2774:1:::1;2737:40;;2758:6;::::0;::::1;;;;;;;;2737:40;;;;;;;;;;;;2805:1;2788:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2667:148::o:0;9421:118::-;2590:12;:10;:12::i;:::-;2580:22;;:6;;;;;;;;;;:22;;;2572:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4086:17:::1;9474:12;:22;;;;4086:17;9507:14;:24;;;;9421:118::o:0;9282:131::-;2590:12;:10;:12::i;:::-;2580:22;;:6;;;;;;;;;;:22;;;2572:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9364:12:::1;;9357:6;:19;9349:28;;;::::0;::::1;;9399:6;9386:12;:19;;;;9282:131:::0;:::o;2453:79::-;2491:7;2518:6;;;;;;;;;;;2511:13;;2453:79;:::o;5442:87::-;5481:13;5514:7;;;;;;;;;;;;;;;;;5507:14;;5442:87;:::o;5877:167::-;5955:4;5972:42;5982:12;:10;:12::i;:::-;5996:9;6007:6;5972:9;:42::i;:::-;6032:4;6025:11;;5877:167;;;;:::o;11493:194::-;11559:14;;;;;;;;;;;11543:30;;:12;:10;:12::i;:::-;:30;;;11535:39;;;;;;11585:23;11611:24;11629:4;11611:9;:24::i;:::-;11585:50;;11646:33;11663:15;11646:16;:33::i;:::-;11493:194;:::o;9651:773::-;2590:12;:10;:12::i;:::-;2580:22;;:6;;;;;;;;;;:22;;;2572:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9715:11:::1;;;;;;;;;;;9714:12;9706:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;9764:35;9821:42;9764:100;;9893:16;9875:15;;:34;;;;;;;;;;;;;;;;;;9920:58;9937:4;9952:15;;;;;;;;;;;4086:17;9920:8;:58::i;:::-;10023:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10005:56;;;10070:4;10077:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10005:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9989:13;;:112;;;;;;;;;;;;;;;;;;10112:15;;;;;;;;;;;:31;;;10151:21;10182:4;10188:24;10206:4;10188:9;:24::i;:::-;10213:1;10215::::0;10217:7:::1;:5;:7::i;:::-;10225:15;10112:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10266:4;10252:11;;:18;;;;;;;;;;;;;;;;;;10299:4;10281:15;;:22;;;;;;;;;;;;;;;;;;10330:4;10316:11;;:18;;;;;;;;;;;;;;;;;;10352:13;;;;;;;;;;;10345:29;;;10383:15;;;;;;;;;;;10401:14;10345:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2650:1;9651:773::o:0;6052:143::-;6133:7;6160:11;:18;6172:5;6160:18;;;;;;;;;;;;;;;:27;6179:7;6160:27;;;;;;;;;;;;;;;;6153:34;;6052:143;;;;:::o;171:98::-;224:7;251:10;244:17;;171:98;:::o;7066:335::-;7176:1;7159:19;;:5;:19;;;;7151:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7257:1;7238:21;;:7;:21;;;;7230:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7339:6;7309:11;:18;7321:5;7309:18;;;;;;;;;;;;;;;:27;7328:7;7309:27;;;;;;;;;;;;;;;:36;;;;7377:7;7361:32;;7370:5;7361:32;;;7386:6;7361:32;;;;;;:::i;:::-;;;;;;;;7066:335;;;:::o;7409:1374::-;7513:1;7497:18;;:4;:18;;;;7489:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7590:1;7576:16;;:2;:16;;;;7568:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7660:1;7651:6;:10;7643:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7734:7;:5;:7::i;:::-;7726:15;;:4;:15;;;;:32;;;;;7751:7;:5;:7::i;:::-;7745:13;;:2;:13;;;;7726:32;7722:1011;;;7784:4;:10;7789:4;7784:10;;;;;;;;;;;;;;;;;;;;;;;;;7783:11;:24;;;;;7799:4;:8;7804:2;7799:8;;;;;;;;;;;;;;;;;;;;;;;;;7798:9;7783:24;7775:33;;;;;;7835:1;7823:9;:13;;;;7863:12;;7851:9;:24;;;;7902:13;;;;;;;;;;;7894:21;;:4;:21;;;:55;;;;;7933:15;;;;;;;;;;;7919:30;;:2;:30;;;;7894:55;:83;;;;;7955:18;:22;7974:2;7955:22;;;;;;;;;;;;;;;;;;;;;;;;;7953:24;7894:83;:102;;;;;7981:15;;;;;;;;;;;7894:102;7890:332;;;8064:12;;8054:6;:22;;8046:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8159:14;;8149:6;8133:13;8143:2;8133:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8125:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7890:332;8240:28;8271:24;8289:4;8271:9;:24::i;:::-;8240:55;;8315:6;;;;;;;;;;;8314:7;:32;;;;;8333:13;;;;;;;;;;;8325:21;;:4;:21;;;;8314:32;:47;;;;;8350:11;;;;;;;;;;;8314:47;:73;;;;;8386:1;8365:20;:22;8314:73;8310:344;;;8408:38;8425:20;8408:16;:38::i;:::-;8465:26;8494:21;8465:50;;8558:1;8537:18;:22;8534:105;;;8584:35;8597:21;8584:12;:35::i;:::-;8534:105;8310:344;;7722:1011;;;;8694:1;8682:9;:13;;;;8720:1;8708:9;:13;;;;7722:1011;8745:30;8760:4;8765:2;8768:6;8745:14;:30::i;:::-;7409:1374;;;:::o;1308:190::-;1394:7;1427:1;1422;:6;;1430:12;1414:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1454:9;1470:1;1466;:5;;;;:::i;:::-;1454:17;;1489:1;1482:8;;;1308:190;;;;;:::o;9547:96::-;9604:14;;;;;;;;;;;:23;;:31;9628:6;9604:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9547:96;:::o;6804:254::-;6871:7;6910;;6899;:18;;6891:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6975:19;6998:10;:8;:10::i;:::-;6975:33;;7026:24;7038:11;7026:7;:11;;:24;;;;:::i;:::-;7019:31;;;6804:254;;;:::o;8791:483::-;4936:4;4927:6;;:13;;;;;;;;;;;;;;;;;;8869:21:::1;8907:1;8893:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8869:40;;8938:4;8920;8925:1;8920:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;8964:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8954:4;8959:1;8954:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;8997:62;9014:4;9029:15;;;;;;;;;;;9047:11;8997:8;:62::i;:::-;9070:15;;;;;;;;;;;:66;;;9151:11;9177:1;9193:4;9220;9240:15;9070:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4951:1;4972:5:::0;4963:6;;:14;;;;;;;;;;;;;;;;;;8791:483;:::o;10432:146::-;10526:44;10544:6;10552:9;10563:6;10526:17;:44::i;:::-;10432:146;;;:::o;13150:163::-;13191:7;13212:15;13229;13248:19;:17;:19::i;:::-;13211:56;;;;13285:20;13297:7;13285;:11;;:20;;;;:::i;:::-;13278:27;;;;13150:163;:::o;1760:132::-;1818:7;1845:39;1849:1;1852;1845:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1838:46;;1760:132;;;;:::o;10586:487::-;10685:15;10702:23;10727:12;10741:23;10766:12;10780:13;10797:19;10808:7;10797:10;:19::i;:::-;10684:132;;;;;;;;;;;;10845:28;10865:7;10845;:15;10853:6;10845:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;10827:7;:15;10835:6;10827:15;;;;;;;;;;;;;;;:46;;;;10905:39;10928:15;10905:7;:18;10913:9;10905:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;10884:7;:18;10892:9;10884:18;;;;;;;;;;;;;;;:60;;;;10955:16;10965:5;10955:9;:16::i;:::-;10982:23;10994:4;11000;10982:11;:23::i;:::-;11038:9;11021:44;;11030:6;11021:44;;;11049:15;11021:44;;;;;;:::i;:::-;;;;;;;;10586:487;;;;;;;;;:::o;13321:256::-;13371:7;13380;13400:15;13418:7;;13400:25;;13436:15;4086:17;13436:25;;13486:20;4086:17;13486:7;;:11;;:20;;;;:::i;:::-;13476:7;:30;13472:61;;;13516:7;;4086:17;13508:25;;;;;;;;13472:61;13552:7;13561;13544:25;;;;;;13321:256;;;:::o;1900:189::-;1986:7;2018:1;2014;:5;2021:12;2006:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2045:9;2061:1;2057;:5;;;;:::i;:::-;2045:17;;2080:1;2073:8;;;1900:189;;;;;:::o;11898:471::-;11957:7;11966;11975;11984;11993;12002;12023:23;12048:12;12062:13;12079:42;12091:7;12100:9;;12111;;12079:11;:42::i;:::-;12022:99;;;;;;12132:19;12155:10;:8;:10::i;:::-;12132:33;;12177:15;12194:23;12219:12;12235:46;12247:7;12256:4;12262:5;12269:11;12235;:46::i;:::-;12176:105;;;;;;12300:7;12309:15;12326:4;12332:15;12349:4;12355:5;12292:69;;;;;;;;;;;;;;;;;;;11898:471;;;;;;;:::o;1164:136::-;1222:7;1249:43;1253:1;1256;1249:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1242:50;;1164:136;;;;:::o;977:179::-;1035:7;1055:9;1071:1;1067;:5;;;;:::i;:::-;1055:17;;1096:1;1091;:6;;1083:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1147:1;1140:8;;;977:179;;;;:::o;11081:212::-;11134:19;11157:10;:8;:10::i;:::-;11134:33;;11178:13;11194:22;11204:11;11194:5;:9;;:22;;;;:::i;:::-;11178:38;;11252:33;11279:5;11252:7;:22;11268:4;11252:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;11227:7;:22;11243:4;11227:22;;;;;;;;;;;;;;;:58;;;;11081:212;;;:::o;11301:147::-;11379:17;11391:4;11379:7;;:11;;:17;;;;:::i;:::-;11369:7;:27;;;;11420:20;11435:4;11420:10;;:14;;:20;;;;:::i;:::-;11407:10;:33;;;;11301:147;;:::o;12377:351::-;12470:7;12479;12488;12508:12;12523:28;12547:3;12523:19;12535:6;12523:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;12508:43;;12562:13;12578:29;12603:3;12578:20;12590:7;12578;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;12562:45;;12618:23;12644:28;12666:5;12644:17;12656:4;12644:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;12618:54;;12691:15;12708:4;12714:5;12683:37;;;;;;;;;12377:351;;;;;;;:::o;12736:409::-;12846:7;12855;12864;12884:15;12902:24;12914:11;12902:7;:11;;:24;;;;:::i;:::-;12884:42;;12937:12;12952:21;12961:11;12952:4;:8;;:21;;;;:::i;:::-;12937:36;;12984:13;13000:22;13010:11;13000:5;:9;;:22;;;;:::i;:::-;12984:38;;13033:23;13059:28;13081:5;13059:17;13071:4;13059:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13033:54;;13106:7;13115:15;13132:4;13098:39;;;;;;;;;;12736:409;;;;;;;;:::o;1506:246::-;1564:7;1593:1;1588;:6;1584:47;;;1618:1;1611:8;;;;1584:47;1641:9;1657:1;1653;:5;;;;:::i;:::-;1641:17;;1686:1;1681;1677;:5;;;;:::i;:::-;:10;1669:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1743:1;1736:8;;;1506:246;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;350:84;;;;:::o;440:137::-;494:5;525:6;519:13;510:22;;541:30;565:5;541:30;:::i;:::-;500:77;;;;:::o;583:139::-;629:5;667:6;654:20;645:29;;683:33;710:5;683:33;:::i;:::-;635:87;;;;:::o;728:143::-;785:5;816:6;810:13;801:22;;832:33;859:5;832:33;:::i;:::-;791:80;;;;:::o;877:262::-;936:6;985:2;973:9;964:7;960:23;956:32;953:2;;;1001:1;998;991:12;953:2;1044:1;1069:53;1114:7;1105:6;1094:9;1090:22;1069:53;:::i;:::-;1059:63;;1015:117;943:196;;;;:::o;1145:284::-;1215:6;1264:2;1252:9;1243:7;1239:23;1235:32;1232:2;;;1280:1;1277;1270:12;1232:2;1323:1;1348:64;1404:7;1395:6;1384:9;1380:22;1348:64;:::i;:::-;1338:74;;1294:128;1222:207;;;;:::o;1435:407::-;1503:6;1511;1560:2;1548:9;1539:7;1535:23;1531:32;1528:2;;;1576:1;1573;1566:12;1528:2;1619:1;1644:53;1689:7;1680:6;1669:9;1665:22;1644:53;:::i;:::-;1634:63;;1590:117;1746:2;1772:53;1817:7;1808:6;1797:9;1793:22;1772:53;:::i;:::-;1762:63;;1717:118;1518:324;;;;;:::o;1848:552::-;1925:6;1933;1941;1990:2;1978:9;1969:7;1965:23;1961:32;1958:2;;;2006:1;2003;1996:12;1958:2;2049:1;2074:53;2119:7;2110:6;2099:9;2095:22;2074:53;:::i;:::-;2064:63;;2020:117;2176:2;2202:53;2247:7;2238:6;2227:9;2223:22;2202:53;:::i;:::-;2192:63;;2147:118;2304:2;2330:53;2375:7;2366:6;2355:9;2351:22;2330:53;:::i;:::-;2320:63;;2275:118;1948:452;;;;;:::o;2406:407::-;2474:6;2482;2531:2;2519:9;2510:7;2506:23;2502:32;2499:2;;;2547:1;2544;2537:12;2499:2;2590:1;2615:53;2660:7;2651:6;2640:9;2636:22;2615:53;:::i;:::-;2605:63;;2561:117;2717:2;2743:53;2788:7;2779:6;2768:9;2764:22;2743:53;:::i;:::-;2733:63;;2688:118;2489:324;;;;;:::o;2819:256::-;2875:6;2924:2;2912:9;2903:7;2899:23;2895:32;2892:2;;;2940:1;2937;2930:12;2892:2;2983:1;3008:50;3050:7;3041:6;3030:9;3026:22;3008:50;:::i;:::-;2998:60;;2954:114;2882:193;;;;:::o;3081:278::-;3148:6;3197:2;3185:9;3176:7;3172:23;3168:32;3165:2;;;3213:1;3210;3203:12;3165:2;3256:1;3281:61;3334:7;3325:6;3314:9;3310:22;3281:61;:::i;:::-;3271:71;;3227:125;3155:204;;;;:::o;3365:262::-;3424:6;3473:2;3461:9;3452:7;3448:23;3444:32;3441:2;;;3489:1;3486;3479:12;3441:2;3532:1;3557:53;3602:7;3593:6;3582:9;3578:22;3557:53;:::i;:::-;3547:63;;3503:117;3431:196;;;;:::o;3633:596::-;3721:6;3729;3737;3786:2;3774:9;3765:7;3761:23;3757:32;3754:2;;;3802:1;3799;3792:12;3754:2;3845:1;3870:64;3926:7;3917:6;3906:9;3902:22;3870:64;:::i;:::-;3860:74;;3816:128;3983:2;4009:64;4065:7;4056:6;4045:9;4041:22;4009:64;:::i;:::-;3999:74;;3954:129;4122:2;4148:64;4204:7;4195:6;4184:9;4180:22;4148:64;:::i;:::-;4138:74;;4093:129;3744:485;;;;;:::o;4235:179::-;4304:10;4325:46;4367:3;4359:6;4325:46;:::i;:::-;4403:4;4398:3;4394:14;4380:28;;4315:99;;;;:::o;4420:108::-;4497:24;4515:5;4497:24;:::i;:::-;4492:3;4485:37;4475:53;;:::o;4534:118::-;4621:24;4639:5;4621:24;:::i;:::-;4616:3;4609:37;4599:53;;:::o;4688:732::-;4807:3;4836:54;4884:5;4836:54;:::i;:::-;4906:86;4985:6;4980:3;4906:86;:::i;:::-;4899:93;;5016:56;5066:5;5016:56;:::i;:::-;5095:7;5126:1;5111:284;5136:6;5133:1;5130:13;5111:284;;;5212:6;5206:13;5239:63;5298:3;5283:13;5239:63;:::i;:::-;5232:70;;5325:60;5378:6;5325:60;:::i;:::-;5315:70;;5171:224;5158:1;5155;5151:9;5146:14;;5111:284;;;5115:14;5411:3;5404:10;;4812:608;;;;;;;:::o;5426:109::-;5507:21;5522:5;5507:21;:::i;:::-;5502:3;5495:34;5485:50;;:::o;5541:147::-;5636:45;5675:5;5636:45;:::i;:::-;5631:3;5624:58;5614:74;;:::o;5694:364::-;5782:3;5810:39;5843:5;5810:39;:::i;:::-;5865:71;5929:6;5924:3;5865:71;:::i;:::-;5858:78;;5945:52;5990:6;5985:3;5978:4;5971:5;5967:16;5945:52;:::i;:::-;6022:29;6044:6;6022:29;:::i;:::-;6017:3;6013:39;6006:46;;5786:272;;;;;:::o;6064:366::-;6206:3;6227:67;6291:2;6286:3;6227:67;:::i;:::-;6220:74;;6303:93;6392:3;6303:93;:::i;:::-;6421:2;6416:3;6412:12;6405:19;;6210:220;;;:::o;6436:366::-;6578:3;6599:67;6663:2;6658:3;6599:67;:::i;:::-;6592:74;;6675:93;6764:3;6675:93;:::i;:::-;6793:2;6788:3;6784:12;6777:19;;6582:220;;;:::o;6808:366::-;6950:3;6971:67;7035:2;7030:3;6971:67;:::i;:::-;6964:74;;7047:93;7136:3;7047:93;:::i;:::-;7165:2;7160:3;7156:12;7149:19;;6954:220;;;:::o;7180:366::-;7322:3;7343:67;7407:2;7402:3;7343:67;:::i;:::-;7336:74;;7419:93;7508:3;7419:93;:::i;:::-;7537:2;7532:3;7528:12;7521:19;;7326:220;;;:::o;7552:366::-;7694:3;7715:67;7779:2;7774:3;7715:67;:::i;:::-;7708:74;;7791:93;7880:3;7791:93;:::i;:::-;7909:2;7904:3;7900:12;7893:19;;7698:220;;;:::o;7924:366::-;8066:3;8087:67;8151:2;8146:3;8087:67;:::i;:::-;8080:74;;8163:93;8252:3;8163:93;:::i;:::-;8281:2;8276:3;8272:12;8265:19;;8070:220;;;:::o;8296:366::-;8438:3;8459:67;8523:2;8518:3;8459:67;:::i;:::-;8452:74;;8535:93;8624:3;8535:93;:::i;:::-;8653:2;8648:3;8644:12;8637:19;;8442:220;;;:::o;8668:366::-;8810:3;8831:67;8895:2;8890:3;8831:67;:::i;:::-;8824:74;;8907:93;8996:3;8907:93;:::i;:::-;9025:2;9020:3;9016:12;9009:19;;8814:220;;;:::o;9040:366::-;9182:3;9203:67;9267:2;9262:3;9203:67;:::i;:::-;9196:74;;9279:93;9368:3;9279:93;:::i;:::-;9397:2;9392:3;9388:12;9381:19;;9186:220;;;:::o;9412:366::-;9554:3;9575:67;9639:2;9634:3;9575:67;:::i;:::-;9568:74;;9651:93;9740:3;9651:93;:::i;:::-;9769:2;9764:3;9760:12;9753:19;;9558:220;;;:::o;9784:366::-;9926:3;9947:67;10011:2;10006:3;9947:67;:::i;:::-;9940:74;;10023:93;10112:3;10023:93;:::i;:::-;10141:2;10136:3;10132:12;10125:19;;9930:220;;;:::o;10156:366::-;10298:3;10319:67;10383:2;10378:3;10319:67;:::i;:::-;10312:74;;10395:93;10484:3;10395:93;:::i;:::-;10513:2;10508:3;10504:12;10497:19;;10302:220;;;:::o;10528:118::-;10615:24;10633:5;10615:24;:::i;:::-;10610:3;10603:37;10593:53;;:::o;10652:112::-;10735:22;10751:5;10735:22;:::i;:::-;10730:3;10723:35;10713:51;;:::o;10770:222::-;10863:4;10901:2;10890:9;10886:18;10878:26;;10914:71;10982:1;10971:9;10967:17;10958:6;10914:71;:::i;:::-;10868:124;;;;:::o;10998:332::-;11119:4;11157:2;11146:9;11142:18;11134:26;;11170:71;11238:1;11227:9;11223:17;11214:6;11170:71;:::i;:::-;11251:72;11319:2;11308:9;11304:18;11295:6;11251:72;:::i;:::-;11124:206;;;;;:::o;11336:332::-;11457:4;11495:2;11484:9;11480:18;11472:26;;11508:71;11576:1;11565:9;11561:17;11552:6;11508:71;:::i;:::-;11589:72;11657:2;11646:9;11642:18;11633:6;11589:72;:::i;:::-;11462:206;;;;;:::o;11674:807::-;11923:4;11961:3;11950:9;11946:19;11938:27;;11975:71;12043:1;12032:9;12028:17;12019:6;11975:71;:::i;:::-;12056:72;12124:2;12113:9;12109:18;12100:6;12056:72;:::i;:::-;12138:80;12214:2;12203:9;12199:18;12190:6;12138:80;:::i;:::-;12228;12304:2;12293:9;12289:18;12280:6;12228:80;:::i;:::-;12318:73;12386:3;12375:9;12371:19;12362:6;12318:73;:::i;:::-;12401;12469:3;12458:9;12454:19;12445:6;12401:73;:::i;:::-;11928:553;;;;;;;;;:::o;12487:210::-;12574:4;12612:2;12601:9;12597:18;12589:26;;12625:65;12687:1;12676:9;12672:17;12663:6;12625:65;:::i;:::-;12579:118;;;;:::o;12703:313::-;12816:4;12854:2;12843:9;12839:18;12831:26;;12903:9;12897:4;12893:20;12889:1;12878:9;12874:17;12867:47;12931:78;13004:4;12995:6;12931:78;:::i;:::-;12923:86;;12821:195;;;;:::o;13022:419::-;13188:4;13226:2;13215:9;13211:18;13203:26;;13275:9;13269:4;13265:20;13261:1;13250:9;13246:17;13239:47;13303:131;13429:4;13303:131;:::i;:::-;13295:139;;13193:248;;;:::o;13447:419::-;13613:4;13651:2;13640:9;13636:18;13628:26;;13700:9;13694:4;13690:20;13686:1;13675:9;13671:17;13664:47;13728:131;13854:4;13728:131;:::i;:::-;13720:139;;13618:248;;;:::o;13872:419::-;14038:4;14076:2;14065:9;14061:18;14053:26;;14125:9;14119:4;14115:20;14111:1;14100:9;14096:17;14089:47;14153:131;14279:4;14153:131;:::i;:::-;14145:139;;14043:248;;;:::o;14297:419::-;14463:4;14501:2;14490:9;14486:18;14478:26;;14550:9;14544:4;14540:20;14536:1;14525:9;14521:17;14514:47;14578:131;14704:4;14578:131;:::i;:::-;14570:139;;14468:248;;;:::o;14722:419::-;14888:4;14926:2;14915:9;14911:18;14903:26;;14975:9;14969:4;14965:20;14961:1;14950:9;14946:17;14939:47;15003:131;15129:4;15003:131;:::i;:::-;14995:139;;14893:248;;;:::o;15147:419::-;15313:4;15351:2;15340:9;15336:18;15328:26;;15400:9;15394:4;15390:20;15386:1;15375:9;15371:17;15364:47;15428:131;15554:4;15428:131;:::i;:::-;15420:139;;15318:248;;;:::o;15572:419::-;15738:4;15776:2;15765:9;15761:18;15753:26;;15825:9;15819:4;15815:20;15811:1;15800:9;15796:17;15789:47;15853:131;15979:4;15853:131;:::i;:::-;15845:139;;15743:248;;;:::o;15997:419::-;16163:4;16201:2;16190:9;16186:18;16178:26;;16250:9;16244:4;16240:20;16236:1;16225:9;16221:17;16214:47;16278:131;16404:4;16278:131;:::i;:::-;16270:139;;16168:248;;;:::o;16422:419::-;16588:4;16626:2;16615:9;16611:18;16603:26;;16675:9;16669:4;16665:20;16661:1;16650:9;16646:17;16639:47;16703:131;16829:4;16703:131;:::i;:::-;16695:139;;16593:248;;;:::o;16847:419::-;17013:4;17051:2;17040:9;17036:18;17028:26;;17100:9;17094:4;17090:20;17086:1;17075:9;17071:17;17064:47;17128:131;17254:4;17128:131;:::i;:::-;17120:139;;17018:248;;;:::o;17272:419::-;17438:4;17476:2;17465:9;17461:18;17453:26;;17525:9;17519:4;17515:20;17511:1;17500:9;17496:17;17489:47;17553:131;17679:4;17553:131;:::i;:::-;17545:139;;17443:248;;;:::o;17697:419::-;17863:4;17901:2;17890:9;17886:18;17878:26;;17950:9;17944:4;17940:20;17936:1;17925:9;17921:17;17914:47;17978:131;18104:4;17978:131;:::i;:::-;17970:139;;17868:248;;;:::o;18122:222::-;18215:4;18253:2;18242:9;18238:18;18230:26;;18266:71;18334:1;18323:9;18319:17;18310:6;18266:71;:::i;:::-;18220:124;;;;:::o;18350:831::-;18613:4;18651:3;18640:9;18636:19;18628:27;;18665:71;18733:1;18722:9;18718:17;18709:6;18665:71;:::i;:::-;18746:80;18822:2;18811:9;18807:18;18798:6;18746:80;:::i;:::-;18873:9;18867:4;18863:20;18858:2;18847:9;18843:18;18836:48;18901:108;19004:4;18995:6;18901:108;:::i;:::-;18893:116;;19019:72;19087:2;19076:9;19072:18;19063:6;19019:72;:::i;:::-;19101:73;19169:3;19158:9;19154:19;19145:6;19101:73;:::i;:::-;18618:563;;;;;;;;:::o;19187:214::-;19276:4;19314:2;19303:9;19299:18;19291:26;;19327:67;19391:1;19380:9;19376:17;19367:6;19327:67;:::i;:::-;19281:120;;;;:::o;19407:132::-;19474:4;19497:3;19489:11;;19527:4;19522:3;19518:14;19510:22;;19479:60;;;:::o;19545:114::-;19612:6;19646:5;19640:12;19630:22;;19619:40;;;:::o;19665:99::-;19717:6;19751:5;19745:12;19735:22;;19724:40;;;:::o;19770:113::-;19840:4;19872;19867:3;19863:14;19855:22;;19845:38;;;:::o;19889:184::-;19988:11;20022:6;20017:3;20010:19;20062:4;20057:3;20053:14;20038:29;;20000:73;;;;:::o;20079:169::-;20163:11;20197:6;20192:3;20185:19;20237:4;20232:3;20228:14;20213:29;;20175:73;;;;:::o;20254:305::-;20294:3;20313:20;20331:1;20313:20;:::i;:::-;20308:25;;20347:20;20365:1;20347:20;:::i;:::-;20342:25;;20501:1;20433:66;20429:74;20426:1;20423:81;20420:2;;;20507:18;;:::i;:::-;20420:2;20551:1;20548;20544:9;20537:16;;20298:261;;;;:::o;20565:185::-;20605:1;20622:20;20640:1;20622:20;:::i;:::-;20617:25;;20656:20;20674:1;20656:20;:::i;:::-;20651:25;;20695:1;20685:2;;20700:18;;:::i;:::-;20685:2;20742:1;20739;20735:9;20730:14;;20607:143;;;;:::o;20756:348::-;20796:7;20819:20;20837:1;20819:20;:::i;:::-;20814:25;;20853:20;20871:1;20853:20;:::i;:::-;20848:25;;21041:1;20973:66;20969:74;20966:1;20963:81;20958:1;20951:9;20944:17;20940:105;20937:2;;;21048:18;;:::i;:::-;20937:2;21096:1;21093;21089:9;21078:20;;20804:300;;;;:::o;21110:191::-;21150:4;21170:20;21188:1;21170:20;:::i;:::-;21165:25;;21204:20;21222:1;21204:20;:::i;:::-;21199:25;;21243:1;21240;21237:8;21234:2;;;21248:18;;:::i;:::-;21234:2;21293:1;21290;21286:9;21278:17;;21155:146;;;;:::o;21307:96::-;21344:7;21373:24;21391:5;21373:24;:::i;:::-;21362:35;;21352:51;;;:::o;21409:90::-;21443:7;21486:5;21479:13;21472:21;21461:32;;21451:48;;;:::o;21505:126::-;21542:7;21582:42;21575:5;21571:54;21560:65;;21550:81;;;:::o;21637:77::-;21674:7;21703:5;21692:16;;21682:32;;;:::o;21720:86::-;21755:7;21795:4;21788:5;21784:16;21773:27;;21763:43;;;:::o;21812:121::-;21870:9;21903:24;21921:5;21903:24;:::i;:::-;21890:37;;21880:53;;;:::o;21939:307::-;22007:1;22017:113;22031:6;22028:1;22025:13;22017:113;;;22116:1;22111:3;22107:11;22101:18;22097:1;22092:3;22088:11;22081:39;22053:2;22050:1;22046:10;22041:15;;22017:113;;;22148:6;22145:1;22142:13;22139:2;;;22228:1;22219:6;22214:3;22210:16;22203:27;22139:2;21988:258;;;;:::o;22252:180::-;22300:77;22297:1;22290:88;22397:4;22394:1;22387:15;22421:4;22418:1;22411:15;22438:180;22486:77;22483:1;22476:88;22583:4;22580:1;22573:15;22607:4;22604:1;22597:15;22624:102;22665:6;22716:2;22712:7;22707:2;22700:5;22696:14;22692:28;22682:38;;22672:54;;;:::o;22732:222::-;22872:34;22868:1;22860:6;22856:14;22849:58;22941:5;22936:2;22928:6;22924:15;22917:30;22838:116;:::o;22960:175::-;23100:27;23096:1;23088:6;23084:14;23077:51;23066:69;:::o;23141:229::-;23281:34;23277:1;23269:6;23265:14;23258:58;23350:12;23345:2;23337:6;23333:15;23326:37;23247:123;:::o;23376:221::-;23516:34;23512:1;23504:6;23500:14;23493:58;23585:4;23580:2;23572:6;23568:15;23561:29;23482:115;:::o;23603:177::-;23743:29;23739:1;23731:6;23727:14;23720:53;23709:71;:::o;23786:220::-;23926:34;23922:1;23914:6;23910:14;23903:58;23995:3;23990:2;23982:6;23978:15;23971:28;23892:114;:::o;24012:182::-;24152:34;24148:1;24140:6;24136:14;24129:58;24118:76;:::o;24200:228::-;24340:34;24336:1;24328:6;24324:14;24317:58;24409:11;24404:2;24396:6;24392:15;24385:36;24306:122;:::o;24434:224::-;24574:34;24570:1;24562:6;24558:14;24551:58;24643:7;24638:2;24630:6;24626:15;24619:32;24540:118;:::o;24664:176::-;24804:28;24800:1;24792:6;24788:14;24781:52;24770:70;:::o;24846:223::-;24986:34;24982:1;24974:6;24970:14;24963:58;25055:6;25050:2;25042:6;25038:15;25031:31;24952:117;:::o;25075:173::-;25215:25;25211:1;25203:6;25199:14;25192:49;25181:67;:::o;25254:122::-;25327:24;25345:5;25327:24;:::i;:::-;25320:5;25317:35;25307:2;;25366:1;25363;25356:12;25307:2;25297:79;:::o;25382:116::-;25452:21;25467:5;25452:21;:::i;:::-;25445:5;25442:32;25432:2;;25488:1;25485;25478:12;25432:2;25422:76;:::o;25504:122::-;25577:24;25595:5;25577:24;:::i;:::-;25570:5;25567:35;25557:2;;25616:1;25613;25606:12;25557:2;25547:79;:::o

Swarm Source

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