ETH Price: $3,416.21 (+3.14%)

Token

Aremia Finance (AREMIA)
 

Overview

Max Total Supply

1,000,000,000 AREMIA

Holders

90

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
johnpalmer.eth
Balance
12,381,172.883518640648696286 AREMIA

Value
$0.00
0xB0623C91c65621df716aB8aFE5f66656B21A9108
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:
AREMIA

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-12-11
*/

/*
Aremia's automated options market enables best-in-class pricing based on realtime supply and demand, bringing fully-featured p2p trading and capital efficiency to DeFi options.

Website: https://www.aremia.pro
Twitter: https://twitter.com/Aremia_Finance
Telegram: https://t.me/Aremia_Finance_Official
Medium: https://medium.com/@aremia_finance
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.21;

library SafeMathLib {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

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

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

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

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

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

interface IERC20 {
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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);
}

interface IUniswapRouter {
    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);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline) external;
}

abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {owner = _owner;}
    modifier onlyOwner() {require(isOwner(msg.sender), "!OWNER"); _;}
    function isOwner(address account) public view returns (bool) {return account == owner;}
    function transferOwnership(address payable adr) public onlyOwner {owner = adr; emit OwnershipTransferred(adr);}
    function renounceOwnership() public onlyOwner {owner = address(0); emit OwnershipTransferred(address(0));}
    event OwnershipTransferred(address owner);
}

interface IUniswapFactory {
    function createPair(address tokenA, address tokenB) external returns (address pairAddress_);
    function getPair(address tokenA, address tokenB) external view returns (address pairAddress_);
}

contract AREMIA is IERC20, Ownable {
    using SafeMathLib for uint256;
    string private constant _name = 'Aremia Finance';
    string private constant _symbol = 'AREMIA';
    uint8 private constant _decimals = 18;
    uint256 private _tSupply = 10 ** 9 * (10 ** _decimals);
    IUniswapRouter _routerInstance;
    address public pairAddress;
    bool private _isOpened = false;
    bool private _swapEnabledForTax = true;
    uint256 private _feeSwapAftre;
    bool private _taxswapping;
    uint256 _indexSwaps = 1;
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _isExeptTax;
    uint256 private _swapTaxCeil = ( _tSupply * 3) / 100;
    uint256 private _swapTaxFloor = ( _tSupply * 1) / 100000;
    modifier lockSwap {_taxswapping = true; _; _taxswapping = false;}
    uint256 private liquidityFee = 0;
    uint256 private marketingFee = 0; 
    uint256 private developmentFee = 100; 
    uint256 private burnFee = 0;
    uint256 private totalFee = 2500; 
    uint256 private sellFee = 2500; 
    uint256 private transferFee = 2500;
    uint256 private denominator = 10000;
    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address internal development_receiver = 0x33ee0Ea74F56da4439FF6B8a0CF6483e7E5d83c1;
    address internal marketing_receiver = 0x33ee0Ea74F56da4439FF6B8a0CF6483e7E5d83c1; 
    address internal liquidity_receiver = 0x33ee0Ea74F56da4439FF6B8a0CF6483e7E5d83c1;
    uint256 public _maxAmountTx = ( _tSupply * 150 ) / 10000;
    uint256 public _maxAmountBuys = ( _tSupply * 150 ) / 10000;
    uint256 public _maxAmountHodl = ( _tSupply * 150 ) / 10000;

    constructor() Ownable(msg.sender) {
        IUniswapRouter _router = IUniswapRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IUniswapFactory(_router.factory()).createPair(address(this), _router.WETH());
        _routerInstance = _router; pairAddress = _pair;
        _isExeptTax[liquidity_receiver] = true;
        _isExeptTax[marketing_receiver] = true;
        _isExeptTax[development_receiver] = true;
        _isExeptTax[msg.sender] = true;
        _balances[msg.sender] = _tSupply;
        emit Transfer(address(0), msg.sender, _tSupply);
    }

    receive() external payable {}
    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 getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, 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(msg.sender, spender, amount);return true;}
    function totalSupply() public view override returns (uint256) {return _tSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}
    function canTriggerTax(address sender, address recipient, uint256 amount) internal view returns (bool) {
        bool aboveMin = amount >= _swapTaxFloor;
        bool aboveThreshold = balanceOf(address(this)) >= _swapTaxFloor;
        return !_taxswapping && _swapEnabledForTax && _isOpened && aboveMin && !_isExeptTax[sender] && recipient == pairAddress && _feeSwapAftre >= _indexSwaps && aboveThreshold;
    }
        
    function _transfer(address sender, address recipient, uint256 amount) private {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        if(!_isExeptTax[sender] && !_isExeptTax[recipient]){require(_isOpened, "_isOpened");}
        if(!_isExeptTax[sender] && !_isExeptTax[recipient] && recipient != address(pairAddress) && recipient != address(DEAD)){
        require((_balances[recipient].add(amount)) <= _maxAmountHodl, "Exceeds maximum wallet amount.");}
        if(sender != pairAddress){require(amount <= _maxAmountBuys || _isExeptTax[sender] || _isExeptTax[recipient], "TX Limit Exceeded");}
        require(amount <= _maxAmountTx || _isExeptTax[sender] || _isExeptTax[recipient], "TX Limit Exceeded"); 
        if(recipient == pairAddress && !_isExeptTax[sender]){_feeSwapAftre += uint256(1);}
        if(canTriggerTax(sender, recipient, amount)){swapAndAddLp(min(balanceOf(address(this)), _swapTaxCeil)); _feeSwapAftre = uint256(0);}
        if (!_isOpened || !_isExeptTax[sender]) { _balances[sender] = _balances[sender].sub(amount); }
        uint256 amountReceived = shouldSendTax(sender, recipient) ? _getSendingAmounts(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }

    function wesettax(uint256 _liquidity, uint256 _marketing, uint256 _burn, uint256 _development, uint256 _total, uint256 _sell, uint256 _trans) external onlyOwner {
        liquidityFee = _liquidity; marketingFee = _marketing; burnFee = _burn; developmentFee = _development; totalFee = _total; sellFee = _sell; transferFee = _trans;
        require(totalFee <= denominator && sellFee <= denominator && transferFee <= denominator, "totalFee and sellFee cannot be more than 100%");
    }
    
    function shouldSendTax(address sender, address recipient) internal view returns (bool) {
        return !_isExeptTax[sender] && !_isExeptTax[recipient];
    }
    
    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        _approve(address(this), address(_routerInstance), tokenAmount);
        _routerInstance.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            liquidity_receiver,
            block.timestamp);
    }

    function min(uint256 a, uint256 b) private pure returns (uint256) {
      return (a > b) ? b : a;
    }
    
    function wego() external onlyOwner {_isOpened = true;}
    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _routerInstance.WETH();
        _approve(address(this), address(_routerInstance), tokenAmount);
        _routerInstance.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp);
    }
    
    function swapAndAddLp(uint256 tokens) private lockSwap {
        uint256 _denominator = (liquidityFee.add(1).add(marketingFee).add(developmentFee)).mul(2);
        uint256 tokensToAddLiquidityWith = tokens.mul(liquidityFee).div(_denominator);
        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapTokensForEth(toSwap);
        uint256 deltaBalance = address(this).balance.sub(initialBalance);
        uint256 unitBalance= deltaBalance.div(_denominator.sub(liquidityFee));
        uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidityFee);
        if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); }
        uint256 marketingAmt = unitBalance.mul(2).mul(marketingFee);
        if(marketingAmt > 0){payable(marketing_receiver).transfer(marketingAmt);}
        uint256 contractBalance = address(this).balance;
        if(contractBalance > uint256(0)){payable(development_receiver).transfer(contractBalance);}
    }
    
    function _getCurFeeDenom(address sender, address recipient) internal view returns (uint256) {
        if(recipient == pairAddress){return sellFee;}
        if(sender == pairAddress){return totalFee;}
        return transferFee;
    }

    function _getSendingAmounts(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if(_getCurFeeDenom(sender, recipient) > 0){
        uint256 feeAmount = amount.div(denominator).mul(_getCurFeeDenom(sender, recipient));
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        if(burnFee > uint256(0) && _getCurFeeDenom(sender, recipient) > burnFee){_transfer(address(this), address(DEAD), amount.div(denominator).mul(burnFee));}
        return amount.sub(feeAmount);} return amount;
    }

    function wesetsize(uint256 _buy, uint256 _sell, uint256 _wallet) external onlyOwner {
        uint256 newTx = _tSupply.mul(_buy).div(10000); uint256 newTransfer = _tSupply.mul(_sell).div(10000); uint256 newWallet = _tSupply.mul(_wallet).div(10000);
        _maxAmountTx = newTx; _maxAmountBuys = newTransfer; _maxAmountHodl = newWallet;
        uint256 limit = totalSupply().mul(5).div(1000);
        require(newTx >= limit && newTransfer >= limit && newWallet >= limit, "Max TXs and Max Wallet cannot be less than .5%");
    }
    
    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

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

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":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExeptTax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxAmountBuys","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxAmountHodl","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxAmountTx","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":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","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":"view","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"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"wego","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"wesetsize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_total","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"wesettax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126012600a620004ae565b6200002290633b9aca00620004c5565b60018181556003805461ffff60a01b1916600160a81b1781556006919091556064916200004f91620004c5565b6200005b9190620004df565b600a55620186a06001546001620000739190620004c5565b6200007f9190620004df565b600b555f600c819055600d8190556064600e55600f556109c4601081905560118190556012556127106013819055601480547333ee0ea74f56da4439ff6b8a0cf6483e7e5d83c16001600160a01b0319918216811790925560158054821683179055601680549091169091179055600154620000fd906096620004c5565b620001099190620004df565b6017556127106001546096620001209190620004c5565b6200012c9190620004df565b6018556127106001546096620001439190620004c5565b6200014f9190620004df565b6019553480156200015e575f80fd5b505f80546001600160a01b031916331781556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9291839163c45a0155916004808201926020929091908290030181865afa158015620001c3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001e99190620004ff565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000235573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200025b9190620004ff565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002a6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002cc9190620004ff565b600280546001600160a01b038581166001600160a01b03199283161790925560038054848416921691909117905560165481165f908152600960209081526040808320805460ff19908116600190811790925560155486168552828520805482168317905560145490951684528184208054861682179055338085528285208054909616821790955554600783528184208190559051908152939450919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505062000527565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620003f357815f1904821115620003d757620003d76200039f565b80851615620003e557918102915b93841c9390800290620003b8565b509250929050565b5f826200040b57506001620004a8565b816200041957505f620004a8565b81600181146200043257600281146200043d576200045d565b6001915050620004a8565b60ff8411156200045157620004516200039f565b50506001821b620004a8565b5060208310610133831016604e8410600b841016171562000482575081810a620004a8565b6200048e8383620003b3565b805f1904821115620004a457620004a46200039f565b0290505b92915050565b5f620004be60ff841683620003fb565b9392505050565b8082028115828204841417620004a857620004a86200039f565b5f82620004fa57634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121562000510575f80fd5b81516001600160a01b0381168114620004be575f80fd5b6117ff80620005355f395ff3fe608060405260043610610129575f3560e01c80635ce2951e116100a857806395d89b411161006d57806395d89b411461034a578063a8b0898214610378578063a9059cbb14610397578063c04518a1146103b6578063dd62ed3e146103d5578063f2fde38b14610419575f80fd5b80635ce2951e146102a857806370a08231146102bd578063715018a6146102f1578063845b17e514610305578063893d20e81461031a575f80fd5b806323b872dd116100ee57806323b872dd146102185780632a9137e5146102375780632f54bf6e1461024b578063313ce5671461027857806351b7e4f414610293575f80fd5b806304df31351461013457806306d650871461015557806306fdde0314610198578063095ea7b3146101d757806318160ddd146101f6575f80fd5b3661013057005b5f80fd5b34801561013f575f80fd5b5061015361014e3660046114bc565b610438565b005b348015610160575f80fd5b5061018361016f3660046114fc565b60096020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b3480156101a3575f80fd5b5060408051808201909152600e81526d4172656d69612046696e616e636560901b60208201525b60405161018f9190611517565b3480156101e2575f80fd5b506101836101f1366004611562565b61057d565b348015610201575f80fd5b5061020a610593565b60405190815260200161018f565b348015610223575f80fd5b5061018361023236600461158c565b610603565b348015610242575f80fd5b5061015361066b565b348015610256575f80fd5b506101836102653660046114fc565b5f546001600160a01b0391821691161490565b348015610283575f80fd5b506040516012815260200161018f565b34801561029e575f80fd5b5061020a60195481565b3480156102b3575f80fd5b5061020a60175481565b3480156102c8575f80fd5b5061020a6102d73660046114fc565b6001600160a01b03165f9081526007602052604090205490565b3480156102fc575f80fd5b506101536106a9565b348015610310575f80fd5b5061020a60185481565b348015610325575f80fd5b505f546001600160a01b03165b6040516001600160a01b03909116815260200161018f565b348015610355575f80fd5b506040805180820190915260068152654152454d494160d01b60208201526101ca565b348015610383575f80fd5b50600354610332906001600160a01b031681565b3480156103a2575f80fd5b506101836103b1366004611562565b610716565b3480156103c1575f80fd5b506101536103d03660046115ca565b610722565b3480156103e0575f80fd5b5061020a6103ef366004611611565b6001600160a01b039182165f90815260086020908152604080832093909416825291909152205490565b348015610424575f80fd5b506101536104333660046114fc565b6107f6565b5f546001600160a01b0316331461046a5760405162461bcd60e51b815260040161046190611648565b60405180910390fd5b5f61048c6127106104868660015461087290919063ffffffff16565b9061087d565b90505f6104aa6127106104868660015461087290919063ffffffff16565b90505f6104c86127106104868660015461087290919063ffffffff16565b60178490556018839055601981905590505f6104f36103e861048660056104ed610593565b90610872565b90508084101580156105055750808310155b80156105115750808210155b6105745760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b6064820152608401610461565b50505050505050565b5f610589338484610888565b5060015b92915050565b60076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5461dead5f9081527fb0c2646e02af70b79e3fe9277b98373379f54150e4e26b2b5650139f7a75a65d5460015491926105fe9290916105f891906109ab565b906109ab565b905090565b5f61060f8484846109b6565b610660843361065b856040518060600160405280602881526020016117a2602891396001600160a01b038a165f9081526008602090815260408083203384529091529020549190610eba565b610888565b5060015b9392505050565b5f546001600160a01b031633146106945760405162461bcd60e51b815260040161046190611648565b6003805460ff60a01b1916600160a01b179055565b5f546001600160a01b031633146106d25760405162461bcd60e51b815260040161046190611648565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f6105893384846109b6565b5f546001600160a01b0316331461074b5760405162461bcd60e51b815260040161046190611648565b600c879055600d869055600f859055600e8490556010839055601182905560128190556013548311801590610784575060135460115411155b8015610794575060135460125411155b6105745760405162461bcd60e51b815260206004820152602d60248201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60448201526c6f7265207468616e203130302560981b6064820152608401610461565b5f546001600160a01b0316331461081f5760405162461bcd60e51b815260040161046190611648565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b5f610664828461167c565b5f6106648284611693565b6001600160a01b0383166108ea5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610461565b6001600160a01b03821661094b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610461565b6001600160a01b038381165f8181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f61066482846116b2565b6001600160a01b038316610a1a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610461565b6001600160a01b038216610a7c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610461565b6001600160a01b0383165f9081526009602052604090205460ff16158015610abc57506001600160a01b0382165f9081526009602052604090205460ff16155b15610b0657600354600160a01b900460ff16610b065760405162461bcd60e51b815260206004820152600960248201526817da5cd3dc195b995960ba1b6044820152606401610461565b6001600160a01b0383165f9081526009602052604090205460ff16158015610b4657506001600160a01b0382165f9081526009602052604090205460ff16155b8015610b6057506003546001600160a01b03838116911614155b8015610b7757506001600160a01b03821661dead14155b15610bef576019546001600160a01b0383165f90815260076020526040902054610ba19083610ee5565b1115610bef5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e00006044820152606401610461565b6003546001600160a01b03848116911614610c8e5760185481111580610c2c57506001600160a01b0383165f9081526009602052604090205460ff165b80610c4e57506001600160a01b0382165f9081526009602052604090205460ff165b610c8e5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610461565b60175481111580610cb657506001600160a01b0383165f9081526009602052604090205460ff165b80610cd857506001600160a01b0382165f9081526009602052604090205460ff165b610d185760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610461565b6003546001600160a01b038381169116148015610d4d57506001600160a01b0383165f9081526009602052604090205460ff16155b15610d6a57600160045f828254610d6491906116c5565b90915550505b610d75838383610ef0565b15610da357305f90815260076020526040902054610d9e90610d9990600a54610fa7565b610fbb565b5f6004555b600354600160a01b900460ff161580610dd457506001600160a01b0383165f9081526009602052604090205460ff16155b15610e14576001600160a01b0383165f90815260076020526040902054610dfb90826109ab565b6001600160a01b0384165f908152600760205260409020555b5f610e1f848461112b565b610e295781610e34565b610e3484848461116f565b6001600160a01b0384165f90815260076020526040902054909150610e599082610ee5565b6001600160a01b038085165f8181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610eac9085815260200190565b60405180910390a350505050565b5f8184841115610edd5760405162461bcd60e51b81526004016104619190611517565b505050900390565b5f61066482846116c5565b600b54305f90815260076020526040812054600554919280851015929110159060ff16158015610f295750600354600160a81b900460ff165b8015610f3e5750600354600160a01b900460ff165b8015610f475750815b8015610f6b57506001600160a01b0386165f9081526009602052604090205460ff16155b8015610f8457506003546001600160a01b038681169116145b8015610f94575060065460045410155b8015610f9d5750805b9695505050505050565b5f818311610fb55782610664565b50919050565b6005805460ff19166001908117909155600e54600d54600c545f93610ff4936002936104ed939192610fee928391610ee5565b90610ee5565b90505f61101082610486600c548661087290919063ffffffff16565b90505f61101d84836109ab565b90504761102982611271565b5f61103447836109ab565b90505f61105661104f600c54886109ab90919063ffffffff16565b839061087d565b90505f61106e600c548361087290919063ffffffff16565b905080156110805761108086826113c1565b600d545f90611094906104ed856002610872565b905080156110d5576015546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156110d3573d5f803e3d5ffd5b505b478015611115576014546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611113573d5f803e3d5ffd5b505b50506005805460ff191690555050505050505050565b6001600160a01b0382165f9081526009602052604081205460ff161580156106645750506001600160a01b03165f9081526009602052604090205460ff1615919050565b5f8061117b8585611472565b111561126a575f61119d61118f8686611472565b6013546104ed90869061087d565b305f908152600760205260409020549091506111b99082610ee5565b305f81815260076020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112099085815260200190565b60405180910390a35f600f5411801561122c5750600f5461122a8686611472565b115b15611258576112583061dead611253600f546104ed6013548961087d90919063ffffffff16565b6109b6565b61126283826109ab565b915050610664565b5092915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106112a4576112a46116d8565b6001600160a01b03928316602091820292909201810191909152600254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061131f91906116ec565b81600181518110611332576113326116d8565b6001600160a01b0392831660209182029290920101526002546113589130911684610888565b60025460405163791ac94760e01b81526001600160a01b039091169063791ac947906113909085905f90869030904290600401611707565b5f604051808303815f87803b1580156113a7575f80fd5b505af11580156113b9573d5f803e3d5ffd5b505050505050565b6002546113d99030906001600160a01b031684610888565b60025460165460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611446573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061146b9190611776565b5050505050565b6003545f906001600160a01b0390811690831603611493575060115461058d565b6003546001600160a01b03908116908416036114b2575060105461058d565b5060125492915050565b5f805f606084860312156114ce575f80fd5b505081359360208301359350604090920135919050565b6001600160a01b03811681146114f9575f80fd5b50565b5f6020828403121561150c575f80fd5b8135610664816114e5565b5f6020808352835180828501525f5b8181101561154257858101830151858201604001528201611526565b505f604082860101526040601f19601f8301168501019250505092915050565b5f8060408385031215611573575f80fd5b823561157e816114e5565b946020939093013593505050565b5f805f6060848603121561159e575f80fd5b83356115a9816114e5565b925060208401356115b9816114e5565b929592945050506040919091013590565b5f805f805f805f60e0888a0312156115e0575f80fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b5f8060408385031215611622575f80fd5b823561162d816114e5565b9150602083013561163d816114e5565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761058d5761058d611668565b5f826116ad57634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561058d5761058d611668565b8082018082111561058d5761058d611668565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156116fc575f80fd5b8151610664816114e5565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156117555784516001600160a01b031683529383019391830191600101611730565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611788575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200602dda50ef1cf12c5c6fd1751e626ff5f4ce46d25f5f6e59bd5dd3eca1f927564736f6c63430008150033

Deployed Bytecode

0x608060405260043610610129575f3560e01c80635ce2951e116100a857806395d89b411161006d57806395d89b411461034a578063a8b0898214610378578063a9059cbb14610397578063c04518a1146103b6578063dd62ed3e146103d5578063f2fde38b14610419575f80fd5b80635ce2951e146102a857806370a08231146102bd578063715018a6146102f1578063845b17e514610305578063893d20e81461031a575f80fd5b806323b872dd116100ee57806323b872dd146102185780632a9137e5146102375780632f54bf6e1461024b578063313ce5671461027857806351b7e4f414610293575f80fd5b806304df31351461013457806306d650871461015557806306fdde0314610198578063095ea7b3146101d757806318160ddd146101f6575f80fd5b3661013057005b5f80fd5b34801561013f575f80fd5b5061015361014e3660046114bc565b610438565b005b348015610160575f80fd5b5061018361016f3660046114fc565b60096020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b3480156101a3575f80fd5b5060408051808201909152600e81526d4172656d69612046696e616e636560901b60208201525b60405161018f9190611517565b3480156101e2575f80fd5b506101836101f1366004611562565b61057d565b348015610201575f80fd5b5061020a610593565b60405190815260200161018f565b348015610223575f80fd5b5061018361023236600461158c565b610603565b348015610242575f80fd5b5061015361066b565b348015610256575f80fd5b506101836102653660046114fc565b5f546001600160a01b0391821691161490565b348015610283575f80fd5b506040516012815260200161018f565b34801561029e575f80fd5b5061020a60195481565b3480156102b3575f80fd5b5061020a60175481565b3480156102c8575f80fd5b5061020a6102d73660046114fc565b6001600160a01b03165f9081526007602052604090205490565b3480156102fc575f80fd5b506101536106a9565b348015610310575f80fd5b5061020a60185481565b348015610325575f80fd5b505f546001600160a01b03165b6040516001600160a01b03909116815260200161018f565b348015610355575f80fd5b506040805180820190915260068152654152454d494160d01b60208201526101ca565b348015610383575f80fd5b50600354610332906001600160a01b031681565b3480156103a2575f80fd5b506101836103b1366004611562565b610716565b3480156103c1575f80fd5b506101536103d03660046115ca565b610722565b3480156103e0575f80fd5b5061020a6103ef366004611611565b6001600160a01b039182165f90815260086020908152604080832093909416825291909152205490565b348015610424575f80fd5b506101536104333660046114fc565b6107f6565b5f546001600160a01b0316331461046a5760405162461bcd60e51b815260040161046190611648565b60405180910390fd5b5f61048c6127106104868660015461087290919063ffffffff16565b9061087d565b90505f6104aa6127106104868660015461087290919063ffffffff16565b90505f6104c86127106104868660015461087290919063ffffffff16565b60178490556018839055601981905590505f6104f36103e861048660056104ed610593565b90610872565b90508084101580156105055750808310155b80156105115750808210155b6105745760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b6064820152608401610461565b50505050505050565b5f610589338484610888565b5060015b92915050565b60076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5461dead5f9081527fb0c2646e02af70b79e3fe9277b98373379f54150e4e26b2b5650139f7a75a65d5460015491926105fe9290916105f891906109ab565b906109ab565b905090565b5f61060f8484846109b6565b610660843361065b856040518060600160405280602881526020016117a2602891396001600160a01b038a165f9081526008602090815260408083203384529091529020549190610eba565b610888565b5060015b9392505050565b5f546001600160a01b031633146106945760405162461bcd60e51b815260040161046190611648565b6003805460ff60a01b1916600160a01b179055565b5f546001600160a01b031633146106d25760405162461bcd60e51b815260040161046190611648565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f6105893384846109b6565b5f546001600160a01b0316331461074b5760405162461bcd60e51b815260040161046190611648565b600c879055600d869055600f859055600e8490556010839055601182905560128190556013548311801590610784575060135460115411155b8015610794575060135460125411155b6105745760405162461bcd60e51b815260206004820152602d60248201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60448201526c6f7265207468616e203130302560981b6064820152608401610461565b5f546001600160a01b0316331461081f5760405162461bcd60e51b815260040161046190611648565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b5f610664828461167c565b5f6106648284611693565b6001600160a01b0383166108ea5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610461565b6001600160a01b03821661094b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610461565b6001600160a01b038381165f8181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f61066482846116b2565b6001600160a01b038316610a1a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610461565b6001600160a01b038216610a7c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610461565b6001600160a01b0383165f9081526009602052604090205460ff16158015610abc57506001600160a01b0382165f9081526009602052604090205460ff16155b15610b0657600354600160a01b900460ff16610b065760405162461bcd60e51b815260206004820152600960248201526817da5cd3dc195b995960ba1b6044820152606401610461565b6001600160a01b0383165f9081526009602052604090205460ff16158015610b4657506001600160a01b0382165f9081526009602052604090205460ff16155b8015610b6057506003546001600160a01b03838116911614155b8015610b7757506001600160a01b03821661dead14155b15610bef576019546001600160a01b0383165f90815260076020526040902054610ba19083610ee5565b1115610bef5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e00006044820152606401610461565b6003546001600160a01b03848116911614610c8e5760185481111580610c2c57506001600160a01b0383165f9081526009602052604090205460ff165b80610c4e57506001600160a01b0382165f9081526009602052604090205460ff165b610c8e5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610461565b60175481111580610cb657506001600160a01b0383165f9081526009602052604090205460ff165b80610cd857506001600160a01b0382165f9081526009602052604090205460ff165b610d185760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610461565b6003546001600160a01b038381169116148015610d4d57506001600160a01b0383165f9081526009602052604090205460ff16155b15610d6a57600160045f828254610d6491906116c5565b90915550505b610d75838383610ef0565b15610da357305f90815260076020526040902054610d9e90610d9990600a54610fa7565b610fbb565b5f6004555b600354600160a01b900460ff161580610dd457506001600160a01b0383165f9081526009602052604090205460ff16155b15610e14576001600160a01b0383165f90815260076020526040902054610dfb90826109ab565b6001600160a01b0384165f908152600760205260409020555b5f610e1f848461112b565b610e295781610e34565b610e3484848461116f565b6001600160a01b0384165f90815260076020526040902054909150610e599082610ee5565b6001600160a01b038085165f8181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610eac9085815260200190565b60405180910390a350505050565b5f8184841115610edd5760405162461bcd60e51b81526004016104619190611517565b505050900390565b5f61066482846116c5565b600b54305f90815260076020526040812054600554919280851015929110159060ff16158015610f295750600354600160a81b900460ff165b8015610f3e5750600354600160a01b900460ff165b8015610f475750815b8015610f6b57506001600160a01b0386165f9081526009602052604090205460ff16155b8015610f8457506003546001600160a01b038681169116145b8015610f94575060065460045410155b8015610f9d5750805b9695505050505050565b5f818311610fb55782610664565b50919050565b6005805460ff19166001908117909155600e54600d54600c545f93610ff4936002936104ed939192610fee928391610ee5565b90610ee5565b90505f61101082610486600c548661087290919063ffffffff16565b90505f61101d84836109ab565b90504761102982611271565b5f61103447836109ab565b90505f61105661104f600c54886109ab90919063ffffffff16565b839061087d565b90505f61106e600c548361087290919063ffffffff16565b905080156110805761108086826113c1565b600d545f90611094906104ed856002610872565b905080156110d5576015546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156110d3573d5f803e3d5ffd5b505b478015611115576014546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611113573d5f803e3d5ffd5b505b50506005805460ff191690555050505050505050565b6001600160a01b0382165f9081526009602052604081205460ff161580156106645750506001600160a01b03165f9081526009602052604090205460ff1615919050565b5f8061117b8585611472565b111561126a575f61119d61118f8686611472565b6013546104ed90869061087d565b305f908152600760205260409020549091506111b99082610ee5565b305f81815260076020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112099085815260200190565b60405180910390a35f600f5411801561122c5750600f5461122a8686611472565b115b15611258576112583061dead611253600f546104ed6013548961087d90919063ffffffff16565b6109b6565b61126283826109ab565b915050610664565b5092915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106112a4576112a46116d8565b6001600160a01b03928316602091820292909201810191909152600254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061131f91906116ec565b81600181518110611332576113326116d8565b6001600160a01b0392831660209182029290920101526002546113589130911684610888565b60025460405163791ac94760e01b81526001600160a01b039091169063791ac947906113909085905f90869030904290600401611707565b5f604051808303815f87803b1580156113a7575f80fd5b505af11580156113b9573d5f803e3d5ffd5b505050505050565b6002546113d99030906001600160a01b031684610888565b60025460165460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611446573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061146b9190611776565b5050505050565b6003545f906001600160a01b0390811690831603611493575060115461058d565b6003546001600160a01b03908116908416036114b2575060105461058d565b5060125492915050565b5f805f606084860312156114ce575f80fd5b505081359360208301359350604090920135919050565b6001600160a01b03811681146114f9575f80fd5b50565b5f6020828403121561150c575f80fd5b8135610664816114e5565b5f6020808352835180828501525f5b8181101561154257858101830151858201604001528201611526565b505f604082860101526040601f19601f8301168501019250505092915050565b5f8060408385031215611573575f80fd5b823561157e816114e5565b946020939093013593505050565b5f805f6060848603121561159e575f80fd5b83356115a9816114e5565b925060208401356115b9816114e5565b929592945050506040919091013590565b5f805f805f805f60e0888a0312156115e0575f80fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b5f8060408385031215611622575f80fd5b823561162d816114e5565b9150602083013561163d816114e5565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761058d5761058d611668565b5f826116ad57634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561058d5761058d611668565b8082018082111561058d5761058d611668565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156116fc575f80fd5b8151610664816114e5565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156117555784516001600160a01b031683529383019391830191600101611730565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611788575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200602dda50ef1cf12c5c6fd1751e626ff5f4ce46d25f5f6e59bd5dd3eca1f927564736f6c63430008150033

Deployed Bytecode Sourcemap

4049:10050:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12900:532;;;;;;;;;;-1:-1:-1;12900:532:0;;;;;:::i;:::-;;:::i;:::-;;4707:44;;;;;;;;;;-1:-1:-1;4707:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;888:14:1;;881:22;863:41;;851:2;836:18;4707:44:0;;;;;;;;6439:67;;;;;;;;;;-1:-1:-1;6499:5:0;;;;;;;;;;;;-1:-1:-1;;;6499:5:0;;;;6439:67;;;;;;;:::i;7133:133::-;;;;;;;;;;-1:-1:-1;7133:133:0;;;;;:::i;:::-;;:::i;7272:128::-;;;;;;;;;;;;;:::i;:::-;;;1934:25:1;;;1922:2;1907:18;7272:128:0;1788:177:1;13444:309:0;;;;;;;;;;-1:-1:-1;13444:309:0;;;;;:::i;:::-;;:::i;10431:54::-;;;;;;;;;;;;;:::i;3446:87::-;;;;;;;;;;-1:-1:-1;3446:87:0;;;;;:::i;:::-;3501:4;3526:5;-1:-1:-1;;;;;3515:16:0;;;3526:5;;3515:16;;3446:87;6589:67;;;;;;;;;;-1:-1:-1;6589:67:0;;4266:2;2573:36:1;;2561:2;2546:18;6589:67:0;2431:184:1;5742:58:0;;;;;;;;;;;;;;;;5614:56;;;;;;;;;;;;;;;;6746:103;;;;;;;;;;-1:-1:-1;6746:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;6829:18:0;6812:7;6829:18;;;:9;:18;;;;;;;6746:103;3656:106;;;;;;;;;;;;;:::i;5677:58::-;;;;;;;;;;;;;;;;6662:78;;;;;;;;;;-1:-1:-1;6714:7:0;6732:5;-1:-1:-1;;;;;6732:5:0;6662:78;;;-1:-1:-1;;;;;2784:32:1;;;2766:51;;2754:2;2739:18;6662:78:0;2620:203:1;6512:71:0;;;;;;;;;;-1:-1:-1;6574:7:0;;;;;;;;;;;;-1:-1:-1;;;6574:7:0;;;;6512:71;;4373:26;;;;;;;;;;-1:-1:-1;4373:26:0;;;;-1:-1:-1;;;;;4373:26:0;;;6855:139;;;;;;;;;;-1:-1:-1;6855:139:0;;;;;:::i;:::-;;:::i;9275:486::-;;;;;;;;;;-1:-1:-1;9275:486:0;;;;;:::i;:::-;;:::i;7000:127::-;;;;;;;;;;-1:-1:-1;7000:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;7098:18:0;;;7081:7;7098:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7000:127;3539:111;;;;;;;;;;-1:-1:-1;3539:111:0;;;;;:::i;:::-;;:::i;12900:532::-;3501:4;3526:5;-1:-1:-1;;;;;3526:5:0;3413:10;3515:16;3397:38;;;;-1:-1:-1;;;3397:38:0;;;;;;;:::i;:::-;;;;;;;;;12995:13:::1;13011:29;13034:5;13011:18;13024:4;13011:8;;:12;;:18;;;;:::i;:::-;:22:::0;::::1;:29::i;:::-;12995:45;;13042:19;13064:30;13088:5;13064:19;13077:5;13064:8;;:12;;:19;;;;:::i;:30::-;13042:52;;13096:17;13116:32;13142:5;13116:21;13129:7;13116:8;;:12;;:21;;;;:::i;:32::-;13159:12;:20:::0;;;13181:14:::1;:28:::0;;;13211:14:::1;:26:::0;;;13096:52;-1:-1:-1;;13264:30:0::1;13289:4;13264:20;13282:1;13264:13;:11;:13::i;:::-;:17:::0;::::1;:20::i;:30::-;13248:46;;13322:5;13313;:14;;:38;;;;;13346:5;13331:11;:20;;13313:38;:60;;;;;13368:5;13355:9;:18;;13313:60;13305:119;;;::::0;-1:-1:-1;;;13305:119:0;;4614:2:1;13305:119:0::1;::::0;::::1;4596:21:1::0;4653:2;4633:18;;;4626:30;4692:34;4672:18;;;4665:62;-1:-1:-1;;;4743:18:1;;;4736:44;4797:19;;13305:119:0::1;4412:410:1::0;13305:119:0::1;12984:448;;;;12900:532:::0;;;:::o;7133:133::-;7208:4;7215:37;7224:10;7236:7;7245:6;7215:8;:37::i;:::-;-1:-1:-1;7260:4:0;7133:133;;;;;:::o;7272:128::-;6829:9;:18;;;;5301:42;7325:7;6829:18;;;;;7342:8;;7325:7;;7342:56;;6829:18;;7342:29;;:8;:12;:29::i;:::-;:33;;:56::i;:::-;7335:63;;7272:128;:::o;13444:309::-;13542:4;13559:36;13569:6;13577:9;13588:6;13559:9;:36::i;:::-;13606:117;13615:6;13623:10;13635:87;13671:6;13635:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13635:19:0;;;;;;:11;:19;;;;;;;;13655:10;13635:31;;;;;;;;;:87;:35;:87::i;:::-;13606:8;:117::i;:::-;-1:-1:-1;13741:4:0;13444:309;;;;;;:::o;10431:54::-;3501:4;3526:5;-1:-1:-1;;;;;3526:5:0;3413:10;3515:16;3397:38;;;;-1:-1:-1;;;3397:38:0;;;;;;;:::i;:::-;10467:9:::1;:16:::0;;-1:-1:-1;;;;10467:16:0::1;-1:-1:-1::0;;;10467:16:0::1;::::0;;10431:54::o;3656:106::-;3501:4;3526:5;-1:-1:-1;;;;;3526:5:0;3413:10;3515:16;3397:38;;;;-1:-1:-1;;;3397:38:0;;;;;;;:::i;:::-;3719:1:::1;3703:18:::0;;-1:-1:-1;;;;;;3703:18:0::1;::::0;;3728:32:::1;::::0;2766:51:1;;;3728:32:0::1;::::0;2754:2:1;2739:18;3728:32:0::1;;;;;;;3656:106::o:0;6855:139::-;6933:4;6940:40;6950:10;6962:9;6973:6;6940:9;:40::i;9275:486::-;3501:4;3526:5;-1:-1:-1;;;;;3526:5:0;3413:10;3515:16;3397:38;;;;-1:-1:-1;;;3397:38:0;;;;;;;:::i;:::-;9447:12:::1;:25:::0;;;9474:12:::1;:25:::0;;;9501:7:::1;:15:::0;;;9518:14:::1;:29:::0;;;9549:8:::1;:17:::0;;;9568:7:::1;:15:::0;;;9585:11:::1;:20:::0;;;9636:11:::1;::::0;9624:23;::::1;::::0;::::1;::::0;:49:::1;;;9662:11;;9651:7;;:22;;9624:49;:79;;;;;9692:11;;9677;;:26;;9624:79;9616:137;;;::::0;-1:-1:-1;;;9616:137:0;;5029:2:1;9616:137:0::1;::::0;::::1;5011:21:1::0;5068:2;5048:18;;;5041:30;5107:34;5087:18;;;5080:62;-1:-1:-1;;;5158:18:1;;;5151:43;5211:19;;9616:137:0::1;4827:409:1::0;3539:111:0;3501:4;3526:5;-1:-1:-1;;;;;3526:5:0;3413:10;3515:16;3397:38;;;;-1:-1:-1;;;3397:38:0;;;;;;;:::i;:::-;3605:5:::1;:11:::0;;-1:-1:-1;;;;;;3605:11:0::1;-1:-1:-1::0;;;;;3605:11:0;::::1;::::0;;::::1;::::0;;;3623:25:::1;::::0;2766:51:1;;;3623:25:0::1;::::0;2754:2:1;2739:18;3623:25:0::1;;;;;;;3539:111:::0;:::o;661:98::-;719:7;746:5;750:1;746;:5;:::i;767:98::-;825:7;852:5;856:1;852;:5;:::i;13761:335::-;-1:-1:-1;;;;;13854:19:0;;13846:68;;;;-1:-1:-1;;;13846:68:0;;6186:2:1;13846:68:0;;;6168:21:1;6225:2;6205:18;;;6198:30;6264:34;6244:18;;;6237:62;-1:-1:-1;;;6315:18:1;;;6308:34;6359:19;;13846:68:0;5984:400:1;13846:68:0;-1:-1:-1;;;;;13933:21:0;;13925:68;;;;-1:-1:-1;;;13925:68:0;;6591:2:1;13925:68:0;;;6573:21:1;6630:2;6610:18;;;6603:30;6669:34;6649:18;;;6642:62;-1:-1:-1;;;6720:18:1;;;6713:32;6762:19;;13925:68:0;6389:398:1;13925:68:0;-1:-1:-1;;;;;14004:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;14056:32;;1934:25:1;;;14056:32:0;;1907:18:1;14056:32:0;;;;;;;13761:335;;;:::o;555:98::-;613:7;640:5;644:1;640;:5;:::i;7837:1430::-;-1:-1:-1;;;;;7934:20:0;;7926:70;;;;-1:-1:-1;;;7926:70:0;;7127:2:1;7926:70:0;;;7109:21:1;7166:2;7146:18;;;7139:30;7205:34;7185:18;;;7178:62;-1:-1:-1;;;7256:18:1;;;7249:35;7301:19;;7926:70:0;6925:401:1;7926:70:0;-1:-1:-1;;;;;8015:23:0;;8007:71;;;;-1:-1:-1;;;8007:71:0;;7533:2:1;8007:71:0;;;7515:21:1;7572:2;7552:18;;;7545:30;7611:34;7591:18;;;7584:62;-1:-1:-1;;;7662:18:1;;;7655:33;7705:19;;8007:71:0;7331:399:1;8007:71:0;-1:-1:-1;;;;;8093:19:0;;;;;;:11;:19;;;;;;;;8092:20;:47;;;;-1:-1:-1;;;;;;8117:22:0;;;;;;:11;:22;;;;;;;;8116:23;8092:47;8089:85;;;8149:9;;-1:-1:-1;;;8149:9:0;;;;8141:31;;;;-1:-1:-1;;;8141:31:0;;7937:2:1;8141:31:0;;;7919:21:1;7976:1;7956:18;;;7949:29;-1:-1:-1;;;7994:18:1;;;7987:39;8043:18;;8141:31:0;7735:332:1;8141:31:0;-1:-1:-1;;;;;8188:19:0;;;;;;:11;:19;;;;;;;;8187:20;:47;;;;-1:-1:-1;;;;;;8212:22:0;;;;;;:11;:22;;;;;;;;8211:23;8187:47;:84;;;;-1:-1:-1;8259:11:0;;-1:-1:-1;;;;;8238:33:0;;;8259:11;;8238:33;;8187:84;:114;;;;-1:-1:-1;;;;;;8275:26:0;;5301:42;8275:26;;8187:114;8184:226;;;8359:14;;-1:-1:-1;;;;;8322:20:0;;;;;;:9;:20;;;;;;:32;;8347:6;8322:24;:32::i;:::-;8321:52;;8313:95;;;;-1:-1:-1;;;8313:95:0;;8274:2:1;8313:95:0;;;8256:21:1;8313:2;8293:18;;;8286:30;8352:32;8332:18;;;8325:60;8402:18;;8313:95:0;8072:354:1;8313:95:0;8433:11;;-1:-1:-1;;;;;8423:21:0;;;8433:11;;8423:21;8420:131;;8464:14;;8454:6;:24;;:47;;;-1:-1:-1;;;;;;8482:19:0;;;;;;:11;:19;;;;;;;;8454:47;:73;;;-1:-1:-1;;;;;;8505:22:0;;;;;;:11;:22;;;;;;;;8454:73;8446:103;;;;-1:-1:-1;;;8446:103:0;;8633:2:1;8446:103:0;;;8615:21:1;8672:2;8652:18;;;8645:30;-1:-1:-1;;;8691:18:1;;;8684:47;8748:18;;8446:103:0;8431:341:1;8446:103:0;8579:12;;8569:6;:22;;:45;;;-1:-1:-1;;;;;;8595:19:0;;;;;;:11;:19;;;;;;;;8569:45;:71;;;-1:-1:-1;;;;;;8618:22:0;;;;;;:11;:22;;;;;;;;8569:71;8561:101;;;;-1:-1:-1;;;8561:101:0;;8633:2:1;8561:101:0;;;8615:21:1;8672:2;8652:18;;;8645:30;-1:-1:-1;;;8691:18:1;;;8684:47;8748:18;;8561:101:0;8431:341:1;8561:101:0;8690:11;;-1:-1:-1;;;;;8677:24:0;;;8690:11;;8677:24;:48;;;;-1:-1:-1;;;;;;8706:19:0;;;;;;:11;:19;;;;;;;;8705:20;8677:48;8674:82;;;8752:1;8727:13;;:27;;;;;;;:::i;:::-;;;;-1:-1:-1;;8674:82:0;8769:40;8783:6;8791:9;8802:6;8769:13;:40::i;:::-;8766:132;;;8846:4;6812:7;6829:18;;;:9;:18;;;;;;8811:57;;8824:43;;8854:12;;8824:3;:43::i;:::-;8811:12;:57::i;:::-;8894:1;8870:13;:26;8766:132;8913:9;;-1:-1:-1;;;8913:9:0;;;;8912:10;;:34;;-1:-1:-1;;;;;;8927:19:0;;;;;;:11;:19;;;;;;;;8926:20;8912:34;8908:94;;;-1:-1:-1;;;;;8970:17:0;;;;;;:9;:17;;;;;;:29;;8992:6;8970:21;:29::i;:::-;-1:-1:-1;;;;;8950:17:0;;;;;;:9;:17;;;;;:49;8908:94;9012:22;9037:32;9051:6;9059:9;9037:13;:32::i;:::-;:89;;9120:6;9037:89;;;9072:45;9091:6;9099:9;9110:6;9072:18;:45::i;:::-;-1:-1:-1;;;;;9160:20:0;;;;;;:9;:20;;;;;;9012:114;;-1:-1:-1;9160:40:0;;9012:114;9160:24;:40::i;:::-;-1:-1:-1;;;;;9137:20:0;;;;;;;:9;:20;;;;;;;:63;;;;9216:43;;;;;;;;;;9244:14;1934:25:1;;1922:2;1907:18;;1788:177;9216:43:0;;;;;;;;7915:1352;7837:1430;;;:::o;979:240::-;1099:7;1160:12;1152:6;;;;1144:29;;;;-1:-1:-1;;;1144:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1195:5:0;;;979:240::o;449:98::-;507:7;534:5;538:1;534;:5;:::i;7406:415::-;7546:13;;7610:4;7503;6829:18;;;:9;:18;;;;;;7652:12;;7503:4;;7536:23;;;;;-1:-1:-1;;7592:41:0;;7652:12;;7651:13;:35;;;;-1:-1:-1;7668:18:0;;-1:-1:-1;;;7668:18:0;;;;7651:35;:48;;;;-1:-1:-1;7690:9:0;;-1:-1:-1;;;7690:9:0;;;;7651:48;:60;;;;;7703:8;7651:60;:84;;;;-1:-1:-1;;;;;;7716:19:0;;;;;;:11;:19;;;;;;;;7715:20;7651:84;:112;;;;-1:-1:-1;7752:11:0;;-1:-1:-1;;;;;7739:24:0;;;7752:11;;7739:24;7651:112;:144;;;;;7784:11;;7767:13;;:28;;7651:144;:162;;;;;7799:14;7651:162;7644:169;7406:415;-1:-1:-1;;;;;;7406:415:0:o;10314:105::-;10371:7;10401:1;10397;:5;10396:15;;10410:1;10396:15;;;-1:-1:-1;10406:1:0;10314:105;-1:-1:-1;10314:105:0:o;10964:1058::-;4899:12;:19;;-1:-1:-1;;4899:19:0;4914:4;4899:19;;;;;;11096:14:::1;::::0;11078:12:::1;::::0;11054::::1;::::0;4899;;11053:66:::1;::::0;11117:1:::1;::::0;11054:57:::1;::::0;11096:14;;11054:37:::1;::::0;;;:16:::1;:19::i;:::-;:23:::0;::::1;:37::i;11053:66::-;11030:89;;11130:32;11165:42;11194:12;11165:24;11176:12;;11165:6;:10;;:24;;;;:::i;:42::-;11130:77:::0;-1:-1:-1;11218:14:0::1;11235:36;:6:::0;11130:77;11235:10:::1;:36::i;:::-;11218:53:::0;-1:-1:-1;11307:21:0::1;11339:24;11218:53:::0;11339:16:::1;:24::i;:::-;11374:20;11397:41;:21;11423:14:::0;11397:25:::1;:41::i;:::-;11374:64;;11449:19;11470:48;11487:30;11504:12;;11487;:16;;:30;;;;:::i;:::-;11470:12:::0;;:16:::1;:48::i;:::-;11449:69;;11529:29;11561;11577:12;;11561:11;:15;;:29;;;;:::i;:::-;11529:61:::0;-1:-1:-1;11604:34:0;;11601:103:::1;;11640:61;11653:24;11679:21;11640:12;:61::i;:::-;11760:12;::::0;11714:20:::1;::::0;11737:36:::1;::::0;:18:::1;:11:::0;11753:1:::1;11737:15;:18::i;:36::-;11714:59:::0;-1:-1:-1;11787:16:0;;11784:73:::1;;11813:18;::::0;11805:50:::1;::::0;-1:-1:-1;;;;;11813:18:0;;::::1;::::0;11805:50;::::1;;;::::0;11842:12;;11813:18:::1;11805:50:::0;11813:18;11805:50;11842:12;11813:18;11805:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;11784:73;11893:21;11928:28:::0;;11925:90:::1;;11966:20;::::0;11958:55:::1;::::0;-1:-1:-1;;;;;11966:20:0;;::::1;::::0;11958:55;::::1;;;::::0;11997:15;;11966:20:::1;11958:55:::0;11966:20;11958:55;11997:15;11966:20;11958:55;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;11925:90;-1:-1:-1::0;;4923:12:0;:20;;-1:-1:-1;;4923:20:0;;;-1:-1:-1;;;;;;;;10964:1058:0:o;9773:160::-;-1:-1:-1;;;;;9879:19:0;;9854:4;9879:19;;;:11;:19;;;;;;;;9878:20;:47;;;;-1:-1:-1;;;;;;;9903:22:0;;;;;:11;:22;;;;;;;;9902:23;;9773:160;-1:-1:-1;9773:160:0:o;12279:613::-;12376:7;12436:1;12399:34;12415:6;12423:9;12399:15;:34::i;:::-;:38;12396:474;;;12449:17;12469:63;12497:34;12513:6;12521:9;12497:15;:34::i;:::-;12480:11;;12469:23;;:6;;:10;:23::i;:63::-;12588:4;12570:24;;;;:9;:24;;;;;;12449:83;;-1:-1:-1;12570:39:0;;12449:83;12570:28;:39::i;:::-;12561:4;12543:24;;;;:9;:24;;;;;;;:66;;;;12625:42;;-1:-1:-1;;;;;12625:42:0;;;;;;;12657:9;1934:25:1;;1922:2;1907:18;;1788:177;12625:42:0;;;;;;;;12699:1;12681:7;;:20;:68;;;;;12742:7;;12705:34;12721:6;12729:9;12705:15;:34::i;:::-;:44;12681:68;12678:152;;;12751:77;12769:4;5301:42;12791:36;12819:7;;12791:23;12802:11;;12791:6;:10;;:23;;;;:::i;:36::-;12751:9;:77::i;:::-;12847:21;:6;12858:9;12847:10;:21::i;:::-;12840:28;;;;;12396:474;-1:-1:-1;12878:6:0;12279:613;-1:-1:-1;;12279:613:0:o;10491:461::-;10581:16;;;10595:1;10581:16;;;;;;;;10557:21;;10581:16;;;;;;;;;;-1:-1:-1;10581:16:0;10557:40;;10626:4;10608;10613:1;10608:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10608:23:0;;;:7;;;;;;;;;;:23;;;;10652:15;;:22;;;-1:-1:-1;;;10652:22:0;;;;:15;;;;;:20;;:22;;;;;10608:7;;10652:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10642:4;10647:1;10642:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10642:32:0;;;:7;;;;;;;;;:32;10717:15;;10685:62;;10702:4;;10717:15;10735:11;10685:8;:62::i;:::-;10758:15;;:186;;-1:-1:-1;;;10758:186:0;;-1:-1:-1;;;;;10758:15:0;;;;:66;;:186;;10839:11;;10758:15;;10881:4;;10908;;10928:15;;10758:186;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10546:406;10491:461;:::o;9945:361::-;10058:15;;10026:62;;10043:4;;-1:-1:-1;;;;;10058:15:0;10076:11;10026:8;:62::i;:::-;10099:15;;10249:18;;10099:199;;-1:-1:-1;;;10099:199:0;;10171:4;10099:199;;;10753:34:1;10803:18;;;10796:34;;;10099:15:0;10846:18:1;;;10839:34;;;10889:18;;;10882:34;-1:-1:-1;;;;;10249:18:0;;;10932:19:1;;;10925:44;10282:15:0;10985:19:1;;;10978:35;10099:15:0;;;:31;;10138:9;;10687:19:1;;10099:199:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;9945:361;;:::o;12034:237::-;12153:11;;12117:7;;-1:-1:-1;;;;;12153:11:0;;;12140:24;;;;12137:45;;-1:-1:-1;12173:7:0;;12166:14;;12137:45;12205:11;;-1:-1:-1;;;;;12205:11:0;;;12195:21;;;;12192:43;;-1:-1:-1;12225:8:0;;12218:15;;12192:43;-1:-1:-1;12252:11:0;;12034:237;;;;:::o;14:316:1:-;91:6;99;107;160:2;148:9;139:7;135:23;131:32;128:52;;;176:1;173;166:12;128:52;-1:-1:-1;;199:23:1;;;269:2;254:18;;241:32;;-1:-1:-1;320:2:1;305:18;;;292:32;;14:316;-1:-1:-1;14:316:1:o;335:131::-;-1:-1:-1;;;;;410:31:1;;400:42;;390:70;;456:1;453;446:12;390:70;335:131;:::o;471:247::-;530:6;583:2;571:9;562:7;558:23;554:32;551:52;;;599:1;596;589:12;551:52;638:9;625:23;657:31;682:5;657:31;:::i;915:548::-;1027:4;1056:2;1085;1074:9;1067:21;1117:6;1111:13;1160:6;1155:2;1144:9;1140:18;1133:34;1185:1;1195:140;1209:6;1206:1;1203:13;1195:140;;;1304:14;;;1300:23;;1294:30;1270:17;;;1289:2;1266:26;1259:66;1224:10;;1195:140;;;1199:3;1384:1;1379:2;1370:6;1359:9;1355:22;1351:31;1344:42;1454:2;1447;1443:7;1438:2;1430:6;1426:15;1422:29;1411:9;1407:45;1403:54;1395:62;;;;915:548;;;;:::o;1468:315::-;1536:6;1544;1597:2;1585:9;1576:7;1572:23;1568:32;1565:52;;;1613:1;1610;1603:12;1565:52;1652:9;1639:23;1671:31;1696:5;1671:31;:::i;:::-;1721:5;1773:2;1758:18;;;;1745:32;;-1:-1:-1;;;1468:315:1:o;1970:456::-;2047:6;2055;2063;2116:2;2104:9;2095:7;2091:23;2087:32;2084:52;;;2132:1;2129;2122:12;2084:52;2171:9;2158:23;2190:31;2215:5;2190:31;:::i;:::-;2240:5;-1:-1:-1;2297:2:1;2282:18;;2269:32;2310:33;2269:32;2310:33;:::i;:::-;1970:456;;2362:7;;-1:-1:-1;;;2416:2:1;2401:18;;;;2388:32;;1970:456::o;2828:592::-;2941:6;2949;2957;2965;2973;2981;2989;3042:3;3030:9;3021:7;3017:23;3013:33;3010:53;;;3059:1;3056;3049:12;3010:53;-1:-1:-1;;3082:23:1;;;3152:2;3137:18;;3124:32;;-1:-1:-1;3203:2:1;3188:18;;3175:32;;3254:2;3239:18;;3226:32;;-1:-1:-1;3305:3:1;3290:19;;3277:33;;-1:-1:-1;3357:3:1;3342:19;;3329:33;;-1:-1:-1;3409:3:1;3394:19;3381:33;;-1:-1:-1;2828:592:1;-1:-1:-1;2828:592:1:o;3425:388::-;3493:6;3501;3554:2;3542:9;3533:7;3529:23;3525:32;3522:52;;;3570:1;3567;3560:12;3522:52;3609:9;3596:23;3628:31;3653:5;3628:31;:::i;:::-;3678:5;-1:-1:-1;3735:2:1;3720:18;;3707:32;3748:33;3707:32;3748:33;:::i;:::-;3800:7;3790:17;;;3425:388;;;;;:::o;4078:329::-;4280:2;4262:21;;;4319:1;4299:18;;;4292:29;-1:-1:-1;;;4352:2:1;4337:18;;4330:36;4398:2;4383:18;;4078:329::o;5457:127::-;5518:10;5513:3;5509:20;5506:1;5499:31;5549:4;5546:1;5539:15;5573:4;5570:1;5563:15;5589:168;5662:9;;;5693;;5710:15;;;5704:22;;5690:37;5680:71;;5731:18;;:::i;5762:217::-;5802:1;5828;5818:132;;5872:10;5867:3;5863:20;5860:1;5853:31;5907:4;5904:1;5897:15;5935:4;5932:1;5925:15;5818:132;-1:-1:-1;5964:9:1;;5762:217::o;6792:128::-;6859:9;;;6880:11;;;6877:37;;;6894:18;;:::i;8777:125::-;8842:9;;;8863:10;;;8860:36;;;8876:18;;:::i;9039:127::-;9100:10;9095:3;9091:20;9088:1;9081:31;9131:4;9128:1;9121:15;9155:4;9152:1;9145:15;9171:251;9241:6;9294:2;9282:9;9273:7;9269:23;9265:32;9262:52;;;9310:1;9307;9300:12;9262:52;9342:9;9336:16;9361:31;9386:5;9361:31;:::i;9427:980::-;9689:4;9737:3;9726:9;9722:19;9768:6;9757:9;9750:25;9794:2;9832:6;9827:2;9816:9;9812:18;9805:34;9875:3;9870:2;9859:9;9855:18;9848:31;9899:6;9934;9928:13;9965:6;9957;9950:22;10003:3;9992:9;9988:19;9981:26;;10042:2;10034:6;10030:15;10016:29;;10063:1;10073:195;10087:6;10084:1;10081:13;10073:195;;;10152:13;;-1:-1:-1;;;;;10148:39:1;10136:52;;10243:15;;;;10208:12;;;;10184:1;10102:9;10073:195;;;-1:-1:-1;;;;;;;10324:32:1;;;;10319:2;10304:18;;10297:60;-1:-1:-1;;;10388:3:1;10373:19;10366:35;10285:3;9427:980;-1:-1:-1;;;9427:980:1:o;11024:306::-;11112:6;11120;11128;11181:2;11169:9;11160:7;11156:23;11152:32;11149:52;;;11197:1;11194;11187:12;11149:52;11226:9;11220:16;11210:26;;11276:2;11265:9;11261:18;11255:25;11245:35;;11320:2;11309:9;11305:18;11299:25;11289:35;;11024:306;;;;;:::o

Swarm Source

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