ETH Price: $2,645.70 (-0.22%)

Token

Sendoor (SENDIT)
 

Overview

Max Total Supply

200,000,000 SENDIT

Holders

66

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
1,469,755.32566178 SENDIT

Value
$0.00
0xd2a7a4f56eea93501360a3c0bfa3999dac906eb7
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:
SendoorETH

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-07-05
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.13;

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 SendoorETH is Context, IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = "Sendoor";
    string private constant _symbol = "SENDIT";
    uint8 private constant _decimals = 8;
    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;

    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal =  200000000 * 10**_decimals;
    uint256 public _maxTxAmount =       2000000*10**_decimals;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    address payable private _feeWallet;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;


    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        _feeWallet = payable(_msgSender());
        _rOwned[address(this)] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeWallet] = true;

        emit MaxTxAmountUpdated(_maxTxAmount);
        emit Transfer(address(0), address(this), _tTotal);
    }

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

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

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

    function totalSupply() public 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 tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!bots[from]);
        _feeAddr1 = 0;
        _feeAddr2 = 0;
        if (from != owner() && to != owner()) {
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to]) {
                // buy
                require(amount <= _maxTxAmount);
                require(tradingOpen);
            }

            if ( from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
              if(to == uniswapV2Pair){
                _feeAddr1 = 0;
                _feeAddr2 = 6;
              }
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        _tokenTransfer(from,to,amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

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

    function liftMaxTxPercentage(uint256 percentage) external onlyOwner{
      require(percentage>1);
      _maxTxAmount = _tTotal.mul(percentage).div(100);
      emit MaxTxAmountUpdated(_maxTxAmount);
    }

    function addToSwap() external onlyOwner {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
      }

      function addLiquidity() external onlyOwner{
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    function openTrading() external onlyOwner{
        tradingOpen = true;
    }

    function setBots(address[] memory bots_,bool isBot) public onlyOwner {
      for (uint256 i = 0; i < bots_.length; i++) {
        if(bots_[i]!=address(uniswapV2Router) && bots_[i]!=address(uniswapV2Pair) &&bots_[i]!=address(this)){
          bots[bots_[i]] = isBot;
        }
      }
    }

    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 {
        swapTokensForEth(balanceOf(address(this)));
    }

    function manualsend() external {
        sendETHToFee(address(this).balance);
    }

    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":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"addToSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"liftMaxTxPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"},{"internalType":"bool","name":"isBot","type":"bool"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126008600a620002d3565b6200002190621e8480620002eb565b600755620000326008600a620002d3565b6200004290630bebc200620002eb565b62000050906000196200030d565b6200005e9060001962000330565b600855600e805461ffff60a81b191690553480156200007c57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600c80546001600160a01b031916331781556008543060008181526002602090815260408083209490945581546001600160a01b03908116835260058252848320805460ff199081166001908117909255948452858420805486168217905595541682529083902080549092169093179055600754815190815290517f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf929181900390910190a13060007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001976008600a620002d3565b620001a790630bebc200620002eb565b60405190815260200160405180910390a36200034a565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000215578160001904821115620001f957620001f9620001be565b808516156200020757918102915b93841c9390800290620001d9565b509250929050565b6000826200022e57506001620002cd565b816200023d57506000620002cd565b8160018114620002565760028114620002615762000281565b6001915050620002cd565b60ff841115620002755762000275620001be565b50506001821b620002cd565b5060208310610133831016604e8410600b8410161715620002a6575081810a620002cd565b620002b28383620001d4565b8060001904821115620002c957620002c9620001be565b0290505b92915050565b6000620002e460ff8416836200021d565b9392505050565b6000816000190483118215151615620003085762000308620001be565b500290565b6000826200032b57634e487b7160e01b600052601260045260246000fd5b500690565b600082821015620003455762000345620001be565b500390565b611b3a806200035a6000396000f3fe6080604052600436106101185760003560e01c80637d1db4a5116100a0578063a9059cbb11610064578063a9059cbb14610303578063c3c8cd8014610323578063c9567bf914610338578063dd62ed3e1461034d578063e8078d941461039357600080fd5b80637d1db4a5146102565780638da5cb5b1461026c57806395d89b411461029457806398d24403146102c35780639c0db5f3146102e357600080fd5b8063313ce567116100e7578063313ce567146101d957806339c96774146101f55780636fc3eaec1461020c57806370a0823114610221578063715018a61461024157600080fd5b806306fdde0314610124578063095ea7b31461016657806318160ddd1461019657806323b872dd146101b957600080fd5b3661011f57005b600080fd5b34801561013057600080fd5b5060408051808201909152600781526629b2b73237b7b960c91b60208201525b60405161015d91906115ca565b60405180910390f35b34801561017257600080fd5b50610186610181366004611644565b6103a8565b604051901515815260200161015d565b3480156101a257600080fd5b506101ab6103bf565b60405190815260200161015d565b3480156101c557600080fd5b506101866101d4366004611670565b6103e0565b3480156101e557600080fd5b506040516008815260200161015d565b34801561020157600080fd5b5061020a610449565b005b34801561021857600080fd5b5061020a61062b565b34801561022d57600080fd5b506101ab61023c3660046116b1565b610636565b34801561024d57600080fd5b5061020a610658565b34801561026257600080fd5b506101ab60075481565b34801561027857600080fd5b506000546040516001600160a01b03909116815260200161015d565b3480156102a057600080fd5b5060408051808201909152600681526514d15391125560d21b6020820152610150565b3480156102cf57600080fd5b5061020a6102de3660046116ce565b6106cc565b3480156102ef57600080fd5b5061020a6102fe366004611716565b61076d565b34801561030f57600080fd5b5061018661031e366004611644565b6108c1565b34801561032f57600080fd5b5061020a6108ce565b34801561034457600080fd5b5061020a6108df565b34801561035957600080fd5b506101ab6103683660046117ed565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561039f57600080fd5b5061020a61091e565b60006103b5338484610a98565b5060015b92915050565b60006103cd6008600a611920565b6103db90630bebc20061192f565b905090565b60006103ed848484610bbc565b61043f843361043a85604051806060016040528060288152602001611add602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610ea9565b610a98565b5060019392505050565b6000546001600160a01b0316331461047c5760405162461bcd60e51b81526004016104739061194e565b60405180910390fd5b600d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556104c430826104b66008600a611920565b61043a90630bebc20061192f565b806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610502573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105269190611983565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610573573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105979190611983565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156105e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106089190611983565b600e80546001600160a01b0319166001600160a01b039290921691909117905550565b61063447610ee3565b565b6001600160a01b0381166000908152600260205260408120546103b990610f21565b6000546001600160a01b031633146106825760405162461bcd60e51b81526004016104739061194e565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106f65760405162461bcd60e51b81526004016104739061194e565b6001811161070357600080fd5b610732606461072c836107186008600a611920565b61072690630bebc20061192f565b90610fa5565b90611027565b60078190556040519081527f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf9060200160405180910390a150565b6000546001600160a01b031633146107975760405162461bcd60e51b81526004016104739061194e565b60005b82518110156108bc57600d5483516001600160a01b03909116908490839081106107c6576107c66119a0565b60200260200101516001600160a01b0316141580156108175750600e5483516001600160a01b0390911690849083908110610803576108036119a0565b60200260200101516001600160a01b031614155b801561084e5750306001600160a01b031683828151811061083a5761083a6119a0565b60200260200101516001600160a01b031614155b156108aa57816006600085848151811061086a5761086a6119a0565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055505b806108b4816119b6565b91505061079a565b505050565b60006103b5338484610bbc565b6106346108da30610636565b611069565b6000546001600160a01b031633146109095760405162461bcd60e51b81526004016104739061194e565b600e805460ff60a01b1916600160a01b179055565b6000546001600160a01b031633146109485760405162461bcd60e51b81526004016104739061194e565b600d546001600160a01b031663f305d719473061096481610636565b6000806109796000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109e1573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a0691906119cf565b5050600e8054600160b01b60ff60b01b19821617909155600d5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610a71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9591906119fd565b50565b6001600160a01b038316610afa5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610473565b6001600160a01b038216610b5b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610473565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c205760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610473565b6001600160a01b038216610c825760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610473565b60008111610ce45760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610473565b6001600160a01b03831660009081526006602052604090205460ff1615610d0a57600080fd5b6000600a819055600b55610d266000546001600160a01b031690565b6001600160a01b0316836001600160a01b031614158015610d5557506000546001600160a01b03838116911614155b15610e9e57600e546001600160a01b038481169116148015610d855750600d546001600160a01b03838116911614155b8015610daa57506001600160a01b03821660009081526005602052604090205460ff16155b15610dd457600754811115610dbe57600080fd5b600e54600160a01b900460ff16610dd457600080fd5b600d546001600160a01b03848116911614801590610e0b57506001600160a01b03831660009081526005602052604090205460ff16155b15610e3157600e546001600160a01b0390811690831603610e31576000600a556006600b555b6000610e3c30610636565b600e54909150600160a81b900460ff16158015610e675750600e546001600160a01b03858116911614155b8015610e7c5750600e54600160b01b900460ff165b15610e9c57610e8a81611069565b478015610e9a57610e9a47610ee3565b505b505b6108bc8383836111e3565b60008184841115610ecd5760405162461bcd60e51b815260040161047391906115ca565b506000610eda8486611a1a565b95945050505050565b600c546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610f1d573d6000803e3d6000fd5b5050565b6000600854821115610f885760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610473565b6000610f926111ee565b9050610f9e8382611027565b9392505050565b600082600003610fb7575060006103b9565b6000610fc3838561192f565b905082610fd08583611a31565b14610f9e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610473565b6000610f9e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611211565b600e805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106110b1576110b16119a0565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561110a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112e9190611983565b81600181518110611141576111416119a0565b6001600160a01b039283166020918202929092010152600d546111679130911684610a98565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac947906111a0908590600090869030904290600401611a53565b600060405180830381600087803b1580156111ba57600080fd5b505af11580156111ce573d6000803e3d6000fd5b5050600e805460ff60a81b1916905550505050565b6108bc83838361123f565b60008060006111fb611336565b909250905061120a8282611027565b9250505090565b600081836112325760405162461bcd60e51b815260040161047391906115ca565b506000610eda8486611a31565b600080600080600080611251876113bf565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150611283908761141c565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546112b2908661145e565b6001600160a01b0389166000908152600260205260409020556112d4816114bd565b6112de8483611507565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161132391815260200190565b60405180910390a3505050505050505050565b6000806000600854905060006008600a6113509190611920565b61135e90630bebc20061192f565b905061138661136f6008600a611920565b61137d90630bebc20061192f565b60085490611027565b8210156113b6576008546008600a61139e9190611920565b6113ac90630bebc20061192f565b9350935050509091565b90939092509050565b60008060008060008060008060006113dc8a600a54600b5461152b565b92509250925060006113ec6111ee565b905060008060006113ff8e87878761157a565b919e509c509a509598509396509194505050505091939550919395565b6000610f9e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ea9565b60008061146b8385611ac4565b905083811015610f9e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610473565b60006114c76111ee565b905060006114d58383610fa5565b306000908152600260205260409020549091506114f2908261145e565b30600090815260026020526040902055505050565b600854611514908361141c565b600855600954611524908261145e565b6009555050565b600080808061153f606461072c8989610fa5565b90506000611552606461072c8a89610fa5565b9050600061156a826115648b8661141c565b9061141c565b9992985090965090945050505050565b60008080806115898886610fa5565b905060006115978887610fa5565b905060006115a58888610fa5565b905060006115b782611564868661141c565b939b939a50919850919650505050505050565b600060208083528351808285015260005b818110156115f7578581018301518582016040015282016115db565b81811115611609576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610a9557600080fd5b803561163f8161161f565b919050565b6000806040838503121561165757600080fd5b82356116628161161f565b946020939093013593505050565b60008060006060848603121561168557600080fd5b83356116908161161f565b925060208401356116a08161161f565b929592945050506040919091013590565b6000602082840312156116c357600080fd5b8135610f9e8161161f565b6000602082840312156116e057600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b8015158114610a9557600080fd5b803561163f816116fd565b6000806040838503121561172957600080fd5b823567ffffffffffffffff8082111561174157600080fd5b818501915085601f83011261175557600080fd5b8135602082821115611769576117696116e7565b8160051b604051601f19603f8301168101818110868211171561178e5761178e6116e7565b6040529283528183019350848101820192898411156117ac57600080fd5b948201945b838610156117d1576117c286611634565b855294820194938201936117b1565b96506117e0905087820161170b565b9450505050509250929050565b6000806040838503121561180057600080fd5b823561180b8161161f565b9150602083013561181b8161161f565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561187757816000190482111561185d5761185d611826565b8085161561186a57918102915b93841c9390800290611841565b509250929050565b60008261188e575060016103b9565b8161189b575060006103b9565b81600181146118b157600281146118bb576118d7565b60019150506103b9565b60ff8411156118cc576118cc611826565b50506001821b6103b9565b5060208310610133831016604e8410600b84101617156118fa575081810a6103b9565b611904838361183c565b806000190482111561191857611918611826565b029392505050565b6000610f9e60ff84168361187f565b600081600019048311821515161561194957611949611826565b500290565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561199557600080fd5b8151610f9e8161161f565b634e487b7160e01b600052603260045260246000fd5b6000600182016119c8576119c8611826565b5060010190565b6000806000606084860312156119e457600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611a0f57600080fd5b8151610f9e816116fd565b600082821015611a2c57611a2c611826565b500390565b600082611a4e57634e487b7160e01b600052601260045260246000fd5b500490565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611aa35784516001600160a01b031683529383019391830191600101611a7e565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611ad757611ad7611826565b50019056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122080645ee86e7425767c9870be58771decca584bb8505ff25b0d9550ab3e7b6c4664736f6c634300080d0033

Deployed Bytecode

0x6080604052600436106101185760003560e01c80637d1db4a5116100a0578063a9059cbb11610064578063a9059cbb14610303578063c3c8cd8014610323578063c9567bf914610338578063dd62ed3e1461034d578063e8078d941461039357600080fd5b80637d1db4a5146102565780638da5cb5b1461026c57806395d89b411461029457806398d24403146102c35780639c0db5f3146102e357600080fd5b8063313ce567116100e7578063313ce567146101d957806339c96774146101f55780636fc3eaec1461020c57806370a0823114610221578063715018a61461024157600080fd5b806306fdde0314610124578063095ea7b31461016657806318160ddd1461019657806323b872dd146101b957600080fd5b3661011f57005b600080fd5b34801561013057600080fd5b5060408051808201909152600781526629b2b73237b7b960c91b60208201525b60405161015d91906115ca565b60405180910390f35b34801561017257600080fd5b50610186610181366004611644565b6103a8565b604051901515815260200161015d565b3480156101a257600080fd5b506101ab6103bf565b60405190815260200161015d565b3480156101c557600080fd5b506101866101d4366004611670565b6103e0565b3480156101e557600080fd5b506040516008815260200161015d565b34801561020157600080fd5b5061020a610449565b005b34801561021857600080fd5b5061020a61062b565b34801561022d57600080fd5b506101ab61023c3660046116b1565b610636565b34801561024d57600080fd5b5061020a610658565b34801561026257600080fd5b506101ab60075481565b34801561027857600080fd5b506000546040516001600160a01b03909116815260200161015d565b3480156102a057600080fd5b5060408051808201909152600681526514d15391125560d21b6020820152610150565b3480156102cf57600080fd5b5061020a6102de3660046116ce565b6106cc565b3480156102ef57600080fd5b5061020a6102fe366004611716565b61076d565b34801561030f57600080fd5b5061018661031e366004611644565b6108c1565b34801561032f57600080fd5b5061020a6108ce565b34801561034457600080fd5b5061020a6108df565b34801561035957600080fd5b506101ab6103683660046117ed565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561039f57600080fd5b5061020a61091e565b60006103b5338484610a98565b5060015b92915050565b60006103cd6008600a611920565b6103db90630bebc20061192f565b905090565b60006103ed848484610bbc565b61043f843361043a85604051806060016040528060288152602001611add602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610ea9565b610a98565b5060019392505050565b6000546001600160a01b0316331461047c5760405162461bcd60e51b81526004016104739061194e565b60405180910390fd5b600d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556104c430826104b66008600a611920565b61043a90630bebc20061192f565b806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610502573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105269190611983565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610573573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105979190611983565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156105e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106089190611983565b600e80546001600160a01b0319166001600160a01b039290921691909117905550565b61063447610ee3565b565b6001600160a01b0381166000908152600260205260408120546103b990610f21565b6000546001600160a01b031633146106825760405162461bcd60e51b81526004016104739061194e565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106f65760405162461bcd60e51b81526004016104739061194e565b6001811161070357600080fd5b610732606461072c836107186008600a611920565b61072690630bebc20061192f565b90610fa5565b90611027565b60078190556040519081527f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf9060200160405180910390a150565b6000546001600160a01b031633146107975760405162461bcd60e51b81526004016104739061194e565b60005b82518110156108bc57600d5483516001600160a01b03909116908490839081106107c6576107c66119a0565b60200260200101516001600160a01b0316141580156108175750600e5483516001600160a01b0390911690849083908110610803576108036119a0565b60200260200101516001600160a01b031614155b801561084e5750306001600160a01b031683828151811061083a5761083a6119a0565b60200260200101516001600160a01b031614155b156108aa57816006600085848151811061086a5761086a6119a0565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055505b806108b4816119b6565b91505061079a565b505050565b60006103b5338484610bbc565b6106346108da30610636565b611069565b6000546001600160a01b031633146109095760405162461bcd60e51b81526004016104739061194e565b600e805460ff60a01b1916600160a01b179055565b6000546001600160a01b031633146109485760405162461bcd60e51b81526004016104739061194e565b600d546001600160a01b031663f305d719473061096481610636565b6000806109796000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109e1573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a0691906119cf565b5050600e8054600160b01b60ff60b01b19821617909155600d5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610a71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9591906119fd565b50565b6001600160a01b038316610afa5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610473565b6001600160a01b038216610b5b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610473565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c205760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610473565b6001600160a01b038216610c825760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610473565b60008111610ce45760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610473565b6001600160a01b03831660009081526006602052604090205460ff1615610d0a57600080fd5b6000600a819055600b55610d266000546001600160a01b031690565b6001600160a01b0316836001600160a01b031614158015610d5557506000546001600160a01b03838116911614155b15610e9e57600e546001600160a01b038481169116148015610d855750600d546001600160a01b03838116911614155b8015610daa57506001600160a01b03821660009081526005602052604090205460ff16155b15610dd457600754811115610dbe57600080fd5b600e54600160a01b900460ff16610dd457600080fd5b600d546001600160a01b03848116911614801590610e0b57506001600160a01b03831660009081526005602052604090205460ff16155b15610e3157600e546001600160a01b0390811690831603610e31576000600a556006600b555b6000610e3c30610636565b600e54909150600160a81b900460ff16158015610e675750600e546001600160a01b03858116911614155b8015610e7c5750600e54600160b01b900460ff165b15610e9c57610e8a81611069565b478015610e9a57610e9a47610ee3565b505b505b6108bc8383836111e3565b60008184841115610ecd5760405162461bcd60e51b815260040161047391906115ca565b506000610eda8486611a1a565b95945050505050565b600c546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610f1d573d6000803e3d6000fd5b5050565b6000600854821115610f885760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610473565b6000610f926111ee565b9050610f9e8382611027565b9392505050565b600082600003610fb7575060006103b9565b6000610fc3838561192f565b905082610fd08583611a31565b14610f9e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610473565b6000610f9e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611211565b600e805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106110b1576110b16119a0565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561110a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112e9190611983565b81600181518110611141576111416119a0565b6001600160a01b039283166020918202929092010152600d546111679130911684610a98565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac947906111a0908590600090869030904290600401611a53565b600060405180830381600087803b1580156111ba57600080fd5b505af11580156111ce573d6000803e3d6000fd5b5050600e805460ff60a81b1916905550505050565b6108bc83838361123f565b60008060006111fb611336565b909250905061120a8282611027565b9250505090565b600081836112325760405162461bcd60e51b815260040161047391906115ca565b506000610eda8486611a31565b600080600080600080611251876113bf565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150611283908761141c565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546112b2908661145e565b6001600160a01b0389166000908152600260205260409020556112d4816114bd565b6112de8483611507565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161132391815260200190565b60405180910390a3505050505050505050565b6000806000600854905060006008600a6113509190611920565b61135e90630bebc20061192f565b905061138661136f6008600a611920565b61137d90630bebc20061192f565b60085490611027565b8210156113b6576008546008600a61139e9190611920565b6113ac90630bebc20061192f565b9350935050509091565b90939092509050565b60008060008060008060008060006113dc8a600a54600b5461152b565b92509250925060006113ec6111ee565b905060008060006113ff8e87878761157a565b919e509c509a509598509396509194505050505091939550919395565b6000610f9e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ea9565b60008061146b8385611ac4565b905083811015610f9e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610473565b60006114c76111ee565b905060006114d58383610fa5565b306000908152600260205260409020549091506114f2908261145e565b30600090815260026020526040902055505050565b600854611514908361141c565b600855600954611524908261145e565b6009555050565b600080808061153f606461072c8989610fa5565b90506000611552606461072c8a89610fa5565b9050600061156a826115648b8661141c565b9061141c565b9992985090965090945050505050565b60008080806115898886610fa5565b905060006115978887610fa5565b905060006115a58888610fa5565b905060006115b782611564868661141c565b939b939a50919850919650505050505050565b600060208083528351808285015260005b818110156115f7578581018301518582016040015282016115db565b81811115611609576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610a9557600080fd5b803561163f8161161f565b919050565b6000806040838503121561165757600080fd5b82356116628161161f565b946020939093013593505050565b60008060006060848603121561168557600080fd5b83356116908161161f565b925060208401356116a08161161f565b929592945050506040919091013590565b6000602082840312156116c357600080fd5b8135610f9e8161161f565b6000602082840312156116e057600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b8015158114610a9557600080fd5b803561163f816116fd565b6000806040838503121561172957600080fd5b823567ffffffffffffffff8082111561174157600080fd5b818501915085601f83011261175557600080fd5b8135602082821115611769576117696116e7565b8160051b604051601f19603f8301168101818110868211171561178e5761178e6116e7565b6040529283528183019350848101820192898411156117ac57600080fd5b948201945b838610156117d1576117c286611634565b855294820194938201936117b1565b96506117e0905087820161170b565b9450505050509250929050565b6000806040838503121561180057600080fd5b823561180b8161161f565b9150602083013561181b8161161f565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561187757816000190482111561185d5761185d611826565b8085161561186a57918102915b93841c9390800290611841565b509250929050565b60008261188e575060016103b9565b8161189b575060006103b9565b81600181146118b157600281146118bb576118d7565b60019150506103b9565b60ff8411156118cc576118cc611826565b50506001821b6103b9565b5060208310610133831016604e8410600b84101617156118fa575081810a6103b9565b611904838361183c565b806000190482111561191857611918611826565b029392505050565b6000610f9e60ff84168361187f565b600081600019048311821515161561194957611949611826565b500290565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561199557600080fd5b8151610f9e8161161f565b634e487b7160e01b600052603260045260246000fd5b6000600182016119c8576119c8611826565b5060010190565b6000806000606084860312156119e457600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611a0f57600080fd5b8151610f9e816116fd565b600082821015611a2c57611a2c611826565b500390565b600082611a4e57634e487b7160e01b600052601260045260246000fd5b500490565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611aa35784516001600160a01b031683529383019391830191600101611a7e565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611ad757611ad7611826565b50019056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122080645ee86e7425767c9870be58771decca584bb8505ff25b0d9550ab3e7b6c4664736f6c634300080d0033

Deployed Bytecode Sourcemap

3511:9752:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5112:83;;;;;;;;;;-1:-1:-1;5182:5:0;;;;;;;;;;;;-1:-1:-1;;;5182:5:0;;;;5112:83;;;;;;;:::i;:::-;;;;;;;;5964:161;;;;;;;;;;-1:-1:-1;5964:161:0;;;;;:::i;:::-;;:::i;:::-;;;1376:14:1;;1369:22;1351:41;;1339:2;1324:18;5964:161:0;1211:187:1;5389:95:0;;;;;;;;;;;;;:::i;:::-;;;1549:25:1;;;1537:2;1522:18;5389:95:0;1403:177:1;6133:313:0;;;;;;;;;;-1:-1:-1;6133:313:0;;;;;:::i;:::-;;:::i;5298:83::-;;;;;;;;;;-1:-1:-1;5298:83:0;;3731:1;2188:36:1;;2176:2;2161:18;5298:83:0;2046:184:1;9221:398:0;;;;;;;;;;;;;:::i;:::-;;11488:85;;;;;;;;;;;;;:::i;5492:138::-;;;;;;;;;;-1:-1:-1;5492:138:0;;;;;:::i;:::-;;:::i;2592:148::-;;;;;;;;;;;;;:::i;4140:57::-;;;;;;;;;;;;;;;;2378:79;;;;;;;;;;-1:-1:-1;2416:7:0;2443:6;2378:79;;-1:-1:-1;;;;;2443:6:0;;;2633:51:1;;2621:2;2606:18;2378:79:0;2487:203:1;5203:87:0;;;;;;;;;;-1:-1:-1;5275:7:0;;;;;;;;;;;;-1:-1:-1;;;5275:7:0;;;;5203:87;;9006:207;;;;;;;;;;-1:-1:-1;9006:207:0;;;;;:::i;:::-;;:::i;10024:295::-;;;;;;;;;;-1:-1:-1;10024:295:0;;;;;:::i;:::-;;:::i;5638:167::-;;;;;;;;;;-1:-1:-1;5638:167:0;;;;;:::i;:::-;;:::i;11388:92::-;;;;;;;;;;;;;:::i;9938:78::-;;;;;;;;;;;;;:::i;5813:143::-;;;;;;;;;;-1:-1:-1;5813:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;5921:18:0;;;5894:7;5921:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5813:143;9629:301;;;;;;;;;;;;;:::i;5964:161::-;6039:4;6056:39;176:10;6079:7;6088:6;6056:8;:39::i;:::-;-1:-1:-1;6113:4:0;5964:161;;;;;:::o;5389:95::-;5442:7;4120:13;3731:1;4120:2;:13;:::i;:::-;4108:25;;:9;:25;:::i;:::-;5462:14;;5389:95;:::o;6133:313::-;6231:4;6248:36;6258:6;6266:9;6277:6;6248:9;:36::i;:::-;6295:121;6304:6;176:10;6326:89;6364:6;6326:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6326:19:0;;;;;;:11;:19;;;;;;;;176:10;6326:33;;;;;;;;;;:37;:89::i;:::-;6295:8;:121::i;:::-;-1:-1:-1;6434:4:0;6133:313;;;;;:::o;9221:398::-;2505:6;;-1:-1:-1;;;;;2505:6:0;176:10;2505:22;2497:67;;;;-1:-1:-1;;;2497:67:0;;;;;;;:::i;:::-;;;;;;;;;9383:15:::1;:34:::0;;-1:-1:-1;;;;;;9383:34:0::1;9329:42;9383:34:::0;;::::1;::::0;;;9428:58:::1;9445:4;9329:42:::0;4120:13:::1;3731:1;4120:2;:13;:::i;:::-;4108:25;::::0;:9:::1;:25;:::i;9428:58::-;9531:16;-1:-1:-1::0;;;;;9531:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9513:56:0::1;;9578:4;9585:16;-1:-1:-1::0;;;;;9585:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9513:96;::::0;-1:-1:-1;;;;;;9513:96:0::1;::::0;;;;;;-1:-1:-1;;;;;7392:15:1;;;9513:96:0::1;::::0;::::1;7374:34:1::0;7444:15;;7424:18;;;7417:43;7309:18;;9513:96:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9497:13;:112:::0;;-1:-1:-1;;;;;;9497:112:0::1;-1:-1:-1::0;;;;;9497:112:0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;9221:398:0:o;11488:85::-;11530:35;11543:21;11530:12;:35::i;:::-;11488:85::o;5492:138::-;-1:-1:-1;;;;;5605:16:0;;5558:7;5605:16;;;:7;:16;;;;;;5585:37;;:19;:37::i;2592:148::-;2505:6;;-1:-1:-1;;;;;2505:6:0;176:10;2505:22;2497:67;;;;-1:-1:-1;;;2497:67:0;;;;;;;:::i;:::-;2699:1:::1;2683:6:::0;;2662:40:::1;::::0;-1:-1:-1;;;;;2683:6:0;;::::1;::::0;2662:40:::1;::::0;2699:1;;2662:40:::1;2730:1;2713:19:::0;;-1:-1:-1;;;;;;2713:19:0::1;::::0;;2592:148::o;9006:207::-;2505:6;;-1:-1:-1;;;;;2505:6:0;176:10;2505:22;2497:67;;;;-1:-1:-1;;;2497:67:0;;;;;;;:::i;:::-;9101:1:::1;9090:10;:12;9082:21;;;::::0;::::1;;9127:32;9155:3;9127:23;9139:10:::0;4120:13:::1;3731:1;4120:2;:13;:::i;:::-;4108:25;::::0;:9:::1;:25;:::i;:::-;9127:11:::0;::::1;:23::i;:::-;:27:::0;::::1;:32::i;:::-;9112:12;:47:::0;;;9173:32:::1;::::0;1549:25:1;;;9173:32:0::1;::::0;1537:2:1;1522:18;9173:32:0::1;;;;;;;9006:207:::0;:::o;10024:295::-;2505:6;;-1:-1:-1;;;;;2505:6:0;176:10;2505:22;2497:67;;;;-1:-1:-1;;;2497:67:0;;;;;;;:::i;:::-;10107:9:::1;10102:210;10126:5;:12;10122:1;:16;10102:210;;;10177:15;::::0;10159:8;;-1:-1:-1;;;;;10177:15:0;;::::1;::::0;10159:5;;10165:1;;10159:8;::::1;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;10159:34:0::1;;;:70;;;;-1:-1:-1::0;10215:13:0::1;::::0;10197:8;;-1:-1:-1;;;;;10215:13:0;;::::1;::::0;10197:5;;10203:1;;10197:8;::::1;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;10197:32:0::1;;;10159:70;:96;;;;;10250:4;-1:-1:-1::0;;;;;10232:23:0::1;:5;10238:1;10232:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;10232:23:0::1;;;10159:96;10156:147;;;10286:5;10269:4;:14;10274:5;10280:1;10274:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;10269:14:0::1;-1:-1:-1::0;;;;;10269:14:0::1;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;10156:147;10140:3:::0;::::1;::::0;::::1;:::i;:::-;;;;10102:210;;;;10024:295:::0;;:::o;5638:167::-;5716:4;5733:42;176:10;5757:9;5768:6;5733:9;:42::i;11388:92::-;11430:42;11447:24;11465:4;11447:9;:24::i;:::-;11430:16;:42::i;9938:78::-;2505:6;;-1:-1:-1;;;;;2505:6:0;176:10;2505:22;2497:67;;;;-1:-1:-1;;;2497:67:0;;;;;;;:::i;:::-;9990:11:::1;:18:::0;;-1:-1:-1;;;;9990:18:0::1;-1:-1:-1::0;;;9990:18:0::1;::::0;;9938:78::o;9629:301::-;2505:6;;-1:-1:-1;;;;;2505:6:0;176:10;2505:22;2497:67;;;;-1:-1:-1;;;2497:67:0;;;;;;;:::i;:::-;9682:15:::1;::::0;-1:-1:-1;;;;;9682:15:0::1;:31;9721:21;9752:4;9758:24;9752:4:::0;9758:9:::1;:24::i;:::-;9783:1;9785::::0;9787:7:::1;2416::::0;2443:6;-1:-1:-1;;;;;2443:6:0;;2378:79;9787:7:::1;9682:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;9682:129:0;;;-1:-1:-1;;;;;8102:15:1;;;9682:129:0::1;::::0;::::1;8084:34:1::0;8134:18;;;8127:34;;;;8177:18;;;8170:34;;;;8220:18;;;8213:34;8284:15;;;8263:19;;;8256:44;9795:15:0::1;8316:19:1::0;;;8309:35;8018:19;;9682:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;9822:11:0::1;:18:::0;;-1:-1:-1;;;;;;;9822:18:0;::::1;;::::0;;;9889:15:::1;::::0;9851:71:::1;::::0;-1:-1:-1;;;9851:71:0;;-1:-1:-1;;;;;9889:15:0;;::::1;9851:71;::::0;::::1;8840:51:1::0;-1:-1:-1;;8907:18:1;;;8900:34;9858:13:0;;;-1:-1:-1;9851:29:0::1;::::0;8813:18:1;;9851:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9629:301::o:0;6720:335::-;-1:-1:-1;;;;;6813:19:0;;6805:68;;;;-1:-1:-1;;;6805:68:0;;9397:2:1;6805:68:0;;;9379:21:1;9436:2;9416:18;;;9409:30;9475:34;9455:18;;;9448:62;-1:-1:-1;;;9526:18:1;;;9519:34;9570:19;;6805:68:0;9195:400:1;6805:68:0;-1:-1:-1;;;;;6892:21:0;;6884:68;;;;-1:-1:-1;;;6884:68:0;;9802:2:1;6884:68:0;;;9784:21:1;9841:2;9821:18;;;9814:30;9880:34;9860:18;;;9853:62;-1:-1:-1;;;9931:18:1;;;9924:32;9973:19;;6884:68:0;9600:398:1;6884:68:0;-1:-1:-1;;;;;6963:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7015:32;;1549:25:1;;;7015:32:0;;1522:18:1;7015:32:0;;;;;;;6720:335;;;:::o;7063:1344::-;-1:-1:-1;;;;;7151:18:0;;7143:68;;;;-1:-1:-1;;;7143:68:0;;10205:2:1;7143:68:0;;;10187:21:1;10244:2;10224:18;;;10217:30;10283:34;10263:18;;;10256:62;-1:-1:-1;;;10334:18:1;;;10327:35;10379:19;;7143:68:0;10003:401:1;7143:68:0;-1:-1:-1;;;;;7230:16:0;;7222:64;;;;-1:-1:-1;;;7222:64:0;;10611:2:1;7222:64:0;;;10593:21:1;10650:2;10630:18;;;10623:30;10689:34;10669:18;;;10662:62;-1:-1:-1;;;10740:18:1;;;10733:33;10783:19;;7222:64:0;10409:399:1;7222:64:0;7314:1;7305:6;:10;7297:64;;;;-1:-1:-1;;;7297:64:0;;11015:2:1;7297:64:0;;;10997:21:1;11054:2;11034:18;;;11027:30;11093:34;11073:18;;;11066:62;-1:-1:-1;;;11144:18:1;;;11137:39;11193:19;;7297:64:0;10813:405:1;7297:64:0;-1:-1:-1;;;;;7381:10:0;;;;;;:4;:10;;;;;;;;7380:11;7372:20;;;;;;7415:1;7403:9;:13;;;7427:9;:13;7463:7;2416;2443:6;-1:-1:-1;;;;;2443:6:0;;2378:79;7463:7;-1:-1:-1;;;;;7455:15:0;:4;-1:-1:-1;;;;;7455:15:0;;;:32;;;;-1:-1:-1;2416:7:0;2443:6;-1:-1:-1;;;;;7474:13:0;;;2443:6;;7474:13;;7455:32;7451:906;;;7516:13;;-1:-1:-1;;;;;7508:21:0;;;7516:13;;7508:21;:55;;;;-1:-1:-1;7547:15:0;;-1:-1:-1;;;;;7533:30:0;;;7547:15;;7533:30;;7508:55;:83;;;;-1:-1:-1;;;;;;7569:22:0;;;;;;:18;:22;;;;;;;;7567:24;7508:83;7504:218;;;7654:12;;7644:6;:22;;7636:31;;;;;;7694:11;;-1:-1:-1;;;7694:11:0;;;;7686:20;;;;;;7759:15;;-1:-1:-1;;;;;7743:32:0;;;7759:15;;7743:32;;;;:62;;-1:-1:-1;;;;;;7781:24:0;;;;;;:18;:24;;;;;;;;7779:26;7743:62;7738:206;;;7833:13;;-1:-1:-1;;;;;7833:13:0;;;7827:19;;;;7824:105;;7878:1;7866:9;:13;7910:1;7898:9;:13;7824:105;7958:28;7989:24;8007:4;7989:9;:24::i;:::-;8033:6;;7958:55;;-1:-1:-1;;;;8033:6:0;;;;8032:7;:32;;;;-1:-1:-1;8051:13:0;;-1:-1:-1;;;;;8043:21:0;;;8051:13;;8043:21;;8032:32;:47;;;;-1:-1:-1;8068:11:0;;-1:-1:-1;;;8068:11:0;;;;8032:47;8028:318;;;8100:38;8117:20;8100:16;:38::i;:::-;8186:21;8229:22;;8226:105;;8276:35;8289:21;8276:12;:35::i;:::-;8081:265;8028:318;7489:868;7451:906;8369:30;8384:4;8389:2;8392:6;8369:14;:30::i;1233:190::-;1319:7;1355:12;1347:6;;;;1339:29;;;;-1:-1:-1;;;1339:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1379:9:0;1391:5;1395:1;1391;:5;:::i;:::-;1379:17;1233:190;-1:-1:-1;;;;;1233:190:0:o;8906:92::-;8963:10;;:27;;-1:-1:-1;;;;;8963:10:0;;;;:27;;;;;8983:6;;8963:10;:27;:10;:27;8983:6;8963:10;:27;;;;;;;;;;;;;;;;;;;;;8906:92;:::o;6458:254::-;6525:7;6564;;6553;:18;;6545:73;;;;-1:-1:-1;;;6545:73:0;;11555:2:1;6545:73:0;;;11537:21:1;11594:2;11574:18;;;11567:30;11633:34;11613:18;;;11606:62;-1:-1:-1;;;11684:18:1;;;11677:40;11734:19;;6545:73:0;11353:406:1;6545:73:0;6629:19;6652:10;:8;:10::i;:::-;6629:33;-1:-1:-1;6680:24:0;:7;6629:33;6680:11;:24::i;:::-;6673:31;6458:254;-1:-1:-1;;;6458:254:0:o;1431:246::-;1489:7;1513:1;1518;1513:6;1509:47;;-1:-1:-1;1543:1:0;1536:8;;1509:47;1566:9;1578:5;1582:1;1578;:5;:::i;:::-;1566:17;-1:-1:-1;1611:1:0;1602:5;1606:1;1566:17;1602:5;:::i;:::-;:10;1594:56;;;;-1:-1:-1;;;1594:56:0;;12188:2:1;1594:56:0;;;12170:21:1;12227:2;12207:18;;;12200:30;12266:34;12246:18;;;12239:62;-1:-1:-1;;;12317:18:1;;;12310:31;12358:19;;1594:56:0;11986:397:1;1685:132:0;1743:7;1770:39;1774:1;1777;1770:39;;;;;;;;;;;;;;;;;:3;:39::i;8415:483::-;4675:6;:13;;-1:-1:-1;;;;4675:13:0;-1:-1:-1;;;4675:13:0;;;8517:16:::1;::::0;;8531:1:::1;8517:16:::0;;;;;::::1;::::0;;-1:-1:-1;;8517:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;8517:16:0::1;8493:40;;8562:4;8544;8549:1;8544:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8544:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;8588:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;8588:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;8544:7;;8588:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8578:4;8583:1;8578:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8578:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;8653:15:::1;::::0;8621:62:::1;::::0;8638:4:::1;::::0;8653:15:::1;8671:11:::0;8621:8:::1;:62::i;:::-;8694:15;::::0;:196:::1;::::0;-1:-1:-1;;;8694:196:0;;-1:-1:-1;;;;;8694:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;8775:11;;8694:15:::1;::::0;8817:4;;8844::::1;::::0;8864:15:::1;::::0;8694:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4711:6:0;:14;;-1:-1:-1;;;;4711:14:0;;;-1:-1:-1;;;;8415:483:0:o;10327:146::-;10421:44;10439:6;10447:9;10458:6;10421:17;:44::i;12833:163::-;12874:7;12895:15;12912;12931:19;:17;:19::i;:::-;12894:56;;-1:-1:-1;12894:56:0;-1:-1:-1;12968:20:0;12894:56;;12968:11;:20::i;:::-;12961:27;;;;12833:163;:::o;1825:189::-;1911:7;1946:12;1939:5;1931:28;;;;-1:-1:-1;;;1931:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1970:9:0;1982:5;1986:1;1982;:5;:::i;10481:487::-;10580:15;10597:23;10622:12;10636:23;10661:12;10675:13;10692:19;10703:7;10692:10;:19::i;:::-;-1:-1:-1;;;;;10740:15:0;;;;;;:7;:15;;;;;;10579:132;;-1:-1:-1;10579:132:0;;-1:-1:-1;10579:132:0;;-1:-1:-1;10579:132:0;-1:-1:-1;10579:132:0;-1:-1:-1;10579:132:0;-1:-1:-1;10740:28:0;;10579:132;10740:19;:28::i;:::-;-1:-1:-1;;;;;10722:15:0;;;;;;;:7;:15;;;;;;:46;;;;10800:18;;;;;;;:39;;10823:15;10800:22;:39::i;:::-;-1:-1:-1;;;;;10779:18:0;;;;;;:7;:18;;;;;:60;10850:16;10860:5;10850:9;:16::i;:::-;10877:23;10889:4;10895;10877:11;:23::i;:::-;10933:9;-1:-1:-1;;;;;10916:44:0;10925:6;-1:-1:-1;;;;;10916:44:0;;10944:15;10916:44;;;;1549:25:1;;1537:2;1522:18;;1403:177;10916:44:0;;;;;;;;10568:400;;;;;;10481:487;;;:::o;13004:256::-;13054:7;13063;13083:15;13101:7;;13083:25;;13119:15;3731:1;4120:2;:13;;;;:::i;:::-;4108:25;;:9;:25;:::i;:::-;13119;-1:-1:-1;13169:20:0;4120:13;3731:1;4120:2;:13;:::i;:::-;4108:25;;:9;:25;:::i;:::-;13169:7;;;:11;:20::i;:::-;13159:7;:30;13155:61;;;13199:7;;3731:1;4120:2;:13;;;;:::i;:::-;4108:25;;:9;:25;:::i;:::-;13191;;;;;;13004:256;;:::o;13155:61::-;13235:7;;13244;;-1:-1:-1;13004:256:0;-1:-1:-1;13004:256:0:o;11581:471::-;11640:7;11649;11658;11667;11676;11685;11706:23;11731:12;11745:13;11762:42;11774:7;11783:9;;11794;;11762:11;:42::i;:::-;11705:99;;;;;;11815:19;11838:10;:8;:10::i;:::-;11815:33;;11860:15;11877:23;11902:12;11918:46;11930:7;11939:4;11945:5;11952:11;11918;:46::i;:::-;11859:105;;-1:-1:-1;11859:105:0;-1:-1:-1;11859:105:0;-1:-1:-1;12015:15:0;;-1:-1:-1;12032:4:0;;-1:-1:-1;12038:5:0;;-1:-1:-1;;;;;11581:471:0;;;;;;;:::o;1089:136::-;1147:7;1174:43;1178:1;1181;1174:43;;;;;;;;;;;;;;;;;:3;:43::i;902:179::-;960:7;;992:5;996:1;992;:5;:::i;:::-;980:17;;1021:1;1016;:6;;1008:46;;;;-1:-1:-1;;;1008:46:0;;13708:2:1;1008:46:0;;;13690:21:1;13747:2;13727:18;;;13720:30;13786:29;13766:18;;;13759:57;13833:18;;1008:46:0;13506:351:1;10976:212:0;11029:19;11052:10;:8;:10::i;:::-;11029:33;-1:-1:-1;11073:13:0;11089:22;:5;11029:33;11089:9;:22::i;:::-;11163:4;11147:22;;;;:7;:22;;;;;;11073:38;;-1:-1:-1;11147:33:0;;11073:38;11147:26;:33::i;:::-;11138:4;11122:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;10976:212:0:o;11196:147::-;11274:7;;:17;;11286:4;11274:11;:17::i;:::-;11264:7;:27;11315:10;;:20;;11330:4;11315:14;:20::i;:::-;11302:10;:33;-1:-1:-1;;11196:147:0:o;12060:351::-;12153:7;;;;12206:28;12230:3;12206:19;:7;12218:6;12206:11;:19::i;:28::-;12191:43;-1:-1:-1;12245:13:0;12261:29;12286:3;12261:20;:7;12273;12261:11;:20::i;:29::-;12245:45;-1:-1:-1;12301:23:0;12327:28;12245:45;12327:17;:7;12339:4;12327:11;:17::i;:::-;:21;;:28::i;:::-;12301:54;12391:4;;-1:-1:-1;12397:5:0;;-1:-1:-1;12060:351:0;;-1:-1:-1;;;;;12060:351:0:o;12419:409::-;12529:7;;;;12585:24;:7;12597:11;12585;:24::i;:::-;12567:42;-1:-1:-1;12620:12:0;12635:21;:4;12644:11;12635:8;:21::i;:::-;12620:36;-1:-1:-1;12667:13:0;12683:22;:5;12693:11;12683:9;:22::i;:::-;12667:38;-1:-1:-1;12716:23:0;12742:28;12667:38;12742:17;:7;12754:4;12742:11;:17::i;:28::-;12789:7;;;;-1:-1:-1;12815:4:0;;-1:-1:-1;12419:409:0;;-1:-1:-1;;;;;;;12419:409:0:o;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:134;820:20;;849:31;820:20;849:31;:::i;:::-;752:134;;;:::o;891:315::-;959:6;967;1020:2;1008:9;999:7;995:23;991:32;988:52;;;1036:1;1033;1026:12;988:52;1075:9;1062:23;1094:31;1119:5;1094:31;:::i;:::-;1144:5;1196:2;1181:18;;;;1168:32;;-1:-1:-1;;;891:315:1:o;1585:456::-;1662:6;1670;1678;1731:2;1719:9;1710:7;1706:23;1702:32;1699:52;;;1747:1;1744;1737:12;1699:52;1786:9;1773:23;1805:31;1830:5;1805:31;:::i;:::-;1855:5;-1:-1:-1;1912:2:1;1897:18;;1884:32;1925:33;1884:32;1925:33;:::i;:::-;1585:456;;1977:7;;-1:-1:-1;;;2031:2:1;2016:18;;;;2003:32;;1585:456::o;2235:247::-;2294:6;2347:2;2335:9;2326:7;2322:23;2318:32;2315:52;;;2363:1;2360;2353:12;2315:52;2402:9;2389:23;2421:31;2446:5;2421:31;:::i;2695:180::-;2754:6;2807:2;2795:9;2786:7;2782:23;2778:32;2775:52;;;2823:1;2820;2813:12;2775:52;-1:-1:-1;2846:23:1;;2695:180;-1:-1:-1;2695:180:1:o;2880:127::-;2941:10;2936:3;2932:20;2929:1;2922:31;2972:4;2969:1;2962:15;2996:4;2993:1;2986:15;3012:118;3098:5;3091:13;3084:21;3077:5;3074:32;3064:60;;3120:1;3117;3110:12;3135:128;3200:20;;3229:28;3200:20;3229:28;:::i;3268:1191::-;3358:6;3366;3419:2;3407:9;3398:7;3394:23;3390:32;3387:52;;;3435:1;3432;3425:12;3387:52;3475:9;3462:23;3504:18;3545:2;3537:6;3534:14;3531:34;;;3561:1;3558;3551:12;3531:34;3599:6;3588:9;3584:22;3574:32;;3644:7;3637:4;3633:2;3629:13;3625:27;3615:55;;3666:1;3663;3656:12;3615:55;3702:2;3689:16;3724:4;3747:2;3743;3740:10;3737:36;;;3753:18;;:::i;:::-;3799:2;3796:1;3792:10;3831:2;3825:9;3894:2;3890:7;3885:2;3881;3877:11;3873:25;3865:6;3861:38;3949:6;3937:10;3934:22;3929:2;3917:10;3914:18;3911:46;3908:72;;;3960:18;;:::i;:::-;3996:2;3989:22;4046:18;;;4080:15;;;;-1:-1:-1;4122:11:1;;;4118:20;;;4150:19;;;4147:39;;;4182:1;4179;4172:12;4147:39;4206:11;;;;4226:148;4242:6;4237:3;4234:15;4226:148;;;4308:23;4327:3;4308:23;:::i;:::-;4296:36;;4259:12;;;;4352;;;;4226:148;;;4393:6;-1:-1:-1;4418:35:1;;-1:-1:-1;4434:18:1;;;4418:35;:::i;:::-;4408:45;;;;;;3268:1191;;;;;:::o;4464:388::-;4532:6;4540;4593:2;4581:9;4572:7;4568:23;4564:32;4561:52;;;4609:1;4606;4599:12;4561:52;4648:9;4635:23;4667:31;4692:5;4667:31;:::i;:::-;4717:5;-1:-1:-1;4774:2:1;4759:18;;4746:32;4787:33;4746:32;4787:33;:::i;:::-;4839:7;4829:17;;;4464:388;;;;;:::o;4857:127::-;4918:10;4913:3;4909:20;4906:1;4899:31;4949:4;4946:1;4939:15;4973:4;4970:1;4963:15;4989:422;5078:1;5121:5;5078:1;5135:270;5156:7;5146:8;5143:21;5135:270;;;5215:4;5211:1;5207:6;5203:17;5197:4;5194:27;5191:53;;;5224:18;;:::i;:::-;5274:7;5264:8;5260:22;5257:55;;;5294:16;;;;5257:55;5373:22;;;;5333:15;;;;5135:270;;;5139:3;4989:422;;;;;:::o;5416:806::-;5465:5;5495:8;5485:80;;-1:-1:-1;5536:1:1;5550:5;;5485:80;5584:4;5574:76;;-1:-1:-1;5621:1:1;5635:5;;5574:76;5666:4;5684:1;5679:59;;;;5752:1;5747:130;;;;5659:218;;5679:59;5709:1;5700:10;;5723:5;;;5747:130;5784:3;5774:8;5771:17;5768:43;;;5791:18;;:::i;:::-;-1:-1:-1;;5847:1:1;5833:16;;5862:5;;5659:218;;5961:2;5951:8;5948:16;5942:3;5936:4;5933:13;5929:36;5923:2;5913:8;5910:16;5905:2;5899:4;5896:12;5892:35;5889:77;5886:159;;;-1:-1:-1;5998:19:1;;;6030:5;;5886:159;6077:34;6102:8;6096:4;6077:34;:::i;:::-;6147:6;6143:1;6139:6;6135:19;6126:7;6123:32;6120:58;;;6158:18;;:::i;:::-;6196:20;;5416:806;-1:-1:-1;;;5416:806:1:o;6227:140::-;6285:5;6314:47;6355:4;6345:8;6341:19;6335:4;6314:47;:::i;6372:168::-;6412:7;6478:1;6474;6470:6;6466:14;6463:1;6460:21;6455:1;6448:9;6441:17;6437:45;6434:71;;;6485:18;;:::i;:::-;-1:-1:-1;6525:9:1;;6372:168::o;6545:356::-;6747:2;6729:21;;;6766:18;;;6759:30;6825:34;6820:2;6805:18;;6798:62;6892:2;6877:18;;6545:356::o;6906:251::-;6976:6;7029:2;7017:9;7008:7;7004:23;7000:32;6997:52;;;7045:1;7042;7035:12;6997:52;7077:9;7071:16;7096:31;7121:5;7096:31;:::i;7471:127::-;7532:10;7527:3;7523:20;7520:1;7513:31;7563:4;7560:1;7553:15;7587:4;7584:1;7577:15;7603:135;7642:3;7663:17;;;7660:43;;7683:18;;:::i;:::-;-1:-1:-1;7730:1:1;7719:13;;7603:135::o;8355:306::-;8443:6;8451;8459;8512:2;8500:9;8491:7;8487:23;8483:32;8480:52;;;8528:1;8525;8518:12;8480:52;8557:9;8551:16;8541:26;;8607:2;8596:9;8592:18;8586:25;8576:35;;8651:2;8640:9;8636:18;8630:25;8620:35;;8355:306;;;;;:::o;8945:245::-;9012:6;9065:2;9053:9;9044:7;9040:23;9036:32;9033:52;;;9081:1;9078;9071:12;9033:52;9113:9;9107:16;9132:28;9154:5;9132:28;:::i;11223:125::-;11263:4;11291:1;11288;11285:8;11282:34;;;11296:18;;:::i;:::-;-1:-1:-1;11333:9:1;;11223:125::o;11764:217::-;11804:1;11830;11820:132;;11874:10;11869:3;11865:20;11862:1;11855:31;11909:4;11906:1;11899:15;11937:4;11934:1;11927:15;11820:132;-1:-1:-1;11966:9:1;;11764:217::o;12388:980::-;12650:4;12698:3;12687:9;12683:19;12729:6;12718:9;12711:25;12755:2;12793:6;12788:2;12777:9;12773:18;12766:34;12836:3;12831:2;12820:9;12816:18;12809:31;12860:6;12895;12889:13;12926:6;12918;12911:22;12964:3;12953:9;12949:19;12942:26;;13003:2;12995:6;12991:15;12977:29;;13024:1;13034:195;13048:6;13045:1;13042:13;13034:195;;;13113:13;;-1:-1:-1;;;;;13109:39:1;13097:52;;13204:15;;;;13169:12;;;;13145:1;13063:9;13034:195;;;-1:-1:-1;;;;;;;13285:32:1;;;;13280:2;13265:18;;13258:60;-1:-1:-1;;;13349:3:1;13334:19;13327:35;13246:3;12388:980;-1:-1:-1;;;12388:980:1:o;13373:128::-;13413:3;13444:1;13440:6;13437:1;13434:13;13431:39;;;13450:18;;:::i;:::-;-1:-1:-1;13486:9:1;;13373:128::o

Swarm Source

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