ETH Price: $2,486.67 (-0.94%)

Token

FLUX (FLX)
 

Overview

Max Total Supply

100,000,000 FLX

Holders

135

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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:
FLUX

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-02-20
*/

/**
    Website    : https://www.fluxtoken.net/
    Twitter    : https://twitter.com/Flux_Coin
    Telegram   : https://t.me/FluxCoinOfficial
    Whitepaper : https://flux-official.gitbook.io/fluxofficial/
    Medium     : https://medium.com/@fluxofficial_82879

**/

pragma solidity 0.8.19;
// SPDX-License-Identifier: MIT

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;
    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 FLUX is Context, IERC20, Ownable {
    using SafeMath for uint256;

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _holderLastTransferTimestamp;

    bool public transferDelayEnabled = true;
    address payable private _taxWallet;
    address private constant deadAddress = address(0xdead);

    /// initial buy, sell fee till first 25 buys
    uint256 private _initialBuyTax=20;
    uint256 private _initialSellTax=30;

    /// final buy, sell fee
    uint256 private _finalBuyTax=5;
    uint256 private _finalSellTax=5;
    
    /// after 25 buys and 30 sells should reduce to final tax.
    uint256 private _reduceBuyTaxAt=25;
    uint256 private _reduceSellTaxAt=30;
    uint256 private _pSwapBefore=30;
    uint256 private _bCount=0;

    string private constant _name = unicode"FLUX";
    string private constant _symbol = unicode"FLX";
    uint8 private constant _decimals = 9;
    uint256 private constant _tSupply = 100000000 * 10**_decimals;

    uint256 public _maxTxAmount = 1000000 * 10**_decimals;
    uint256 public _maxWalletSize = 1000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 300000 * 10**_decimals;
    uint256 public _maxTaxSwap= 1000000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    
    bool private tradingOpen;
    bool private inSwap = false;    
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    event FinalTax (uint256 _buyTax, uint256 _sellTax);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tSupply;

        excludeFromFee(owner(), true);
        excludeFromFee(deadAddress, true);
        excludeFromFee(address(this), true);
        excludeFromFee(_taxWallet, true);

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

    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 _tSupply;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[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 excludeFromFee(address account, bool excluded) public onlyOwner {
        _isExcludedFromFee[account] = excluded;
    }

    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, "ERC20: Transfer amount must be greater than zero");
        uint256 taxAmount = 0;

        if (from != owner() && to != owner() && from != address(this)) {
            taxAmount = amount.mul
                ((_bCount>_reduceBuyTaxAt)
                    ?_finalBuyTax:_initialBuyTax).div(100
                );

            if (transferDelayEnabled) {
                  if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                      require(
                          _holderLastTransferTimestamp[tx.origin] <
                              block.number,
                          "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                      );
                      _holderLastTransferTimestamp[tx.origin] = block.number;
                  }
              }

            
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _bCount++;
            }

            if (to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul 
                ((_bCount>_reduceSellTaxAt)
                    ?_finalSellTax:_initialSellTax).div(100
                );
            } 
            
            uint256 contractTokenBalance = balanceOf(address(this));
            if (
                !inSwap && 
                to == uniswapV2Pair && 
                swapEnabled && 
                contractTokenBalance > _taxSwapThreshold && 
                _bCount > _pSwapBefore
            ) {
                swapTokensForEth(minValue(amount,minValue(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 50000000000000000) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    function minValue(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    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 removeLimits() external onlyOwner{
        _maxTxAmount = _tSupply;
        _maxWalletSize=_tSupply;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tSupply);
    }

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


    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");

        uint256 tokenAmount = balanceOf(address(this)) - (_tSupply * 20 / 100);

        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),tokenAmount,0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

    receive() external payable {}

    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }

    function setFinalTax (uint256 _valueBuy, uint256 _valueSell) external onlyOwner {
        require(_valueBuy <= 30 && _valueSell <= 30 && tradingOpen, "Exceeds value");
        _finalBuyTax = _valueBuy;
        _finalSellTax = _valueSell;
        emit FinalTax(_valueBuy, _valueSell);
    }
}

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":"_buyTax","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_sellTax","type":"uint256"}],"name":"FinalTax","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":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_valueBuy","type":"uint256"},{"internalType":"uint256","name":"_valueSell","type":"uint256"}],"name":"setFinalTax","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"}]

60806040526005805460ff191660011781556014600655601e6007819055600882905560099182556019600a908155600b829055600c919091556000600d556200004a9190620003aa565b6200005990620f4240620003c2565b600e556200006a6009600a620003aa565b6200007990620f4240620003c2565b600f556200008a6009600a620003aa565b6200009990620493e0620003c2565b601055620000aa6009600a620003aa565b620000b990620f4240620003c2565b6011556013805461ffff60a81b19169055348015620000d757600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060058054610100600160a81b03191661010033021790556200013e6009600a620003aa565b6200014e906305f5e100620003c2565b336000908152600160205260408120919091555462000178906001600160a01b031660016200020b565b6200018761dead60016200020b565b620001943060016200020b565b600554620001b29061010090046001600160a01b031660016200020b565b3360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001e46009600a620003aa565b620001f4906305f5e100620003c2565b60405190815260200160405180910390a3620003dc565b6000546001600160a01b031633146200026a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640160405180910390fd5b6001600160a01b03919091166000908152600360205260409020805460ff1916911515919091179055565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002ec578160001904821115620002d057620002d062000295565b80851615620002de57918102915b93841c9390800290620002b0565b509250929050565b6000826200030557506001620003a4565b816200031457506000620003a4565b81600181146200032d5760028114620003385762000358565b6001915050620003a4565b60ff8411156200034c576200034c62000295565b50506001821b620003a4565b5060208310610133831016604e8410600b84101617156200037d575081810a620003a4565b620003898383620002ab565b8060001904821115620003a057620003a062000295565b0290505b92915050565b6000620003bb60ff841683620002f4565b9392505050565b8082028115828204841417620003a457620003a462000295565b611a9180620003ec6000396000f3fe60806040526004361061012e5760003560e01c80637d1db4a5116100ab578063a9059cbb1161006f578063a9059cbb14610335578063bf474bed14610355578063c876d0b91461036b578063c9567bf914610385578063dd62ed3e1461039a578063df8408fe146103e057600080fd5b80637d1db4a51461029557806382116718146102ab5780638da5cb5b146102cb5780638f9a55c0146102f357806395d89b411461030957600080fd5b8063313ce567116100f2578063313ce5671461020257806351bc3c851461021e57806370a0823114610235578063715018a61461026b578063751039fc1461028057600080fd5b806306fdde031461013a578063095ea7b3146101795780630faee56f146101a957806318160ddd146101cd57806323b872dd146101e257600080fd5b3661013557005b600080fd5b34801561014657600080fd5b5060408051808201909152600481526308c98aab60e31b60208201525b6040516101709190611607565b60405180910390f35b34801561018557600080fd5b5061019961019436600461166d565b610400565b6040519015158152602001610170565b3480156101b557600080fd5b506101bf60115481565b604051908152602001610170565b3480156101d957600080fd5b506101bf610417565b3480156101ee57600080fd5b506101996101fd366004611699565b610438565b34801561020e57600080fd5b5060405160098152602001610170565b34801561022a57600080fd5b506102336104a1565b005b34801561024157600080fd5b506101bf6102503660046116da565b6001600160a01b031660009081526001602052604090205490565b34801561027757600080fd5b506102336104f9565b34801561028c57600080fd5b50610233610576565b3480156102a157600080fd5b506101bf600e5481565b3480156102b757600080fd5b506102336102c63660046116f7565b610632565b3480156102d757600080fd5b506000546040516001600160a01b039091168152602001610170565b3480156102ff57600080fd5b506101bf600f5481565b34801561031557600080fd5b5060408051808201909152600381526208c98b60eb1b6020820152610163565b34801561034157600080fd5b5061019961035036600461166d565b610706565b34801561036157600080fd5b506101bf60105481565b34801561037757600080fd5b506005546101999060ff1681565b34801561039157600080fd5b50610233610713565b3480156103a657600080fd5b506101bf6103b5366004611719565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156103ec57600080fd5b506102336103fb366004611760565b610aee565b600061040d338484610b43565b5060015b92915050565b60006104256009600a611888565b610433906305f5e100611897565b905090565b6000610445848484610c67565b610497843361049285604051806060016040528060288152602001611a34602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611266565b610b43565b5060019392505050565b60055461010090046001600160a01b0316336001600160a01b0316146104c657600080fd5b3060009081526001602052604090205480156104e5576104e5816112a0565b4780156104f5576104f58161141a565b5050565b6000546001600160a01b0316331461052c5760405162461bcd60e51b8152600401610523906118ae565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146105a05760405162461bcd60e51b8152600401610523906118ae565b6105ac6009600a611888565b6105ba906305f5e100611897565b600e556105c96009600a611888565b6105d7906305f5e100611897565b600f556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106116009600a611888565b61061f906305f5e100611897565b60405190815260200160405180910390a1565b6000546001600160a01b0316331461065c5760405162461bcd60e51b8152600401610523906118ae565b601e821115801561066e5750601e8111155b80156106835750601354600160a01b900460ff165b6106bf5760405162461bcd60e51b815260206004820152600d60248201526c457863656564732076616c756560981b6044820152606401610523565b6008829055600981905560408051838152602081018390527f78009e5656a5c60b3c047015fb856b2efbc6f42beed76119406d7d4e3fc161f4910160405180910390a15050565b600061040d338484610c67565b6000546001600160a01b0316331461073d5760405162461bcd60e51b8152600401610523906118ae565b601354600160a01b900460ff16156107975760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610523565b600060646107a76009600a611888565b6107b5906305f5e100611897565b6107c0906014611897565b6107ca91906118e3565b306000908152600160205260409020546107e49190611905565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915590915061081c90309083610b43565b601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561086f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108939190611918565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109199190611918565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610966573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098a9190611918565b601380546001600160a01b039283166001600160a01b03199091161790556012541663f305d7194730846000806109c96000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a31573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a569190611935565b505060135460125460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610aaf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad39190611963565b50506013805462ff00ff60a01b19166201000160a01b179055565b6000546001600160a01b03163314610b185760405162461bcd60e51b8152600401610523906118ae565b6001600160a01b03919091166000908152600360205260409020805460ff1916911515919091179055565b6001600160a01b038316610ba55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610523565b6001600160a01b038216610c065760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610523565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ccb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610523565b6001600160a01b038216610d2d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610523565b60008111610d965760405162461bcd60e51b815260206004820152603060248201527f45524332303a205472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b6064820152608401610523565b600080546001600160a01b03858116911614801590610dc357506000546001600160a01b03848116911614155b8015610dd857506001600160a01b0384163014155b1561112357610e096064610e03600a54600d5411610df857600654610dfc565b6008545b8590611458565b906114e1565b60055490915060ff1615610ef1576012546001600160a01b03848116911614801590610e4357506013546001600160a01b03848116911614155b15610ef157326000908152600460205260409020544311610ede5760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610523565b3260009081526004602052604090204390555b6013546001600160a01b038581169116148015610f1c57506012546001600160a01b03848116911614155b8015610f4157506001600160a01b03831660009081526003602052604090205460ff16155b1561102957600e54821115610f985760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610523565b600f5482610fbb856001600160a01b031660009081526001602052604090205490565b610fc59190611980565b11156110135760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610523565b600d805490600061102383611993565b91905055505b6013546001600160a01b03848116911614801561104f57506001600160a01b0384163014155b1561107c576110796064610e03600b54600d541161106f57600754610dfc565b6009548590611458565b90505b30600090815260016020526040902054601354600160a81b900460ff161580156110b357506013546001600160a01b038581169116145b80156110c85750601354600160b01b900460ff165b80156110d5575060105481115b80156110e45750600c54600d54115b1561112157611106611101846110fc84601154611523565b611523565b6112a0565b4766b1a2bc2ec5000081111561111f5761111f4761141a565b505b505b801561119d57306000908152600160205260409020546111439082611538565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111949085815260200190565b60405180910390a35b6001600160a01b0384166000908152600160205260409020546111c09083611597565b6001600160a01b0385166000908152600160205260409020556112056111e68383611597565b6001600160a01b03851660009081526001602052604090205490611538565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61124f8585611597565b60405190815260200160405180910390a350505050565b6000818484111561128a5760405162461bcd60e51b81526004016105239190611607565b5060006112978486611905565b95945050505050565b6013805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106112e8576112e86119ac565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611341573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113659190611918565b81600181518110611378576113786119ac565b6001600160a01b03928316602091820292909201015260125461139e9130911684610b43565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906113d79085906000908690309042906004016119c2565b600060405180830381600087803b1580156113f157600080fd5b505af1158015611405573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b6005546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f193505050501580156104f5573d6000803e3d6000fd5b60008260000361146a57506000610411565b60006114768385611897565b90508261148385836118e3565b146114da5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610523565b9392505050565b60006114da83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115d9565b600081831161153257826114da565b50919050565b6000806115458385611980565b9050838110156114da5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610523565b60006114da83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611266565b600081836115fa5760405162461bcd60e51b81526004016105239190611607565b50600061129784866118e3565b600060208083528351808285015260005b8181101561163457858101830151858201604001528201611618565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461166a57600080fd5b50565b6000806040838503121561168057600080fd5b823561168b81611655565b946020939093013593505050565b6000806000606084860312156116ae57600080fd5b83356116b981611655565b925060208401356116c981611655565b929592945050506040919091013590565b6000602082840312156116ec57600080fd5b81356114da81611655565b6000806040838503121561170a57600080fd5b50508035926020909101359150565b6000806040838503121561172c57600080fd5b823561173781611655565b9150602083013561174781611655565b809150509250929050565b801515811461166a57600080fd5b6000806040838503121561177357600080fd5b823561177e81611655565b9150602083013561174781611752565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156117df5781600019048211156117c5576117c561178e565b808516156117d257918102915b93841c93908002906117a9565b509250929050565b6000826117f657506001610411565b8161180357506000610411565b816001811461181957600281146118235761183f565b6001915050610411565b60ff8411156118345761183461178e565b50506001821b610411565b5060208310610133831016604e8410600b8410161715611862575081810a610411565b61186c83836117a4565b80600019048211156118805761188061178e565b029392505050565b60006114da60ff8416836117e7565b80820281158282048414176104115761041161178e565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008261190057634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156104115761041161178e565b60006020828403121561192a57600080fd5b81516114da81611655565b60008060006060848603121561194a57600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561197557600080fd5b81516114da81611752565b808201808211156104115761041161178e565b6000600182016119a5576119a561178e565b5060010190565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a125784516001600160a01b0316835293830193918301916001016119ed565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220af6b0cd9a3a3ec4468308bb04ee8914a871c243b1d0c2af663fc52ad6923de9b64736f6c63430008130033

Deployed Bytecode

0x60806040526004361061012e5760003560e01c80637d1db4a5116100ab578063a9059cbb1161006f578063a9059cbb14610335578063bf474bed14610355578063c876d0b91461036b578063c9567bf914610385578063dd62ed3e1461039a578063df8408fe146103e057600080fd5b80637d1db4a51461029557806382116718146102ab5780638da5cb5b146102cb5780638f9a55c0146102f357806395d89b411461030957600080fd5b8063313ce567116100f2578063313ce5671461020257806351bc3c851461021e57806370a0823114610235578063715018a61461026b578063751039fc1461028057600080fd5b806306fdde031461013a578063095ea7b3146101795780630faee56f146101a957806318160ddd146101cd57806323b872dd146101e257600080fd5b3661013557005b600080fd5b34801561014657600080fd5b5060408051808201909152600481526308c98aab60e31b60208201525b6040516101709190611607565b60405180910390f35b34801561018557600080fd5b5061019961019436600461166d565b610400565b6040519015158152602001610170565b3480156101b557600080fd5b506101bf60115481565b604051908152602001610170565b3480156101d957600080fd5b506101bf610417565b3480156101ee57600080fd5b506101996101fd366004611699565b610438565b34801561020e57600080fd5b5060405160098152602001610170565b34801561022a57600080fd5b506102336104a1565b005b34801561024157600080fd5b506101bf6102503660046116da565b6001600160a01b031660009081526001602052604090205490565b34801561027757600080fd5b506102336104f9565b34801561028c57600080fd5b50610233610576565b3480156102a157600080fd5b506101bf600e5481565b3480156102b757600080fd5b506102336102c63660046116f7565b610632565b3480156102d757600080fd5b506000546040516001600160a01b039091168152602001610170565b3480156102ff57600080fd5b506101bf600f5481565b34801561031557600080fd5b5060408051808201909152600381526208c98b60eb1b6020820152610163565b34801561034157600080fd5b5061019961035036600461166d565b610706565b34801561036157600080fd5b506101bf60105481565b34801561037757600080fd5b506005546101999060ff1681565b34801561039157600080fd5b50610233610713565b3480156103a657600080fd5b506101bf6103b5366004611719565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156103ec57600080fd5b506102336103fb366004611760565b610aee565b600061040d338484610b43565b5060015b92915050565b60006104256009600a611888565b610433906305f5e100611897565b905090565b6000610445848484610c67565b610497843361049285604051806060016040528060288152602001611a34602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611266565b610b43565b5060019392505050565b60055461010090046001600160a01b0316336001600160a01b0316146104c657600080fd5b3060009081526001602052604090205480156104e5576104e5816112a0565b4780156104f5576104f58161141a565b5050565b6000546001600160a01b0316331461052c5760405162461bcd60e51b8152600401610523906118ae565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146105a05760405162461bcd60e51b8152600401610523906118ae565b6105ac6009600a611888565b6105ba906305f5e100611897565b600e556105c96009600a611888565b6105d7906305f5e100611897565b600f556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106116009600a611888565b61061f906305f5e100611897565b60405190815260200160405180910390a1565b6000546001600160a01b0316331461065c5760405162461bcd60e51b8152600401610523906118ae565b601e821115801561066e5750601e8111155b80156106835750601354600160a01b900460ff165b6106bf5760405162461bcd60e51b815260206004820152600d60248201526c457863656564732076616c756560981b6044820152606401610523565b6008829055600981905560408051838152602081018390527f78009e5656a5c60b3c047015fb856b2efbc6f42beed76119406d7d4e3fc161f4910160405180910390a15050565b600061040d338484610c67565b6000546001600160a01b0316331461073d5760405162461bcd60e51b8152600401610523906118ae565b601354600160a01b900460ff16156107975760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610523565b600060646107a76009600a611888565b6107b5906305f5e100611897565b6107c0906014611897565b6107ca91906118e3565b306000908152600160205260409020546107e49190611905565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915590915061081c90309083610b43565b601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561086f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108939190611918565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109199190611918565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610966573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098a9190611918565b601380546001600160a01b039283166001600160a01b03199091161790556012541663f305d7194730846000806109c96000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a31573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a569190611935565b505060135460125460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610aaf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad39190611963565b50506013805462ff00ff60a01b19166201000160a01b179055565b6000546001600160a01b03163314610b185760405162461bcd60e51b8152600401610523906118ae565b6001600160a01b03919091166000908152600360205260409020805460ff1916911515919091179055565b6001600160a01b038316610ba55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610523565b6001600160a01b038216610c065760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610523565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ccb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610523565b6001600160a01b038216610d2d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610523565b60008111610d965760405162461bcd60e51b815260206004820152603060248201527f45524332303a205472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b6064820152608401610523565b600080546001600160a01b03858116911614801590610dc357506000546001600160a01b03848116911614155b8015610dd857506001600160a01b0384163014155b1561112357610e096064610e03600a54600d5411610df857600654610dfc565b6008545b8590611458565b906114e1565b60055490915060ff1615610ef1576012546001600160a01b03848116911614801590610e4357506013546001600160a01b03848116911614155b15610ef157326000908152600460205260409020544311610ede5760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610523565b3260009081526004602052604090204390555b6013546001600160a01b038581169116148015610f1c57506012546001600160a01b03848116911614155b8015610f4157506001600160a01b03831660009081526003602052604090205460ff16155b1561102957600e54821115610f985760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610523565b600f5482610fbb856001600160a01b031660009081526001602052604090205490565b610fc59190611980565b11156110135760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610523565b600d805490600061102383611993565b91905055505b6013546001600160a01b03848116911614801561104f57506001600160a01b0384163014155b1561107c576110796064610e03600b54600d541161106f57600754610dfc565b6009548590611458565b90505b30600090815260016020526040902054601354600160a81b900460ff161580156110b357506013546001600160a01b038581169116145b80156110c85750601354600160b01b900460ff165b80156110d5575060105481115b80156110e45750600c54600d54115b1561112157611106611101846110fc84601154611523565b611523565b6112a0565b4766b1a2bc2ec5000081111561111f5761111f4761141a565b505b505b801561119d57306000908152600160205260409020546111439082611538565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111949085815260200190565b60405180910390a35b6001600160a01b0384166000908152600160205260409020546111c09083611597565b6001600160a01b0385166000908152600160205260409020556112056111e68383611597565b6001600160a01b03851660009081526001602052604090205490611538565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61124f8585611597565b60405190815260200160405180910390a350505050565b6000818484111561128a5760405162461bcd60e51b81526004016105239190611607565b5060006112978486611905565b95945050505050565b6013805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106112e8576112e86119ac565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611341573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113659190611918565b81600181518110611378576113786119ac565b6001600160a01b03928316602091820292909201015260125461139e9130911684610b43565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906113d79085906000908690309042906004016119c2565b600060405180830381600087803b1580156113f157600080fd5b505af1158015611405573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b6005546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f193505050501580156104f5573d6000803e3d6000fd5b60008260000361146a57506000610411565b60006114768385611897565b90508261148385836118e3565b146114da5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610523565b9392505050565b60006114da83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115d9565b600081831161153257826114da565b50919050565b6000806115458385611980565b9050838110156114da5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610523565b60006114da83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611266565b600081836115fa5760405162461bcd60e51b81526004016105239190611607565b50600061129784866118e3565b600060208083528351808285015260005b8181101561163457858101830151858201604001528201611618565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461166a57600080fd5b50565b6000806040838503121561168057600080fd5b823561168b81611655565b946020939093013593505050565b6000806000606084860312156116ae57600080fd5b83356116b981611655565b925060208401356116c981611655565b929592945050506040919091013590565b6000602082840312156116ec57600080fd5b81356114da81611655565b6000806040838503121561170a57600080fd5b50508035926020909101359150565b6000806040838503121561172c57600080fd5b823561173781611655565b9150602083013561174781611655565b809150509250929050565b801515811461166a57600080fd5b6000806040838503121561177357600080fd5b823561177e81611655565b9150602083013561174781611752565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156117df5781600019048211156117c5576117c561178e565b808516156117d257918102915b93841c93908002906117a9565b509250929050565b6000826117f657506001610411565b8161180357506000610411565b816001811461181957600281146118235761183f565b6001915050610411565b60ff8411156118345761183461178e565b50506001821b610411565b5060208310610133831016604e8410600b8410161715611862575081810a610411565b61186c83836117a4565b80600019048211156118805761188061178e565b029392505050565b60006114da60ff8416836117e7565b80820281158282048414176104115761041161178e565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008261190057634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156104115761041161178e565b60006020828403121561192a57600080fd5b81516114da81611655565b60008060006060848603121561194a57600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561197557600080fd5b81516114da81611752565b808201808211156104115761041161178e565b6000600182016119a5576119a561178e565b5060010190565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a125784516001600160a01b0316835293830193918301916001016119ed565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220af6b0cd9a3a3ec4468308bb04ee8914a871c243b1d0c2af663fc52ad6923de9b64736f6c63430008130033

Deployed Bytecode Sourcemap

3748:9052:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5934:83;;;;;;;;;;-1:-1:-1;6004:5:0;;;;;;;;;;;;-1:-1:-1;;;6004:5:0;;;;5934:83;;;;;;;:::i;:::-;;;;;;;;6768:161;;;;;;;;;;-1:-1:-1;6768:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6768:161:0;1023:187:1;5108:51:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;5108:51:0;1215:177:1;6211:96:0;;;;;;;;;;;;;:::i;6937:313::-;;;;;;;;;;-1:-1:-1;6937:313:0;;;;;:::i;:::-;;:::i;6120:83::-;;;;;;;;;;-1:-1:-1;6120:83:0;;4845:1;2000:36:1;;1988:2;1973:18;6120:83:0;1858:184:1;12147:348:0;;;;;;;;;;;;;:::i;:::-;;6315:119;;;;;;;;;;-1:-1:-1;6315:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6408:18:0;6381:7;6408:18;;;:9;:18;;;;;;;6315:119;2829:148;;;;;;;;;;;;;:::i;11046:199::-;;;;;;;;;;;;;:::i;4923:53::-;;;;;;;;;;;;;;;;12503:294;;;;;;;;;;-1:-1:-1;12503:294:0;;;;;:::i;:::-;;:::i;2615:79::-;;;;;;;;;;-1:-1:-1;2653:7:0;2680:6;2615:79;;-1:-1:-1;;;;;2680:6:0;;;2698:51:1;;2686:2;2671:18;2615:79:0;2552:203:1;4983:55:0;;;;;;;;;;;;;;;;6025:87;;;;;;;;;;-1:-1:-1;6097:7:0;;;;;;;;;;;;-1:-1:-1;;;6097:7:0;;;;6025:87;;6442:167;;;;;;;;;;-1:-1:-1;6442:167:0;;;;;:::i;:::-;;:::i;5045:56::-;;;;;;;;;;;;;;;;4093:39;;;;;;;;;;-1:-1:-1;4093:39:0;;;;;;;;11355:747;;;;;;;;;;;;;:::i;6617:143::-;;;;;;;;;;-1:-1:-1;6617:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6725:18:0;;;6698:7;6725:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6617:143;7258:130;;;;;;;;;;-1:-1:-1;7258:130:0;;;;;:::i;:::-;;:::i;6768:161::-;6843:4;6860:39;450:10;6883:7;6892:6;6860:8;:39::i;:::-;-1:-1:-1;6917:4:0;6768:161;;;;;:::o;6211:96::-;6264:7;4901:13;4845:1;4901:2;:13;:::i;:::-;4889:25;;:9;:25;:::i;:::-;6284:15;;6211:96;:::o;6937:313::-;7035:4;7052:36;7062:6;7070:9;7081:6;7052:9;:36::i;:::-;7099:121;7108:6;450:10;7130:89;7168:6;7130:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7130:19:0;;;;;;:11;:19;;;;;;;;450:10;7130:33;;;;;;;;;;:37;:89::i;:::-;7099:8;:121::i;:::-;-1:-1:-1;7238:4:0;6937:313;;;;;:::o;12147:348::-;12211:10;;;;;-1:-1:-1;;;;;12211:10:0;450;-1:-1:-1;;;;;12197:24:0;;12189:33;;;;;;12272:4;12233:20;6408:18;;;:9;:18;;;;;;12292:14;;12289:73;;12320:30;12337:12;12320:16;:30::i;:::-;12391:21;12426:12;;12423:65;;12452:24;12465:10;12452:12;:24::i;:::-;12178:317;;12147:348::o;2829:148::-;2742:6;;-1:-1:-1;;;;;2742:6:0;450:10;2742:22;2734:67;;;;-1:-1:-1;;;2734:67:0;;;;;;;:::i;:::-;;;;;;;;;2936:1:::1;2920:6:::0;;2899:40:::1;::::0;-1:-1:-1;;;;;2920:6:0;;::::1;::::0;2899:40:::1;::::0;2936:1;;2899:40:::1;2967:1;2950:19:::0;;-1:-1:-1;;;;;;2950:19:0::1;::::0;;2829:148::o;11046:199::-;2742:6;;-1:-1:-1;;;;;2742:6:0;450:10;2742:22;2734:67;;;;-1:-1:-1;;;2734:67:0;;;;;;;:::i;:::-;4901:13:::1;4845:1;4901:2;:13;:::i;:::-;4889:25;::::0;:9:::1;:25;:::i;:::-;11099:12;:23:::0;4901:13:::1;4845:1;4901:2;:13;:::i;:::-;4889:25;::::0;:9:::1;:25;:::i;:::-;11133:14;:23:::0;11167:20:::1;:26:::0;;-1:-1:-1;;11167:26:0::1;::::0;;11209:28:::1;4901:13;4845:1;-1:-1:-1::0;4901:13:0::1;:::i;:::-;4889:25;::::0;:9:::1;:25;:::i;:::-;11209:28;::::0;1361:25:1;;;1349:2;1334:18;11209:28:0::1;;;;;;;11046:199::o:0;12503:294::-;2742:6;;-1:-1:-1;;;;;2742:6:0;450:10;2742:22;2734:67;;;;-1:-1:-1;;;2734:67:0;;;;;;;:::i;:::-;12615:2:::1;12602:9;:15;;:35;;;;;12635:2;12621:10;:16;;12602:35;:50;;;;-1:-1:-1::0;12641:11:0::1;::::0;-1:-1:-1;;;12641:11:0;::::1;;;12602:50;12594:76;;;::::0;-1:-1:-1;;;12594:76:0;;5914:2:1;12594:76:0::1;::::0;::::1;5896:21:1::0;5953:2;5933:18;;;5926:30;-1:-1:-1;;;5972:18:1;;;5965:43;6025:18;;12594:76:0::1;5712:337:1::0;12594:76:0::1;12681:12;:24:::0;;;12716:13:::1;:26:::0;;;12758:31:::1;::::0;;6228:25:1;;;6284:2;6269:18;;6262:34;;;12758:31:0::1;::::0;6201:18:1;12758:31:0::1;;;;;;;12503:294:::0;;:::o;6442:167::-;6520:4;6537:42;450:10;6561:9;6572:6;6537:9;:42::i;11355:747::-;2742:6;;-1:-1:-1;;;;;2742:6:0;450:10;2742:22;2734:67;;;;-1:-1:-1;;;2734:67:0;;;;;;;:::i;:::-;11419:11:::1;::::0;-1:-1:-1;;;11419:11:0;::::1;;;11418:12;11410:47;;;::::0;-1:-1:-1;;;11410:47:0;;6509:2:1;11410:47:0::1;::::0;::::1;6491:21:1::0;6548:2;6528:18;;;6521:30;6587:25;6567:18;;;6560:53;6630:18;;11410:47:0::1;6307:347:1::0;11410:47:0::1;11470:19;11536:3;4901:13;4845:1;4901:2;:13;:::i;:::-;4889:25;::::0;:9:::1;:25;:::i;:::-;11520:13;::::0;11531:2:::1;11520:13;:::i;:::-;:19;;;;:::i;:::-;11510:4;6381:7:::0;6408:18;;;:9;:18;;;;;;11492:48:::1;;;;:::i;:::-;11553:15;:80:::0;;-1:-1:-1;;;;;;11553:80:0::1;11590:42;11553:80:::0;;::::1;::::0;;;11470:70;;-1:-1:-1;11644:62:0::1;::::0;11661:4:::1;::::0;11470:70;11644:8:::1;:62::i;:::-;11751:15;;;;;;;;;-1:-1:-1::0;;;;;11751:15:0::1;-1:-1:-1::0;;;;;11751:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11733:55:0::1;;11797:4;11804:15;;;;;;;;;-1:-1:-1::0;;;;;11804:15:0::1;-1:-1:-1::0;;;;;11804:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11733:94;::::0;-1:-1:-1;;;;;;11733:94:0::1;::::0;;;;;;-1:-1:-1;;;;;7500:15:1;;;11733:94:0::1;::::0;::::1;7482:34:1::0;7552:15;;7532:18;;;7525:43;7417:18;;11733:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11717:13;:110:::0;;-1:-1:-1;;;;;11717:110:0;;::::1;-1:-1:-1::0;;;;;;11717:110:0;;::::1;;::::0;;11838:15:::1;::::0;::::1;:31;11877:21;11908:4;11914:11:::0;11717:13:::1;::::0;11930:7:::1;2653::::0;2680:6;-1:-1:-1;;;;;2680:6:0;;2615:79;11930:7:::1;11838:116;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11838:116:0;;;-1:-1:-1;;;;;7938:15:1;;;11838:116:0::1;::::0;::::1;7920:34:1::0;7970:18;;;7963:34;;;;8013:18;;;8006:34;;;;8056:18;;;8049:34;8120:15;;;8099:19;;;8092:44;11938:15:0::1;8152:19:1::0;;;8145:35;7854:19;;11838:116:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11972:13:0::1;::::0;12003:15:::1;::::0;11965:71:::1;::::0;-1:-1:-1;;;11965:71:0;;-1:-1:-1;;;;;12003:15:0;;::::1;11965:71;::::0;::::1;8676:51:1::0;-1:-1:-1;;8743:18:1;;;8736:34;11972:13:0;::::1;::::0;-1:-1:-1;11965:29:0::1;::::0;8649:18:1;;11965:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12047:11:0::1;:18:::0;;-1:-1:-1;;;;12076:18:0;-1:-1:-1;;;12076:18:0;;;11355:747::o;7258:130::-;2742:6;;-1:-1:-1;;;;;2742:6:0;450:10;2742:22;2734:67;;;;-1:-1:-1;;;2734:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7342:27:0;;;::::1;;::::0;;;:18:::1;:27;::::0;;;;:38;;-1:-1:-1;;7342:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;7258:130::o;7396:335::-;-1:-1:-1;;;;;7489:19:0;;7481:68;;;;-1:-1:-1;;;7481:68:0;;9233:2:1;7481:68:0;;;9215:21:1;9272:2;9252:18;;;9245:30;9311:34;9291:18;;;9284:62;-1:-1:-1;;;9362:18:1;;;9355:34;9406:19;;7481:68:0;9031:400:1;7481:68:0;-1:-1:-1;;;;;7568:21:0;;7560:68;;;;-1:-1:-1;;;7560:68:0;;9638:2:1;7560:68:0;;;9620:21:1;9677:2;9657:18;;;9650:30;9716:34;9696:18;;;9689:62;-1:-1:-1;;;9767:18:1;;;9760:32;9809:19;;7560:68:0;9436:398:1;7560:68:0;-1:-1:-1;;;;;7639:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7691:32;;1361:25:1;;;7691:32:0;;1334:18:1;7691:32:0;;;;;;;7396:335;;;:::o;7739:2697::-;-1:-1:-1;;;;;7827:18:0;;7819:68;;;;-1:-1:-1;;;7819:68:0;;10041:2:1;7819:68:0;;;10023:21:1;10080:2;10060:18;;;10053:30;10119:34;10099:18;;;10092:62;-1:-1:-1;;;10170:18:1;;;10163:35;10215:19;;7819:68:0;9839:401:1;7819:68:0;-1:-1:-1;;;;;7906:16:0;;7898:64;;;;-1:-1:-1;;;7898:64:0;;10447:2:1;7898:64:0;;;10429:21:1;10486:2;10466:18;;;10459:30;10525:34;10505:18;;;10498:62;-1:-1:-1;;;10576:18:1;;;10569:33;10619:19;;7898:64:0;10245:399:1;7898:64:0;7990:1;7981:6;:10;7973:71;;;;-1:-1:-1;;;7973:71:0;;10851:2:1;7973:71:0;;;10833:21:1;10890:2;10870:18;;;10863:30;10929:34;10909:18;;;10902:62;-1:-1:-1;;;10980:18:1;;;10973:46;11036:19;;7973:71:0;10649:412:1;7973:71:0;8055:17;2680:6;;-1:-1:-1;;;;;8093:15:0;;;2680:6;;8093:15;;;;:32;;-1:-1:-1;2653:7:0;2680:6;-1:-1:-1;;;;;8112:13:0;;;2680:6;;8112:13;;8093:32;:57;;;;-1:-1:-1;;;;;;8129:21:0;;8145:4;8129:21;;8093:57;8089:1991;;;8179:132;8289:3;8179:105;8217:15;;8209:7;;:23;8208:75;;8269:14;;8208:75;;;8256:12;;8208:75;8179:6;;:10;:105::i;:::-;:109;;:132::i;:::-;8332:20;;8167:144;;-1:-1:-1;8332:20:0;;8328:508;;;8393:15;;-1:-1:-1;;;;;8379:30:0;;;8393:15;;8379:30;;;;:62;;-1:-1:-1;8427:13:0;;-1:-1:-1;;;;;8413:28:0;;;8427:13;;8413:28;;8379:62;8375:444;;;8533:9;8504:39;;;;:28;:39;;;;;;8577:12;-1:-1:-1;8468:250:0;;;;-1:-1:-1;;;8468:250:0;;11268:2:1;8468:250:0;;;11250:21:1;11307:2;11287:18;;;11280:30;11346:34;11326:18;;;11319:62;11417:34;11397:18;;;11390:62;-1:-1:-1;;;11468:19:1;;;11461:40;11518:19;;8468:250:0;11066:477:1;8468:250:0;8772:9;8743:39;;;;:28;:39;;;;;8785:12;8743:54;;8375:444;8878:13;;-1:-1:-1;;;;;8870:21:0;;;8878:13;;8870:21;:55;;;;-1:-1:-1;8909:15:0;;-1:-1:-1;;;;;8895:30:0;;;8909:15;;8895:30;;8870:55;:83;;;;-1:-1:-1;;;;;;8931:22:0;;;;;;:18;:22;;;;;;;;8929:24;8870:83;8866:311;;;8993:12;;8983:6;:22;;8975:60;;;;-1:-1:-1;;;8975:60:0;;11750:2:1;8975:60:0;;;11732:21:1;11789:2;11769:18;;;11762:30;11828:27;11808:18;;;11801:55;11873:18;;8975:60:0;11548:349:1;8975:60:0;9088:14;;9078:6;9062:13;9072:2;-1:-1:-1;;;;;6408:18:0;6381:7;6408:18;;;:9;:18;;;;;;;6315:119;9062:13;:22;;;;:::i;:::-;:40;;9054:79;;;;-1:-1:-1;;;9054:79:0;;12234:2:1;9054:79:0;;;12216:21:1;12273:2;12253:18;;;12246:30;12312:28;12292:18;;;12285:56;12358:18;;9054:79:0;12032:350:1;9054:79:0;9152:7;:9;;;:7;:9;;;:::i;:::-;;;;;;8866:311;9203:13;;-1:-1:-1;;;;;9197:19:0;;;9203:13;;9197:19;:43;;;;-1:-1:-1;;;;;;9220:20:0;;9235:4;9220:20;;9197:43;9193:232;;;9273:136;9387:3;9273:109;9312:16;;9304:7;;:24;9303:78;;9366:15;;9303:78;;;9352:13;;9273:6;;:10;:109::i;:136::-;9261:148;;9193:232;9503:4;9454:28;6408:18;;;:9;:18;;;;;;9547:6;;-1:-1:-1;;;9547:6:0;;;;9546:7;:48;;;;-1:-1:-1;9581:13:0;;-1:-1:-1;;;;;9575:19:0;;;9581:13;;9575:19;9546:48;:81;;;;-1:-1:-1;9616:11:0;;-1:-1:-1;;;9616:11:0;;;;9546:81;:143;;;;;9672:17;;9649:20;:40;9546:143;:187;;;;;9721:12;;9711:7;;:22;9546:187;9524:545;;;9768:77;9785:59;9794:6;9801:42;9810:20;9831:11;;9801:8;:42::i;:::-;9785:8;:59::i;:::-;9768:16;:77::i;:::-;9893:21;9957:17;9936:38;;9933:121;;;9999:35;10012:21;9999:12;:35::i;:::-;9749:320;9524:545;8152:1928;8089:1991;10095:11;;10092:161;;10163:4;10145:24;;;;:9;:24;;;;;;:39;;10174:9;10145:28;:39::i;:::-;10138:4;10120:24;;;;:9;:24;;;;;;;:64;;;;10202:39;;-1:-1:-1;;;;;10202:39:0;;;;;;;10231:9;1361:25:1;;1349:2;1334:18;;1215:177;10202:39:0;;;;;;;;10092:161;-1:-1:-1;;;;;10279:15:0;;;;;;:9;:15;;;;;;:27;;10299:6;10279:19;:27::i;:::-;-1:-1:-1;;;;;10263:15:0;;;;;;:9;:15;;;;;:43;10331:40;10349:21;:6;10360:9;10349:10;:21::i;:::-;-1:-1:-1;;;;;10331:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;10317:13:0;;;;;;;:9;:13;;;;;:54;;;;10387:41;;;10406:21;:6;10417:9;10406:10;:21::i;:::-;10387:41;;1361:25:1;;;1349:2;1334:18;10387:41:0;;;;;;;7808:2628;7739:2697;;;:::o;1507:190::-;1593:7;1629:12;1621:6;;;;1613:29;;;;-1:-1:-1;;;1613:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1653:9:0;1665:5;1669:1;1665;:5;:::i;:::-;1653:17;1507:190;-1:-1:-1;;;;;1507:190:0:o;10555:483::-;5510:6;:13;;-1:-1:-1;;;;5510:13:0;-1:-1:-1;;;5510:13:0;;;10657:16:::1;::::0;;10671:1:::1;10657:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10657:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10657:16:0::1;10633:40;;10702:4;10684;10689:1;10684:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10684:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10728:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10728:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10684:7;;10728:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10718:4;10723:1;10718:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10718:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10793:15:::1;::::0;10761:62:::1;::::0;10778:4:::1;::::0;10793:15:::1;10811:11:::0;10761:8:::1;:62::i;:::-;10834:15;::::0;:196:::1;::::0;-1:-1:-1;;;10834:196:0;;-1:-1:-1;;;;;10834:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10915:11;;10834:15:::1;::::0;10957:4;;10984::::1;::::0;11004:15:::1;::::0;10834:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5546:6:0;:14;;-1:-1:-1;;;;5546:14:0;;;-1:-1:-1;;;;10555:483:0:o;11253:92::-;11310:10;;:27;;:10;;;;-1:-1:-1;;;;;11310:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;1705:246;1763:7;1787:1;1792;1787:6;1783:47;;-1:-1:-1;1817:1:0;1810:8;;1783:47;1840:9;1852:5;1856:1;1852;:5;:::i;:::-;1840:17;-1:-1:-1;1885:1:0;1876:5;1880:1;1840:17;1876:5;:::i;:::-;:10;1868:56;;;;-1:-1:-1;;;1868:56:0;;13978:2:1;1868:56:0;;;13960:21:1;14017:2;13997:18;;;13990:30;14056:34;14036:18;;;14029:62;-1:-1:-1;;;14107:18:1;;;14100:31;14148:19;;1868:56:0;13776:397:1;1868:56:0;1942:1;1705:246;-1:-1:-1;;;1705:246:0:o;1959:132::-;2017:7;2044:39;2048:1;2051;2044:39;;;;;;;;;;;;;;;;;:3;:39::i;10444:103::-;10506:7;10533:1;10531;:3;10530:9;;10538:1;10530:9;;;-1:-1:-1;10536:1:0;10444:103;-1:-1:-1;10444:103:0:o;1176:179::-;1234:7;;1266:5;1270:1;1266;:5;:::i;:::-;1254:17;;1295:1;1290;:6;;1282:46;;;;-1:-1:-1;;;1282:46:0;;14380:2:1;1282:46:0;;;14362:21:1;14419:2;14399:18;;;14392:30;14458:29;14438:18;;;14431:57;14505:18;;1282:46:0;14178:351:1;1363:136:0;1421:7;1448:43;1452:1;1455;1448:43;;;;;;;;;;;;;;;;;:3;:43::i;2099:189::-;2185:7;2220:12;2213:5;2205:28;;;;-1:-1:-1;;;2205:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2244:9:0;2256:5;2260:1;2256;:5;:::i;14:548: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;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2299:248::-;2367:6;2375;2428:2;2416:9;2407:7;2403:23;2399:32;2396:52;;;2444:1;2441;2434:12;2396:52;-1:-1:-1;;2467:23:1;;;2537:2;2522:18;;;2509:32;;-1:-1:-1;2299:248:1:o;2760:388::-;2828:6;2836;2889:2;2877:9;2868:7;2864:23;2860:32;2857:52;;;2905:1;2902;2895:12;2857:52;2944:9;2931:23;2963:31;2988:5;2963:31;:::i;:::-;3013:5;-1:-1:-1;3070:2:1;3055:18;;3042:32;3083:33;3042:32;3083:33;:::i;:::-;3135:7;3125:17;;;2760:388;;;;;:::o;3153:118::-;3239:5;3232:13;3225:21;3218:5;3215:32;3205:60;;3261:1;3258;3251:12;3276:382;3341:6;3349;3402:2;3390:9;3381:7;3377:23;3373:32;3370:52;;;3418:1;3415;3408:12;3370:52;3457:9;3444:23;3476:31;3501:5;3476:31;:::i;:::-;3526:5;-1:-1:-1;3583:2:1;3568:18;;3555:32;3596:30;3555:32;3596:30;:::i;3663:127::-;3724:10;3719:3;3715:20;3712:1;3705:31;3755:4;3752:1;3745:15;3779:4;3776:1;3769:15;3795:422;3884:1;3927:5;3884:1;3941:270;3962:7;3952:8;3949:21;3941:270;;;4021:4;4017:1;4013:6;4009:17;4003:4;4000:27;3997:53;;;4030:18;;:::i;:::-;4080:7;4070:8;4066:22;4063:55;;;4100:16;;;;4063:55;4179:22;;;;4139:15;;;;3941:270;;;3945:3;3795:422;;;;;:::o;4222:806::-;4271:5;4301:8;4291:80;;-1:-1:-1;4342:1:1;4356:5;;4291:80;4390:4;4380:76;;-1:-1:-1;4427:1:1;4441:5;;4380:76;4472:4;4490:1;4485:59;;;;4558:1;4553:130;;;;4465:218;;4485:59;4515:1;4506:10;;4529:5;;;4553:130;4590:3;4580:8;4577:17;4574:43;;;4597:18;;:::i;:::-;-1:-1:-1;;4653:1:1;4639:16;;4668:5;;4465:218;;4767:2;4757:8;4754:16;4748:3;4742:4;4739:13;4735:36;4729:2;4719:8;4716:16;4711:2;4705:4;4702:12;4698:35;4695:77;4692:159;;;-1:-1:-1;4804:19:1;;;4836:5;;4692:159;4883:34;4908:8;4902:4;4883:34;:::i;:::-;4953:6;4949:1;4945:6;4941:19;4932:7;4929:32;4926:58;;;4964:18;;:::i;:::-;5002:20;;4222:806;-1:-1:-1;;;4222:806:1:o;5033:140::-;5091:5;5120:47;5161:4;5151:8;5147:19;5141:4;5120:47;:::i;5178:168::-;5251:9;;;5282;;5299:15;;;5293:22;;5279:37;5269:71;;5320:18;;:::i;5351:356::-;5553:2;5535:21;;;5572:18;;;5565:30;5631:34;5626:2;5611:18;;5604:62;5698:2;5683:18;;5351:356::o;6659:217::-;6699:1;6725;6715:132;;6769:10;6764:3;6760:20;6757:1;6750:31;6804:4;6801:1;6794:15;6832:4;6829:1;6822:15;6715:132;-1:-1:-1;6861:9:1;;6659:217::o;6881:128::-;6948:9;;;6969:11;;;6966:37;;;6983:18;;:::i;7014:251::-;7084:6;7137:2;7125:9;7116:7;7112:23;7108:32;7105:52;;;7153:1;7150;7143:12;7105:52;7185:9;7179:16;7204:31;7229:5;7204:31;:::i;8191:306::-;8279:6;8287;8295;8348:2;8336:9;8327:7;8323:23;8319:32;8316:52;;;8364:1;8361;8354:12;8316:52;8393:9;8387:16;8377:26;;8443:2;8432:9;8428:18;8422:25;8412:35;;8487:2;8476:9;8472:18;8466:25;8456:35;;8191:306;;;;;:::o;8781:245::-;8848:6;8901:2;8889:9;8880:7;8876:23;8872:32;8869:52;;;8917:1;8914;8907:12;8869:52;8949:9;8943:16;8968:28;8990:5;8968:28;:::i;11902:125::-;11967:9;;;11988:10;;;11985:36;;;12001:18;;:::i;12387:135::-;12426:3;12447:17;;;12444:43;;12467:18;;:::i;:::-;-1:-1:-1;12514:1:1;12503:13;;12387:135::o;12659:127::-;12720:10;12715:3;12711:20;12708:1;12701:31;12751:4;12748:1;12741:15;12775:4;12772:1;12765:15;12791:980;13053:4;13101:3;13090:9;13086:19;13132:6;13121:9;13114:25;13158:2;13196:6;13191:2;13180:9;13176:18;13169:34;13239:3;13234:2;13223:9;13219:18;13212:31;13263:6;13298;13292:13;13329:6;13321;13314:22;13367:3;13356:9;13352:19;13345:26;;13406:2;13398:6;13394:15;13380:29;;13427:1;13437:195;13451:6;13448:1;13445:13;13437:195;;;13516:13;;-1:-1:-1;;;;;13512:39:1;13500:52;;13607:15;;;;13572:12;;;;13548:1;13466:9;13437:195;;;-1:-1:-1;;;;;;;13688:32:1;;;;13683:2;13668:18;;13661:60;-1:-1:-1;;;13752:3:1;13737:19;13730:35;13649:3;12791:980;-1:-1:-1;;;12791:980:1:o

Swarm Source

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